diff --git a/docs/BRD_IMPLEMENTATION_AUDIT.md b/docs/BRD_IMPLEMENTATION_AUDIT.md index d4e9183f..b574784b 100644 --- a/docs/BRD_IMPLEMENTATION_AUDIT.md +++ b/docs/BRD_IMPLEMENTATION_AUDIT.md @@ -2,6 +2,7 @@ 更新时间:2026-07-14 +- 2026-07-14 BRD 4.2/4.7 用户端岗位显示一致性补齐:员工“问师傅”页此前请求已按当前岗位检索,但页头仍固定显示“管家(生活顾问)”;现复用认证岗位状态展示岗位标签,并在页面恢复时同步更新。未新增岗位-SOP资格判断;`mobile-uni` 用户端单测增至 `56/56`,正式岗位适用范围仍需组织/HR数据确认。 - 2026-07-14 BRD 4.2/5.4 最新提交复核:功能提交 `857092c2` 已包含员工练习页岗位显示与当前认证岗位状态对齐;本地管理端主资源 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)、`mobile-uni` H5 主资源 `assets/index-D4A_v1LP.js`(SHA-256 `d3642eb8ec15c6af31636be121053b24a52a782b16572b37950a321c909ec032`)和后端 jar(SHA-256 `e2dcfe01b3c6067a4600322e97b98bd97a84dbaa92a3788563dd9142a6d652b4`)已重新构建。线上仍加载旧管理端/H5资源,本轮只读复核未发布;`release-preflight.sh` 仅因 `docs/FIGMA_DESIGN_INVENTORY.md`、`docs/FIGMA_DESIGN_SYSTEM_GUIDE.md` 两份既有未提交文件停止,未执行生产写入。 - 2026-07-14 BRD 4.2/5.4 用户端岗位显示对齐:员工练习页此前虽按当前岗位请求训练数据,副标题却固定显示“生活顾问”,正式岗位映射存在时会造成界面与请求口径不一致;现复用 `getSelectedPosition()`,并在岗位同步后刷新显示,未新增资格判断或改变生活顾问演示回退。`mobile-uni` 用户端源码回归已增至 55 项通过,正式岗位与岗位-SOP资格规则仍需组织/HR数据后再实现。 - 2026-07-14 20:33 BRD/发布只读复核:当前 `HEAD=a7938a77`;管理端、`mobile-uni` H5 和后端 jar 已重新构建,产物时间晚于当前提交。当前本地管理端主资源 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)、H5 主资源 `assets/index-CfObC14z.js`(SHA-256 `e0d4a8e52c2827421fefb53a269c31c6062b0128fda62d3b00275b7bc4c53c47`)、后端 jar(SHA-256 `f6b76c54061a05bff70d54754867c448e6cfdb4e42120acb7c2103b4e52fa983`)均可用于发布。线上仍加载管理端 `assets/index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`)和 H5 `assets/index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`);`release-preflight.sh` 已通过产物新鲜度检查,但因两份用户未提交 Figma 文档阻断,未执行生产静态同步、后端重启或业务数据写入。 diff --git a/mobile-uni/src/pages/user/sop/index.vue b/mobile-uni/src/pages/user/sop/index.vue index e18bf7af..f4d4e501 100644 --- a/mobile-uni/src/pages/user/sop/index.vue +++ b/mobile-uni/src/pages/user/sop/index.vue @@ -4,7 +4,7 @@ SOP · 话术 · 工作流程 问 数字师傅 · SOP问答 - 管家(生活顾问) · 住宅项目 + {{ positionLabel }} · 住宅项目 先把问题问清楚,再按需生成总结卡,不伪造分类能力。 @@ -205,11 +205,12 @@ import { searchKnowledge, submitAnswerFeedback } from '@/services/knowledge'; -import { getSelectedPositionProfile, isLoggedIn, rememberLoginRedirect } from '@/services/auth'; +import { getSelectedPosition, getSelectedPositionProfile, isLoggedIn, rememberLoginRedirect } from '@/services/auth'; import { resetPageScroll } from '@/services/navigation'; import { ensureEmployeePosition } from '@/services/position'; const positionProfile = ref(getSelectedPositionProfile()); +const positionLabel = ref(getSelectedPosition()); const quickQuestions = computed(() => positionProfile.value.quickQuestions); const quickQuestionPlaceholder = computed(() => `例如: ${quickQuestions.value[0] || '岗位SOP怎么处理?'}`); const query = ref(''); @@ -232,6 +233,7 @@ const resetResultState = () => { const refreshAuthState = () => { loggedIn.value = isLoggedIn(); + positionLabel.value = getSelectedPosition(); positionProfile.value = getSelectedPositionProfile(); }; @@ -263,6 +265,7 @@ const search = async () => { return; } positionProfile.value = getSelectedPositionProfile(); + positionLabel.value = getSelectedPosition(); loading.value = true; message.value = ''; resetResultState(); diff --git a/mobile-uni/tests/mobile-user-pages.test.mjs b/mobile-uni/tests/mobile-user-pages.test.mjs index b52ed38c..f610b93b 100644 --- a/mobile-uni/tests/mobile-user-pages.test.mjs +++ b/mobile-uni/tests/mobile-user-pages.test.mjs @@ -162,6 +162,15 @@ test('员工练习页显示当前岗位而不是固定生活顾问', async () => assert.doesNotMatch(source, /scenario-desc">生活顾问 · 业主服务场景/); }); +test('员工问师傅页显示当前岗位而不是固定生活顾问', async () => { + const source = await pageSource('../src/pages/user/sop/index.vue'); + + assert.match(source, /getSelectedPosition/); + assert.match(source, /const positionLabel = ref\(getSelectedPosition\(\)\)/); + assert.match(source, /\{\{ positionLabel \}\} · 住宅项目/); + assert.doesNotMatch(source, /sop-context">管家(生活顾问) · 住宅项目/); +}); + test('训练页最近练过保留派发任务来源', async () => { const source = await pageSource('../src/pages/user/practice/index.vue');