diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrDashboardService.java b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrDashboardService.java index 31e13a5a..34e49b91 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrDashboardService.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrDashboardService.java @@ -61,7 +61,7 @@ public class AihrDashboardService { return List.of( new FeatureStatusResponse("interview", interview.total() > 0 ? "已有记录" : "可演示", "success", interview.total() + " 条面试结果"), new FeatureStatusResponse("practice", practice.total() > 0 ? "已有记录" : "待跑通", practice.total() > 0 ? "success" : "warning", practice.total() + " 条训练记录"), - new FeatureStatusResponse("case", cases.stored() > 0 ? "已入库" : models.asrEnabled() ? "可试跑" : "样片兜底", cases.stored() > 0 ? "success" : "warning", cases.stored() + " 条案例入库"), + new FeatureStatusResponse("case", cases.stored() > 0 ? "已入库" : models.asrEnabled() ? "可试跑" : "待配置ASR", cases.stored() > 0 ? "success" : "warning", cases.stored() + " 条案例入库"), new FeatureStatusResponse("sop", knowledge.fragments() > 0 ? "可检索" : "待入库", knowledge.fragments() > 0 ? "success" : "warning", knowledge.fragments() + " 个知识片段") ); } @@ -98,7 +98,7 @@ public class AihrDashboardService { new PipelineStepResponse("ASR 转写", cases.transcribed() + " 条", state(cases.transcribed())), new PipelineStepResponse("AI 整理", cases.organized() + " 条", state(cases.organized())), new PipelineStepResponse("审核入库", cases.stored() + " 条", state(cases.stored())), - new PipelineStepResponse("样片展示", cases.stored() + " 条", state(cases.stored())) + new PipelineStepResponse("培训复用", cases.stored() + " 条", state(cases.stored())) ); } diff --git a/frontend/src/views/index.vue b/frontend/src/views/index.vue index 0fd8cb6d..5f1fee73 100644 --- a/frontend/src/views/index.vue +++ b/frontend/src/views/index.vue @@ -147,8 +147,7 @@ import { Switch, Tickets, TrendCharts, - UserFilled, - VideoCamera + UserFilled } from '@element-plus/icons-vue'; import { computed, onMounted, ref } from 'vue'; import { useRouter } from 'vue-router'; @@ -178,7 +177,7 @@ const emptyDashboard: DashboardOverview = { { name: 'ASR 转写', count: '0 条', state: 'todo' }, { name: 'AI 整理', count: '0 条', state: 'todo' }, { name: '审核入库', count: '0 条', state: 'todo' }, - { name: '样片展示', count: '0 条', state: 'todo' } + { name: '培训复用', count: '0 条', state: 'todo' } ], pipelineSummary: { todayNew: '0 条', pending: '0 条', completed: '0 条' }, metrics: [ @@ -216,7 +215,7 @@ const baseHeroEntries = [ key: 'case', title: '案例语音整理', desc: '语音上传,AI 整理为结构化案例', - status: '样片兜底', + status: '待入库', type: 'warning', icon: Microphone, path: '/knowledge/cases' @@ -246,7 +245,7 @@ const stages = computed(() => displayDashboard.value.stages); const records = computed(() => displayDashboard.value.records); const pipelineSummary = computed(() => displayDashboard.value.pipelineSummary); -const pipelineIcons = [FolderChecked, Histogram, Cpu, Tickets, VideoCamera]; +const pipelineIcons = [FolderChecked, Histogram, Cpu, Tickets, Notebook]; const pipeline = computed(() => displayDashboard.value.pipeline.map((step, index) => ({ ...step, @@ -261,7 +260,7 @@ const riskIcon = (risk: DashboardRisk) => { if (risk.name.includes('SOP')) return Tickets; if (risk.name.includes('ASR')) return Headset; if (risk.name.includes('审核')) return Finished; - return VideoCamera; + return Notebook; }; const metricIcon = (metric: DashboardMetric) => { diff --git a/frontend/src/views/knowledge/cases.vue b/frontend/src/views/knowledge/cases.vue index e8283f45..2cdfa274 100644 --- a/frontend/src/views/knowledge/cases.vue +++ b/frontend/src/views/knowledge/cases.vue @@ -69,8 +69,8 @@
- 视频样片 -

{{ apiSampleHint || '案例转视频本期不现场调用视频生成;当前只展示案例入库结果。' }}

+ 复用状态 +

{{ stored ? apiSampleHint || '案例已入库,可用于训练复用。' : '案例入库后进入训练复用;本期不展示视频样片。' }}

@@ -161,10 +161,10 @@ const pipeline = computed(() => [ state: stored.value ? 'done' : reviewed.value ? 'active' : 'todo' }, { - name: '样片展示', - count: '0 条', - note: apiSampleHint.value || '未接视频样片', - state: 'todo' + name: '培训复用', + count: stored.value ? '1 条' : '0 条', + note: stored.value ? apiSampleHint.value || '已入库' : '未入库', + state: stored.value ? 'done' : 'todo' } ]);