fix(aihr): remove demo wording from active flows

This commit is contained in:
2026-07-09 23:07:17 +08:00
parent cf3229fdad
commit 6cec08f4cb
5 changed files with 10 additions and 10 deletions
@@ -59,7 +59,7 @@ public class AihrDashboardService {
private List<FeatureStatusResponse> heroEntries(InterviewStats interview, PracticeStats practice, KnowledgeStats knowledge, CaseStats cases, ModelStats models) { private List<FeatureStatusResponse> heroEntries(InterviewStats interview, PracticeStats practice, KnowledgeStats knowledge, CaseStats cases, ModelStats models) {
return List.of( return List.of(
new FeatureStatusResponse("interview", interview.total() > 0 ? "已有记录" : "可演示", "success", interview.total() + " 条面试结果"), new FeatureStatusResponse("interview", interview.total() > 0 ? "已有记录" : "可试用", "success", interview.total() + " 条面试结果"),
new FeatureStatusResponse("practice", practice.total() > 0 ? "已有记录" : "待跑通", practice.total() > 0 ? "success" : "warning", practice.total() + " 条训练记录"), new FeatureStatusResponse("practice", practice.total() > 0 ? "已有记录" : "待跑通", practice.total() > 0 ? "success" : "warning", practice.total() + " 条训练记录"),
new FeatureStatusResponse("case", cases.stored() > 0 ? "已入库" : models.asrEnabled() ? "可试跑" : "待配置ASR", 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() + " 个知识片段") new FeatureStatusResponse("sop", knowledge.fragments() > 0 ? "可检索" : "待入库", knowledge.fragments() > 0 ? "success" : "warning", knowledge.fragments() + " 个知识片段")
@@ -68,9 +68,9 @@ public class AihrDashboardService {
private List<StageResponse> stages(InterviewStats interview, PracticeStats practice, KnowledgeStats knowledge, CaseStats cases, OrgStats org) { private List<StageResponse> stages(InterviewStats interview, PracticeStats practice, KnowledgeStats knowledge, CaseStats cases, OrgStats org) {
return List.of( return List.of(
new StageResponse(1, "选:AI面试", "题目与评估", interview.total() > 0 ? "已留痕" : "可演示", "done", "success"), new StageResponse(1, "选:AI面试", "题目与评估", interview.total() > 0 ? "已留痕" : "可试用", "done", "success"),
new StageResponse(2, "用:岗位适配", "组织快照", org.activePeople() > 0 ? "已接入" : "待同步", org.activePeople() > 0 ? "done" : "idle", org.activePeople() > 0 ? "success" : "info"), new StageResponse(2, "用:岗位适配", "组织快照", org.activePeople() > 0 ? "已接入" : "待同步", org.activePeople() > 0 ? "done" : "idle", org.activePeople() > 0 ? "success" : "info"),
new StageResponse(3, "育:三角色对练", "实战陪练", practice.total() > 0 ? "已留痕" : "待演示", practice.total() > 0 ? "done" : "active", practice.total() > 0 ? "success" : "danger"), new StageResponse(3, "育:三角色对练", "实战陪练", practice.total() > 0 ? "已留痕" : "待跑通", practice.total() > 0 ? "done" : "active", practice.total() > 0 ? "success" : "danger"),
new StageResponse(4, "留:成长追踪", "能力画像", practice.total() > 0 ? "可生成" : "待积累", practice.total() > 0 ? "active" : "idle", practice.total() > 0 ? "warning" : "info"), new StageResponse(4, "留:成长追踪", "能力画像", practice.total() > 0 ? "可生成" : "待积累", practice.total() > 0 ? "active" : "idle", practice.total() > 0 ? "warning" : "info"),
new StageResponse(5, "案例沉淀", "知识与复用", cases.stored() > 0 || knowledge.completedDocs() > 0 ? "进行中" : "待入库", cases.stored() > 0 ? "done" : "idle", cases.stored() > 0 ? "success" : "info") new StageResponse(5, "案例沉淀", "知识与复用", cases.stored() > 0 || knowledge.completedDocs() > 0 ? "进行中" : "待入库", cases.stored() > 0 ? "done" : "idle", cases.stored() > 0 ? "success" : "info")
); );
@@ -384,7 +384,7 @@ public class AihrModelSeedService {
ArrayNode messages = body.putArray("messages"); ArrayNode messages = body.putArray("messages");
ObjectNode system = messages.addObject(); ObjectNode system = messages.addObject();
system.put("role", "system"); system.put("role", "system");
system.put("content", isBlank(systemPrompt) ? "你是物业 AI 人力资源系统助手,回答要适合 MVP 演示,简洁、可执行。" : systemPrompt); system.put("content", isBlank(systemPrompt) ? "你是物业 AI 人力资源系统助手,回答要适合物业一线使用,简洁、可执行。" : systemPrompt);
ObjectNode user = messages.addObject(); ObjectNode user = messages.addObject();
user.put("role", "user"); user.put("role", "user");
+3 -3
View File
@@ -45,7 +45,7 @@
<article class="panel risk-panel"> <article class="panel risk-panel">
<div class="panel-title"> <div class="panel-title">
<h2>演示待办与风险</h2> <h2>验收待办与风险</h2>
</div> </div>
<ul class="risk-list"> <ul class="risk-list">
<li v-for="risk in risks" :key="risk.name"> <li v-for="risk in risks" :key="risk.name">
@@ -161,7 +161,7 @@ const emptyDashboard: DashboardOverview = {
stages: [ stages: [
{ step: 1, name: '选:AI面试', desc: '题目与评估', label: '待接入', state: 'idle', tagType: 'info' }, { step: 1, name: '选:AI面试', desc: '题目与评估', label: '待接入', state: 'idle', tagType: 'info' },
{ step: 2, name: '用:岗位适配', desc: '组织快照', label: '待同步', state: 'idle', tagType: 'info' }, { step: 2, name: '用:岗位适配', desc: '组织快照', label: '待同步', state: 'idle', tagType: 'info' },
{ step: 3, name: '育:三角色对练', desc: '实战陪练', label: '待演示', state: 'active', tagType: 'danger' }, { step: 3, name: '育:三角色对练', desc: '实战陪练', label: '待跑通', state: 'active', tagType: 'danger' },
{ step: 4, name: '留:成长追踪', desc: '能力画像', label: '待积累', state: 'idle', tagType: 'info' }, { step: 4, name: '留:成长追踪', desc: '能力画像', label: '待积累', state: 'idle', tagType: 'info' },
{ step: 5, name: '案例沉淀', desc: '知识与复用', label: '待入库', state: 'idle', tagType: 'info' } { step: 5, name: '案例沉淀', desc: '知识与复用', label: '待入库', state: 'idle', tagType: 'info' }
], ],
@@ -197,7 +197,7 @@ const baseHeroEntries = [
key: 'interview', key: 'interview',
title: 'AI面试出题', title: 'AI面试出题',
desc: '基于岗位画像与 JD,一键生成面试题目', desc: '基于岗位画像与 JD,一键生成面试题目',
status: '可演示', status: '可试用',
type: 'success', type: 'success',
icon: DocumentChecked, icon: DocumentChecked,
path: '/recruit/interview' path: '/recruit/interview'
+2 -2
View File
@@ -9,7 +9,7 @@
<span class="status-pill" :class="apiPill.className">{{ apiPill.text }}</span> <span class="status-pill" :class="apiPill.className">{{ apiPill.text }}</span>
<span class="status-pill" :class="flowPill.className">{{ flowPill.text }}</span> <span class="status-pill" :class="flowPill.className">{{ flowPill.text }}</span>
<el-button @click="router.push('/index')">返回首页</el-button> <el-button @click="router.push('/index')">返回首页</el-button>
<el-button type="danger" :icon="Refresh" @click="resetFlow">重置演示</el-button> <el-button type="danger" :icon="Refresh" @click="resetFlow">重置流程</el-button>
</div> </div>
</section> </section>
@@ -555,7 +555,7 @@ const saveDraft = async () => {
ElMessage.warning('后端暂存 API 不可用,已保留本地草稿'); ElMessage.warning('后端暂存 API 不可用,已保留本地草稿');
} }
} }
ElMessage.success('草稿已暂存到本地演示状态'); ElMessage.success('草稿已暂存到当前流程');
}; };
const mapApiScoreResult = (data: InterviewFinishResponse): CandidateSeed['scoreResult'] => ({ const mapApiScoreResult = (data: InterviewFinishResponse): CandidateSeed['scoreResult'] => ({
+1 -1
View File
@@ -10,7 +10,7 @@
<span class="status-pill" :class="flowPill.className">{{ flowPill.text }}</span> <span class="status-pill" :class="flowPill.className">{{ flowPill.text }}</span>
<el-button :loading="exportingPilot" @click="exportPilotCsv">导出试点CSV</el-button> <el-button :loading="exportingPilot" @click="exportPilotCsv">导出试点CSV</el-button>
<el-button @click="router.push('/index')">返回首页</el-button> <el-button @click="router.push('/index')">返回首页</el-button>
<el-button type="danger" :icon="Refresh" @click="resetPractice">重置演示</el-button> <el-button type="danger" :icon="Refresh" @click="resetPractice">重置流程</el-button>
</div> </div>
</section> </section>