diff --git a/frontend/src/renderer/src/services/api.js b/frontend/src/renderer/src/services/api.js index 89944743..f29d76b3 100644 --- a/frontend/src/renderer/src/services/api.js +++ b/frontend/src/renderer/src/services/api.js @@ -638,6 +638,11 @@ export const historyAPI = { detectionDelById(id) { return api.delete(`/api/detection/data/${id}`, {}) }, + // 删除视频记录 + VideoDelById(id) { + return api.delete(`/api/detection/video/${id}`, {}) + }, + // 删除检测会话及其相关的检测数据 sessionsDelById(id) { return api.delete(`api/detection/sessions/${id}`, {}) @@ -647,6 +652,12 @@ export const historyAPI = { return api.get(`/api/history/sessions/${id}`) }, + detailsByIds(ids) { + return api.get(`/api/detection/data/details?ids=${ids}`) + }, + + + //获取最新的检测数据 detectionLatestList(id) { return api.get(`/api/detection/data/detail/${id}/latest`) diff --git a/frontend/src/renderer/src/views/ImageDetailsCompare.vue b/frontend/src/renderer/src/views/ImageDetailsCompare.vue new file mode 100644 index 00000000..31576300 --- /dev/null +++ b/frontend/src/renderer/src/views/ImageDetailsCompare.vue @@ -0,0 +1,220 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/renderer/src/views/PatientProfile.vue b/frontend/src/renderer/src/views/PatientProfile.vue index 9732c89d..e885a74c 100644 --- a/frontend/src/renderer/src/views/PatientProfile.vue +++ b/frontend/src/renderer/src/views/PatientProfile.vue @@ -151,14 +151,14 @@ + @click="viewCompareImg"> 查看 + @click="delImgClick('img')"> 删除 @@ -204,7 +204,7 @@ + @click="delVideoClick"> 删除 @@ -282,6 +282,25 @@ + + + + +
+
+
+
提示
+ +
+
{{ tipValue }}
+
+
取消
+ 确定 + +
+
+
@@ -292,6 +311,7 @@ import { ElMessage, ElMessageBox } from 'element-plus' import { patientAPI, detectionAPI,historyAPI,getBackendUrl } from '@/services/api.js' import { useAuthStore } from '@/stores/index.js' import GenerateReport from '@/views/GenerateReport.vue' +import ImageDetailsCompare from '@/views/ImageDetailsCompare.vue' const formatDate = (date) => { return new Date(date).toLocaleDateString('zh-CN') @@ -311,12 +331,18 @@ const props = defineProps({ default: false } }) +const isTip = ref(false) // 退出提示 +const tipValue = ref('') +const delType = ref('') const detectionId = ref('') // 列表检测ID const isGenerateReport = ref(false) // 是否生成报告 const archiveType =ref(false) const profileInfo = ref({}) // 患者信息 const selectedRecord = ref({}) const recordData =ref([]) +const isImageDetailsCompare = ref(false) // 是否显示对比图片详情 + +const ImageDetailsList = ref([]) // 图片详情列表 const checkboxGroup = ref([]) // 图片列表选中的数据 @@ -364,10 +390,11 @@ const handleSubmit = (item) => { } } }; - +const sessionsId = ref('') function selectRecord(data){ // 列表点击单选 selectedRecord.value = data sessionsById(data.id) + sessionsId.value = data.id } const handleSelectionChange = (val) => { // 列表多选 @@ -439,6 +466,20 @@ onMounted(() => { sessionsInit() }) +const deleteId = ref('') +function sessionsDelById(id) { + let ids = id.join(',') + historyAPI.sessionsDelById(ids).then((response)=>{ + if(response.success){ + ElMessage.success({ + message: response.message, + duration: 5000 + }); + sessionsInit() + } + }).catch(()=>{ + }) +} function deleteClick(row){ // 检查状态是否为 checking @@ -449,27 +490,10 @@ function deleteClick(row){ // }); // return; // } - - ElMessageBox.confirm( - '确定义删除此条数据?', - '提示', - { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - } - ).then(() => { - historyAPI.sessionsDelById(row.id).then((response)=>{ - if(response.success){ - ElMessage.success({ - message: response.message, - duration: 5000 - }); - sessionsInit() - } - }).catch(()=>{ - }) - }) + deleteId.value = row.id + delType.value = 'listone' + tipValue.value = '确定删除此检测记录吗?' + isTip.value = true } function fileClick(row){ ElMessage.success({ @@ -609,6 +633,88 @@ function generateReport(row,index){ // 打开生成报告页面 function closeGenerateReport(){ // 关闭生成报告页面 isGenerateReport.value = false } + +function viewCompareImg(){ + if(checkboxGroup.length != 2){ + return + } + ImageDetailsList.value = [] + for(let i=0;i{ + if(response.success){ + ElMessage.success({ + message: response.message, + duration: 5000 + }); + sessionsById(sessionsId.value) + } + }).catch(()=>{ + }) +} + +function VideoDelById(){ + +let ids = checkboxVideo.value.join(',') +historyAPI.VideoDelById(ids).then((response)=>{ + if(response.success){ + ElMessage.success({ + message: response.message, + duration: 5000 + }); + sessionsById(sessionsId.value) + } +}).catch(()=>{ +}) +} + +