feat(aihr): complete case learning review loop

This commit is contained in:
2026-07-14 23:41:59 +08:00
parent 4fc394e993
commit 0bfaee7d22
16 changed files with 296 additions and 20 deletions
+35
View File
@@ -58,6 +58,13 @@
<text class="summary-label">{{ item.label }}</text>
<text class="summary-text">{{ item.text }}</text>
</view>
<view v-if="organizeResult.learningPoints?.length" class="case-learning-block">
<text class="detail-label">学习点</text>
<view v-for="point in organizeResult.learningPoints" :key="point" class="learning-point">
<text class="learning-bullet">•</text>
<text class="case-note">{{ point }}</text>
</view>
</view>
<text class="case-note">{{ organizeResult.aiSummary }}</text>
</view>
@@ -109,6 +116,17 @@
<text class="case-content">{{ caseDetail.transcript || '暂无转写内容' }}</text>
<text class="detail-label">案例摘要</text>
<text class="case-note">{{ caseDetail.summary || '暂无案例摘要' }}</text>
<view v-if="caseDetail.learningPoints?.length" class="case-learning-block">
<text class="detail-label">学习点</text>
<view v-for="point in caseDetail.learningPoints" :key="point" class="learning-point">
<text class="learning-bullet">•</text>
<text class="case-note">{{ point }}</text>
</view>
</view>
<view v-if="caseDetail.supervisorComment" class="case-learning-block">
<text class="detail-label">主管点评</text>
<text class="case-note">{{ caseDetail.supervisorComment }}</text>
</view>
<view v-if="caseDetail.mediaUrl" class="case-media-block">
<text class="detail-label">原始音频</text>
<audio class="case-audio" :src="caseDetail.mediaUrl" controls />
@@ -401,6 +419,23 @@ onShow(() => {
gap: 8px;
}
.case-learning-block {
display: flex;
flex-direction: column;
gap: 6px;
}
.learning-point {
display: flex;
align-items: flex-start;
gap: 6px;
}
.learning-bullet {
color: #c0392b;
line-height: 1.6;
}
.case-audio {
width: 100%;
}
+3
View File
@@ -404,6 +404,8 @@ export interface CaseDetailResponse {
summary: string;
mediaUrl?: string;
mediaOssId?: number;
learningPoints: string[];
supervisorComment: string;
}
export interface CaseUploadResponse {
@@ -420,6 +422,7 @@ export interface CaseOrganizeResponse {
caseId: string;
summary: CaseSummaryItem[];
tags: CaseTag[];
learningPoints: string[];
aiSummary: string;
source: string;
}