新增功能

This commit is contained in:
Your Name
2026-03-24 16:32:56 +08:00
parent 250d173c2f
commit 9160c36735
248 changed files with 3063 additions and 250 deletions
+22
View File
@@ -26,6 +26,28 @@ export async function uploadImageBlob(file: Blob, filename = 'screenshot.jpg') {
return json.data as { id: number; uri: string; url: string }
}
/** 本地上传视频(管理端 /upload/video),返回 data 含 uri 完整访问地址、url 相对路径 */
export async function uploadVideoBlob(file: Blob, filename = 'recording.webm') {
const appStore = useAppStore()
const formData = new FormData()
formData.append('file', file, filename)
formData.append('cid', '0')
const url = `${config.baseUrl}${config.urlPrefix}/upload/video`
const res = await fetch(url, {
method: 'POST',
headers: {
token: getToken() || '',
version: appStore.config.version || ''
},
body: formData
})
const json = await res.json()
if (json.code !== RequestCodeEnum.SUCCESS) {
throw new Error(json.msg || '上传失败')
}
return json.data as { id: number; uri: string; url: string }
}
export function fileCateAdd(params: Record<string, any>) {
return request.post({ url: '/file/addCate', params })
}
+28 -4
View File
@@ -89,9 +89,12 @@ export function getRecordsByPatient(params: any) {
// ========== 音视频通话 ==========
// 获取通话签名
// 获取通话签名(忽略取消令牌,避免 open + 会话切换 watch 重复请求互斥取消)
export function getCallSignature(params: any) {
return request.post({ url: '/tcm.diagnosis/getCallSignature', params })
return request.post(
{ url: '/tcm.diagnosis/getCallSignature', params },
{ ignoreCancelToken: true, isOpenRetry: false }
)
}
// 发起通话
@@ -99,9 +102,12 @@ export function startCall(params: any) {
return request.post({ url: '/tcm.diagnosis/startCall', params })
}
// 结束通话
// 结束通话(忽略取消令牌:idle / afterCalling 可能并发触发相同请求体)
export function endCall(params: any) {
return request.post({ url: '/tcm.diagnosis/endCall', params })
return request.post(
{ url: '/tcm.diagnosis/endCall', params },
{ ignoreCancelToken: true, isOpenRetry: false }
)
}
// 获取通话记录
@@ -114,6 +120,24 @@ export function bindCallRoom(params: { diagnosis_id: number; room_id: string })
return request.post({ url: '/tcm.diagnosis/bindCallRoom', params })
}
/** 医生接通并绑定房间后:发起腾讯云云端混流录制 */
export function startCloudRecording(params: { diagnosis_id: number }) {
return request.post({ url: '/tcm.diagnosis/startCloudRecording', params })
}
/** 本地录制完成后,将已上传视频的访问地址写入通话记录(忽略取消令牌,避免与其它 POST 互斥取消) */
export function attachLocalCallRecording(params: { diagnosis_id: number; file_url: string }) {
return request.post(
{ url: '/tcm.diagnosis/attachLocalCallRecording', params },
{ ignoreCancelToken: true, isOpenRetry: false }
)
}
/** 医助旁观当前进行中的视频通话(进房参数,Web TRTC 只拉流) */
export function getAssistantWatchCallParams(params: { diagnosis_id: number }) {
return request.get({ url: '/tcm.diagnosis/watchCall', params })
}
// ========== 小程序分享 ==========
// 生成小程序码