diff --git a/src/views/analysis/HOLTER.vue b/src/views/analysis/HOLTER.vue index 97a025d..180161d 100644 --- a/src/views/analysis/HOLTER.vue +++ b/src/views/analysis/HOLTER.vue @@ -1035,9 +1035,9 @@ const getList = async () => { gender: queryParams.gender || undefined, examid: queryParams.examid || undefined, orgname: queryParams.orgname || undefined, - orgid: Profilevo.value.orgid || undefined + orgid: undefined as any } - + params.orgid = Profilevo.value.orgid // 如果有日期范围,添加到参数中 if (queryParams.examDate && queryParams.examDate.length === 2) { params['wearstarttimeBegin'] = queryParams.examDate[0] @@ -1070,7 +1070,49 @@ const resetQuery = () => { /** 分析 */ const handleAnalysis = async (row) => { try { - ElMessage.success('正在启动Holter分析程序...') + // 验证佩戴时间是否已设置 + if (!row.wearstarttime) { + ElMessage.warning('请先设置佩戴开始时间后再进行分析') + return + } + + // 构建请求参数 + const params = { + examId: row.examid, + patientName: encodeURIComponent(row.name), // URL编码患者姓名 + gender: row.gender === '1' ? '男' : row.gender === '2' ? '女' : '未知', + age: row.age?.toString() || '', + examTime: row.wearstarttime ? formatWearTime(row.wearstarttime) : '', + hospitalName: row.orgname || '', + department: '内科' // 默认值,可以根据实际需求调整 + } + + // 调用分析接口 + const response = await fetch('http://localhost:48082/api/analyze', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(params) + }) + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`) + } + + const result = await response.json() + + // 处理返回结果 + if (result.message === '分析文件不存在') { + ElMessage.warning('分析文件不存在,请先导入数据文件') + return + } else if (result.message === '分析程序已启动') { + ElMessage.success('分析程序已启动,正在进行分析...') + // 这里可以添加后续的处理逻辑,比如轮询分析状态等 + } else { + // 其他情况,显示返回的消息 + ElMessage.success(result.message || '分析请求已发送') + } } catch (error) { console.error('启动分析程序失败:', error) ElMessage.error('启动分析程序失败,请检查程序是否正确安装') @@ -1475,27 +1517,24 @@ const handleDownload = async (row) => { clearInterval(progressInterval) // 判断返回结果 - if (!result.success) { + if (result.success) { if (result.message === '文件不存在于服务器') { ElMessage.error('文件不存在于服务器') - return } else { - ElMessage.error(result.message || '下载失败') - return + // 接口返回成功,进度条变满 + row.downloadProgress = 100 + + // 等待一小段时间让用户看到100% + await new Promise((resolve) => { + setTimeout(() => { + resolve(true) + }, 500) + }) + ElMessage.success('下载并解压成功') } + } else { + ElMessage.error(result.message || '下载失败') } - - // 接口返回成功,进度条变满 - row.downloadProgress = 100 - - // 等待一小段时间让用户看到100% - await new Promise((resolve) => { - setTimeout(() => { - resolve(true) - }, 500) - }) - - ElMessage.success('下载并解压成功') } catch (error) { clearInterval(progressInterval) console.error('下载失败:', error) @@ -1563,8 +1602,8 @@ const handleSelectPatients = () => { /** 患者选择确认 */ const handlePatientConfirm = (patients: any[], type: string) => { - console.log('选中的患者:', patients) - console.log('操作类型:', type) + // 刷新列表数据 + getList() } /** 患者选择取消 */ @@ -1624,6 +1663,7 @@ const cancelWearTimeChange = ( /** 初始化 */ onMounted(async () => { Profilevo.value = await getUserProfile() + await fetchDrives() getList() })