diff --git a/frontend/src/renderer/src/assets/archive/close2.png b/frontend/src/renderer/src/assets/archive/close2.png new file mode 100644 index 00000000..87d3f8ea Binary files /dev/null and b/frontend/src/renderer/src/assets/archive/close2.png differ diff --git a/frontend/src/renderer/src/assets/archive/leftbutton.png b/frontend/src/renderer/src/assets/archive/leftbutton.png new file mode 100644 index 00000000..20c10abf Binary files /dev/null and b/frontend/src/renderer/src/assets/archive/leftbutton.png differ diff --git a/frontend/src/renderer/src/assets/archive/pitch.png b/frontend/src/renderer/src/assets/archive/pitch.png new file mode 100644 index 00000000..3d1a415c Binary files /dev/null and b/frontend/src/renderer/src/assets/archive/pitch.png differ diff --git a/frontend/src/renderer/src/assets/archive/rightbutton.png b/frontend/src/renderer/src/assets/archive/rightbutton.png new file mode 100644 index 00000000..2fb8351d Binary files /dev/null and b/frontend/src/renderer/src/assets/archive/rightbutton.png differ diff --git a/frontend/src/renderer/src/assets/archive/roll.png b/frontend/src/renderer/src/assets/archive/roll.png new file mode 100644 index 00000000..5e1ad141 Binary files /dev/null and b/frontend/src/renderer/src/assets/archive/roll.png differ diff --git a/frontend/src/renderer/src/assets/archive/selectbottom.png b/frontend/src/renderer/src/assets/archive/selectbottom.png new file mode 100644 index 00000000..153eeb6a Binary files /dev/null and b/frontend/src/renderer/src/assets/archive/selectbottom.png differ diff --git a/frontend/src/renderer/src/assets/archive/yaw.png b/frontend/src/renderer/src/assets/archive/yaw.png new file mode 100644 index 00000000..0911eaf1 Binary files /dev/null and b/frontend/src/renderer/src/assets/archive/yaw.png differ diff --git a/frontend/src/renderer/src/assets/test.jpg b/frontend/src/renderer/src/assets/test.jpg new file mode 100644 index 00000000..d33f84e6 Binary files /dev/null and b/frontend/src/renderer/src/assets/test.jpg differ diff --git a/frontend/src/renderer/src/assets/test2.png b/frontend/src/renderer/src/assets/test2.png new file mode 100644 index 00000000..69aa05c0 Binary files /dev/null and b/frontend/src/renderer/src/assets/test2.png differ diff --git a/frontend/src/renderer/src/assets/test3.jpg b/frontend/src/renderer/src/assets/test3.jpg new file mode 100644 index 00000000..cda8030e Binary files /dev/null and b/frontend/src/renderer/src/assets/test3.jpg differ diff --git a/frontend/src/renderer/src/assets/test5.png b/frontend/src/renderer/src/assets/test5.png new file mode 100644 index 00000000..b86257a4 Binary files /dev/null and b/frontend/src/renderer/src/assets/test5.png differ diff --git a/frontend/src/renderer/src/views/GenerateReport.vue b/frontend/src/renderer/src/views/GenerateReport.vue new file mode 100644 index 00000000..a80a39f6 --- /dev/null +++ b/frontend/src/renderer/src/views/GenerateReport.vue @@ -0,0 +1,569 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/renderer/src/views/Header.vue b/frontend/src/renderer/src/views/Header.vue index 8b39bb76..1dc7c581 100644 --- a/frontend/src/renderer/src/views/Header.vue +++ b/frontend/src/renderer/src/views/Header.vue @@ -281,13 +281,14 @@ } .badge-invalid { text-align: center; - background-color: linear-gradient(135deg, rgba(69, 91, 123, 1) 0%, rgba(69, 91, 123, 1) 0%, rgba(55, 65, 81, 1) 100%, rgba(55, 65, 81, 1) 100%); + background: linear-gradient(135deg, rgba(69, 91, 123, 1) 0%, rgba(69, 91, 123, 1) 0%, rgba(55, 65, 81, 1) 100%, rgba(55, 65, 81, 1) 100%); font-weight: 400; font-style: normal; color: rgb(255, 255, 255); + font-size:14px; text-align: center; } - .badge-trial { background-color: rgba(67, 67, 67, 1); color: #949494; } + .badge-trial { background: rgba(67, 67, 67, 1); color: #949494; } .badge-valid { text-align: center; diff --git a/frontend/src/renderer/src/views/ImageDetails.vue b/frontend/src/renderer/src/views/ImageDetails.vue new file mode 100644 index 00000000..a73b0abf --- /dev/null +++ b/frontend/src/renderer/src/views/ImageDetails.vue @@ -0,0 +1,188 @@ + + + + + \ 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 6e742731..9732c89d 100644 --- a/frontend/src/renderer/src/views/PatientProfile.vue +++ b/frontend/src/renderer/src/views/PatientProfile.vue @@ -107,8 +107,9 @@ font-style: normal; font-size: 14px; color: #14AAFF; - line-height: 18px; - cursor: pointer;">生成报告 + line-height: 18px; + cursor: pointer;" + @click.stop="generateReport(scope.row,scope.$index)">生成报告
- +
-
{{ item.name }}
- 2025-05-12 12:12:12 +
{{ item.order }}
+ {{ item.timestamp }}
@@ -218,7 +219,6 @@
- {{ BACKEND_URL+'/' + item.screen_video.replace(/\\/g, '/') }} @@ -226,8 +226,8 @@
-
{{ item.name }}
- 2025-05-12 12:12:12 +
{{ item.order }}
+ {{ item.timestamp }}
@@ -275,12 +275,13 @@
- + @@ -290,6 +291,8 @@ import { useRouter, useRoute } from 'vue-router' 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' + const formatDate = (date) => { return new Date(date).toLocaleDateString('zh-CN') } @@ -308,6 +311,8 @@ const props = defineProps({ default: false } }) +const detectionId = ref('') // 列表检测ID +const isGenerateReport = ref(false) // 是否生成报告 const archiveType =ref(false) const profileInfo = ref({}) // 患者信息 const selectedRecord = ref({}) @@ -325,12 +330,15 @@ const tempVideoList = ref([]) // tempImgList.value = [...imageList.value] const useImgList = ref([])// 图片 const useVideoList = ref([])// 视频 -// useImgList.value =[...tempImgList.value.slice(0, 4)] // 图片 -// useVideoList.value =[...tempImgList.value.slice(0, 4)] // 视频 - const selectedData = ref([]) // 列表选中的数据 - +function getNo(order) { + if(order<10){ + return '0'+order + }else{ + return order + } +} const calculateAge = (birthDate) => { // 获取年龄 if (!birthDate) return '—' const today = new Date() @@ -388,7 +396,6 @@ const sessionsById = async (session_id) => { try { imageList.value = [] videoList.value = [] - tempImgList.value = [] tempVideoList.value = [] useImgList.value = [] @@ -398,6 +405,12 @@ const sessionsById = async (session_id) => { // 导出报告逻辑 const response = await historyAPI.sessionsById(session_id) if (response.success) { + response.data.data.forEach((element,index) => { + element.order ='D-'+ (getNo(index + 1)) + }); + response.data.videos.forEach((element,index) => { + element.order ='D-'+ (getNo(index + 1)) + }); imageList.value = response.data.data videoList.value = response.data.videos @@ -408,7 +421,7 @@ const sessionsById = async (session_id) => { }else{ useImgList.value =[...tempImgList.value] } - if(useVideoList.value.length>4){ + if(tempVideoList.value.length>4){ useVideoList.value =[...tempVideoList.value.slice(0, 4)] }else{ useVideoList.value =[...tempVideoList.value] @@ -587,6 +600,15 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息 function viewPatientProfile() { // 临时方法 } + +function generateReport(row,index){ // 打开生成报告页面 + // profileInfo.value = row + detectionId.value = row.id + isGenerateReport.value = true +} +function closeGenerateReport(){ // 关闭生成报告页面 + isGenerateReport.value = false +} \ No newline at end of file