From 6d2b5ec8b947fa334f65967d23d7bfb486b4d19c Mon Sep 17 00:00:00 2001 From: let5sne Date: Tue, 21 Jul 2026 01:30:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(mobile):=20polish=20candidate=20pages=20?= =?UTF-8?q?=E2=80=94=20clean=20text=20buttons,=20StateBlock=20empties,=20s?= =?UTF-8?q?tandard=20subpage=20header?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/candidate/index/index.vue | 10 +++- .../src/pages/candidate/interview/index.vue | 10 +++- .../src/pages/candidate/materials/index.vue | 10 +++- .../src/pages/candidate/progress/index.vue | 51 +++++-------------- .../src/pages/candidate/study/index.vue | 32 +++--------- 5 files changed, 45 insertions(+), 68 deletions(-) diff --git a/mobile-uni/src/pages/candidate/index/index.vue b/mobile-uni/src/pages/candidate/index/index.vue index 1298db7d..5d37da37 100644 --- a/mobile-uni/src/pages/candidate/index/index.vue +++ b/mobile-uni/src/pages/candidate/index/index.vue @@ -78,7 +78,7 @@ {{ latestMaterial.time }} · {{ latestMaterial.status }} - 暂无办理记录 + @@ -92,6 +92,7 @@ import { isLoggedIn, rememberLoginRedirect } from '@/services/auth'; import { getCandidateInterviewRecords, getCandidateMaterials, getCandidateName } from '@/services/candidate'; import { buildCandidateFlow } from '@/services/candidate-view'; import { resetPageScroll } from '@/services/navigation'; +import StateBlock from '@/components/StateBlock.vue'; const currentPath = '/pages/candidate/index/index'; const records = ref([]); @@ -359,12 +360,17 @@ onShow(() => { .text-button { min-height: 36px; padding: 0; + border: 0; background: transparent; - color: #1d4ed8; + color: var(--employee-primary); font-size: 13px; font-weight: 700; } +.text-button::after { + border: 0; +} + .activity-row { justify-content: flex-start; margin-top: 12px; diff --git a/mobile-uni/src/pages/candidate/interview/index.vue b/mobile-uni/src/pages/candidate/interview/index.vue index c1d7d577..edb50f43 100644 --- a/mobile-uni/src/pages/candidate/interview/index.vue +++ b/mobile-uni/src/pages/candidate/interview/index.vue @@ -128,7 +128,7 @@ {{ item.score }} - 暂无面试记录 + @@ -153,6 +153,7 @@ import { } from '@/services/candidate'; import { candidateRoutes } from '@/services/candidate-view'; import { resetPageScroll } from '@/services/navigation'; +import StateBlock from '@/components/StateBlock.vue'; import { chooseSpeechAudio, createSpeechPlaybackController, @@ -735,11 +736,16 @@ onUnload(() => { .text-button { min-height: 36px; padding: 0; + border: 0; background: transparent; - color: #1d4ed8; + color: var(--employee-primary); font-size: 13px; } +.text-button::after { + border: 0; +} + .compact-empty { padding-bottom: 4px; } diff --git a/mobile-uni/src/pages/candidate/materials/index.vue b/mobile-uni/src/pages/candidate/materials/index.vue index cb4ac97b..0ca07d23 100644 --- a/mobile-uni/src/pages/candidate/materials/index.vue +++ b/mobile-uni/src/pages/candidate/materials/index.vue @@ -47,7 +47,7 @@ - 暂无已提交资料 + @@ -71,6 +71,7 @@ import { materialStatusTone } from '@/services/candidate-view'; import { resetPageScroll } from '@/services/navigation'; +import StateBlock from '@/components/StateBlock.vue'; const currentPath = '/pages/candidate/materials/index'; const materials = ref([]); @@ -224,11 +225,16 @@ onShow(() => { .text-button { min-height: 36px; padding: 0; + border: 0; background: transparent; - color: #1d4ed8; + color: var(--employee-primary); font-size: 13px; } +.text-button::after { + border: 0; +} + .material-list { margin-top: 12px; border-top: 1px solid #e2e8f0; diff --git a/mobile-uni/src/pages/candidate/progress/index.vue b/mobile-uni/src/pages/candidate/progress/index.vue index a7391c1d..1ba61782 100644 --- a/mobile-uni/src/pages/candidate/progress/index.vue +++ b/mobile-uni/src/pages/candidate/progress/index.vue @@ -1,8 +1,8 @@ - - 暂无面试记录 - 完成一次结构化面试后,这里会展示评分和问答明细。 - - + @@ -73,6 +76,7 @@ import { isLoggedIn, rememberLoginRedirect } from '@/services/auth'; import { getCandidateInterviewRecords, getCandidateMaterials } from '@/services/candidate'; import { candidateRoutes } from '@/services/candidate-view'; import { resetPageScroll } from '@/services/navigation'; +import StateBlock from '@/components/StateBlock.vue'; const currentPath = '/pages/candidate/progress/index'; const records = ref([]); @@ -147,34 +151,6 @@ onShow(() => { background: #f9f9f9; } -.record-header { - display: flex; - align-items: flex-start; - gap: 12px; - padding: 10px 4px 16px; -} - -.back-button { - display: flex; - width: 28px; - min-width: 28px; - height: 28px; - align-items: center; - justify-content: center; - padding: 0; - border: 0; - background: transparent; - color: #111; - line-height: 1; -} - -.page-subtitle { - display: block; - margin-top: 5px; - color: #858991; - font-size: 13px; -} - .score-card, .question-card, .review-status-card { @@ -311,8 +287,7 @@ onShow(() => { margin-top: 14px; } -.login-panel, -.empty-record-panel { +.login-panel { border-radius: 18px; } diff --git a/mobile-uni/src/pages/candidate/study/index.vue b/mobile-uni/src/pages/candidate/study/index.vue index 942df4da..e3f4048e 100644 --- a/mobile-uni/src/pages/candidate/study/index.vue +++ b/mobile-uni/src/pages/candidate/study/index.vue @@ -70,10 +70,13 @@ - - 尚未生成预习 - 选择主题后调用正式 SOP 知识库,不使用前端示例答案。 - + @@ -85,6 +88,7 @@ import { isLoggedIn, rememberLoginRedirect } from '@/services/auth'; import { candidateRoutes } from '@/services/candidate-view'; import { searchKnowledge } from '@/services/knowledge'; import { resetPageScroll } from '@/services/navigation'; +import StateBlock from '@/components/StateBlock.vue'; const currentPath = '/pages/candidate/study/index'; const topics = [ @@ -310,24 +314,4 @@ onShow(() => { font-size: 13px; line-height: 1.5; } - -.empty-state { - padding: 56px 24px; - text-align: center; -} - -.empty-title { - display: block; - color: #172033; - font-size: 17px; - font-weight: 800; -} - -.empty-desc { - display: block; - margin-top: 8px; - color: #64748b; - font-size: 13px; - line-height: 1.55; -}