按照需求修改(首页布局,足底,视频等)

This commit is contained in:
limengnan 2026-01-22 18:18:29 +08:00
parent 599d1f6807
commit e95c771171
13 changed files with 364 additions and 134 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -1,6 +1,7 @@
import { createApp } from 'vue'; import { createApp } from 'vue';
import { createPinia } from 'pinia'; import { createPinia } from 'pinia';
import ElementPlus from 'element-plus'; import ElementPlus from 'element-plus';
import zhCn from 'element-plus/es/locale/lang/zh-cn';
import 'element-plus/dist/index.css'; import 'element-plus/dist/index.css';
import * as ElementPlusIconsVue from '@element-plus/icons-vue'; import * as ElementPlusIconsVue from '@element-plus/icons-vue';
import App from './App.vue'; import App from './App.vue';
@ -17,6 +18,8 @@ for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.use(pinia); app.use(pinia);
app.use(router); app.use(router);
app.use(ElementPlus); app.use(ElementPlus, {
locale: zhCn
});
app.mount('#app'); app.mount('#app');

View File

@ -136,7 +136,7 @@
<div class="AloneReportComparison-border1">{{ leftInfo.diagnosis_info }}</div> <div class="AloneReportComparison-border1">{{ leftInfo.diagnosis_info }}</div>
<div class="AloneReportComparison-title2">处理</div> <div class="AloneReportComparison-title2">处理</div>
<div class="AloneReportComparison-border2">{{ leftInfo.treatment_info }}</div> <div class="AloneReportComparison-border2">{{ leftInfo.treatment_info }}</div>
<div class="AloneReportComparison-title2">备注</div> <div class="AloneReportComparison-title2">建议</div>
<div class="AloneReportComparison-border3">{{ leftInfo.suggestion_info }}</div> <div class="AloneReportComparison-border3">{{ leftInfo.suggestion_info }}</div>
</div> </div>
<div class="AloneReportComparison-container-rightbox"> <div class="AloneReportComparison-container-rightbox">
@ -225,7 +225,7 @@
<div class="AloneReportComparison-border1">{{ rightInfo.diagnosis_info }}</div> <div class="AloneReportComparison-border1">{{ rightInfo.diagnosis_info }}</div>
<div class="AloneReportComparison-title2">处理</div> <div class="AloneReportComparison-title2">处理</div>
<div class="AloneReportComparison-border2">{{ rightInfo.treatment_info }}</div> <div class="AloneReportComparison-border2">{{ rightInfo.treatment_info }}</div>
<div class="AloneReportComparison-title2">备注</div> <div class="AloneReportComparison-title2">建议</div>
<div class="AloneReportComparison-border3">{{ rightInfo.suggestion_info }}</div> <div class="AloneReportComparison-border3">{{ rightInfo.suggestion_info }}</div>
</div> </div>

View File

