681 lines
13 KiB
Plaintext
681 lines
13 KiB
Plaintext
/* 加载态 & 空态 */
|
|
.page-loading,
|
|
.page-empty {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 60vh;
|
|
gap: 24rpx;
|
|
}
|
|
.empty-text {
|
|
font-size: var(--font-sm, 28rpx);
|
|
color: var(--color-gray-6, #a6a6a6);
|
|
}
|
|
|
|
/* ========== Banner ========== */
|
|
.banner-area {
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
.banner-bg {
|
|
width: 100%;
|
|
height: 480rpx;
|
|
background: linear-gradient(135deg, #1a1a2e, #c9a84c);
|
|
display: block;
|
|
}
|
|
.banner-overlay {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.banner-nav {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
height: 88rpx;
|
|
padding: 0 32rpx;
|
|
}
|
|
.nav-back {
|
|
padding: 8rpx;
|
|
}
|
|
.nav-title {
|
|
font-size: var(--font-base, 32rpx);
|
|
font-weight: 500;
|
|
color: #ffffff;
|
|
}
|
|
.nav-placeholder {
|
|
width: 64rpx;
|
|
}
|
|
|
|
/* 客户头部信息 */
|
|
.customer-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 32rpx;
|
|
padding: 16rpx 40rpx 24rpx;
|
|
}
|
|
.avatar-box {
|
|
width: 128rpx;
|
|
height: 128rpx;
|
|
border-radius: 32rpx;
|
|
background: rgba(255, 255, 255, 0.2);
|
|
backdrop-filter: blur(8px);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.15);
|
|
}
|
|
.avatar-text {
|
|
font-size: 48rpx;
|
|
font-weight: 700;
|
|
color: #ffffff;
|
|
}
|
|
.info-right {
|
|
flex: 1;
|
|
}
|
|
.name-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12rpx;
|
|
margin-bottom: 16rpx;
|
|
flex-wrap: wrap;
|
|
}
|
|
.customer-name {
|
|
font-size: var(--font-xl, 40rpx);
|
|
font-weight: 600;
|
|
color: #ffffff;
|
|
}
|
|
.customer-tag {
|
|
flex-shrink: 0;
|
|
}
|
|
.sub-info {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 32rpx;
|
|
}
|
|
.phone,
|
|
.member-id {
|
|
font-size: var(--font-sm, 28rpx);
|
|
color: rgba(255, 255, 255, 0.7);
|
|
}
|
|
|
|
/* Banner 统计 */
|
|
.banner-stats {
|
|
margin: 0 40rpx;
|
|
background: rgba(255, 255, 255, 0.1);
|
|
border-radius: var(--radius-lg, 24rpx);
|
|
backdrop-filter: blur(8px);
|
|
display: flex;
|
|
}
|
|
.stat-item {
|
|
flex: 1;
|
|
text-align: center;
|
|
padding: 24rpx 0;
|
|
}
|
|
.stat-border {
|
|
border-right: 1rpx solid rgba(255, 255, 255, 0.1);
|
|
}
|
|
.stat-value {
|
|
display: block;
|
|
font-size: var(--font-sm, 28rpx);
|
|
font-weight: 500;
|
|
color: #ffffff;
|
|
}
|
|
.stat-green {
|
|
color: #6ee7b7;
|
|
}
|
|
.stat-amber {
|
|
color: #fcd34d;
|
|
}
|
|
.stat-label {
|
|
display: block;
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: rgba(255, 255, 255, 0.6);
|
|
margin-top: 8rpx;
|
|
}
|
|
|
|
/* ========== 主体内容 ========== */
|
|
.main-content {
|
|
padding: 32rpx;
|
|
padding-bottom: 200rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 32rpx;
|
|
}
|
|
|
|
/* ========== AI 智能洞察卡片 ========== */
|
|
.ai-insight-card {
|
|
border-radius: var(--radius-xl, 32rpx);
|
|
overflow: hidden;
|
|
background: linear-gradient(135deg, #667eea, #764ba2);
|
|
padding: 40rpx;
|
|
color: #ffffff;
|
|
}
|
|
.ai-insight-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
.ai-icon-small {
|
|
width: 48rpx;
|
|
height: 48rpx;
|
|
background: rgba(255, 255, 255, 0.2);
|
|
border-radius: var(--radius-md, 16rpx);
|
|
padding: 8rpx;
|
|
}
|
|
.ai-icon-emoji {
|
|
font-size: 40rpx;
|
|
line-height: 1;
|
|
}
|
|
.ai-insight-label {
|
|
font-size: var(--font-sm, 28rpx);
|
|
font-weight: 500;
|
|
color: rgba(255, 255, 255, 0.9);
|
|
}
|
|
.ai-insight-summary {
|
|
font-size: var(--font-sm, 28rpx);
|
|
color: rgba(255, 255, 255, 0.9);
|
|
line-height: 1.7;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
.ai-strategy-box {
|
|
background: rgba(255, 255, 255, 0.1);
|
|
border-radius: var(--radius-lg, 24rpx);
|
|
padding: 24rpx;
|
|
backdrop-filter: blur(8px);
|
|
}
|
|
.strategy-title {
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: rgba(255, 255, 255, 0.6);
|
|
margin-bottom: 16rpx;
|
|
display: block;
|
|
}
|
|
.strategy-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12rpx;
|
|
}
|
|
.strategy-item {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 16rpx;
|
|
}
|
|
.strategy-dot {
|
|
width: 12rpx;
|
|
height: 12rpx;
|
|
border-radius: 50%;
|
|
margin-top: 12rpx;
|
|
flex-shrink: 0;
|
|
}
|
|
.dot-green {
|
|
background: #6ee7b7;
|
|
}
|
|
.dot-amber {
|
|
background: #fcd34d;
|
|
}
|
|
.dot-pink {
|
|
background: #f9a8d4;
|
|
}
|
|
.strategy-text {
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: rgba(255, 255, 255, 0.85);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
/* ========== 通用卡片 ========== */
|
|
.card {
|
|
background: #ffffff;
|
|
border-radius: var(--radius-xl, 32rpx);
|
|
padding: 40rpx;
|
|
box-shadow: var(--shadow-lg, 0 8rpx 32rpx rgba(0, 0, 0, 0.06));
|
|
}
|
|
.card-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 32rpx;
|
|
}
|
|
.section-title {
|
|
font-size: var(--font-sm, 28rpx);
|
|
font-weight: 600;
|
|
color: var(--color-gray-13, #242424);
|
|
position: relative;
|
|
padding-left: 20rpx;
|
|
}
|
|
.section-title::before {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 6rpx;
|
|
height: 28rpx;
|
|
border-radius: 4rpx;
|
|
}
|
|
.title-green::before {
|
|
background: linear-gradient(180deg, #00a870, #4cd964);
|
|
}
|
|
.title-blue::before {
|
|
background: linear-gradient(180deg, #0052d9, #5b9cf8);
|
|
}
|
|
.title-orange::before {
|
|
background: linear-gradient(180deg, #ed7b2f, #ffc107);
|
|
}
|
|
.title-pink::before {
|
|
background: linear-gradient(180deg, #e851a4, #f5a0c0);
|
|
}
|
|
.header-hint {
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: var(--color-gray-6, #a6a6a6);
|
|
}
|
|
|
|
/* AI 徽章 */
|
|
.ai-badge-box {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8rpx;
|
|
background: var(--color-primary-light, #ecf2fe);
|
|
padding: 4rpx 16rpx;
|
|
border-radius: 100rpx;
|
|
}
|
|
.ai-badge-emoji {
|
|
font-size: 24rpx;
|
|
line-height: 1;
|
|
}
|
|
.ai-badge-text {
|
|
font-size: 22rpx;
|
|
color: var(--color-primary, #0052d9);
|
|
}
|
|
|
|
/* ========== 维客线索 ========== */
|
|
.clue-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 20rpx;
|
|
}
|
|
.clue-item {
|
|
background: #fafafa;
|
|
border-radius: var(--radius-lg, 24rpx);
|
|
border: 1rpx solid var(--color-gray-3, #e7e7e7);
|
|
padding: 24rpx;
|
|
}
|
|
.clue-main {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 24rpx;
|
|
}
|
|
.clue-category {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 8rpx;
|
|
font-size: 22rpx;
|
|
font-weight: 500;
|
|
flex-shrink: 0;
|
|
line-height: 1.3;
|
|
text-align: center;
|
|
}
|
|
.clue-cat-primary {
|
|
background: rgba(0, 82, 217, 0.1);
|
|
color: var(--color-primary, #0052d9);
|
|
}
|
|
.clue-cat-success {
|
|
background: rgba(0, 168, 112, 0.1);
|
|
color: var(--color-success, #00a870);
|
|
}
|
|
.clue-cat-purple {
|
|
background: rgba(124, 58, 237, 0.1);
|
|
color: #7c3aed;
|
|
}
|
|
.clue-cat-warning {
|
|
background: rgba(237, 123, 47, 0.1);
|
|
color: var(--color-warning, #ed7b2f);
|
|
}
|
|
.clue-cat-pink {
|
|
background: rgba(236, 72, 153, 0.1);
|
|
color: #ec4899;
|
|
}
|
|
.clue-cat-error {
|
|
background: rgba(227, 77, 89, 0.1);
|
|
color: var(--color-error, #e34d59);
|
|
}
|
|
.clue-content {
|
|
flex: 1;
|
|
position: relative;
|
|
min-height: 80rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
}
|
|
.clue-text {
|
|
font-size: var(--font-sm, 28rpx);
|
|
color: var(--color-gray-13, #242424);
|
|
line-height: 1.5;
|
|
}
|
|
.clue-source {
|
|
font-size: 22rpx;
|
|
color: var(--color-gray-6, #a6a6a6);
|
|
align-self: flex-end;
|
|
margin-top: 4rpx;
|
|
}
|
|
.clue-detail {
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: var(--color-gray-7, #8b8b8b);
|
|
line-height: 1.6;
|
|
margin-top: 16rpx;
|
|
}
|
|
|
|
/* ========== 助教任务 ========== */
|
|
.coach-task-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 24rpx;
|
|
}
|
|
.coach-task-card {
|
|
border-radius: var(--radius-lg, 24rpx);
|
|
padding: 24rpx;
|
|
}
|
|
.coach-card-red {
|
|
background: linear-gradient(135deg, rgba(254, 226, 226, 0.8), rgba(255, 228, 230, 0.6));
|
|
border: 1rpx solid rgba(252, 165, 165, 0.6);
|
|
}
|
|
.coach-card-pink {
|
|
background: linear-gradient(135deg, rgba(252, 231, 243, 0.8), rgba(250, 232, 255, 0.6));
|
|
border: 1rpx solid rgba(249, 168, 212, 0.6);
|
|
}
|
|
.coach-task-top {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
.coach-name-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12rpx;
|
|
}
|
|
.coach-name {
|
|
font-size: var(--font-sm, 28rpx);
|
|
font-weight: 600;
|
|
color: var(--color-gray-13, #242424);
|
|
}
|
|
.coach-level {
|
|
font-size: 22rpx;
|
|
padding: 4rpx 16rpx;
|
|
border-radius: 100rpx;
|
|
font-weight: 500;
|
|
}
|
|
.level-pink {
|
|
background: #fce7f3;
|
|
color: #be185d;
|
|
}
|
|
.level-purple {
|
|
background: #f3e8ff;
|
|
color: #7c3aed;
|
|
}
|
|
.coach-task-type {
|
|
font-size: 22rpx;
|
|
padding: 4rpx 16rpx;
|
|
border-radius: 100rpx;
|
|
font-weight: 500;
|
|
}
|
|
.type-red {
|
|
background: #fee2e2;
|
|
color: #b91c1c;
|
|
}
|
|
.type-pink {
|
|
background: #fce7f3;
|
|
color: #be185d;
|
|
}
|
|
.coach-last-service {
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: var(--color-gray-7, #8b8b8b);
|
|
margin-bottom: 16rpx;
|
|
}
|
|
.coach-metrics {
|
|
display: flex;
|
|
gap: 16rpx;
|
|
}
|
|
.coach-metric {
|
|
flex: 1;
|
|
background: rgba(255, 255, 255, 0.8);
|
|
border-radius: var(--radius-md, 16rpx);
|
|
padding: 12rpx 0;
|
|
text-align: center;
|
|
}
|
|
.metric-label {
|
|
display: block;
|
|
font-size: 20rpx;
|
|
color: var(--color-gray-6, #a6a6a6);
|
|
margin-bottom: 4rpx;
|
|
}
|
|
.metric-value {
|
|
display: block;
|
|
font-size: var(--font-sm, 28rpx);
|
|
font-weight: 700;
|
|
color: var(--color-gray-13, #242424);
|
|
}
|
|
|
|
/* ========== 最喜欢的助教 ========== */
|
|
.fav-coach-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 24rpx;
|
|
}
|
|
.fav-coach-card {
|
|
border-radius: var(--radius-lg, 24rpx);
|
|
padding: 32rpx;
|
|
}
|
|
.fav-card-pink {
|
|
background: linear-gradient(135deg, rgba(252, 231, 243, 0.8), rgba(255, 228, 230, 0.6));
|
|
border: 1rpx solid rgba(249, 168, 212, 0.6);
|
|
}
|
|
.fav-card-amber {
|
|
background: linear-gradient(135deg, rgba(254, 243, 199, 0.8), rgba(254, 249, 195, 0.6));
|
|
border: 1rpx solid rgba(252, 211, 77, 0.6);
|
|
}
|
|
.fav-coach-top {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
.fav-coach-name {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 20rpx;
|
|
}
|
|
.fav-emoji {
|
|
font-size: 36rpx;
|
|
}
|
|
.fav-name {
|
|
font-size: var(--font-sm, 28rpx);
|
|
font-weight: 600;
|
|
color: var(--color-gray-13, #242424);
|
|
}
|
|
.fav-index {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12rpx;
|
|
}
|
|
.fav-index-label {
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: var(--color-gray-7, #8b8b8b);
|
|
}
|
|
.fav-index-value {
|
|
font-size: 36rpx;
|
|
font-weight: 700;
|
|
}
|
|
.fav-period {
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: var(--color-gray-7, #8b8b8b);
|
|
margin-bottom: 12rpx;
|
|
padding-left: 4rpx;
|
|
}
|
|
.fav-stats {
|
|
display: flex;
|
|
gap: 16rpx;
|
|
}
|
|
.fav-stat {
|
|
flex: 1;
|
|
background: rgba(255, 255, 255, 0.8);
|
|
border-radius: var(--radius-md, 16rpx);
|
|
padding: 16rpx 0;
|
|
text-align: center;
|
|
}
|
|
.fav-stat-label {
|
|
display: block;
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: var(--color-gray-7, #8b8b8b);
|
|
margin-bottom: 4rpx;
|
|
}
|
|
.fav-stat-value {
|
|
display: block;
|
|
font-size: var(--font-base, 32rpx);
|
|
font-weight: 700;
|
|
color: var(--color-gray-13, #242424);
|
|
}
|
|
|
|
/* ========== 消费记录 ========== */
|
|
.record-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 24rpx;
|
|
}
|
|
.record-item {
|
|
background: #fafafa;
|
|
border-radius: var(--radius-lg, 24rpx);
|
|
border: 1rpx solid var(--color-gray-3, #e7e7e7);
|
|
overflow: hidden;
|
|
}
|
|
.record-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 20rpx 24rpx;
|
|
background: linear-gradient(90deg, #eff6ff, #eef2ff);
|
|
border-bottom: 1rpx solid rgba(219, 234, 254, 0.5);
|
|
}
|
|
.record-project {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12rpx;
|
|
}
|
|
.record-dot {
|
|
width: 12rpx;
|
|
height: 12rpx;
|
|
border-radius: 50%;
|
|
background: var(--color-primary, #0052d9);
|
|
}
|
|
.record-project-name {
|
|
font-size: var(--font-sm, 28rpx);
|
|
font-weight: 600;
|
|
color: var(--color-primary, #0052d9);
|
|
}
|
|
.record-date {
|
|
font-size: var(--font-sm, 28rpx);
|
|
color: var(--color-gray-8, #777777);
|
|
}
|
|
.record-body {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 20rpx 24rpx;
|
|
}
|
|
.record-info {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 24rpx;
|
|
}
|
|
.record-coach {
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: var(--color-gray-8, #777777);
|
|
}
|
|
.record-duration {
|
|
font-size: var(--font-xs, 24rpx);
|
|
color: var(--color-gray-6, #a6a6a6);
|
|
}
|
|
.record-amount {
|
|
font-size: var(--font-base, 32rpx);
|
|
font-weight: 700;
|
|
color: var(--color-gray-13, #242424);
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
.record-empty {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
padding: 48rpx 0;
|
|
gap: 16rpx;
|
|
}
|
|
.empty-hint {
|
|
font-size: var(--font-sm, 28rpx);
|
|
color: var(--color-gray-5, #c5c5c5);
|
|
}
|
|
|
|
/* ========== 底部操作栏 ========== */
|
|
.bottom-bar {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 128rpx;
|
|
background: rgba(255, 255, 255, 0.95);
|
|
backdrop-filter: blur(20px);
|
|
border-top: 1rpx solid var(--color-gray-2, #eeeeee);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 24rpx;
|
|
padding: 0 32rpx;
|
|
z-index: 100;
|
|
}
|
|
.btn-chat {
|
|
flex: 1;
|
|
height: 88rpx;
|
|
background: linear-gradient(135deg, #0052d9, #3b82f6);
|
|
color: #ffffff;
|
|
font-weight: 500;
|
|
border-radius: var(--radius-lg, 24rpx);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 12rpx;
|
|
font-size: var(--font-base, 32rpx);
|
|
box-shadow: 0 8rpx 24rpx rgba(0, 82, 217, 0.3);
|
|
}
|
|
.btn-note {
|
|
flex: 1;
|
|
height: 88rpx;
|
|
background: var(--color-gray-1, #f3f3f3);
|
|
color: var(--color-gray-13, #242424);
|
|
font-weight: 500;
|
|
border-radius: var(--radius-lg, 24rpx);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 12rpx;
|
|
font-size: var(--font-base, 32rpx);
|
|
}
|
|
|
|
/* ========== 颜色工具类 ========== */
|
|
.text-primary {
|
|
color: var(--color-primary, #0052d9) !important;
|
|
}
|
|
.text-success {
|
|
color: var(--color-success, #00a870) !important;
|
|
}
|
|
.text-warning {
|
|
color: var(--color-warning, #ed7b2f) !important;
|
|
}
|
|
.text-error {
|
|
color: var(--color-error, #e34d59) !important;
|
|
}
|