From f1a975b5f6848a6ba4fa07d9d361c005aaebe84e Mon Sep 17 00:00:00 2001 From: let5sne Date: Thu, 9 Jul 2026 16:13:29 +0800 Subject: [PATCH] fix(frontend): play review audio in calibration page --- frontend/src/api/aihr/mobile-admin.ts | 15 +++++- frontend/src/views/train/reviews.vue | 70 ++++++++++++++++++++++++++- 2 files changed, 81 insertions(+), 4 deletions(-) diff --git a/frontend/src/api/aihr/mobile-admin.ts b/frontend/src/api/aihr/mobile-admin.ts index aca3f0ac..4537b654 100644 --- a/frontend/src/api/aihr/mobile-admin.ts +++ b/frontend/src/api/aihr/mobile-admin.ts @@ -1,4 +1,5 @@ -import request from '@/utils/request'; +import axios from 'axios'; +import request, { globalHeaders } from '@/utils/request'; type ApiResult = { code: number; @@ -24,7 +25,7 @@ export type ReviewDetail = ReviewRecord & { reviewAdvice: string; incentivePoint: number; scoreItems: Array<{ label: string; value: number | string; note: string }>; - dialogue: Array<{ role: string; label: string; text: string; audioUrl?: 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 }>; }; @@ -175,6 +176,16 @@ export function getPracticeReview(id: number): Promise> }); } +export async function getPracticeAudioBlobUrl(ossId: number | string): Promise { + const response = await axios({ + method: 'get', + url: `${import.meta.env.VITE_APP_BASE_API}/api/aihr/mobile/oss/${ossId}`, + responseType: 'blob', + headers: globalHeaders() + }); + return URL.createObjectURL(response.data); +} + export function markPracticeReviewed(id: number, data: ReviewAdviceRequest): Promise> { return request({ url: `/api/aihr/mobile/practice/reviews/${id}/reviewed`, diff --git a/frontend/src/views/train/reviews.vue b/frontend/src/views/train/reviews.vue index 4e3cc94c..3a3fb6d1 100644 --- a/frontend/src/views/train/reviews.vue +++ b/frontend/src/views/train/reviews.vue @@ -59,8 +59,18 @@
- {{ turn.label }} +
+ {{ turn.label }} + 有录音 +

{{ turn.text }}

+
+
@@ -105,9 +115,10 @@