@ -445,6 +445,7 @@ const loadPatients = async (type) => {
}) })
if(type === '02' && patients.value[rowIndex.value] != null){ if(type === '02' && patients.value[rowIndex.value] != null){
tableRef.value?.setCurrentRow(patients.value[rowIndex.value], true); // true tableRef.value?.setCurrentRow(patients.value[rowIndex.value], true); // true
selectedPatient.value = patients.value[rowIndex.value]
} }
if(type === '01' && patients.value[rowIndex.value] != null){ if(type === '01' && patients.value[rowIndex.value] != null){
rowIndex.value = 0 rowIndex.value = 0
@ -463,7 +464,6 @@ const loadPatients = async (type) => {
const lastcheck = mh && mh.lastcheck_time ? mh.lastcheck_time : '' const lastcheck = mh && mh.lastcheck_time ? mh.lastcheck_time : ''
return { ...p, doctor, status, updated_at: lastcheck || p.updated_at } return { ...p, doctor, status, updated_at: lastcheck || p.updated_at }
}) })
debugger
if(type === '01' && patients.value[rowIndex.value] != null){ if(type === '01' && patients.value[rowIndex.value] != null){
rowIndex.value = 0 rowIndex.value = 0
tableRef.value?.setCurrentRow(patients.value[0], true); // true tableRef.value?.setCurrentRow(patients.value[0], true); // true
@ -473,6 +473,7 @@ const loadPatients = async (type) => {
if(type === '02' && patients.value[rowIndex.value] != null){ if(type === '02' && patients.value[rowIndex.value] != null){
tableRef.value?.setCurrentRow(patients.value[rowIndex.value], true); // true tableRef.value?.setCurrentRow(patients.value[rowIndex.value], true); // true
selectedPatient.value = patients.value[rowIndex.value]
} }
patienttotal.value =response.total patienttotal.value =response.total
} else { } else {

View File

@ -3,7 +3,6 @@
<Header /> <Header />
<div class="displaycontainer"> <div class="displaycontainer">
<div class="displayleft" style="width: 550px;"> <div class="displayleft" style="width: 550px;">
<img src="@/assets/detection/progress.png" alt="" style=" margin-left:10px;margin-right:15px"> <img src="@/assets/detection/progress.png" alt="" style=" margin-left:10px;margin-right:15px">
<div style=" <div style="
font-size: 18px; font-size: 18px;
@ -48,7 +47,7 @@
</div> </div>
</div> </div>
</div> </div>
<div style="width:100%;height: calc(100% - 131px);" ref="contenGridRef"> <div style="width:100%;height: calc(100% - 115px);" ref="contenGridRef">
<!-- 主内容区域 --> <!-- 主内容区域 -->
<el-row :gutter="15" style="padding: 10px;padding-top:0" > <el-row :gutter="15" style="padding: 10px;padding-top:0" >
<el-col :span="6" style="flex: 0 0 24%;height: calc(100% - 0px);"> <el-col :span="6" style="flex: 0 0 24%;height: calc(100% - 0px);">
@ -190,74 +189,93 @@
</div> </div>
</div> </div>
<div class="body-footbottom-box" ref="pressureRef"> <div class="body-footbottom-box" ref="pressureRef">
<div class="body-footbottom-left"> <div style="width: 100%;height: calc(100% - 57px);display: flex; align-items: center;justify-content: center;">
<div style="width:100%;height: 50px;"></div> <div class="body-footbottom-left">
<div class="body-footbottom-leftbottom"> <div style="width:100%;height: 50px;"></div>
<div class="body-footbottom-leftbox"> <div class="body-footbottom-leftbottom">
<span class="currencytext1">左前足</span> <div class="body-footbottom-leftbox">
<span class="currencytext2"> <span class="currencytext1">左前足</span>
{{ footPressure.left_front }}% <span class="currencytext2">
</span> {{ footPressure.left_front }}%
</span>
</div>
<div class="body-footbottom-leftbox">
<span class="currencytext1">左后足</span>
<span class="currencytext2">
{{ footPressure.left_rear }}%
</span>
</div>
<!-- <div class="body-footbottom-leftbox">
<span class="currencytext1">左足总压力</span>
<span class="currencytext2">
{{ footPressure.left_total}}%
</span>
</div> -->
</div> </div>
<div class="body-footbottom-leftbox"> </div>
<span class="currencytext1">左后足</span> <div class="body-footbottom-center">
<span class="currencytext2"> <div class="body-footbottom-topbox">
{{ footPressure.left_rear }}% <div class="currencytext1" style="font-size:22px;text-align:center;">左足</div>
</span> <div class="currencytext1" style="font-size:22px;text-align:center;">右足</div>
</div> </div>
<div class="body-footbottom-leftbox"> <div style="position: relative;width: 100%;height:calc(100% - 60px) ;"
<span class="currencytext1">左足总压力</span> :class="(pressureStatus === '已连接' && footImgSrc)?'':'noImageSvg-bg'">
<span class="currencytext2">
{{ footPressure.left_total}}% <img v-if="(pressureStatus === '已连接' && footImgSrc)" :src="footImgSrc" style="width: 100%;height: 100%;" alt="">
</span> <div v-else style="width:90px;height:60px">
<img :src="noImageSvg" style="margin-left: 15px;">
<div style="font-size:14px;color:#ffffff99;text-align: center;">连接已断开</div>
</div>
<div class="xline"></div>
<div class="yline"></div>
<!-- <div v-if="(pressureStatus === '已连接' && footImgSrc)" class="xline"></div>
<div v-if="(pressureStatus === '已连接' && footImgSrc)" class="yline"></div> -->
</div>
</div>
<div class="body-footbottom-left">
<div style="width:100%;height: 50px;"></div>
<div class="body-footbottom-leftbottom">
<div class="body-footbottom-leftbox">
<span class="currencytext1">右前足</span>
<span class="currencytext2">
{{ footPressure.right_front }}%
</span>
</div>
<div class="body-footbottom-leftbox">
<span class="currencytext1">右后足</span>
<span class="currencytext2">
{{ footPressure.right_rear }}%
</span>
</div>
<!-- <div class="body-footbottom-leftbox">
<span class="currencytext1">右足总压力</span>
<span class="currencytext2">
{{ footPressure.right_total}}%
</span>
</div> -->
</div> </div>
</div> </div>
</div> </div>
<div class="body-footbottom-center"> <div style="display: flex;justify-content: center; width: 100%;">
<div class="body-footbottom-topbox"> <div class="body-footbottom-leftbox" style="width:calc(22% + 2px)">
<div class="currencytext1" style="font-size:22px;text-align:center;">左足</div> <span class="currencytext1">左足总压力</span>
<div class="currencytext1" style="font-size:22px;text-align:center;">右足</div> <span class="currencytext2">
{{ footPressure.left_total}}%
</span>
</div> </div>
<div style="position: relative;width: 100%;height:calc(100% - 60px) ;" <div class="body-footbottom-leftbox" style="width:calc(22% + 2px);margin-left: 20px">
:class="(pressureStatus === '已连接' && footImgSrc)?'':'noImageSvg-bg'"> <span class="currencytext1">右足总压力</span>
<span class="currencytext2">
<img v-if="(pressureStatus === '已连接' && footImgSrc)" :src="footImgSrc" style="width: 100%;height: 100%;" alt=""> {{ footPressure.right_total}}%
<div v-else style="width:90px;height:60px"> </span>
<img :src="noImageSvg" style="margin-left: 15px;">
<div style="font-size:14px;color:#ffffff99;text-align: center;">连接已断开</div>
</div>
<div v-if="(pressureStatus === '已连接' && footImgSrc)" class="xline"></div>
<div v-if="(pressureStatus === '已连接' && footImgSrc)" class="yline"></div>
</div>
</div>
<div class="body-footbottom-left">
<div style="width:100%;height: 50px;"></div>
<div class="body-footbottom-leftbottom">
<div class="body-footbottom-leftbox">
<span class="currencytext1">右前足</span>
<span class="currencytext2">
{{ footPressure.right_front }}%
</span>
</div>
<div class="body-footbottom-leftbox">
<span class="currencytext1">右后足</span>
<span class="currencytext2">
{{ footPressure.right_rear }}%
</span>
</div>
<div class="body-footbottom-leftbox">
<span class="currencytext1">右足总压力</span>
<span class="currencytext2">
{{ footPressure.right_total}}%
</span>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col v-if="camera1Status === '已连接' && camera2Status === '已连接'" <el-col v-if=" false || camera1Status === '已连接' && camera2Status === '已连接'"
:span="6" style="flex: 0 0 24%;height: calc(100% - 0px); position: relative;"> :span="6" style="flex: 0 0 24%;height: calc(100% - 0px); position: relative;">
<div class="body-userinfo-box" :class="isExpand == true?'body-userinfo-expandbox':''"> <div class="body-userinfo-box" :class="isExpand == true?'body-userinfo-expandbox':''">
<div class="body-title-display"> <div class="body-title-display">
@ -427,9 +445,9 @@
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col v-if="camera1Status === '已连接' || camera2Status === '已连接'" <el-col v-if="true || camera1Status === '已连接' || camera2Status === '已连接'"
:span="6" style="flex: 0 0 24%;height: calc(100% - 0px);"> :span="6" style="flex: 0 0 24%;height: calc(100% - 0px);position: relative;">
<div class="body-userinfo-box1"> <div class="body-userinfo-box1" :class="isExpand == true?'body-userinfo-expandbox':''">
<div class="body-title-display"> <div class="body-title-display">
<div class="body-son-display"> <div class="body-son-display">
<img src="@/assets/detection/title4.png" alt="" style="margin-right: 8px;"> <img src="@/assets/detection/title4.png" alt="" style="margin-right: 8px;">
@ -441,7 +459,7 @@
<div class="body-userinfo-content-top"> <div class="body-userinfo-content-top">
<img src="@/assets/detection/useredit.png" alt="" title="编辑患者信息" <img src="@/assets/detection/useredit.png" alt="" title="编辑患者信息"
class="userinfo-edit-img" style="cursor: pointer;" @click="handleEditUserInfo"> class="userinfo-edit-img" style="cursor: pointer;" @click="handleEditUserInfo">
<div class="useravatar-box"> <div class="useravatar-box">
<img src="@/assets/detection/useravatar.svg" alt=""> <img src="@/assets/detection/useravatar.svg" alt="">
</div> </div>
@ -458,61 +476,116 @@
</div> </div>
</div> </div>
<div class="body-userinfo-content-bottom1"> <div class="body-userinfo-content-bottom0" v-if="isExpand == false">
<div class="userinfo-disyplaypadding4"> <img src="@/assets/detection/userinfo.png" alt=""
<div class="userinfo-text4">出生日期</div> class="userinfo-edit-img" style="cursor: pointer;"
@click="viewClick(true)">
<div class="userinfo-disyplaypadding1 ">
<div class="userinfo-text4 padding10">出生日期</div>
<div class="userinfo-text5"> <div class="userinfo-text5">
<span v-if="patientInfo && patientInfo.birth_date"> <span v-if="patientInfo && patientInfo.birth_date">
{{ formatDate(patientInfo.birth_date) }} {{ formatDate(patientInfo.birth_date) }}
</span> </span>
</div> </div>
</div> </div>
<div class="userinfo-disyplaypadding5"> <div class="userinfo-disyplaypadding2">
<div class="userinfo-text4">身高</div> <div class="userinfo-text4 padding10">身高</div>
<div class="userinfo-text5"> <div class="userinfo-text5">
{{ patientInfo.height ==''||patientInfo.height ==null ?'—':patientInfo.height}}cm {{ patientInfo.height ==''||patientInfo.height ==null ?'—':patientInfo.height}}cm
</div> </div>
</div> </div>
<div class="userinfo-disyplaypadding4"> <div class="userinfo-disyplaypadding1">
<div class="userinfo-text4">体重</div> <div class="userinfo-text4 padding10">体重</div>
<div class="userinfo-text5"> <div class="userinfo-text5">
{{ patientInfo.weight ==''||patientInfo.weight ==null ?'—':patientInfo.weight}}kg {{ patientInfo.weight ==''||patientInfo.weight ==null ?'—':patientInfo.weight}}kg
</div> </div>
</div> </div>
<div class="userinfo-disyplaypadding5"> <div class="userinfo-disyplaypadding2">
<div class="userinfo-text4">鞋码</div> <div class="userinfo-text4 padding10">鞋码</div>
<div class="userinfo-text5"> <div class="userinfo-text5">
{{ patientInfo.shoe_size ==''||patientInfo.shoe_size ==null ?'—':patientInfo.shoe_size}}</div> {{ patientInfo.shoe_size ==''||patientInfo.shoe_size ==null ?'—':patientInfo.shoe_size}}</div>
</div> </div>
<div class="userinfo-disyplaypadding4"> <div class="userinfo-disyplaypadding1">
<div class="userinfo-text4">电话</div> <div class="userinfo-text4 padding10">电话</div>
<div class="userinfo-text5"> <div class="userinfo-text5">
{{ patientInfo.phone ==''||patientInfo.phone ==null ?'—':patientInfo.phone}} {{ patientInfo.phone ==''||patientInfo.phone ==null ?'—':patientInfo.phone}}
</div> </div>
</div> </div>
<div class="userinfo-disyplaypadding5"> <div class="userinfo-disyplaypadding2">
<div class="userinfo-text4">民族</div> <div class="userinfo-text4 padding10">民族</div>
<div class="userinfo-text5"> <div class="userinfo-text5">
{{ patientInfo.nationality ==''||patientInfo.nationality ==null ?'—':patientInfo.nationality}}</div> {{ patientInfo.nationality ==''||patientInfo.nationality ==null ?'—':patientInfo.nationality}}</div>
</div> </div>
<div class="userinfo-disyplaypadding4"> <div class="userinfo-disyplaypadding1">
<div class="userinfo-text4">身份证号</div> <div class="userinfo-text4 padding10">身份证号</div>
<div class="userinfo-text5"> <div class="userinfo-text5">
{{ patientInfo.idcode ==''||patientInfo.idcode ==null ?'—':patientInfo.idcode}} {{ patientInfo.idcode ==''||patientInfo.idcode ==null ?'—':patientInfo.idcode}}
</div> </div>
</div> </div>
<div class="userinfo-disyplaypadding5"> <div class="userinfo-disyplaypadding2">
<div class="userinfo-text4">职业</div> <div class="userinfo-text4 padding10">职业</div>
<div class="userinfo-text5"> <div class="userinfo-text5">
{{ patientInfo.occupation ==''||patientInfo.occupation ==null ?'—':patientInfo.occupation}}</div> {{ patientInfo.occupation ==''||patientInfo.occupation ==null ?'—':patientInfo.occupation}}</div>
</div> </div>
<div class="userinfo-disyplaypadding6"> </div>
<div class="userinfo-text4">居住地</div> <div class="body-userinfo-content-bottom2" v-if="isExpand == true">
<img src="@/assets/detection/userinfo.png" alt=""
class="userinfo-edit-img" style="cursor: pointer;"
@click="viewClick(false)">
<div class="userinfo-disyplaypadding1 ">
<div class="userinfo-text4 padding10">出生日期</div>
<div class="userinfo-text5">
<span v-if="patientInfo && patientInfo.birth_date">
{{ formatDate(patientInfo.birth_date) }}
</span>
</div>
</div>
<div class="userinfo-disyplaypadding2">
<div class="userinfo-text4 padding10">身高</div>
<div class="userinfo-text5">
{{ patientInfo.height ==''||patientInfo.height ==null ?'—':patientInfo.height}}cm
</div>
</div>
<div class="userinfo-disyplaypadding1">
<div class="userinfo-text4 padding10">体重</div>
<div class="userinfo-text5">
{{ patientInfo.weight ==''||patientInfo.weight ==null ?'—':patientInfo.weight}}kg
</div>
</div>
<div class="userinfo-disyplaypadding2">
<div class="userinfo-text4 padding10">鞋码</div>
<div class="userinfo-text5">
{{ patientInfo.shoe_size ==''||patientInfo.shoe_size ==null ?'—':patientInfo.shoe_size}}</div>
</div>
<div class="userinfo-disyplaypadding1">
<div class="userinfo-text4 padding10">电话</div>
<div class="userinfo-text5">
{{ patientInfo.phone ==''||patientInfo.phone ==null ?'—':patientInfo.phone}}
</div>
</div>
<div class="userinfo-disyplaypadding2">
<div class="userinfo-text4 padding10">民族</div>
<div class="userinfo-text5">
{{ patientInfo.nationality ==''||patientInfo.nationality ==null ?'—':patientInfo.nationality}}</div>
</div>
<div class="userinfo-disyplaypadding1">
<div class="userinfo-text4 padding10">身份证号</div>
<div class="userinfo-text5">
{{ patientInfo.idcode ==''||patientInfo.idcode ==null ?'—':patientInfo.idcode}}
</div>
</div>
<div class="userinfo-disyplaypadding2">
<div class="userinfo-text4 padding10">职业</div>
<div class="userinfo-text5">
{{ patientInfo.occupation ==''||patientInfo.occupation ==null ?'—':patientInfo.occupation}}</div>
</div>
<div class="userinfo-disyplaypadding3">
<div class="userinfo-text4 padding10">居住地</div>
<div class="userinfo-text5"> <div class="userinfo-text5">
{{ patientInfo.residence ==''||patientInfo.residence ==null ?'—':patientInfo.residence}}</div> {{ patientInfo.residence ==''||patientInfo.residence ==null ?'—':patientInfo.residence}}</div>
</div> </div>
<div class="userinfo-disyplaypadding6"> <div class="userinfo-disyplaypadding3">
<div class="userinfo-text4">邮箱</div> <div class="userinfo-text4 padding10">邮箱</div>
<div class="userinfo-text5"> <div class="userinfo-text5">
{{ patientInfo.email ==''||patientInfo.email ==null ?'—':patientInfo.email}}</div> {{ patientInfo.email ==''||patientInfo.email ==null ?'—':patientInfo.email}}</div>
</div> </div>
@ -520,7 +593,8 @@
</div> </div>
</div> </div>
</div> </div>
<div class="body-video-box1"> <div class="body-video-box1" style="position: absolute; top: 522px; width: calc(100% - 15px);">
<div class="body-title-display"> <div class="body-title-display">
<div class="body-son-display"> <div class="body-son-display">
<img src="@/assets/detection/title5.png" alt="" style="margin-right: 8px;"> <img src="@/assets/detection/title5.png" alt="" style="margin-right: 8px;">
@ -535,14 +609,14 @@
</div> </div>
</div> </div>
</div> </div>
<div class="body-video-content"> <div class="body-video-content" style="padding: 0;">
<div v-show="camera1Status === '已连接'" class="body-video-imgbox3" ref="camera1Ref" :class="(camera1Status === '已连接' && camera1ImgSrc)?'':'noImageSvg-bg'"> <div v-show="camera1Status === '已连接'" class="body-video-imgbox3" ref="camera1Ref" :class="(camera1Status === '已连接' && camera1ImgSrc)?'':'noImageSvg-bg'">
<div v-if="(camera1Status === '已连接' && camera1ImgSrc)" <div v-if="(camera1Status === '已连接' && camera1ImgSrc)"
@click="isBig1 = true" class="big-img"> @click="isBig1 = true" class="big-img">
<img src="@/assets/detection/big.png"> <img src="@/assets/detection/big.png">
</div> </div>
<img v-if="(camera1Status === '已连接' && camera1ImgSrc)" :src="camera1ImgSrc" alt="camera1" <img v-if="(camera1Status === '已连接' && camera1ImgSrc)" :src="camera1ImgSrc" alt="camera1"
style="width: 100%; height: 100%;" /> style="width: 100%; height: 100%;object-fit:contain;" />
<div v-else style="width:90px;height:60px"> <div v-else style="width:90px;height:60px">
<img :src="noImageSvg" style="margin-left: 15px;"> <img :src="noImageSvg" style="margin-left: 15px;">
<div style="font-size:14px;color:#ffffff99;text-align: center;">连接已断开</div> <div style="font-size:14px;color:#ffffff99;text-align: center;">连接已断开</div>
@ -554,7 +628,7 @@
<img src="@/assets/detection/big.png"> <img src="@/assets/detection/big.png">
</div> </div>
<img v-if="(camera2Status === '已连接' && camera2ImgSrc)" :src="camera2ImgSrc" alt="camera2" <img v-if="(camera2Status === '已连接' && camera2ImgSrc)" :src="camera2ImgSrc" alt="camera2"
style="width: 100%; height: 100%;" /> style="width: 100%; height: 100%;object-fit:contain;" />
<div v-else style="width:90px;height:60px"> <div v-else style="width:90px;height:60px">
<img :src="noImageSvg" style="margin-left: 15px;"> <img :src="noImageSvg" style="margin-left: 15px;">
<div style="font-size:14px;color:#ffffff99;text-align: center;">连接已断开</div> <div style="font-size:14px;color:#ffffff99;text-align: center;">连接已断开</div>
@ -563,7 +637,7 @@
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col v-if="camera1Status !== '已连接' && camera2Status !== '已连接'" :span="6" style="flex: 0 0 24%;height: calc(100% - 0px);"> <el-col v-if="false || camera1Status !== '已连接' && camera2Status !== '已连接'" :span="6" style="flex: 0 0 24%;height: calc(100% - 0px);">
<div class="body-userinfo-box3"> <div class="body-userinfo-box3">
<div class="body-title-display"> <div class="body-title-display">
<div class="body-son-display"> <div class="body-son-display">
@ -710,6 +784,7 @@
<div class="pop-up-tip-text" v-if="!isVideoOperation">本次检测未截图或录像操作不予存档记录</div> <div class="pop-up-tip-text" v-if="!isVideoOperation">本次检测未截图或录像操作不予存档记录</div>
<div class="pop-up-tip-text" v-if="isVideoOperation">本次检测未截图操作存档记录不可生成报告</div> <div class="pop-up-tip-text" v-if="isVideoOperation">本次检测未截图操作存档记录不可生成报告</div>
<div class="tipconfirmbutton-box"> <div class="tipconfirmbutton-box">
<div class="tipclosebutton" @click="handleCancel">取消</div>
<el-button type="primary" class="tipconfirmbutton" @click="closeTipClick">确定</el-button> <el-button type="primary" class="tipconfirmbutton" @click="closeTipClick">确定</el-button>
</div> </div>
</div> </div>
@ -2611,9 +2686,23 @@ const isPhotoAlbum = ref(false)
function closePhotoAlbum(){ function closePhotoAlbum(){
isPhotoAlbum.value = false isPhotoAlbum.value = false
} }
function closecreatbox(e){ function closecreatbox(e,info){
if(e === true){ if(e === '编辑'){
loadPatientInfo() patientInfo.value.age = info.age
patientInfo.value.birth_date = info.birth_date
patientInfo.value.email = info.email
patientInfo.value.gender = info.gender
patientInfo.value.height = info.height
patientInfo.value.id = info.id
patientInfo.value.idcode = info.idcode
patientInfo.value.name = info.name
patientInfo.value.nationality = info.nationality
patientInfo.value.occupation = info.occupation
patientInfo.value.phone = info.phone
patientInfo.value.residence = info.residence
patientInfo.value.shoe_size = info.shoe_size
patientInfo.value.weight = info.weight
// loadPatientInfo()
} }
isCloseCreat.value = false isCloseCreat.value = false
} }
@ -2655,7 +2744,7 @@ function viewClick(e){
.displaycontainer { .displaycontainer {
width: 100%; width: 100%;
height: 62px; height: 46px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
@ -2825,10 +2914,8 @@ function viewClick(e){
text-align: left; text-align: left;
} }
.body-footbottom-box{ .body-footbottom-box{
display: flex; height: calc(100% - 50px);
align-items: center; padding-bottom: 15px;
justify-content: center;
height: calc(100% - 70px);
} }
.body-footbottom-left{ .body-footbottom-left{
width: 28%; width: 28%;
@ -2841,8 +2928,8 @@ function viewClick(e){
.body-footbottom-leftbox{ .body-footbottom-leftbox{
min-width: 215px; min-width: 215px;
width: 80%; width: 80%;
min-height: 60px; min-height: 57px;
height: 20%; height: 57px;
background: inherit; background: inherit;
background-color: rgba(255, 255, 255, 0.1); background-color: rgba(255, 255, 255, 0.1);
border-radius: 4px; border-radius: 4px;
@ -2852,8 +2939,8 @@ function viewClick(e){
padding: 0px 20px; padding: 0px 20px;
} }
.body-footbottom-center{ .body-footbottom-center{
width: 40%; width: 37%;
height: calc(100%); height: calc(100% - 0px);
} }
.body-footbottom-topbox{ .body-footbottom-topbox{
display: flex; display: flex;
@ -2888,7 +2975,7 @@ function viewClick(e){
display: flex; display: flex;
justify-content: center; justify-content: center;
flex-wrap: wrap; flex-wrap: wrap;
align-content:space-between ; align-content:space-around;
} }
.body-userinfo-box{ .body-userinfo-box{
@ -2896,18 +2983,18 @@ function viewClick(e){
z-index: 10; z-index: 10;
width: 100%; width: 100%;
height: 346px; height: 346px;
/* background: linear-gradient(135deg, rgba(42, 54, 73, 1) 0%, rgba(42, 54, 73, 1) 0%, rgba(34, 43, 56, 1) 100%, rgba(34, 43, 56, 1) 100%); */
background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%); background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
border: 1px solid #242E3D; border: 1px solid #242E3D;
border-radius: 4px; border-radius: 4px;
} }
.body-userinfo-expandbox{ .body-userinfo-expandbox{
height: 638px ; height: 680px !important;
} }
.body-userinfo-box1{ .body-userinfo-box1{
position: relative;
z-index: 10;
width: 100%; width: 100%;
height: 534px ; height: 524px ;
/* background: linear-gradient(135deg, rgba(42, 54, 73, 1) 0%, rgba(42, 54, 73, 1) 0%, rgba(34, 43, 56, 1) 100%, rgba(34, 43, 56, 1) 100%); */
background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%); background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
border: 1px solid #242E3D; border: 1px solid #242E3D;
border-radius: 4px; border-radius: 4px;
@ -2933,7 +3020,7 @@ function viewClick(e){
} }
.body-video-box1{ .body-video-box1{
width: 100%; width: 100%;
height: calc(100% - 534px - 14px) ; height: calc(100% - 534px - 4px) ;
background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%); background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
border: 1px solid #242E3D; border: 1px solid #242E3D;
border-radius: 4px; border-radius: 4px;
@ -3070,10 +3157,10 @@ function viewClick(e){
} }
.userinfo-disyplaypadding1{ .userinfo-disyplaypadding1{
width: calc(64%); width: calc(64%);
padding-bottom: 15px; padding-bottom: 20px;
} }
.padding10{ .padding10{
padding-bottom: 5px; padding-bottom: 10px;
} }
.userinfo-disyplaypadding2{ .userinfo-disyplaypadding2{
width: calc(36%); width: calc(36%);
@ -3308,6 +3395,25 @@ function viewClick(e){
background:#14aaff; background:#14aaff;
border:1px solid #14aaff; border:1px solid #14aaff;
} }
.tipclosebutton{
width: 80px;
height: 40px;
background-color: #597194;
border-radius: 4px;
color: rgba(255, 255, 255, 0.6);
font-weight: 400;
font-style: normal;
font-size: 16px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 20px;
cursor: pointer;
}
.tipclosebutton:hover{
background-color: #14aaff;
color: #fff;
}
.pop-up-tip-text{ .pop-up-tip-text{
width:100%; width:100%;
font-weight: 400; font-weight: 400;

View File

@ -33,7 +33,7 @@
</el-form-item> </el-form-item>
<el-form-item label="建议"> <el-form-item label="建议">
<div style="display: flex;width: 100%;"> <div style="display: flex;width: 100%;">
<el-input v-model="diagnosticForm.suggestion_info" resize="none" :rows="5" type="textarea" placeholder="备注信息" <el-input v-model="diagnosticForm.suggestion_info" resize="none" :rows="5" type="textarea" placeholder="建议信息"
style="margin-top:8px;width:calc(100% - 70px)" /> style="margin-top:8px;width:calc(100% - 70px)" />
<div style="margin-top:8px;display:flex;align-items:center;"> <div style="margin-top:8px;display:flex;align-items:center;">
<el-tooltip content="新增到常用项" placement="top"> <el-tooltip content="新增到常用项" placement="top">

View File

@ -213,7 +213,7 @@
<div class="generateReport-border1">{{ detectionInfo.diagnosis_info }}</div> <div class="generateReport-border1">{{ detectionInfo.diagnosis_info }}</div>
<div class="generateReport-title2">处理</div> <div class="generateReport-title2">处理</div>
<div class="generateReport-border2">{{ detectionInfo.treatment_info }}</div> <div class="generateReport-border2">{{ detectionInfo.treatment_info }}</div>
<div class="generateReport-title2">备注</div> <div class="generateReport-title2">建议</div>
<div class="generateReport-border3">{{ detectionInfo.suggestion_info }}</div> <div class="generateReport-border3">{{ detectionInfo.suggestion_info }}</div>
</el-scrollbar> </el-scrollbar>
@ -599,12 +599,12 @@ function closePopUpOnlyReport(e) {
.generateReport-border1{ .generateReport-border1{
padding: 5px; padding: 5px;
width: 100%; width: 100%;
min-height: 200px; /* min-height: 200px; */
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
box-sizing: border-box; box-sizing: border-box;
border-width: 1px; border-width: 1px;
border-style: solid; border-style: solid;
border-color: rgba(220, 223, 230, 1); border-color: rgba(220, 223, 230, 0);
border-radius: 4px; border-radius: 4px;
font-weight: 400; font-weight: 400;
font-style: normal; font-style: normal;
@ -614,12 +614,12 @@ function closePopUpOnlyReport(e) {
} }
.generateReport-border2{ .generateReport-border2{
width: 100%; width: 100%;
min-height: 40px; /* min-height: 40px; */
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
box-sizing: border-box; box-sizing: border-box;
border-width: 1px; border-width: 1px;
border-style: solid; border-style: solid;
border-color: rgba(220, 223, 230, 1); border-color: rgba(220, 223, 230, 0);
border-radius: 4px; border-radius: 4px;
font-style: normal; font-style: normal;
font-size: 18px; font-size: 18px;
@ -629,12 +629,12 @@ function closePopUpOnlyReport(e) {
} }
.generateReport-border3{ .generateReport-border3{
width: 100%; width: 100%;
min-height: 120px; /* min-height: 120px; */
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
box-sizing: border-box; box-sizing: border-box;
border-width: 1px; border-width: 1px;
border-style: solid; border-style: solid;
border-color: rgba(220, 223, 230, 1); border-color: rgba(220, 223, 230, 0);
border-radius: 4px; border-radius: 4px;
font-style: normal; font-style: normal;
font-size: 18px; font-size: 18px;

View File

@ -1,7 +1,10 @@
<template> <template>
<div class="login-page" :style="{ backgroundImage: `url(${bg})` }"> <div class="login-page" :style="{ backgroundImage: `url(${bg})` }"
style="display: flex;justify-content: space-around;align-items: center;">
<!-- <Model /> --> <!-- <Model /> -->
<!-- 页面主内容 --> <!-- 页面主内容 -->
<div style="width: 1000px ;height: 600px;"></div>
<div class="login-content"> <div class="login-content">
<!-- 系统标题 --> <!-- 系统标题 -->
<div style="margin-right: 280px;margin-top: -100px;"> <div style="margin-right: 280px;margin-top: -100px;">
@ -195,7 +198,6 @@
</div> </div>
<!-- 自定义错误提示弹窗 --> <!-- 自定义错误提示弹窗 -->
<div v-if="showErrorDialog" class="error-dialog-overlay" @click="closeErrorDialog"> <div v-if="showErrorDialog" class="error-dialog-overlay" @click="closeErrorDialog">
<div class="error-dialog" @click.stop> <div class="error-dialog" @click.stop>
@ -672,7 +674,7 @@ const copyPassword = async () => {
.login-content { .login-content {
position: relative; position: relative;
z-index: 10; z-index: 10;
width: 100%; /* width: 100%; */
height: 100%; height: 100%;
display: flex; display: flex;
/* flex-direction: column; */ /* flex-direction: column; */

View File

@ -18,7 +18,10 @@
<img src="@/assets/archive/usericon.png" alt="" style="margin-right: 8px;"> <img src="@/assets/archive/usericon.png" alt="" style="margin-right: 8px;">
<div class="profile-text">患者信息</div> <div class="profile-text">患者信息</div>
</div> </div>
<div class="patientprofile-son-display"></div> <div class="patientprofile-son-display">
<img src="@/assets/detection/useredit.png" alt="" title="编辑患者信息"
class="userinfo-edit-img" style="cursor: pointer;" @click="handleEditUserInfo">
</div>
</div> </div>
<div class="patientprofile-userinfo-box"> <div class="patientprofile-userinfo-box">
<div class="patientprofile-userinfo-text1">性别</div> <div class="patientprofile-userinfo-text1">性别</div>
@ -245,7 +248,13 @@
<div v-for="(item, index) in useVideoList" :key="index" <div v-for="(item, index) in useVideoList" :key="index"
class="patientprofile-imgbox"> class="patientprofile-imgbox">
<div class="patientprofile-imgactive"> <div class="patientprofile-imgactive">
<video ref="videoPlayerRef" :src="item.screen_video ? BACKEND_URL+'/' + item.screen_video.replace(/\\/g, '/') : ''" controls width="100%" height="100%"> <div @click="playVideo(item)"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;
z-index: 1; cursor: pointer;">
</div>
<video :src="item.screen_video ? BACKEND_URL+'/' + item.screen_video.replace(/\\/g, '/') : ''" controls width="100%" height="100%">
您的浏览器不支持视频播放 您的浏览器不支持视频播放
</video> </video>
</div> </div>
@ -377,13 +386,9 @@
<div style="display:flex;gap:6px;"> <div style="display:flex;gap:6px;">
<el-tooltip content="选中" placement="top"> <el-tooltip content="选中" placement="top">
<div class="selected-icon" @click="onPickTreatment(opt)" ></div> <div class="selected-icon" @click="onPickTreatment(opt)" ></div>
<!-- <img src="@/assets/process/selected.png" alt="" @click="onPickTreatment(opt)"
style="cursor: pointer;margin-left: 10px;"> -->
</el-tooltip> </el-tooltip>
<el-tooltip content="删除" placement="top"> <el-tooltip content="删除" placement="top">
<div class="processdel-icon" @click="removeCommonItem('treatment',opt)" ></div> <div class="processdel-icon" @click="removeCommonItem('treatment',opt)" ></div>
<!-- <img src="@/assets/process/del.png" alt="" @click="removeCommonItem('treatment',opt)"
style="cursor: pointer;margin-left: 10px;"> -->
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
@ -415,6 +420,51 @@
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<el-dialog v-model="isVideoDialog" title="查看视频" width="calc(100%)" class="videoDialogVisible">
<div style="height: calc(100vh - 80px);">
<!-- :src="video1" -->
<video v-if="isVideoDialog"
:src="screen_video ? BACKEND_URL+'/' + screen_video.replace(/\\/g, '/') : ''"
controls
width="100%" height="100%">您的浏览器不支持视频播放</video>
<!-- <img
src="@/assets/video1.png" alt=""
style="position: absolute;bottom: 120px;right: 160px;cursor: pointer;"
title="查看视频1" @click="playFeetVideo('foot1')">
<img
src="@/assets/video2.png" alt=""
style="position: absolute;bottom: 120px;right: 100px;cursor: pointer;"
title="查看视频2" @click="playFeetVideo('foot2')"> -->
<!-- -->
<div style="position: absolute;bottom: 120px;right: 100px;">
<img
src="@/assets/video1.png" alt=""
v-if="videoInfo.foot_video1!=null && videoInfo.foot_video1!='' "
style="cursor: pointer;"
title="查看视频1" @click="playFeetVideo('foot1')">
<img
src="@/assets/video2.png" alt=""
v-if="videoInfo.foot_video2!=null && videoInfo.foot_video2!='' "
style="cursor: pointer;margin-left: 20px;"
title="查看视频2" @click="playFeetVideo('foot2')">
</div>
</div>
</el-dialog>
<el-dialog v-model="isVideoFeetDialog" title="查看视频" width="calc(100% - 80px)" class="videofeetDialogVisible">
<div style="height: calc(100vh - 120px);">
<video v-if="isVideoFeetDialog" ref="videoPlayerRef"
:src="screen_video ? BACKEND_URL+'/' + screen_video.replace(/\\/g, '/') : ''"
controls width="100%" height="100%">您的浏览器不支持视频播放</video>
</div>
</el-dialog>
<div class="creat-patient-box" v-if="isCloseCreat">
<PatientCreate @closecreatbox="closecreatbox" :patienttype="'edit'"
:selectedPatient="selectedPatient" v-if="isCloseCreat"/>
</div>
</div> </div>
</template> </template>
<script setup> <script setup>
@ -431,6 +481,7 @@ import ImageDetails from '@/views/ImageDetails.vue'
import ViewPDF from '@/views/viewPDF.vue' import ViewPDF from '@/views/viewPDF.vue'
import ReportComparison from '@/views/ReportComparison.vue' import ReportComparison from '@/views/ReportComparison.vue'
import AloneReportComparison from '@/views/AloneReportComparison.vue' import AloneReportComparison from '@/views/AloneReportComparison.vue'
import PatientCreate from '@/views/PatientCreate.vue'
const recordDataRef = ref(null) const recordDataRef = ref(null)
const formatDate = (date) => { const formatDate = (date) => {
const d = new Date(date) const d = new Date(date)
@ -439,6 +490,28 @@ const formatDate = (date) => {
const day = String(d.getDate()).padStart(2, '0') const day = String(d.getDate()).padStart(2, '0')
return `${y}-${m}-${day}` return `${y}-${m}-${day}`
} }
const isVideoDialog = ref(false) //
const isVideoFeetDialog = ref(false) //
const screen_video = ref('') //
const foot_video = ref('') //
const videoInfo = ref({})
function playVideo(item) { //
videoInfo.vue = item
screen_video.value = item.screen_video
isVideoDialog.value = true
}
function playFeetVideo(type) { //
if(type === 'foo1'){
foot_video.value = videoInfo.vue.foot_video1
}else{
foot_video.value = videoInfo.vue.foot_video2
}
isVideoFeetDialog.value = true
}
// //
const BACKEND_URL = getBackendUrl() const BACKEND_URL = getBackendUrl()
const emit = defineEmits([ 'endChange']); const emit = defineEmits([ 'endChange']);
@ -636,6 +709,7 @@ function selectRecord(data){
const handleSelectionChange = (val) => { // const handleSelectionChange = (val) => { //
selectedData.value = val selectedData.value = val
} }
const selectedPatient = ref(props.selectedPatient)
const sessionsInit = async () => { const sessionsInit = async () => {
try { try {
@ -1035,8 +1109,30 @@ historyAPI.VideoDelById(ids).then((response)=>{
}).catch(()=>{ }).catch(()=>{
}) })
} }
const isCloseCreat = ref(false)
function handleEditUserInfo(){
isCloseCreat.value = true
}
function closecreatbox(e,info){
if(e === '编辑'){
selectedPatient.value.age = info.age
selectedPatient.value.birth_date = info.birth_date
selectedPatient.value.email = info.email
selectedPatient.value.gender = info.gender
selectedPatient.value.height = info.height
selectedPatient.value.id = info.id
selectedPatient.value.idcode = info.idcode
selectedPatient.value.name = info.name
selectedPatient.value.nationality = info.nationality
selectedPatient.value.occupation = info.occupation
selectedPatient.value.phone = info.phone
selectedPatient.value.residence = info.residence
selectedPatient.value.shoe_size = info.shoe_size
selectedPatient.value.weight = info.weight
}
isCloseCreat.value = false
}
</script> </script>
<style scoped> <style scoped>
@ -1443,6 +1539,7 @@ historyAPI.VideoDelById(ids).then((response)=>{
align-items: center; align-items: center;
border: 2px solid transparent; border: 2px solid transparent;
border-radius: 4px; border-radius: 4px;
position: relative;
} }
.patientprofile-imgactive:hover{ .patientprofile-imgactive:hover{
border: 2px solid #0b94d5; border: 2px solid #0b94d5;
@ -1799,4 +1896,25 @@ historyAPI.VideoDelById(ids).then((response)=>{
.patient-profile-container .patientprofile-container .el-table .el-table__row.current-row:last-child td{ .patient-profile-container .patientprofile-container .el-table .el-table__row.current-row:last-child td{
border-bottom:1px solid #14aaff border-bottom:1px solid #14aaff
} }
.creat-patient-box{
position: fixed;
z-index: 99;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(0, 0, 0, 0.7);
}
.videoDialogVisible.el-dialog{
margin-top:0px;
margin-bottom: 0px;
/* padding: 16px; */
}
.videofeetDialogVisible.el-dialog{
margin-top:20px;
margin-bottom: 0px;
}
</style> </style>

View File

@ -140,7 +140,7 @@
<div class="PopUpOnlyReport-border1">{{ detectionInfo.diagnosis_info }}</div> <div class="PopUpOnlyReport-border1">{{ detectionInfo.diagnosis_info }}</div>
<div class="PopUpOnlyReport-title2">处理</div> <div class="PopUpOnlyReport-title2">处理</div>
<div class="PopUpOnlyReport-border2">{{ detectionInfo.treatment_info }}</div> <div class="PopUpOnlyReport-border2">{{ detectionInfo.treatment_info }}</div>
<div class="PopUpOnlyReport-title2">备注</div> <div class="PopUpOnlyReport-title2">建议</div>
<div class="PopUpOnlyReport-border3">{{ detectionInfo.suggestion_info }}</div> <div class="PopUpOnlyReport-border3">{{ detectionInfo.suggestion_info }}</div>
<div class="PopUpOnlyReport-footer"> <div class="PopUpOnlyReport-footer">
<div style="margin-right: 80px;">报告时间{{ getFormattedTime() }}</div> <div style="margin-right: 80px;">报告时间{{ getFormattedTime() }}</div>

View File

@ -210,7 +210,7 @@
<div class="PopUpReport-border1">{{ detectionInfo.diagnosis_info }}</div> <div class="PopUpReport-border1">{{ detectionInfo.diagnosis_info }}</div>
<div class="PopUpReport-title2">处理</div> <div class="PopUpReport-title2">处理</div>
<div class="PopUpReport-border2">{{ detectionInfo.treatment_info }}</div> <div class="PopUpReport-border2">{{ detectionInfo.treatment_info }}</div>
<div class="PopUpReport-title2">备注</div> <div class="PopUpReport-title2">建议</div>
<div class="PopUpReport-border3">{{ detectionInfo.suggestion_info }}</div> <div class="PopUpReport-border3">{{ detectionInfo.suggestion_info }}</div>
<div class="PopUpReport-footer"> <div class="PopUpReport-footer">
<div style="margin-right: 80px;">报告时间{{ getFormattedTime() }}</div> <div style="margin-right: 80px;">报告时间{{ getFormattedTime() }}</div>

View File

@ -221,7 +221,7 @@
<div class="ReportComparison-border1">{{ leftInfo.diagnosis_info }}</div> <div class="ReportComparison-border1">{{ leftInfo.diagnosis_info }}</div>
<div class="ReportComparison-title2">处理</div> <div class="ReportComparison-title2">处理</div>
<div class="ReportComparison-border2">{{ leftInfo.treatment_info }}</div> <div class="ReportComparison-border2">{{ leftInfo.treatment_info }}</div>
<div class="ReportComparison-title2">备注</div> <div class="ReportComparison-title2">建议</div>
<div class="ReportComparison-border3">{{ leftInfo.suggestion_info }}</div> <div class="ReportComparison-border3">{{ leftInfo.suggestion_info }}</div>
</div> </div>
<div class="ReportComparison-containerdisplay"> <div class="ReportComparison-containerdisplay">
@ -394,7 +394,7 @@
<div class="ReportComparison-border1">{{ rightInfo.diagnosis_info }}</div> <div class="ReportComparison-border1">{{ rightInfo.diagnosis_info }}</div>
<div class="ReportComparison-title2">处理</div> <div class="ReportComparison-title2">处理</div>
<div class="ReportComparison-border2">{{ rightInfo.treatment_info }}</div> <div class="ReportComparison-border2">{{ rightInfo.treatment_info }}</div>
<div class="ReportComparison-title2">备注</div> <div class="ReportComparison-title2">建议</div>
<div class="ReportComparison-border3">{{ rightInfo.suggestion_info }}</div> <div class="ReportComparison-border3">{{ rightInfo.suggestion_info }}</div>
</div> </div>