diff --git a/mobile-uni/src/pages.json b/mobile-uni/src/pages.json index 6366a593..ead60147 100644 --- a/mobile-uni/src/pages.json +++ b/mobile-uni/src/pages.json @@ -143,7 +143,7 @@ }, "tabBar": { "color": "#7b8494", - "selectedColor": "#e60012", + "selectedColor": "#2f6bff", "backgroundColor": "#ffffff", "borderStyle": "white", "height": "66px", diff --git a/mobile-uni/src/pages/user/today/index.vue b/mobile-uni/src/pages/user/today/index.vue index 759360d0..e44691f4 100644 --- a/mobile-uni/src/pages/user/today/index.vue +++ b/mobile-uni/src/pages/user/today/index.vue @@ -63,7 +63,7 @@ class="chip-icon" :type="chipIcon(index)" size="22" - color="#e70014" + :color="chipColor(index)" /> {{ item }} › @@ -95,7 +95,7 @@ - + {{ primaryScheduleTitle }} @@ -187,6 +187,8 @@ const pendingAssignmentKey = 'aihr_pending_assignment_id'; const chipIcons = ['chatbubble', 'help', 'wallet']; const chipIcon = (index: number) => chipIcons[index] || 'chatbubble'; +const chipColors = ['#2f6bff', '#ff9b3d', '#34b368']; +const chipColor = (index: number) => chipColors[index] || '#2f6bff'; const mapTiles = computed(() => [ { @@ -371,7 +373,10 @@ onShow(() => { .today-page { min-height: 100vh; padding: 0 24px 112px; - background: linear-gradient(180deg, #ffffff 0%, #fbfbfb 62%, #f6f6f6 100%); + --employee-primary: #2f6bff; + --employee-primary-soft: #eaf1ff; + --employee-card-shadow: 0 16px 40px rgba(47, 107, 255, 0.1); + background: linear-gradient(180deg, #f4f8ff 0%, #f7faff 58%, #f3f5f7 100%); } .brand-bar { @@ -533,7 +538,7 @@ onShow(() => { display: flex; align-items: center; min-height: 82px; - gap: 2px; + gap: 10px; transform: translateY(7px); } @@ -557,14 +562,22 @@ onShow(() => { .voice-primary { flex: 1.7; - gap: 20px; - padding: 0 8px 0 14px; + min-height: 74px; + gap: 14px; + padding: 0 12px; + border-radius: 16px; + background: #2f6bff; + box-shadow: 0 10px 20px rgba(47, 107, 255, 0.22); } .voice-secondary { flex: 1; gap: 10px; - padding: 0 2px 0 16px; + min-height: 74px; + padding: 0 8px; + border: 1px solid #e4eaf4; + border-radius: 16px; + background: #ffffff; } .voice-divider { @@ -576,18 +589,18 @@ onShow(() => { .voice-emblem { display: flex; - width: 80px; - height: 80px; + width: 52px; + height: 52px; flex: none; align-items: center; justify-content: center; border-radius: 50%; - background: #e70014; - box-shadow: 0 0 0 8px #fff1f2, 0 8px 16px rgba(231, 0, 20, 0.22); + background: #ffffff; + box-shadow: none; } .voice-mark { - color: #ffffff; + color: #2f6bff; font-size: 24px; font-weight: 900; line-height: 1; @@ -608,6 +621,10 @@ onShow(() => { white-space: nowrap; } +.voice-primary .voice-title { + color: #ffffff; +} + .secondary-title { font-size: 18px; } @@ -620,6 +637,10 @@ onShow(() => { white-space: nowrap; } +.voice-primary .voice-desc { + color: rgba(255, 255, 255, 0.78); +} + .secondary-copy { max-width: 108px; } @@ -670,11 +691,19 @@ onShow(() => { border: 1px solid #ececee; border-radius: 12px; background: #ffffff; - color: #e70014; + color: #2f6bff; font-size: 13px; font-weight: 700; } +.chip-1 { + color: #ff9b3d; +} + +.chip-2 { + color: #34b368; +} + .chip-icon { font-size: 13px; line-height: 1; @@ -738,11 +767,11 @@ onShow(() => { min-height: 42px; flex: 0 0 88px; border-radius: 12px; - background: #e70014; + background: var(--employee-primary); color: #ffffff; font-size: 15px; font-weight: 800; - box-shadow: 0 8px 16px rgba(231, 0, 20, 0.18); + box-shadow: 0 8px 16px rgba(47, 107, 255, 0.2); } .section-head { @@ -765,7 +794,7 @@ onShow(() => { width: 4px; height: 22px; border-radius: 2px; - background: #e70014; + background: #2f6bff; } .section-link { @@ -793,7 +822,9 @@ onShow(() => { display: flex; align-items: center; gap: 16px; - padding: 4px 0; + padding: 14px 12px; + border-radius: 18px; + background: #f8fbff; } .schedule-icon-wrap { @@ -804,7 +835,7 @@ onShow(() => { align-items: center; justify-content: center; border-radius: 50%; - background: #fff1f1; + background: #eaf1ff; } .review-icon { @@ -857,8 +888,8 @@ onShow(() => { align-items: center; justify-content: center; border-radius: 12px; - background: #e70014; - box-shadow: 0 8px 16px rgba(231, 0, 20, 0.18); + background: #2f6bff; + box-shadow: 0 8px 16px rgba(47, 107, 255, 0.22); color: #ffffff; font-size: 18px; font-weight: 800; @@ -881,13 +912,27 @@ onShow(() => { align-items: center; gap: 10px; padding: 16px 14px; - border: 1px solid #f0f1f3; + border: 0; border-radius: 16px; background: #ffffff; text-align: left; overflow: hidden; } +.map-tile.ask, +.map-tile.practice, +.map-tile.learn, +.map-tile.report { + color: #ffffff; + border-color: transparent; + box-shadow: 0 10px 18px rgba(24, 28, 36, 0.08); +} + +.map-tile.ask { background: #2f6bff; } +.map-tile.practice { background: #2ab673; } +.map-tile.learn { background: #ff961f; } +.map-tile.report { background: #ff6357; } + .map-symbol { display: flex; width: 56px; @@ -895,30 +940,30 @@ onShow(() => { flex: none; align-items: center; justify-content: center; - border-radius: 50%; + border-radius: 16px; color: #ffffff; font-size: 24px; font-weight: 900; } .map-symbol.ask { - background: #e70014; - box-shadow: 0 6px 12px rgba(231, 0, 20, 0.2); + background: rgba(255, 255, 255, 0.2); + box-shadow: none; } .map-symbol.practice { - background: #1f9a4a; - box-shadow: 0 6px 12px rgba(31, 154, 74, 0.2); + background: rgba(255, 255, 255, 0.2); + box-shadow: none; } .map-symbol.learn { - background: #e8900c; - box-shadow: 0 6px 12px rgba(232, 144, 12, 0.2); + background: rgba(255, 255, 255, 0.2); + box-shadow: none; } .map-symbol.report { - background: #4b5563; - box-shadow: 0 6px 12px rgba(75, 85, 99, 0.18); + background: rgba(255, 255, 255, 0.2); + box-shadow: none; } .map-copy { @@ -930,21 +975,21 @@ onShow(() => { } .map-title { - color: #1a1a1a; + color: #ffffff; font-size: 18px; font-weight: 800; line-height: 1.2; } .map-desc { - color: #9a9da3; + color: rgba(255, 255, 255, 0.82); font-size: 13px; line-height: 1.35; white-space: pre-line; } .map-arrow { - color: #c5c7cb; + color: #ffffff; font-size: 18px; flex: none; } diff --git a/mobile-uni/tests/mobile-user-pages.test.mjs b/mobile-uni/tests/mobile-user-pages.test.mjs index a6b538da..f00dd734 100644 --- a/mobile-uni/tests/mobile-user-pages.test.mjs +++ b/mobile-uni/tests/mobile-user-pages.test.mjs @@ -46,7 +46,7 @@ test('manifest 明确声明为 uni-app Vue3 CLI 工程', async () => { test('员工端 tabBar 继续保留四个固定入口', async () => { const source = await pageSource('../src/pages.json'); - assert.match(source, /"selectedColor"\s*:\s*"#e60012"/); + assert.match(source, /"selectedColor"\s*:\s*"#2f6bff"/); assert.match(source, /pages\/user\/today\/index/); assert.match(source, /pages\/user\/practice\/index/); assert.match(source, /pages\/user\/sop\/index/);