diff --git a/docs/BRD_IMPLEMENTATION_AUDIT.md b/docs/BRD_IMPLEMENTATION_AUDIT.md index e1498340..85837d75 100644 --- a/docs/BRD_IMPLEMENTATION_AUDIT.md +++ b/docs/BRD_IMPLEMENTATION_AUDIT.md @@ -279,3 +279,4 @@ - 2026-07-14 BRD M1 主管场景入口回退复核:后端已启用场景 API 优先,但主管指派页模板仍循环三条静态场景,且 API 正常空结果会继续显示静态选项;现改为循环 API 场景,真实空结果显示“暂无可派发的已启用场景”,只有请求失败才使用本地兜底。复盘后再练入口同步保持真实空结果为空,未修改生产数据。 - 2026-07-14 BRD 4.4 任务来源展示补齐:首页“今日安排”和练习页“最近练过”此前只把非每日任务显示为场景名/“专项训练”,会遮蔽主管派发的错题再练与训练营来源;现统一显示“每日三题/错题再练/训练营/专项训练”标签。该修复只补来源可见性,不把 `source='camp'` 扩展为尚未确认的训练营计划、进度或完成规则。 - 2026-07-14 BRD 4.5/B5 训练时长口径修复:能力画像此前用“完成次数 × 8 分钟”估算训练时长,无法作为真实时长证据;现复用 `started_time/finished_time` 按实际秒数聚合并换算分钟,无时间证据的历史记录按 0 计。未新增表字段;正式试点仍需核对时间来源、异常时长和课程学习时长是否纳入统一口径。 +- 2026-07-14 BRD 4.5/B5 人工贡献分默认值修复:管理端主管复盘表单此前默认填入 `10` 分,单纯点击“标记已复盘”可能产生未经主管确认的贡献分;现改为可选空值,只有明确填写的 `0–100` 分才提交并计入画像,页面文案同步为“人工贡献分”。后端既有空值保留逻辑不变,未新增积分来源;正式激励规则仍需 HR 确认。 diff --git a/frontend/src/api/aihr/mobile-admin.ts b/frontend/src/api/aihr/mobile-admin.ts index cc18cf9f..0afaf01b 100644 --- a/frontend/src/api/aihr/mobile-admin.ts +++ b/frontend/src/api/aihr/mobile-admin.ts @@ -23,7 +23,7 @@ export type ReviewDetail = ReviewRecord & { mentorRewrite: string; aiComment: string; reviewAdvice: string; - incentivePoint: number; + incentivePoint: number | null; scoreItems: Array<{ label: string; value: number | string; note: string }>; dialogue: Array<{ role: string; label: string; text: string; audioUrl?: string; audioOssId?: number | string }>; annotations: Array<{ turnIndex: number; sourceText: string; issue: string; rewrite: string; sopPoint: string }>; diff --git a/frontend/src/views/competency/growth.vue b/frontend/src/views/competency/growth.vue index bd942597..34a6cab3 100644 --- a/frontend/src/views/competency/growth.vue +++ b/frontend/src/views/competency/growth.vue @@ -39,9 +39,9 @@ 来自移动端训练记录
- 贡献度 + 人工贡献分 {{ profile?.contribution ?? 0 }} - 仅计入人工确认的有效贡献分,训练次数单独统计 + 仅计入主管明确确认的有效贡献分,训练次数单独统计
diff --git a/frontend/src/views/train/reviews.vue b/frontend/src/views/train/reviews.vue index 3359c740..7bf27128 100644 --- a/frontend/src/views/train/reviews.vue +++ b/frontend/src/views/train/reviews.vue @@ -120,8 +120,8 @@
- - + + @@ -191,7 +191,7 @@ const pilotDateWindow = computed(() => resolvePilotDateWindow([startDate.value, const reviewForm = reactive({ reviewer: '主管', advice: '', - incentivePoint: 10, + incentivePoint: null as number | null, correctedTotal: 0, calibrationReason: '', nextScenarioId: '', @@ -332,7 +332,7 @@ const selectReview = async (row: ReviewRecord) => { const result = await getPracticeReview(row.id); detail.value = result.data; reviewForm.advice = result.data.reviewAdvice || ''; - reviewForm.incentivePoint = result.data.incentivePoint || 10; + reviewForm.incentivePoint = result.data.incentivePoint ?? null; reviewForm.correctedTotal = result.data.score; reviewForm.calibrationReason = ''; reviewForm.nextScenarioId = ''; @@ -364,7 +364,7 @@ const submitReview = async () => { await markPracticeReviewed(detail.value.id, { reviewer: reviewForm.reviewer, advice: reviewForm.advice, - incentivePoint: reviewForm.incentivePoint, + incentivePoint: reviewForm.incentivePoint ?? undefined, nextScenarioId: reviewForm.nextScenarioId, nextReason: reviewForm.nextReason }); diff --git a/scripts/demo-check.sh b/scripts/demo-check.sh index c4ba604d..5016674a 100755 --- a/scripts/demo-check.sh +++ b/scripts/demo-check.sh @@ -356,7 +356,7 @@ contains mobile-uni/src/services/practice.ts "/api/train/practice/start" contains mobile-uni/src/services/practice.ts "/api/aihr/mobile/practice/history" contains mobile-uni/src/services/practice.ts "/api/aihr/mobile/profile/promotion-evidence" contains mobile-uni/src/pages/user/practice/index.vue "训练完成,主管端待复盘已更新" -contains mobile-uni/src/pages/user/profile/index.vue "贡献度" +contains mobile-uni/src/pages/user/profile/index.vue "人工贡献分" contains mobile-uni/src/services/knowledge.ts "/api/knowledge/answer-feedback" contains mobile-uni/src/pages/user/sop/index.vue "有帮助" contains mobile-uni/src/pages/user/sop/index.vue "没解决" @@ -429,6 +429,10 @@ contains frontend/src/views/system/model/index.vue "不代表真实租户模板 contains frontend/src/views/system/prompts.vue "保存并启用" contains frontend/src/views/competency/growth.vue "当前运营口径(只读)" contains frontend/src/views/competency/growth.vue "训练画像等级(参考)" +contains frontend/src/views/competency/growth.vue "人工贡献分" +contains frontend/src/views/train/reviews.vue "人工贡献分" +contains frontend/src/views/train/reviews.vue "incentivePoint: null as number | null" +contains frontend/src/views/train/reviews.vue "incentivePoint: reviewForm.incentivePoint ?? undefined" contains frontend/src/views/competency/growth.vue "person.personName || person.extPartyId" contains mobile-uni/src/pages/user/profile/index.vue "成长证据包(待人工复核)" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "训练画像参考等级"