fix(aihr): require explicit contribution scores
This commit is contained in:
@@ -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 确认。
|
||||
|
||||
@@ -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 }>;
|
||||
|
||||
@@ -39,9 +39,9 @@
|
||||
<small>来自移动端训练记录</small>
|
||||
</article>
|
||||
<article class="metric-card">
|
||||
<span>贡献度</span>
|
||||
<span>人工贡献分</span>
|
||||
<strong>{{ profile?.contribution ?? 0 }}</strong>
|
||||
<small>仅计入人工确认的有效贡献分,训练次数单独统计</small>
|
||||
<small>仅计入主管明确确认的有效贡献分,训练次数单独统计</small>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -120,8 +120,8 @@
|
||||
<el-input v-model="reviewForm.advice" type="textarea" :rows="3" placeholder="写给员工的复盘建议" />
|
||||
</el-form-item>
|
||||
<div class="form-grid">
|
||||
<el-form-item label="贡献学分">
|
||||
<el-input-number v-model="reviewForm.incentivePoint" :min="0" :max="100" />
|
||||
<el-form-item label="人工贡献分">
|
||||
<el-input-number v-model="reviewForm.incentivePoint" :min="0" :max="100" placeholder="可选,不填不计分" />
|
||||
</el-form-item>
|
||||
<el-form-item label="人工校准总分">
|
||||
<el-input-number v-model="reviewForm.correctedTotal" :min="0" :max="100" />
|
||||
@@ -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
|
||||
});
|
||||
|
||||
@@ -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 "训练画像参考等级"
|
||||
|
||||
Reference in New Issue
Block a user