修改按钮样式,视频判断有几个,诊断信息处理删除bug,视频显示修改

This commit is contained in:
limengnan 2026-01-09 18:13:10 +08:00
parent 394e79d770
commit 33d5e5a6e5
18 changed files with 816 additions and 166 deletions

View File

@ -0,0 +1,15 @@
{
"product": "BodyBalanceEvaluation",
"version": "1.5.0",
"machine_id": "W10-F5AC32003C0A160B",
"platform": "Windows",
"request_time": "2026-01-09T02:40:10.695573+00:00",
"hardware_info": {
"system": "Windows",
"machine": "AMD64",
"processor": "Intel64 Family 6 Model 165 Stepping 3, GenuineIntel",
"node": "PS2020LTDYIFOO"
},
"company_name": "北京天宏博科技有限公司",
"contact_info": "thb@163.com"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 B

After

Width:  |  Height:  |  Size: 200 B

View File

@ -110,13 +110,13 @@
<img :src="BACKEND_URL+'/' + rawOneData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + rawOneData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="AloneReportComparison-content-title">视频1图片</div> <div v-if="rawOneData.foot1_image != null" class="AloneReportComparison-content-title">视频1图片</div>
<div style="width: 90%;height: 230px; display: flex;"> <div v-if="rawOneData.foot1_image != null" style="width: 90%;height: 230px; display: flex;">
<img :src="BACKEND_URL+'/' + rawOneData.foot1_image" alt="" srcset="" <img :src="BACKEND_URL+'/' + rawOneData.foot1_image" alt="" srcset=""
style="width: 100%;height: 100%;object-fit:contain;"> style="width: 100%;height: 100%;object-fit:contain;">
</div> </div>
<div class="AloneReportComparison-content-title">视频2图片</div> <div v-if="rawOneData.foot2_image != null" class="AloneReportComparison-content-title">视频2图片</div>
<div style="width: 90%;height: 230px; display: flex;"> <div v-if="rawOneData.foot2_image != null" style="width: 90%;height: 230px; display: flex;">
<img :src="BACKEND_URL+'/' + rawOneData.foot2_image" alt="" srcset="" <img :src="BACKEND_URL+'/' + rawOneData.foot2_image" alt="" srcset=""
style="width: 100%;height: 100%;object-fit:contain;"> style="width: 100%;height: 100%;object-fit:contain;">
</div> </div>
@ -183,13 +183,13 @@
<img :src="BACKEND_URL+'/' + rawTwoData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + rawTwoData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="AloneReportComparison-content-title">视频1图片</div> <div v-if="rawTwoData.foot1_image !=null" class="AloneReportComparison-content-title">视频1图片</div>
<div style="width: 90%;height: 230px; display: flex;"> <div v-if="rawTwoData.foot1_image !=null" style="width: 90%;height: 230px; display: flex;">
<img :src="BACKEND_URL+'/' + rawTwoData.foot1_image" alt="" srcset="" <img :src="BACKEND_URL+'/' + rawTwoData.foot1_image" alt="" srcset=""
style="width: 100%;height: 100%;object-fit:contain;"> style="width: 100%;height: 100%;object-fit:contain;">
</div> </div>
<div class="AloneReportComparison-content-title">视频2图片</div> <div v-if="rawTwoData.foot2_image !=null" class="AloneReportComparison-content-title">视频2图片</div>
<div style="width: 90%;height: 230px; display: flex;"> <div v-if="rawTwoData.foot2_image !=null" style="width: 90%;height: 230px; display: flex;">
<img :src="BACKEND_URL+'/' + rawTwoData.foot2_image" alt="" srcset="" <img :src="BACKEND_URL+'/' + rawTwoData.foot2_image" alt="" srcset=""
style="width: 100%;height: 100%;object-fit:contain;"> style="width: 100%;height: 100%;object-fit:contain;">
</div> </div>

View File

@ -10,8 +10,8 @@
<div class="patient-section"> <div class="patient-section">
<div class="section-header"> <div class="section-header">
<div class="search-box"> <div class="search-box">
<el-input v-model="search" placeholder="搜索患者姓名" clearable class="search-input"/> <el-input v-model="search" placeholder="搜索患者姓名" class="search-input"/>
<div class="primary-search-buttons" @click="handleSearch"> <div class="primary-search-buttons" :class="search != ''?'primary-searchactive-buttons':''" @click="handleSearch">
搜索 搜索
</div> </div>
</div> </div>
@ -33,10 +33,11 @@
<el-table-column prop="updated_at" label="最近检测时间" min-width="100" align="center" /> <el-table-column prop="updated_at" label="最近检测时间" min-width="100" align="center" />
<el-table-column prop="status" label="状态" align="center" width="120"> <el-table-column prop="status" label="状态" align="center" width="120">
<template #default="scope"> <template #default="scope">
<div v-if="!scope.row.status" class="unprocessed-status">未检测</div>
<div v-else-if="scope.row.status === 'completed' || scope.row.status === 'checked'" class="processed-status">检测已完成</div> <div v-if="scope.row.status === 'checked'" class="processed-status">已完成检查</div>
<div v-else-if="scope.row.status === 'reported'" class="processed-status">报告已生成</div> <div v-else-if="scope.row.status === 'completed'" class="processed-status">已诊断处理</div>
<div v-else class="processed-status">{{ scope.row.status }}</div> <div v-else-if="scope.row.status === 'reported'" class="processed-status">已生成报告</div>
<div v-else class="unprocessed-status">未检测</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="doctor" label="检测医生" min-width="80" align="center" /> <el-table-column prop="doctor" label="检测医生" min-width="80" align="center" />
@ -445,6 +446,11 @@ 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
} }
if(type === '01' && patients.value[rowIndex.value] != null){
rowIndex.value = 0
tableRef.value?.setCurrentRow(patients.value[0], true); // true
selectedPatient.value = patients.value[0]
}
patienttotal.value =response.data.total patienttotal.value =response.data.total
} else if (Array.isArray(response.data)) { } else if (Array.isArray(response.data)) {
patients.value = (response.data || []).map(p => { patients.value = (response.data || []).map(p => {
@ -457,7 +463,7 @@ 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
@ -500,7 +506,7 @@ async function delClick(id) {
type: 'success', type: 'success',
message: '删除成功', message: '删除成功',
}); });
loadPatients() loadPatients("01")
} else { } else {
ElMessage({ ElMessage({
type: 'error', type: 'error',
@ -519,7 +525,7 @@ function closecreatbox(e,e2){
if(e == '关闭'){ if(e == '关闭'){
// isDetection.value = true // isDetection.value = true
}else if(e == '新建') { }else if(e == '新建') {
loadPatients() loadPatients("01")
}else if(e == '编辑') { }else if(e == '编辑') {
if (rowIndex.value >= 0 && patients.value[rowIndex.value]) { if (rowIndex.value >= 0 && patients.value[rowIndex.value]) {
patients.value[rowIndex.value] = { ...patients.value[rowIndex.value], ...e2 } patients.value[rowIndex.value] = { ...patients.value[rowIndex.value], ...e2 }
@ -1286,6 +1292,12 @@ function editClick(){
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
} }
.primary-view-profile:hover{
background-color: #14aaff !important;
}
.primary-add-buttons:hover{
background-color: #14aaff !important;
}
.creat-patient-box{ .creat-patient-box{
position: fixed; position: fixed;
z-index: 99; z-index: 99;
@ -1313,12 +1325,16 @@ function editClick(){
font-size: 14px; font-size: 14px;
margin-right: 5px; margin-right: 5px;
} }
.primary-searchactive-buttons{
background-color: #0b94d5;
}
.primary-searchactive-buttons:hover{
background-color: #14AAFF;
}
.primary-add-buttons{ .primary-add-buttons{
width: 126px; width: 126px;
height: 32px; height: 32px;
background-color: rgba(11, 148, 213, 1); background-color: #0b94d5;
border-radius: 4px; border-radius: 4px;
cursor: pointer; cursor: pointer;
display: flex; display: flex;

View File

@ -71,9 +71,9 @@
<img v-if="(femtoboltStatus === '已连接' && depthCameraImgSrc)" :src="depthCameraImgSrc" alt="深度相机视频流" <img v-if="(femtoboltStatus === '已连接' && depthCameraImgSrc)" :src="depthCameraImgSrc" alt="深度相机视频流"
style="width: 100%;height: calc(100%);"> style="width: 100%;height: calc(100%);">
<!-- object-fit:contain; --> <!-- object-fit:contain; -->
<div v-else style="width:60px;height:60px"> <div v-else style="width:90px;height:60px">
<img :src="noImageSvg" > <img :src="noImageSvg" style="margin-left: 15px;">
<div style="font-size:14px;color:#ffffff99">连接失败</div> <div style="font-size:14px;color:#ffffff99;text-align: center;">连接已断开</div>
</div> </div>
</div> </div>
</div> </div>
@ -189,7 +189,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="body-footbottom-box"> <div class="body-footbottom-box" ref="">
<div class="body-footbottom-left"> <div class="body-footbottom-left">
<div style="width:100%;height: 50px;"></div> <div style="width:100%;height: 50px;"></div>
<div class="body-footbottom-leftbottom"> <div class="body-footbottom-leftbottom">
@ -222,9 +222,9 @@
:class="(pressureStatus === '已连接' && footImgSrc)?'':'noImageSvg-bg'"> :class="(pressureStatus === '已连接' && footImgSrc)?'':'noImageSvg-bg'">
<img v-if="(pressureStatus === '已连接' && footImgSrc)" :src="footImgSrc" style="width: 100%;height: 100%;" alt=""> <img v-if="(pressureStatus === '已连接' && footImgSrc)" :src="footImgSrc" style="width: 100%;height: 100%;" alt="">
<div v-else style="width:60px;height:60px"> <div v-else style="width:90px;height:60px">
<img :src="noImageSvg" > <img :src="noImageSvg" style="margin-left: 15px;">
<div style="font-size:14px;color:#ffffff99">连接失败</div> <div style="font-size:14px;color:#ffffff99;text-align: center;">连接已断开</div>
</div> </div>
<div class="xline"></div> <div class="xline"></div>
<div class="yline"></div> <div class="yline"></div>
@ -257,8 +257,9 @@
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :span="6" style="flex: 0 0 24%;height: calc(100% - 0px);"> <el-col v-if=" camera1Status === '已连接' && camera2Status === '已连接' "
<div class="body-userinfo-box"> :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-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;">
@ -287,16 +288,16 @@
</div> </div>
</div> </div>
<div class="body-userinfo-content-bottom"> <div class="body-userinfo-content-bottom" v-if="isExpand == false">
<img src="@/assets/detection/userinfo.png" alt="" <img src="@/assets/detection/userinfo.png" alt=""
class="userinfo-edit-img" style="cursor: pointer;" class="userinfo-edit-img" style="cursor: pointer;"
@click="viewClick"> @click="viewClick(true)">
<ViewUserInfo v-if="isViewUser" :patientInfo="patientInfo"
@closeViewUserInfo="closeViewUserInfo"/>
<div class="userinfo-disyplay1" > <div class="userinfo-disyplay1" >
<div class="userinfo-text4">居住地</div> <div class="userinfo-text4">电话</div>
<div class="userinfo-text5" :title="patientInfo.residence"> <div class="userinfo-text5">
{{ patientInfo.residence ==''||patientInfo.residence ==null ?'—':patientInfo.residence}} <span v-if="patientInfo && patientInfo.phone">
{{ patientInfo.phone ==''||patientInfo.phone ==null ?'—':patientInfo.phone}}
</span>
</div> </div>
</div> </div>
<div class="userinfo-disyplay2"> <div class="userinfo-disyplay2">
@ -305,7 +306,7 @@
{{ patientInfo.height ==''||patientInfo.height ==null ?'—':patientInfo.height}}cm {{ patientInfo.height ==''||patientInfo.height ==null ?'—':patientInfo.height}}cm
</div> </div>
</div> </div>
<div class="userinfo-disyplay1"> <div class="userinfo-disyplay1" style="padding-top: 20px;">
<div class="userinfo-text4">体重</div> <div class="userinfo-text4">体重</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
@ -318,9 +319,72 @@
</div> </div>
</div> </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> </div>
<div class="body-video-box"> <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">
{{ patientInfo.residence ==''||patientInfo.residence ==null ?'—':patientInfo.residence}}</div>
</div>
<div class="userinfo-disyplaypadding3">
<div class="userinfo-text4 padding10">邮箱</div>
<div class="userinfo-text5">
{{ patientInfo.email ==''||patientInfo.email ==null ?'—':patientInfo.email}}</div>
</div>
</div>
</div>
</div>
<div class="body-video-box" style="position: absolute;top: 347px; 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;">
@ -335,7 +399,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="body-video-content" ref="videoImgRef"> <div class="body-video-content">
<div class="body-video-imgbox1" ref="camera1Ref" :class="(camera1Status === '已连接' && camera1ImgSrc)?'':'noImageSvg-bg'"> <div class="body-video-imgbox1" 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">
@ -343,9 +407,9 @@
</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%;" />
<div v-else style="width:60px;height:60px"> <div v-else style="width:90px;height:60px">
<img :src="noImageSvg" > <img :src="noImageSvg" style="margin-left: 15px;">
<div style="font-size:14px;color:#ffffff99">连接失败</div> <div style="font-size:14px;color:#ffffff99;text-align: center;">连接已断开</div>
</div> </div>
</div> </div>
<div class="body-video-imgbox2" ref="camera2Ref" :class="(camera2Status === '已连接' && camera2ImgSrc)?'':'noImageSvg-bg'"> <div class="body-video-imgbox2" ref="camera2Ref" :class="(camera2Status === '已连接' && camera2ImgSrc)?'':'noImageSvg-bg'">
@ -355,9 +419,282 @@
</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%;" />
<div v-else style="width:60px;height:60px"> <div v-else style="width:90px;height:60px">
<img :src="noImageSvg" > <img :src="noImageSvg" style="margin-left: 15px;">
<div style="font-size:14px;color:#ffffff99">连接失败</div> <div style="font-size:14px;color:#ffffff99;text-align: center;">连接已断开</div>
</div>
</div>
</div>
</div>
</el-col>
<el-col v-if="camera1Status === '已连接' || camera2Status === '已连接'"
:span="6" style="flex: 0 0 24%;height: calc(100% - 0px);">
<div class="body-userinfo-box1">
<div class="body-title-display">
<div class="body-son-display">
<img src="@/assets/detection/title4.png" alt="" style="margin-right: 8px;">
<div class="body-posture-text">患者信息</div>
</div>
<div class="body-son-display"></div>
</div>
<div class="body-userinfo-content">
<div class="body-userinfo-content-top">
<img src="@/assets/detection/useredit.png" alt=""
class="userinfo-edit-img" style="cursor: pointer;" @click="handleEditUserInfo">
<div class="useravatar-box">
<img src="@/assets/detection/useravatar.svg" alt="">
</div>
<div>
<div class="userinfo-text-top">
<div class="userinfo-text1" style="margin-right:20px ;">{{ patientInfo.name }}</div>
<div class="userinfo-text2"> {{ patientInfo.gender }}</div>
<div class="userinfo-line"></div>
<div class="userinfo-text2">{{ calculateAge(patientInfo.birth_date) }}</div>
</div>
<div class="userinfo-text3">
ID{{ patientInfo.id }}
</div>
</div>
</div>
<div class="body-userinfo-content-bottom1">
<div class="userinfo-disyplaypadding4">
<div class="userinfo-text4">出生日期</div>
<div class="userinfo-text5">
<span v-if="patientInfo && patientInfo.birth_date">
{{ formatDate(patientInfo.birth_date) }}
</span>
</div>
</div>
<div class="userinfo-disyplaypadding5">
<div class="userinfo-text4">身高</div>
<div class="userinfo-text5">
{{ patientInfo.height ==''||patientInfo.height ==null ?'—':patientInfo.height}}cm
</div>
</div>
<div class="userinfo-disyplaypadding4">
<div class="userinfo-text4">体重</div>
<div class="userinfo-text5">
{{ patientInfo.weight ==''||patientInfo.weight ==null ?'—':patientInfo.weight}}kg
</div>
</div>
<div class="userinfo-disyplaypadding5">
<div class="userinfo-text4">鞋码</div>
<div class="userinfo-text5">
{{ patientInfo.shoe_size ==''||patientInfo.shoe_size ==null ?'—':patientInfo.shoe_size}}</div>
</div>
<div class="userinfo-disyplaypadding4">
<div class="userinfo-text4">电话</div>
<div class="userinfo-text5">
{{ patientInfo.phone ==''||patientInfo.phone ==null ?'—':patientInfo.phone}}
</div>
</div>
<div class="userinfo-disyplaypadding5">
<div class="userinfo-text4">民族</div>
<div class="userinfo-text5">
{{ patientInfo.nationality ==''||patientInfo.nationality ==null ?'—':patientInfo.nationality}}</div>
</div>
<div class="userinfo-disyplaypadding4">
<div class="userinfo-text4">身份证号</div>
<div class="userinfo-text5">
{{ patientInfo.idcode ==''||patientInfo.idcode ==null ?'—':patientInfo.idcode}}
</div>
</div>
<div class="userinfo-disyplaypadding5">
<div class="userinfo-text4">职业</div>
<div class="userinfo-text5">
{{ patientInfo.occupation ==''||patientInfo.occupation ==null ?'—':patientInfo.occupation}}</div>
</div>
<div class="userinfo-disyplaypadding6">
<div class="userinfo-text4">居住地</div>
<div class="userinfo-text5">
{{ patientInfo.residence ==''||patientInfo.residence ==null ?'—':patientInfo.residence}}</div>
</div>
<div class="userinfo-disyplaypadding6">
<div class="userinfo-text4">邮箱</div>
<div class="userinfo-text5">
{{ patientInfo.email ==''||patientInfo.email ==null ?'—':patientInfo.email}}</div>
</div>
</div>
</div>
</div>
<div class="body-video-box1">
<div class="body-title-display">
<div class="body-son-display">
<img src="@/assets/detection/title5.png" alt="" style="margin-right: 8px;">
<div class="body-posture-text">视频</div>
</div>
<div class="body-son-display">
<img :src="cameraStatus == '已连接'?refresh_active:refresh" alt="" style="margin-right: 8px;cursor: pointer;"
title="重启视频"
@click="refreshClick('camera')">
<div class="connecttext" :style="{ color: cameraStatus == '已连接' ? '#3bf2c6' : '#808080' }">
{{ cameraStatus }}
</div>
</div>
</div>
<div class="body-video-content">
<div v-show="camera1Status === '已连接'" class="body-video-imgbox3" ref="camera1Ref" :class="(camera1Status === '已连接' && camera1ImgSrc)?'':'noImageSvg-bg'">
<div v-if="(camera1Status === '已连接' && camera1ImgSrc)"
@click="isBig1 = true" class="big-img">
<img src="@/assets/detection/big.png">
</div>
<img v-if="(camera1Status === '已连接' && camera1ImgSrc)" :src="camera1ImgSrc" alt="camera1"
style="width: 100%; height: 100%;" />
<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>
<div v-show="camera2Status === '已连接'" class="body-video-imgbox3" ref="camera2Ref" :class="(camera2Status === '已连接' && camera2ImgSrc)?'':'noImageSvg-bg'">
<div v-if="(camera2Status === '已连接' && camera2ImgSrc)"
@click="isBig2 = true" class="big-img">
<img src="@/assets/detection/big.png">
</div>
<img v-if="(camera2Status === '已连接' && camera2ImgSrc)" :src="camera2ImgSrc" alt="camera2"
style="width: 100%; height: 100%;" />
<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>
</div>
</div>
</el-col>
<el-col v-if="camera1Status !== '已连接' && camera2Status !== '已连接'" :span="6" style="flex: 0 0 24%;height: calc(100% - 0px);">
<div class="body-userinfo-box3">
<div class="body-title-display">
<div class="body-son-display">
<img src="@/assets/detection/title4.png" alt="" style="margin-right: 8px;">
<div class="body-posture-text">患者信息</div>
</div>
<div class="body-son-display"></div>
</div>
<div class="body-userinfo-content">
<div class="body-userinfo-content-top">
<img src="@/assets/detection/useredit.png" alt=""
class="userinfo-edit-img" style="cursor: pointer;" @click="handleEditUserInfo">
<div class="useravatar-box">
<img src="@/assets/detection/useravatar.svg" alt="">
</div>
<div>
<div class="userinfo-text-top">
<div class="userinfo-text1" style="margin-right:20px ;">{{ patientInfo.name }}</div>
<div class="userinfo-text2"> {{ patientInfo.gender }}</div>
<div class="userinfo-line"></div>
<div class="userinfo-text2">{{ calculateAge(patientInfo.birth_date) }}</div>
</div>
<div class="userinfo-text3">
ID{{ patientInfo.id }}
</div>
</div>
</div>
<div class="body-userinfo-content-bottom0">
<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">
{{ patientInfo.residence ==''||patientInfo.residence ==null ?'—':patientInfo.residence}}</div>
</div>
<div class="userinfo-disyplaypadding3">
<div class="userinfo-text4 padding10">邮箱</div>
<div class="userinfo-text5">
{{ patientInfo.email ==''||patientInfo.email ==null ?'—':patientInfo.email}}</div>
</div>
</div>
</div>
</div>
<div v-show="false" class="body-video-box">
<div class="body-title-display">
<div class="body-son-display">
<img src="@/assets/detection/title5.png" alt="" style="margin-right: 8px;">
<div class="body-posture-text">视频</div>
</div>
<div class="body-son-display">
<img :src="cameraStatus == '已连接'?refresh_active:refresh" alt="" style="margin-right: 8px;cursor: pointer;"
title="重启视频"
@click="refreshClick('camera')">
<div class="connecttext" :style="{ color: cameraStatus == '已连接' ? '#3bf2c6' : '#808080' }">
{{ cameraStatus }}
</div>
</div>
</div>
<div class="body-video-content">
<div class="body-video-imgbox1" ref="camera1Ref" :class="(camera1Status === '已连接' && camera1ImgSrc)?'':'noImageSvg-bg'">
<div v-if="(camera1Status === '已连接' && camera1ImgSrc)"
@click="isBig1 = true" class="big-img">
<img src="@/assets/detection/big.png">
</div>
<img v-if="(camera1Status === '已连接' && camera1ImgSrc)" :src="camera1ImgSrc" alt="camera1"
style="width: 100%; height: 100%;" />
<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>
<div class="body-video-imgbox2" ref="camera2Ref" :class="(camera2Status === '已连接' && camera2ImgSrc)?'':'noImageSvg-bg'">
<div v-if="(camera2Status === '已连接' && camera2ImgSrc)"
@click="isBig2 = true" class="big-img">
<img src="@/assets/detection/big.png">
</div>
<img v-if="(camera2Status === '已连接' && camera2ImgSrc)" :src="camera2ImgSrc" alt="camera2"
style="width: 100%; height: 100%;" />
<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>
</div> </div>
</div> </div>
@ -372,9 +709,11 @@
<div>提示</div> <div>提示</div>
<img src="@/assets/header/closepage.png" alt="" style="cursor: pointer;" @click="handleCancel"> <img src="@/assets/header/closepage.png" alt="" style="cursor: pointer;" @click="handleCancel">
</div> </div>
<div class="pop-up-tip-text">本次检测未截图或录像操作不予存档记录</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">
<el-button type="primary" class="tipconfirmbutton" @click="closeTipClick">确定</el-button> <el-button v-if="!isVideoOperation" type="primary" class="tipconfirmbutton" @click="closeTipClick">确定</el-button>
<el-button v-if="isVideoOperation" type="primary" class="tipconfirmbutton" @click="isDiagnosticMessage = true">确定</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -393,7 +732,7 @@
<div class="pop-up-camera-container"> <div class="pop-up-camera-container">
<div class="pop-up-camera-header"> <div class="pop-up-camera-header">
<div>相机参数设置</div> <div>相机参数设置</div>
<img src="@/assets/header/closepage.png" alt="" style="cursor: pointer;" @click="handleCameraCancel"> <img src="@/assets/close.png" alt="" style="cursor: pointer;" @click="handleCameraCancel">
</div> </div>
<div class="pop-up-camera-body"> <div class="pop-up-camera-body">
<div class="pop-up-camera-display"> <div class="pop-up-camera-display">
@ -407,12 +746,14 @@
<div style="margin: 0 10px;"></div> <div style="margin: 0 10px;"></div>
<el-input v-model="cameraForm.femtobolt.depth_range_max" placeholder="请输入最大值" <el-input v-model="cameraForm.femtobolt.depth_range_max" placeholder="请输入最大值"
style="width: 200px;"/> style="width: 200px;"/>
<el-checkbox v-model="cameraForm.femtobolt.enabled" label="有效" size="large" style="width: 60px;margin-left:10px ;" />
</div> </div>
<div class="pop-up-camera-display" style="padding-top: 40px;padding-bottom: 20px;"> <div class="pop-up-camera-display" style="padding-top: 30px;padding-bottom: 10px;">
<div class="pop-up-camera-line"></div> <div class="pop-up-camera-line"></div>
<div class="pop-up-camera-title">足部相机</div> <div class="pop-up-camera-title">足部相机</div>
</div> </div>
<div class="pop-up-camera-display" style="padding-top: 20px;"> <div class="pop-up-camera-display" style="padding-top: 0px;">
<div class="pop-up-camera-name">相机上</div> <div class="pop-up-camera-name">相机上</div>
<el-radio-group v-model="cameraForm.camera1.device_index"> <el-radio-group v-model="cameraForm.camera1.device_index">
<div style="display: flex;justify-content: space-between;width: 435px;"> <div style="display: flex;justify-content: space-between;width: 435px;">
@ -423,8 +764,9 @@
<el-radio :value="5" border>5</el-radio> <el-radio :value="5" border>5</el-radio>
</div> </div>
</el-radio-group> </el-radio-group>
<el-checkbox v-model="cameraForm.camera1.enabled" label="有效" size="large" style="width: 60px;margin-left:10px ;" />
</div> </div>
<div class="pop-up-camera-display" style="padding-top: 30px;"> <div class="pop-up-camera-display" style="padding-top: 20px;">
<div class="pop-up-camera-name">相机下</div> <div class="pop-up-camera-name">相机下</div>
<el-radio-group v-model="cameraForm.camera2.device_index"> <el-radio-group v-model="cameraForm.camera2.device_index">
<div style="display: flex;justify-content: space-between;width: 435px;"> <div style="display: flex;justify-content: space-between;width: 435px;">
@ -435,6 +777,19 @@
<el-radio :value="5" border>5</el-radio> <el-radio :value="5" border>5</el-radio>
</div> </div>
</el-radio-group> </el-radio-group>
<el-checkbox v-model="cameraForm.camera2.enabled" label="有效" size="large" style="width: 60px;margin-left:10px ;" />
</div>
<div class="pop-up-camera-display" style="padding-top: 30px;padding-bottom: 00px;">
<div class="pop-up-camera-line"></div>
<div class="pop-up-camera-title">遥控器</div>
</div>
<div class="pop-up-camera-display" style="padding-top: 10px;">
<div class="pop-up-camera-name">串口号</div>
<el-select v-model="cameraForm.remote.port" placeholder="请选择" style="width: 434px;">
<el-option v-for="item in remotePortData" :label="item" :value="item" />
</el-select>
<el-checkbox v-model="cameraForm.remote.enabled" label="有效" size="large" style="width: 60px;margin-left:10px ;" />
</div> </div>
<div class="form-actions-display"> <div class="form-actions-display">
<el-button @click="handleCameraCancel" class="formreturnCancel">退出</el-button> <el-button @click="handleCameraCancel" class="formreturnCancel">退出</el-button>
@ -498,16 +853,21 @@ const props = defineProps({
required: false, required: false,
type: Object, type: Object,
default: null default: null
} },
}) })
const remotePortData =ref([]) //
const videoNum = ref(2) //
const videoTop = ref(1) //
const isExpand = ref(false) //
const isViewUser = ref(false) // const isViewUser = ref(false) //
const isCloseCreat =ref(false) // const isCloseCreat =ref(false) //
const isoperation = ref(false) // const isoperation = ref(false) //
const isVideoOperation = ref(false) //
const isTip =ref(false) const isTip =ref(false)
const isStartVideo = ref(false) const isStartVideo = ref(false)
function startVideoClick() { function startVideoClick() {
startRecord() startRecord()
isoperation.value = true isVideoOperation.value = true
isStartVideo.value = true isStartVideo.value = true
} }
function stopVideoClick() { function stopVideoClick() {
@ -562,7 +922,6 @@ const screenshotLoading = ref(false)
const cameraDialogVisible =ref(false) // const cameraDialogVisible =ref(false) //
const contenGridRef =ref(null) // box const contenGridRef =ref(null) // box
const wholeBodyRef = ref(null) // 姿ref const wholeBodyRef = ref(null) // 姿ref
const videoImgRef =ref(null) // ref
const camera1Ref = ref(null) const camera1Ref = ref(null)
const camera2Ref = ref(null) const camera2Ref = ref(null)
const historyDialogVisible = ref(false) const historyDialogVisible = ref(false)
@ -654,6 +1013,10 @@ const cameraForm = ref({ // 相机参数
}, },
imu:{ imu:{
port: '', // IMU port: '', // IMU
},
remote:{
port: '', // IMU
enabled: false
} }
}) })
const calculatedAge = ref(null) const calculatedAge = ref(null)
@ -891,6 +1254,9 @@ function cameraUpdate() { // 相机设置数据更新弹框
}, },
imu:{ imu:{
port: '', // IMU port: '', // IMU
},
remote:{
port: '', // IMU
} }
} }
// //
@ -1598,7 +1964,6 @@ async function handleDiagnosticInfo(status) {
// //
async function saveDetectionData() { async function saveDetectionData() {
console.log(tempInfo.value)
if (screenshotLoading.value) return if (screenshotLoading.value) return
let titile_height = 24 let titile_height = 24
try { try {
@ -1734,15 +2099,15 @@ async function sendDetectionData(data) {
} }
// / // /
async function handleStartStop() { // async function handleStartStop() {
if (isRecording.value) { // if (isRecording.value) {
// // //
await stopRecord() // await stopRecord()
} else { // } else {
// // //
await startRecord() // await startRecord()
} // }
} // }
// //
async function startDetection() { async function startDetection() {
try { try {
@ -1995,7 +2360,10 @@ const getDevicesInit = async () => {
} }
onMounted(() => { onMounted(() => {
for(let i = 0; i < 20; i++){
let port = "COM" + (i + 1)
remotePortData.value.push(port)
}
if (authStore.currentUser) { if (authStore.currentUser) {
console.log(authStore.currentUser) console.log(authStore.currentUser)
creatorId.value = authStore.currentUser.id creatorId.value = authStore.currentUser.id
@ -2084,6 +2452,10 @@ const startRecord = async () => { // 开始录屏
} }
let screen_location = contenGridRef.value.getBoundingClientRect() let screen_location = contenGridRef.value.getBoundingClientRect()
let femtobolt_location = wholeBodyRef.value.getBoundingClientRect() let femtobolt_location = wholeBodyRef.value.getBoundingClientRect()
let camera1_location = camera1Ref.value?.getBoundingClientRect() let camera1_location = camera1Ref.value?.getBoundingClientRect()
let camera2_location = camera2Ref.value?.getBoundingClientRect() let camera2_location = camera2Ref.value?.getBoundingClientRect()
let titile_height = 24 let titile_height = 24
@ -2199,8 +2571,8 @@ function refreshClick(type) {
async function closeDiagnosticMessage(e){ async function closeDiagnosticMessage(e){
isDiagnosticMessage.value = false isDiagnosticMessage.value = false
if(e == '退出'){ if(e == '关闭'){
emit('endChange',false) isTip.value = false
} }
if (e === true || (typeof e === 'object' && e)){ if (e === true || (typeof e === 'object' && e)){
try { try {
@ -2262,8 +2634,8 @@ function closePatientProfile(){
function closeViewUserInfo(){ function closeViewUserInfo(){
isViewUser.value = false isViewUser.value = false
} }
function viewClick(){ function viewClick(e){
isViewUser.value = true isExpand.value = e
} }
</script> </script>
@ -2313,6 +2685,11 @@ function viewClick(){
margin-left: 10px; margin-left: 10px;
cursor: pointer; cursor: pointer;
} }
.icon-box:hover{
/* background-color: #14AAFF; */
background-color: rgb(20 170 255 / 30%);
border: 1px solid rgb(20 170 255 / 50%);
}
.startvideo-box{ .startvideo-box{
width: 130px; width: 130px;
display: flex; display: flex;
@ -2523,13 +2900,36 @@ function viewClick(){
} }
.body-userinfo-box{ .body-userinfo-box{
position: relative;
z-index: 10;
width: 100%; width: 100%;
height: 348px ; 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, 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 #262d40; border: 1px solid #262d40;
border-radius: 4px; border-radius: 4px;
} }
.body-userinfo-expandbox{
height: 638px ;
}
.body-userinfo-box1{
width: 100%;
height: 534px ;
/* 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%);
border: 1px solid #262d40;
border-radius: 4px;
}
.body-userinfo-box3{
width: 100%;
height: 100% ;
/* 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%);
border: 1px solid #262d40;
border-radius: 4px;
}
.body-video-box{ .body-video-box{
width: 100%; width: 100%;
height: calc(100% - 348px - 14px) ; height: calc(100% - 348px - 14px) ;
@ -2539,6 +2939,14 @@ function viewClick(){
border-radius: 4px; border-radius: 4px;
margin-top: 15px; margin-top: 15px;
} }
.body-video-box1{
width: 100%;
height: calc(100% - 534px - 14px) ;
background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
border: 1px solid #262d40;
border-radius: 4px;
margin-top: 15px;
}
.body-userinfo-content{ .body-userinfo-content{
width: 100%; width: 100%;
height: calc(100% - 50px); height: calc(100% - 50px);
@ -2564,7 +2972,85 @@ function viewClick(){
border-radius: 8px; border-radius: 8px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
align-content: space-around; align-content: start;
border-width: 0px 1px 1px;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-right-color: rgb(55, 65, 81);
border-bottom-color: rgb(55, 65, 81);
border-left-color: rgb(55, 65, 81);
border-top-style: initial;
border-top-color: initial;
border-radius: 0px 0px 8px 8px;
box-shadow: none;
font-family: "Noto Sans SC";
font-weight: 400;
font-style: normal;
}
.body-userinfo-content-bottom0{
padding:10px;
padding-top: 20px;
position: relative;
width: calc(100%);
height: calc(100% - 116px);
border-radius: 8px;
display: flex;
flex-wrap: wrap;
align-content: start;
border-width: 0px 1px 1px;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-right-color: rgb(55, 65, 81);
border-bottom-color: rgb(55, 65, 81);
border-left-color: rgb(55, 65, 81);
border-top-style: initial;
border-top-color: initial;
border-radius: 0px 0px 8px 8px;
box-shadow: none;
font-family: "Noto Sans SC";
font-weight: 400;
font-style: normal;
}
.body-userinfo-content-bottom1{
padding:10px;
padding-top: 10px;
position: relative;
width: calc(100%);
height: calc(100% - 116px);
border-radius: 8px;
display: flex;
flex-wrap: wrap;
align-content: start;
border-width: 0px 1px 1px;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-right-color: rgb(55, 65, 81);
border-bottom-color: rgb(55, 65, 81);
border-left-color: rgb(55, 65, 81);
border-top-style: initial;
border-top-color: initial;
border-radius: 0px 0px 8px 8px;
box-shadow: none;
font-family: "Noto Sans SC";
font-weight: 400;
font-style: normal;
}
.body-userinfo-content-bottom2{
padding:10px;
padding-top: 20px;
position: relative;
width: calc(100%);
height: calc(100% - 116px);
border-radius: 8px;
display: flex;
flex-wrap: wrap;
align-content: start;
border-width: 0px 1px 1px; border-width: 0px 1px 1px;
border-right-style: solid; border-right-style: solid;
border-bottom-style: solid; border-bottom-style: solid;
@ -2583,11 +3069,45 @@ function viewClick(){
.userinfo-disyplay1{ .userinfo-disyplay1{
display: flex; display: flex;
width: calc(64%); width: calc(64%);
padding-top: 20px;
} }
.userinfo-disyplay2{ .userinfo-disyplay2{
display: flex; display: flex;
width: calc(36%); width: calc(36%);
padding-top: 20px;
} }
.userinfo-disyplaypadding1{
width: calc(64%);
padding-bottom: 15px;
}
.padding10{
padding-bottom: 5px;
}
.userinfo-disyplaypadding2{
width: calc(36%);
padding-bottom: 15px;
}
.userinfo-disyplaypadding3{
width: calc(100%);
padding-bottom: 15px;
}
.userinfo-disyplaypadding4{
/* display: flex; */
width: calc(64%);
padding-bottom: 5px;
}
.userinfo-disyplaypadding5{
/* display: flex; */
width: calc(36%);
padding-bottom: 5px;
}
.userinfo-disyplaypadding6{
/* display: flex; */
width: calc(100%);
padding-bottom: 5px;
}
.useravatar-box{ .useravatar-box{
width: 80px; width: 80px;
height: 80px; height: 80px;
@ -2668,11 +3188,17 @@ function viewClick(){
width: 100%; width: 100%;
height: calc(50% - 7px); height: calc(50% - 7px);
} }
.body-video-imgbox2{ .body-video-imgbox2{
position: relative; position: relative;
width: 100%; width: 100%;
height: calc(50% - 8px); height: calc(50% - 8px);
} }
.body-video-imgbox3{
position: relative;
width: 100%;
height: calc(100%);
}
.patientInfotop1{ .patientInfotop1{
font-weight: 700; font-weight: 700;
font-style: normal; font-style: normal;
@ -2723,8 +3249,8 @@ function viewClick(){
/* background: linear-gradient(135deg, rgba(53, 67, 90, 1) 0%, rgba(53, 67, 90, 1) 0%, rgba(62, 79, 105, 1) 99%, rgba(62, 79, 105, 1) 100%); */ /* background: linear-gradient(135deg, rgba(53, 67, 90, 1) 0%, rgba(53, 67, 90, 1) 0%, rgba(62, 79, 105, 1) 99%, rgba(62, 79, 105, 1) 100%); */
} }
.pop-up-camera-container{ .pop-up-camera-container{
width: 608px; width: 668px;
height:495px; height:540px;
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
@ -2947,7 +3473,7 @@ function viewClick(){
cursor:pointer; cursor:pointer;
} }
.calibration-zero:hover{ .calibration-zero:hover{
background-color: #5189ff; background-color: #14AAFF;
} }
.noImageSvg-bg{ .noImageSvg-bg{
display:flex; display:flex;
@ -2981,7 +3507,7 @@ function viewClick(){
color: #FFFFFF; color: #FFFFFF;
} }
.pop-up-camera-container .formsaveCancel:hover{ .pop-up-camera-container .formsaveCancel:hover{
background: #5189ff; background: #14AAFF;
color:#ffffff; color:#ffffff;
} }
.big-img{ .big-img{
@ -2996,4 +3522,25 @@ function viewClick(){
justify-content: center; justify-content: center;
cursor: pointer; cursor: pointer;
} }
</style>
<style>
.pop-up-camera-display .el-select__placeholder {
color: #ffffff;
font-size: 14px;
}
.pop-up-camera-display .el-select__wrapper {
background-color: #2a3649;
border-width: 1px;
border-style: solid;
border-color: transparent;
border-radius: 4px;
box-shadow: none;
height: 40px;
}
.pop-up-camera-display .el-select__wrapper:hover{
border-color: #3d4c65;
box-shadow: 0 0 0 1px transparent inset;
}
</style> </style>

View File

@ -4,7 +4,7 @@
<div class="form-container"> <div class="form-container">
<div class="form-container-header"> <div class="form-container-header">
<div>诊断信息</div> <div>诊断信息</div>
<img src="@/assets/header/closepage.png" alt="" style="cursor: pointer;" @click="handleCancel('关闭')"> <img src="@/assets/close.png" alt="" style="cursor: pointer;" @click="handleCancel('关闭')">
</div> </div>
<div style="padding:20px 40px;"> <div style="padding:20px 40px;">
<el-form :model="diagnosticForm" label-width="60px"> <el-form :model="diagnosticForm" label-width="60px">
@ -77,7 +77,7 @@
style="cursor: pointer;margin-left: 10px;"> style="cursor: pointer;margin-left: 10px;">
</el-tooltip> </el-tooltip>
<el-tooltip content="删除" placement="top"> <el-tooltip content="删除" placement="top">
<img src="@/assets/process/del.png" alt="" @click="removeCommonItem(opt)" <img src="@/assets/process/del.png" alt="" @click="removeCommonItem('treatment',opt)"
style="cursor: pointer;margin-left: 10px;"> style="cursor: pointer;margin-left: 10px;">
</el-tooltip> </el-tooltip>
</div> </div>
@ -132,6 +132,11 @@ const props = defineProps({
type: Object, type: Object,
default: {} default: {}
}, },
isVideoOperation:{
required: false,
type: Boolean,
default: false
},
}) })
const diagnosticForm = ref({ const diagnosticForm = ref({
@ -222,7 +227,57 @@ onMounted(() => {
onMounted(loadCommonItems) onMounted(loadCommonItems)
const handleCancel = async (type) => { const handleCancel = async (type) => {
emit('closeDiagnosticMessage',type) if(type == '关闭'){
emit('closeDiagnosticMessage', '关闭')
return
}
try {
// ID
if (!props.selectedPatient.sessionId) {
throw new Error('缺少会话Id')
}
// API
const response = await fetch(`${BACKEND_URL}/api/detection/${props.selectedPatient.sessionId}/save-info`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
diagnosis_info: "",
treatment_info: "",
suggestion_info: "",
status: 'completed',
session_id: props.selectedPatient.sessionId,
})
})
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${response.statusText}`)
}
const result = await response.json()
if (result.success) {
//
// ElMessage.success({
// message: status + '',
// duration: 5000
// })
emit('closeDiagnosticMessage', {
diagnosis_info: "",
treatment_info: "",
remark_info: ""
})
} else {
throw new Error(result.message || '诊断信息失败')
}
} catch (error) {
ElMessage.error({
message: error?.message || '诊断信息失败',
duration: 5000
})
} finally {
}
} }
async function handleDiagnosticInfo(status) { async function handleDiagnosticInfo(status) {
try { try {

View File

@ -109,12 +109,12 @@
<img :src="BACKEND_URL+'/' + rawData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + rawData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="generateReport-content-title">视频1图片</div> <div v-if="rawData.foot1_image!=null" class="generateReport-content-title">视频1图片</div>
<div style="width: 600px;height: 338px; display: flex;"> <div v-if="rawData.foot1_image!=null" style="width: 600px;height: 338px; display: flex;">
<img :src="BACKEND_URL+'/' + rawData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%;"> <img :src="BACKEND_URL+'/' + rawData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%;">
</div> </div>
<div class="generateReport-content-title">视频2图片</div> <div v-if="rawData.foot2_image!=null" class="generateReport-content-title">视频2图片</div>
<div style="width: 600px;height: 338px; display: flex;"> <div v-if="rawData.foot2_image!=null" style="width: 600px;height: 338px; display: flex;">
<img :src="BACKEND_URL+'/' + rawData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%;"> <img :src="BACKEND_URL+'/' + rawData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%;">
</div> </div>
</div> </div>
@ -176,12 +176,12 @@
<img :src="BACKEND_URL+'/' + calibrationData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + calibrationData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="generateReport-content-title">视频1图片</div> <div v-if="calibrationData.foot1_image !=null" class="generateReport-content-title">视频1图片</div>
<div style="width: 600px;height: 338px; display: flex;"> <div v-if="calibrationData.foot1_image !=null" style="width: 600px;height: 338px; display: flex;">
<img :src="BACKEND_URL+'/' + calibrationData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%;"> <img :src="BACKEND_URL+'/' + calibrationData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%;">
</div> </div>
<div class="generateReport-content-title">视频2图片</div> <div v-if="calibrationData.foot2_image !=null" class="generateReport-content-title">视频2图片</div>
<div style="width: 600px;height: 338px; display: flex;"> <div v-if="calibrationData.foot2_image !=null" style="width: 600px;height: 338px; display: flex;">
<img :src="BACKEND_URL+'/' + calibrationData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%;"> <img :src="BACKEND_URL+'/' + calibrationData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%;">
</div> </div>
</div> </div>

View File

@ -321,7 +321,7 @@ function userConfirm(){
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%); 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-weight: 400;
font-style: normal; font-style: normal;
color: rgb(255, 255, 255); color: rgba(255, 255, 255,0.8);
font-size:14px; font-size:14px;
text-align: center; text-align: center;
} }
@ -329,11 +329,12 @@ function userConfirm(){
.badge-valid { .badge-valid {
text-align: center; text-align: center;
background-color: rgba(59, 242, 198, 1); 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%);
color: rgba(255, 255, 255, 0.8);
font-weight:400; font-weight:400;
font-style:normal; font-style:normal;
font-size:14px; font-size:14px;
color:#191D28;
} }
.activate-btn { .activate-btn {
width: 76px; width: 76px;

View File

@ -56,7 +56,8 @@
<img :src="BACKEND_URL+'/' + ImageDetailsInfo.foot_data_image" alt="" style="width: 100%;height: 100%;object-fit:contain;"> <img :src="BACKEND_URL+'/' + ImageDetailsInfo.foot_data_image" alt="" style="width: 100%;height: 100%;object-fit:contain;">
</div> </div>
<div class="ImageDetails-content-imgbox" v-if="indexActive == 4"> <div class="ImageDetails-content-imgbox" v-if="indexActive == 4">
<div style="display: flex;justify-content: center;align-items: center;flex-wrap: wrap;"> <div v-if="ImageDetailsInfo.foot1_image != null && ImageDetailsInfo.foot1_image != ''"
style="display: flex;justify-content: center;align-items: center;flex-wrap: wrap;">
<div style="width: 100%;text-align: center;font-weight: 700; <div style="width: 100%;text-align: center;font-weight: 700;
font-style: normal; font-style: normal;
font-size: 20px; font-size: 20px;
@ -67,7 +68,8 @@
</div> </div>
</div> </div>
<div style="display: flex;justify-content: center;align-items: center;flex-wrap: wrap;"> <div v-if="ImageDetailsInfo.foot2_image != null && ImageDetailsInfo.foot2_image != ''"
style="display: flex;justify-content: center;align-items: center;flex-wrap: wrap;">
<div style="width: 100%;text-align: center;font-weight: 700; <div style="width: 100%;text-align: center;font-weight: 700;
font-style: normal; font-style: normal;
font-size: 20px; font-size: 20px;

View File

@ -122,23 +122,36 @@
</div> </div>
</div> </div>
<div class="ImageDetailsCompare-display" v-if="indexActive == 4"> <div class="ImageDetailsCompare-display" v-if="indexActive == 4">
<div class="ImageDetailsCompare-content-imgbox" style="width: 500px;height: 100%;"> <div v-if="ImageDetailsInfoLeft.foot1_image !=null || ImageDetailsInfoLeft.foot2_image !=null" class="ImageDetailsCompare-content-imgbox" style="width: 500px;height: 100%;">
<div v-if="ImageDetailsInfoLeft.foot1_image !=null">
<div class="ImageDetailsCompare-content-title">{{ ImageDetailsInfoLeft.id }}视频1</div> <div class="ImageDetailsCompare-content-title">{{ ImageDetailsInfoLeft.id }}视频1</div>
<img :src="BACKEND_URL+'/' + ImageDetailsInfoLeft.foot1_image" alt="" <img :src="BACKEND_URL+'/' + ImageDetailsInfoLeft.foot1_image" alt=""
style="width: 500px;height:281px"> style="width: 500px;height:281px">
</div>
<div v-else style="width: 500px;height: 335px;"></div>
<div v-if="ImageDetailsInfoLeft.foot2_image !=null">
<div class="ImageDetailsCompare-content-title" style="margin-top: 30px;">{{ ImageDetailsInfoLeft.id }}视频2</div> <div class="ImageDetailsCompare-content-title" style="margin-top: 30px;">{{ ImageDetailsInfoLeft.id }}视频2</div>
<img :src="BACKEND_URL+'/' + ImageDetailsInfoLeft.foot2_image" alt="" <img v-if="ImageDetailsInfoLeft.foot2_image !=null" :src="BACKEND_URL+'/' + ImageDetailsInfoLeft.foot2_image" alt=""
style="width: 500px;height:281px"> style="width: 500px;height:281px">
</div> </div>
<div class="ImageDetailsCompare-content-imgbox" <div v-else style="width: 500px;height: 335px;"></div>
</div>
<div v-if="ImageDetailsInfoRight.foot1_image !=null || ImageDetailsInfoRight.foot2_image !=null" class="ImageDetailsCompare-content-imgbox"
style="width: 500px;height: 100%;margin-left: 50px;"> style="width: 500px;height: 100%;margin-left: 50px;">
<div v-if="ImageDetailsInfoRight.foot1_image !=null">
<div class="ImageDetailsCompare-content-title">{{ ImageDetailsInfoRight.id }}视频1</div> <div class="ImageDetailsCompare-content-title">{{ ImageDetailsInfoRight.id }}视频1</div>
<img :src="BACKEND_URL+'/' + ImageDetailsInfoRight.foot1_image" alt="" <img :src="BACKEND_URL+'/' + ImageDetailsInfoRight.foot1_image" alt=""
style="width: 500px;height:281px"> style="width: 500px;height:281px">
</div>
<div v-else style="width: 500px;height: 335px;"></div>
<div v-if="ImageDetailsInfoRight.foot2_image !=null" >
<div class="ImageDetailsCompare-content-title" style="margin-top: 30px;">{{ ImageDetailsInfoRight.id }}视频2</div> <div class="ImageDetailsCompare-content-title" style="margin-top: 30px;">{{ ImageDetailsInfoRight.id }}视频2</div>
<img :src="BACKEND_URL+'/' + ImageDetailsInfoRight.foot2_image" alt="" <img v-if="ImageDetailsInfoRight.foot2_image !=null" :src="BACKEND_URL+'/' + ImageDetailsInfoRight.foot2_image" alt=""
style="width: 500px;height:281px"> style="width: 500px;height:281px">
</div> </div>
<div v-else style="width: 500px;height: 335px;"></div>
</div>
</div> </div>
</div> </div>
<div style="display: flex;justify-content: center; margin-top: 35px;"> <div style="display: flex;justify-content: center; margin-top: 35px;">

View File

@ -341,8 +341,6 @@ const activatePackage = async () => {
} }
.tab-content .formsaveCancel:hover{ .tab-content .formsaveCancel:hover{
/* background: #5189ff;
border: 1px solid #5189ff; */
background:#14aaff; background:#14aaff;
border:1px solid #14aaff; border:1px solid #14aaff;
@ -403,7 +401,7 @@ const activatePackage = async () => {
color: #fff; color: #fff;
} }
.activatePackage:hover{ .activatePackage:hover{
background: #5189ff; background: #14AAFF;
border-color: #5189ff; border-color: #14AAFF;
} }
</style> </style>

View File

@ -4,7 +4,7 @@
<div class="form-container"> <div class="form-container">
<div class="form-container-header"> <div class="form-container-header">
<div>{{ patienttitle }} </div> <div>{{ patienttitle }} </div>
<img src="@/assets/header/closepage.png" alt="" style="cursor: pointer;" @click="handleCancel"> <img src="@/assets/close.png" alt="" style="cursor: pointer;" @click="handleCancel">
</div> </div>
<el-form ref="patientFormRef" :model="patientForm" :rules="formRules" label-width="80px" class="patient-form"> <el-form ref="patientFormRef" :model="patientForm" :rules="formRules" label-width="80px" class="patient-form">
<div class="form-section"> <div class="form-section">

View File

@ -88,11 +88,14 @@
</el-button> --> </el-button> -->
</div> </div>
</div> </div>
<el-table :data="recordData" style=" <el-table
ref="recordDataRef"
:data="recordData" style="
margin-left: 10px; margin-left: 10px;
margin-top: 10px; margin-top: 10px;
width: calc(100% - 20px);height: calc(100% - 70px);" width: calc(100% - 20px);height: calc(100% - 70px);"
@cell-click="selectRecord" @selection-change="handleSelectionChange" @cell-click="selectRecord" @selection-change="handleSelectionChange"
row-key="id"
highlight-current-row> highlight-current-row>
<el-table-column type="selection" width="30" /> <el-table-column type="selection" width="30" />
<el-table-column prop="start_time" label="就诊时间" width="180" align="center" /> <el-table-column prop="start_time" label="就诊时间" width="180" align="center" />
@ -136,8 +139,12 @@
<div class="patientprofile-son-text">测试医生{{ selectedRecord.creator_name }}</div> <div class="patientprofile-son-text">测试医生{{ selectedRecord.creator_name }}</div>
<div class="patientprofile-son-text">就诊时间{{ selectedRecord.start_time }}</div> <div class="patientprofile-son-text">就诊时间{{ selectedRecord.start_time }}</div>
<div class="patientprofile-son-text">档案ID{{ selectedRecord.id }}</div> <div class="patientprofile-son-text">档案ID{{ selectedRecord.id }}</div>
<div v-if="archiveType == true" class="patientprofile-son-detectiontext">正在检测</div> <div v-if="selectedRecord.status =='checked'"
class="patientprofile-son-detectiontext">已完成检查</div>
<div v-if="selectedRecord.status =='completed'"
class="patientprofile-son-detectiontext">已诊断处理</div>
<div v-if="selectedRecord.status =='reported'"
class="patientprofile-son-detectiontext">已生成报告</div>
</div> </div>
</div> </div>
<div class="patientprofile-container-bottombox"> <div class="patientprofile-container-bottombox">
@ -154,7 +161,7 @@
@click="viewCompareImg"> @click="viewCompareImg">
<img v-if="checkboxGroup.length == 2" src="@/assets/new/bi2.png" alt="" style="margin-right: 8px;"> <img v-if="checkboxGroup.length == 2" src="@/assets/new/bi2.png" alt="" style="margin-right: 8px;">
<img v-else src="@/assets/new/bi.png" alt="" style="margin-right: 8px;"> <img v-else src="@/assets/new/bi.png" alt="" style="margin-right: 8px;">
查看 对比
</el-button> </el-button>
<el-button class="button-width70" type="primary" <el-button class="button-width70" type="primary"
:class="checkboxGroup.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'" :class="checkboxGroup.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@ -347,7 +354,7 @@
style="cursor: pointer;margin-left: 10px;"> style="cursor: pointer;margin-left: 10px;">
</el-tooltip> </el-tooltip>
<el-tooltip content="删除" placement="top"> <el-tooltip content="删除" placement="top">
<img src="@/assets/process/del.png" alt="" @click="removeCommonItem(opt)" <img src="@/assets/process/del.png" alt="" @click="removeCommonItem('treatment',opt)"
style="cursor: pointer;margin-left: 10px;"> style="cursor: pointer;margin-left: 10px;">
</el-tooltip> </el-tooltip>
</div> </div>
@ -398,7 +405,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'
const recordDataRef = ref(null)
const formatDate = (date) => { const formatDate = (date) => {
const d = new Date(date) const d = new Date(date)
const y = d.getFullYear() const y = d.getFullYear()
@ -617,6 +624,10 @@ const sessionsInit = async () => {
recordData.value = response.data.sessions recordData.value = response.data.sessions
if (recordData.value && recordData.value.length > 0) { if (recordData.value && recordData.value.length > 0) {
const first = recordData.value[0] const first = recordData.value[0]
if( first != null){
recordDataRef.value?.setCurrentRow(recordData.value[0], true); // true
}
selectedRecord.value = first selectedRecord.value = first
sessionsId.value = first.id sessionsId.value = first.id
profileInfo.value = { profileInfo.value = {
@ -724,14 +735,6 @@ function deletePDF(id) {
} }
function deleteClick(row){ function deleteClick(row){
// checking
// if (row.status === 'checking') {
// ElMessage.warning({
// message: '',
// duration: 3000
// });
// return;
// }
deleteId.value = row.id deleteId.value = row.id
delType.value = 'listone' delType.value = 'listone'
tipValue.value = '确定删除此检测记录吗?' tipValue.value = '确定删除此检测记录吗?'
@ -1138,7 +1141,7 @@ historyAPI.VideoDelById(ids).then((response)=>{
width: 98px; width: 98px;
height: 40px; height: 40px;
background: inherit; background: inherit;
background-color: rgba(55, 65, 81, 1); background-color: rgba(55, 65, 81, 1) !important;
border-radius: 4px; border-radius: 4px;
box-shadow: 0 0 0 rgba(55, 65, 81, 1) ; box-shadow: 0 0 0 rgba(55, 65, 81, 1) ;
border-color: rgba(55, 65, 81, 1); border-color: rgba(55, 65, 81, 1);
@ -1161,7 +1164,9 @@ historyAPI.VideoDelById(ids).then((response)=>{
color: #fff; color: #fff;
cursor: pointer; cursor: pointer;
} }
.patientprofile-selectedbutotn:hover{
background-color: #14AAFF;
}
</style> </style>
<style> <style>
.patient-profile-container .el-table { .patient-profile-container .el-table {
@ -1363,6 +1368,10 @@ historyAPI.VideoDelById(ids).then((response)=>{
.button-width70{ .button-width70{
width: 70px !important; width: 70px !important;
height: 26px !important; height: 26px !important;
}
.button-width70:hover{
background: #14AAFF;
} }
.patientprofile-arrowbox{ .patientprofile-arrowbox{
width: 70px; width: 70px;
@ -1685,4 +1694,7 @@ historyAPI.VideoDelById(ids).then((response)=>{
.el-select__input{ .el-select__input{
color: #ffffff; color: #ffffff;
} }
.patient-profile-container .el-table tr.el-table__row.current-row>td.el-table__cell{
background-color: #194764 !important;
}
</style> </style>

View File

@ -900,15 +900,6 @@ const deleteClick = async (row,row2) => {
const sessionsDelById = async (row) => { const sessionsDelById = async (row) => {
// checking
if (row.status === 'checking') {
ElMessage.warning({
message: '平衡体态检查中,不能删除!',
duration: 3000
});
return;
}
ElMessageBox.confirm( ElMessageBox.confirm(
'确定义删除此条数据?', '确定义删除此条数据?',
'提示', '提示',

View File

@ -105,12 +105,12 @@
<img :src="BACKEND_URL+'/' + rawData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + rawData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="PopUpOnlyReport-content-title">视频1图片</div> <div v-if="rawData.foot1_image != null" class="PopUpOnlyReport-content-title">视频1图片</div>
<div style="width: 600px;height: 338px; display: flex; margin: auto;"> <div v-if="rawData.foot1_image != null" style="width: 600px;height: 338px; display: flex; margin: auto;">
<img :src="BACKEND_URL+'/' + rawData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%;"> <img :src="BACKEND_URL+'/' + rawData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%;">
</div> </div>
<div class="PopUpOnlyReport-content-title">视频2图片</div> <div v-if="rawData.foot2_image != null" class="PopUpOnlyReport-content-title">视频2图片</div>
<div style="width: 600px;height: 338px; display: flex; margin: auto;"> <div v-if="rawData.foot2_image != null" style="width: 600px;height: 338px; display: flex; margin: auto;">
<img :src="BACKEND_URL+'/' + rawData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%;"> <img :src="BACKEND_URL+'/' + rawData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%;">
</div> </div>
</div> </div>

View File

@ -106,12 +106,12 @@
<img :src="BACKEND_URL+'/' + rawData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + rawData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="PopUpReport-content-title">视频1图片</div> <div v-if="rawData.foot1_image != null" class="PopUpReport-content-title">视频1图片</div>
<div style="width: 90%;height: 230px; display: flex;"> <div v-if="rawData.foot1_image != null" style="width: 90%;height: 230px; display: flex;">
<img :src="BACKEND_URL+'/' + rawData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%;"> <img :src="BACKEND_URL+'/' + rawData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%;">
</div> </div>
<div class="PopUpReport-content-title">视频2图片</div> <div v-if="rawData.foot2_image != null" class="PopUpReport-content-title">视频2图片</div>
<div style="width: 90%;height: 230px; display: flex;"> <div v-if="rawData.foot2_image != null" style="width: 90%;height: 230px; display: flex;">
<img :src="BACKEND_URL+'/' + rawData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%;"> <img :src="BACKEND_URL+'/' + rawData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%;">
</div> </div>
</div> </div>
@ -171,12 +171,12 @@
<img :src="BACKEND_URL+'/' + calibrationData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + calibrationData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="PopUpReport-content-title">视频1图片</div> <div v-if="calibrationData.foot1_image != null" class="PopUpReport-content-title">视频1图片</div>
<div style="width: 90%;height: 230px; display: flex;"> <div v-if="calibrationData.foot1_image != null" style="width: 90%;height: 230px; display: flex;">
<img :src="BACKEND_URL+'/' + calibrationData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%;"> <img :src="BACKEND_URL+'/' + calibrationData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%;">
</div> </div>
<div class="PopUpReport-content-title">视频2图片</div> <div v-if="calibrationData.foot2_image != null" class="PopUpReport-content-title">视频2图片</div>
<div style="width: 90%;height: 230px; display: flex;"> <div v-if="calibrationData.foot2_image != null" style="width: 90%;height: 230px; display: flex;">
<img :src="BACKEND_URL+'/' + calibrationData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%;"> <img :src="BACKEND_URL+'/' + calibrationData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%;">
</div> </div>
</div> </div>

View File

@ -113,12 +113,12 @@
<img :src="BACKEND_URL+'/' + rawOneData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + rawOneData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="ReportComparison-content-title">视频1图片</div> <div v-if="rawOneData.foot1_image != null" class="ReportComparison-content-title">视频1图片</div>
<div style="width: 90%;height:180px; display: flex;"> <div v-if="rawOneData.foot1_image != null" style="width: 90%;height:180px; display: flex;">
<img :src="BACKEND_URL+'/' + rawOneData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;"> <img :src="BACKEND_URL+'/' + rawOneData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;">
</div> </div>
<div class="ReportComparison-content-title">视频2图片</div> <div v-if="rawOneData.foot2_image != null" class="ReportComparison-content-title">视频2图片</div>
<div style="width: 90%;height:180px; display: flex;"> <div v-if="rawOneData.foot2_image != null" style="width: 90%;height:180px; display: flex;">
<img :src="BACKEND_URL+'/' + rawOneData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;"> <img :src="BACKEND_URL+'/' + rawOneData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;">
</div> </div>
@ -180,12 +180,12 @@
<img :src="BACKEND_URL+'/' + calibrationOneData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + calibrationOneData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="ReportComparison-content-title">视频1图片</div> <div v-if="calibrationOneData.foot1_image != null" class="ReportComparison-content-title">视频1图片</div>
<div style="width: 90%;height:180px; display: flex;"> <div v-if="calibrationOneData.foot1_image != null" style="width: 90%;height:180px; display: flex;">
<img :src="BACKEND_URL+'/' + calibrationOneData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;"> <img :src="BACKEND_URL+'/' + calibrationOneData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;">
</div> </div>
<div class="ReportComparison-content-title">视频2图片</div> <div v-if="calibrationOneData.foot2_image != null" class="ReportComparison-content-title">视频2图片</div>
<div style="width: 90%;height:180px; display: flex;"> <div v-if="calibrationOneData.foot2_image != null" style="width: 90%;height:180px; display: flex;">
<img :src="BACKEND_URL+'/' + calibrationOneData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;"> <img :src="BACKEND_URL+'/' + calibrationOneData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;">
</div> </div>
</div> </div>
@ -257,12 +257,12 @@
<img :src="BACKEND_URL+'/' + rawTwoData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + rawTwoData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="ReportComparison-content-title">视频1图片</div> <div v-if="rawTwoData.foot1_image != null" class="ReportComparison-content-title">视频1图片</div>
<div style="width: 90%;height:180px; display: flex;"> <div v-if="rawTwoData.foot1_image != null" style="width: 90%;height:180px; display: flex;">
<img :src="BACKEND_URL+'/' + rawTwoData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;"> <img :src="BACKEND_URL+'/' + rawTwoData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;">
</div> </div>
<div class="ReportComparison-content-title">视频2图片</div> <div v-if="rawTwoData.foot2_image != null" class="ReportComparison-content-title">视频2图片</div>
<div style="width: 90%;height:180px; display: flex;"> <div v-if="rawTwoData.foot2_image != null" style="width: 90%;height:180px; display: flex;">
<img :src="BACKEND_URL+'/' + rawTwoData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;"> <img :src="BACKEND_URL+'/' + rawTwoData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;">
</div> </div>
@ -324,12 +324,12 @@
<img :src="BACKEND_URL+'/' + calibrationTwoData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%; <img :src="BACKEND_URL+'/' + calibrationTwoData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
object-fit:contain; "> object-fit:contain; ">
</div> </div>
<div class="ReportComparison-content-title">视频1图片</div> <div v-if="calibrationTwoData.foot1_image != null" class="ReportComparison-content-title">视频1图片</div>
<div style="width: 90%;height:180px; display: flex;"> <div v-if="calibrationTwoData.foot1_image != null" style="width: 90%;height:180px; display: flex;">
<img :src="BACKEND_URL+'/' + calibrationTwoData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;"> <img :src="BACKEND_URL+'/' + calibrationTwoData.foot1_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;">
</div> </div>
<div class="ReportComparison-content-title">视频2图片</div> <div v-if="calibrationTwoData.foot2_image != null" class="ReportComparison-content-title">视频2图片</div>
<div style="width: 90%;height:180px; display: flex;"> <div v-if="calibrationTwoData.foot2_image != null" style="width: 90%;height:180px; display: flex;">
<img :src="BACKEND_URL+'/' + calibrationTwoData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;"> <img :src="BACKEND_URL+'/' + calibrationTwoData.foot2_image" alt="" srcset="" style="width: 100%;height: 100%; object-fit:contain;">
</div> </div>
</div> </div>