diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue index 7f5f022cf..5e6bd41bf 100755 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue @@ -86,9 +86,43 @@ {{ parseStatus(scope.row.status) }} - + @@ -167,7 +201,7 @@ import {computed, getCurrentInstance, ref, watch} from 'vue'; import {Refresh, Search} from '@element-plus/icons-vue'; import {patientInfo} from '../../store/patient.js'; -import {getCheck} from './api'; +import {getCheck, deleteRequestForm, withdrawRequestForm, getTestResult} from './api'; import {getDepartmentList} from '@/api/public.js'; const { proxy } = getCurrentInstance(); @@ -359,6 +393,91 @@ const handleViewDetail = async (row) => { detailDialogVisible.value = true; }; +/** + * 修改申请单(仅待签发状态) + */ +const handleModify = (row) => { + proxy.$modal?.msgWarning?.('修改功能需后端支持,请联系管理员'); +}; + +/** + * 删除申请单(仅待签发状态) + */ +const handleDelete = (row) => { + proxy.$confirm?.('确认删除该检查申请单吗?删除后不可恢复。', '警告', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }).then(async () => { + try { + const res = await deleteRequestForm({ requestFormId: row.requestFormId || row.id }); + if (res?.code === 200) { + proxy.$modal?.msgSuccess?.('删除成功'); + await fetchData(); + } else { + proxy.$modal?.msgError?.(res?.msg || '删除失败'); + } + } catch (e) { + console.warn('删除申请单失败(可能后端未实现):', e.message); + proxy.$modal?.msgError?.('删除失败,后端服务可能未支持此功能'); + } + }).catch(() => {}); +}; + +/** + * 撤回申请单(已签发状态撤回至待签发) + */ +const handleWithdraw = (row) => { + proxy.$confirm?.('确认撤回该检查申请单吗?撤回后状态将变为待签发。', '撤回确认', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }).then(async () => { + try { + const res = await withdrawRequestForm({ requestFormId: row.requestFormId || row.id }); + if (res?.code === 200) { + proxy.$modal?.msgSuccess?.('撤回成功'); + await fetchData(); + } else { + proxy.$modal?.msgError?.(res?.msg || '撤回失败'); + } + } catch (e) { + console.warn('撤回申请单失败(可能后端未实现):', e.message); + proxy.$modal?.msgError?.('撤回失败,后端服务可能未支持此功能'); + } + }).catch(() => {}); +}; + +/** + * 打印申请单 + */ +const handlePrint = (row) => { + // 使用浏览器原生打印功能 + window.print(); +}; + +/** + * 查看检查报告 + */ +const handleViewReport = async (row) => { + try { + const res = await getTestResult({ encounterId: row.encounterId || patientInfo.value?.encounterId }); + if (res?.code === 200 && res.data) { + const reportUrl = Array.isArray(res.data) ? res.data[0]?.reportUrl : res.data?.reportUrl; + if (reportUrl) { + window.open(reportUrl, '_blank'); + } else { + proxy.$modal?.msgWarning?.('暂无检查报告'); + } + } else { + proxy.$modal?.msgWarning?.('暂无检查报告'); + } + } catch (e) { + console.warn('查看检查报告失败:', e.message); + proxy.$modal?.msgError?.('获取检查报告失败'); + } +}; + watch( () => patientInfo.value?.encounterId, (val) => {