修改按钮样式,视频判断有几个,诊断信息处理删除bug,视频显示修改
This commit is contained in:
parent
394e79d770
commit
33d5e5a6e5
15
backend/activation_request_W10-F5AC32003C0A160B.json
Normal file
15
backend/activation_request_W10-F5AC32003C0A160B.json
Normal 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"
|
||||
}
|
||||
BIN
frontend/src/renderer/src/assets/close.png
Normal file
BIN
frontend/src/renderer/src/assets/close.png
Normal file
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 |
@ -110,13 +110,13 @@
|
||||
<img :src="BACKEND_URL+'/' + rawOneData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="AloneReportComparison-content-title">视频1图片</div>
|
||||
<div style="width: 90%;height: 230px; display: flex;">
|
||||
<div v-if="rawOneData.foot1_image != null" class="AloneReportComparison-content-title">视频1图片</div>
|
||||
<div v-if="rawOneData.foot1_image != null" style="width: 90%;height: 230px; display: flex;">
|
||||
<img :src="BACKEND_URL+'/' + rawOneData.foot1_image" alt="" srcset=""
|
||||
style="width: 100%;height: 100%;object-fit:contain;">
|
||||
</div>
|
||||
<div class="AloneReportComparison-content-title">视频2图片</div>
|
||||
<div style="width: 90%;height: 230px; display: flex;">
|
||||
<div v-if="rawOneData.foot2_image != null" class="AloneReportComparison-content-title">视频2图片</div>
|
||||
<div v-if="rawOneData.foot2_image != null" style="width: 90%;height: 230px; display: flex;">
|
||||
<img :src="BACKEND_URL+'/' + rawOneData.foot2_image" alt="" srcset=""
|
||||
style="width: 100%;height: 100%;object-fit:contain;">
|
||||
</div>
|
||||
@ -183,13 +183,13 @@
|
||||
<img :src="BACKEND_URL+'/' + rawTwoData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="AloneReportComparison-content-title">视频1图片</div>
|
||||
<div style="width: 90%;height: 230px; display: flex;">
|
||||
<div v-if="rawTwoData.foot1_image !=null" class="AloneReportComparison-content-title">视频1图片</div>
|
||||
<div v-if="rawTwoData.foot1_image !=null" style="width: 90%;height: 230px; display: flex;">
|
||||
<img :src="BACKEND_URL+'/' + rawTwoData.foot1_image" alt="" srcset=""
|
||||
style="width: 100%;height: 100%;object-fit:contain;">
|
||||
</div>
|
||||
<div class="AloneReportComparison-content-title">视频2图片</div>
|
||||
<div style="width: 90%;height: 230px; display: flex;">
|
||||
<div v-if="rawTwoData.foot2_image !=null" class="AloneReportComparison-content-title">视频2图片</div>
|
||||
<div v-if="rawTwoData.foot2_image !=null" style="width: 90%;height: 230px; display: flex;">
|
||||
<img :src="BACKEND_URL+'/' + rawTwoData.foot2_image" alt="" srcset=""
|
||||
style="width: 100%;height: 100%;object-fit:contain;">
|
||||
</div>
|
||||
|
||||
@ -10,8 +10,8 @@
|
||||
<div class="patient-section">
|
||||
<div class="section-header">
|
||||
<div class="search-box">
|
||||
<el-input v-model="search" placeholder="搜索患者姓名" clearable class="search-input"/>
|
||||
<div class="primary-search-buttons" @click="handleSearch">
|
||||
<el-input v-model="search" placeholder="搜索患者姓名" class="search-input"/>
|
||||
<div class="primary-search-buttons" :class="search != ''?'primary-searchactive-buttons':''" @click="handleSearch">
|
||||
搜索
|
||||
</div>
|
||||
</div>
|
||||
@ -33,10 +33,11 @@
|
||||
<el-table-column prop="updated_at" label="最近检测时间" min-width="100" align="center" />
|
||||
<el-table-column prop="status" label="状态" align="center" width="120">
|
||||
<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-else-if="scope.row.status === 'reported'" class="processed-status">报告已生成</div>
|
||||
<div v-else class="processed-status">{{ scope.row.status }}</div>
|
||||
|
||||
<div v-if="scope.row.status === 'checked'" class="processed-status">已完成检查</div>
|
||||
<div v-else-if="scope.row.status === 'completed'" class="processed-status">已诊断处理</div>
|
||||
<div v-else-if="scope.row.status === 'reported'" class="processed-status">已生成报告</div>
|
||||
<div v-else class="unprocessed-status">未检测</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<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){
|
||||
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
|
||||
} else if (Array.isArray(response.data)) {
|
||||
patients.value = (response.data || []).map(p => {
|
||||
@ -457,7 +463,7 @@ const loadPatients = async (type) => {
|
||||
const lastcheck = mh && mh.lastcheck_time ? mh.lastcheck_time : ''
|
||||
return { ...p, doctor, status, updated_at: lastcheck || p.updated_at }
|
||||
})
|
||||
|
||||
debugger
|
||||
if(type === '01' && patients.value[rowIndex.value] != null){
|
||||
rowIndex.value = 0
|
||||
tableRef.value?.setCurrentRow(patients.value[0], true); // 第二个参数为 true 表示选中
|
||||
@ -500,7 +506,7 @@ async function delClick(id) {
|
||||
type: 'success',
|
||||
message: '删除成功',
|
||||
});
|
||||
loadPatients()
|
||||
loadPatients("01")
|
||||
} else {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
@ -519,7 +525,7 @@ function closecreatbox(e,e2){
|
||||
if(e == '关闭'){
|
||||
// isDetection.value = true
|
||||
}else if(e == '新建') {
|
||||
loadPatients()
|
||||
loadPatients("01")
|
||||
}else if(e == '编辑') {
|
||||
if (rowIndex.value >= 0 && patients.value[rowIndex.value]) {
|
||||
patients.value[rowIndex.value] = { ...patients.value[rowIndex.value], ...e2 }
|
||||
@ -1286,6 +1292,12 @@ function editClick(){
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
.primary-view-profile:hover{
|
||||
background-color: #14aaff !important;
|
||||
}
|
||||
.primary-add-buttons:hover{
|
||||
background-color: #14aaff !important;
|
||||
}
|
||||
.creat-patient-box{
|
||||
position: fixed;
|
||||
z-index: 99;
|
||||
@ -1313,12 +1325,16 @@ function editClick(){
|
||||
font-size: 14px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
.primary-searchactive-buttons{
|
||||
background-color: #0b94d5;
|
||||
}
|
||||
.primary-searchactive-buttons:hover{
|
||||
background-color: #14AAFF;
|
||||
}
|
||||
.primary-add-buttons{
|
||||
width: 126px;
|
||||
height: 32px;
|
||||
background-color: rgba(11, 148, 213, 1);
|
||||
background-color: #0b94d5;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
|
||||
@ -71,9 +71,9 @@
|
||||
<img v-if="(femtoboltStatus === '已连接' && depthCameraImgSrc)" :src="depthCameraImgSrc" alt="深度相机视频流"
|
||||
style="width: 100%;height: calc(100%);">
|
||||
<!-- object-fit:contain; -->
|
||||
<div v-else style="width:60px;height:60px">
|
||||
<img :src="noImageSvg" >
|
||||
<div style="font-size:14px;color:#ffffff99">连接失败</div>
|
||||
<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>
|
||||
@ -189,7 +189,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="body-footbottom-box">
|
||||
<div class="body-footbottom-box" ref="">
|
||||
<div class="body-footbottom-left">
|
||||
<div style="width:100%;height: 50px;"></div>
|
||||
<div class="body-footbottom-leftbottom">
|
||||
@ -222,9 +222,9 @@
|
||||
:class="(pressureStatus === '已连接' && footImgSrc)?'':'noImageSvg-bg'">
|
||||
|
||||
<img v-if="(pressureStatus === '已连接' && footImgSrc)" :src="footImgSrc" style="width: 100%;height: 100%;" alt="">
|
||||
<div v-else style="width:60px;height:60px">
|
||||
<img :src="noImageSvg" >
|
||||
<div style="font-size:14px;color:#ffffff99">连接失败</div>
|
||||
<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>
|
||||
@ -257,8 +257,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6" style="flex: 0 0 24%;height: calc(100% - 0px);">
|
||||
<div class="body-userinfo-box">
|
||||
<el-col v-if=" camera1Status === '已连接' && camera2Status === '已连接' "
|
||||
: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-son-display">
|
||||
<img src="@/assets/detection/title4.png" alt="" style="margin-right: 8px;">
|
||||
@ -287,16 +288,16 @@
|
||||
</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=""
|
||||
class="userinfo-edit-img" style="cursor: pointer;"
|
||||
@click="viewClick">
|
||||
<ViewUserInfo v-if="isViewUser" :patientInfo="patientInfo"
|
||||
@closeViewUserInfo="closeViewUserInfo"/>
|
||||
<div class="userinfo-disyplay1">
|
||||
<div class="userinfo-text4">居住地</div>
|
||||
<div class="userinfo-text5" :title="patientInfo.residence">
|
||||
{{ patientInfo.residence ==''||patientInfo.residence ==null ?'—':patientInfo.residence}}
|
||||
@click="viewClick(true)">
|
||||
<div class="userinfo-disyplay1" >
|
||||
<div class="userinfo-text4">电话</div>
|
||||
<div class="userinfo-text5">
|
||||
<span v-if="patientInfo && patientInfo.phone">
|
||||
{{ patientInfo.phone ==''||patientInfo.phone ==null ?'—':patientInfo.phone}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="userinfo-disyplay2">
|
||||
@ -305,7 +306,7 @@
|
||||
{{ patientInfo.height ==''||patientInfo.height ==null ?'—':patientInfo.height}}cm
|
||||
</div>
|
||||
</div>
|
||||
<div class="userinfo-disyplay1">
|
||||
<div class="userinfo-disyplay1" style="padding-top: 20px;">
|
||||
<div class="userinfo-text4">体重</div>
|
||||
<div class="userinfo-text5">
|
||||
{{ patientInfo.weight ==''||patientInfo.weight ==null ?'—':patientInfo.weight}}kg
|
||||
@ -318,9 +319,72 @@
|
||||
</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 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-son-display">
|
||||
<img src="@/assets/detection/title5.png" alt="" style="margin-right: 8px;">
|
||||
@ -335,7 +399,7 @@
|
||||
</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 v-if="(camera1Status === '已连接' && camera1ImgSrc)"
|
||||
@click="isBig1 = true" class="big-img">
|
||||
@ -343,9 +407,9 @@
|
||||
</div>
|
||||
<img v-if="(camera1Status === '已连接' && camera1ImgSrc)" :src="camera1ImgSrc" alt="camera1"
|
||||
style="width: 100%; height: 100%;" />
|
||||
<div v-else style="width:60px;height:60px">
|
||||
<img :src="noImageSvg" >
|
||||
<div style="font-size:14px;color:#ffffff99">连接失败</div>
|
||||
<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'">
|
||||
@ -355,9 +419,282 @@
|
||||
</div>
|
||||
<img v-if="(camera2Status === '已连接' && camera2ImgSrc)" :src="camera2ImgSrc" alt="camera2"
|
||||
style="width: 100%; height: 100%;" />
|
||||
<div v-else style="width:60px;height:60px">
|
||||
<img :src="noImageSvg" >
|
||||
<div style="font-size:14px;color:#ffffff99">连接失败</div>
|
||||
<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-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>
|
||||
@ -372,9 +709,11 @@
|
||||
<div>提示</div>
|
||||
<img src="@/assets/header/closepage.png" alt="" style="cursor: pointer;" @click="handleCancel">
|
||||
</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">
|
||||
<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>
|
||||
@ -393,7 +732,7 @@
|
||||
<div class="pop-up-camera-container">
|
||||
<div class="pop-up-camera-header">
|
||||
<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 class="pop-up-camera-body">
|
||||
<div class="pop-up-camera-display">
|
||||
@ -407,12 +746,14 @@
|
||||
<div style="margin: 0 10px;">至</div>
|
||||
<el-input v-model="cameraForm.femtobolt.depth_range_max" placeholder="请输入最大值"
|
||||
style="width: 200px;"/>
|
||||
<el-checkbox v-model="cameraForm.femtobolt.enabled" label="有效" size="large" style="width: 60px;margin-left:10px ;" />
|
||||
|
||||
</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-title">足部相机</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>
|
||||
<el-radio-group v-model="cameraForm.camera1.device_index">
|
||||
<div style="display: flex;justify-content: space-between;width: 435px;">
|
||||
@ -423,8 +764,9 @@
|
||||
<el-radio :value="5" border>5号</el-radio>
|
||||
</div>
|
||||
</el-radio-group>
|
||||
<el-checkbox v-model="cameraForm.camera1.enabled" label="有效" size="large" style="width: 60px;margin-left:10px ;" />
|
||||
</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>
|
||||
<el-radio-group v-model="cameraForm.camera2.device_index">
|
||||
<div style="display: flex;justify-content: space-between;width: 435px;">
|
||||
@ -435,6 +777,19 @@
|
||||
<el-radio :value="5" border>5号</el-radio>
|
||||
</div>
|
||||
</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 class="form-actions-display">
|
||||
<el-button @click="handleCameraCancel" class="formreturnCancel">退出</el-button>
|
||||
@ -498,16 +853,21 @@ const props = defineProps({
|
||||
required: false,
|
||||
type: Object,
|
||||
default: null
|
||||
}
|
||||
},
|
||||
})
|
||||
const remotePortData =ref([]) // 遥控器串口数据
|
||||
const videoNum = ref(2) // 视频数量
|
||||
const videoTop = ref(1) // 视频位置
|
||||
const isExpand = ref(false) // 是否展开
|
||||
const isViewUser = ref(false) // 查看信息
|
||||
const isCloseCreat =ref(false) // 是否打开患者信息编辑框
|
||||
const isoperation = ref(false) // 是否保存数据
|
||||
const isVideoOperation = ref(false) // 是否录制视频
|
||||
const isTip =ref(false)
|
||||
const isStartVideo = ref(false)
|
||||
function startVideoClick() {
|
||||
startRecord()
|
||||
isoperation.value = true
|
||||
isVideoOperation.value = true
|
||||
isStartVideo.value = true
|
||||
}
|
||||
function stopVideoClick() {
|
||||
@ -562,7 +922,6 @@ const screenshotLoading = ref(false)
|
||||
const cameraDialogVisible =ref(false) // 设置相机参数弹框
|
||||
const contenGridRef =ref(null) // 实时检查整体box
|
||||
const wholeBodyRef = ref(null) // 身体姿态ref
|
||||
const videoImgRef =ref(null) // 视频流图片ref
|
||||
const camera1Ref = ref(null)
|
||||
const camera2Ref = ref(null)
|
||||
const historyDialogVisible = ref(false)
|
||||
@ -654,6 +1013,10 @@ const cameraForm = ref({ // 相机参数
|
||||
},
|
||||
imu:{
|
||||
port: '', // IMU串口号
|
||||
},
|
||||
remote:{
|
||||
port: '', // IMU串口号
|
||||
enabled: false
|
||||
}
|
||||
})
|
||||
const calculatedAge = ref(null)
|
||||
@ -891,6 +1254,9 @@ function cameraUpdate() { // 相机设置数据更新弹框
|
||||
},
|
||||
imu:{
|
||||
port: '', // IMU串口号
|
||||
},
|
||||
remote:{
|
||||
port: '', // IMU串口号
|
||||
}
|
||||
}
|
||||
// 加载相机参数信息
|
||||
@ -1598,7 +1964,6 @@ async function handleDiagnosticInfo(status) {
|
||||
|
||||
// 保存检测数据
|
||||
async function saveDetectionData() {
|
||||
console.log(tempInfo.value)
|
||||
if (screenshotLoading.value) return
|
||||
let titile_height = 24
|
||||
try {
|
||||
@ -1734,15 +2099,15 @@ async function sendDetectionData(data) {
|
||||
}
|
||||
|
||||
// 处理开始/停止按钮点击
|
||||
async function handleStartStop() {
|
||||
if (isRecording.value) {
|
||||
// 停止录制视频
|
||||
await stopRecord()
|
||||
} else {
|
||||
// 开始录制视频
|
||||
await startRecord()
|
||||
}
|
||||
}
|
||||
// async function handleStartStop() {
|
||||
// if (isRecording.value) {
|
||||
// // 停止录制视频
|
||||
// await stopRecord()
|
||||
// } else {
|
||||
// // 开始录制视频
|
||||
// await startRecord()
|
||||
// }
|
||||
// }
|
||||
// 开始检测
|
||||
async function startDetection() {
|
||||
try {
|
||||
@ -1995,7 +2360,10 @@ const getDevicesInit = async () => {
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
|
||||
for(let i = 0; i < 20; i++){
|
||||
let port = "COM" + (i + 1)
|
||||
remotePortData.value.push(port)
|
||||
}
|
||||
if (authStore.currentUser) {
|
||||
console.log(authStore.currentUser)
|
||||
creatorId.value = authStore.currentUser.id
|
||||
@ -2084,6 +2452,10 @@ const startRecord = async () => { // 开始录屏
|
||||
}
|
||||
let screen_location = contenGridRef.value.getBoundingClientRect()
|
||||
let femtobolt_location = wholeBodyRef.value.getBoundingClientRect()
|
||||
|
||||
|
||||
|
||||
|
||||
let camera1_location = camera1Ref.value?.getBoundingClientRect()
|
||||
let camera2_location = camera2Ref.value?.getBoundingClientRect()
|
||||
let titile_height = 24
|
||||
@ -2199,8 +2571,8 @@ function refreshClick(type) {
|
||||
|
||||
async function closeDiagnosticMessage(e){
|
||||
isDiagnosticMessage.value = false
|
||||
if(e == '退出'){
|
||||
emit('endChange',false)
|
||||
if(e == '关闭'){
|
||||
isTip.value = false
|
||||
}
|
||||
if (e === true || (typeof e === 'object' && e)){
|
||||
try {
|
||||
@ -2262,8 +2634,8 @@ function closePatientProfile(){
|
||||
function closeViewUserInfo(){
|
||||
isViewUser.value = false
|
||||
}
|
||||
function viewClick(){
|
||||
isViewUser.value = true
|
||||
function viewClick(e){
|
||||
isExpand.value = e
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -2313,6 +2685,11 @@ function viewClick(){
|
||||
margin-left: 10px;
|
||||
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{
|
||||
width: 130px;
|
||||
display: flex;
|
||||
@ -2523,13 +2900,36 @@ function viewClick(){
|
||||
}
|
||||
|
||||
.body-userinfo-box{
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
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, #1a1e2a 0%, #222b38 100%);
|
||||
border: 1px solid #262d40;
|
||||
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{
|
||||
width: 100%;
|
||||
height: calc(100% - 348px - 14px) ;
|
||||
@ -2539,6 +2939,14 @@ function viewClick(){
|
||||
border-radius: 4px;
|
||||
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{
|
||||
width: 100%;
|
||||
height: calc(100% - 50px);
|
||||
@ -2564,7 +2972,85 @@ function viewClick(){
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
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-right-style: solid;
|
||||
border-bottom-style: solid;
|
||||
@ -2583,11 +3069,45 @@ function viewClick(){
|
||||
.userinfo-disyplay1{
|
||||
display: flex;
|
||||
width: calc(64%);
|
||||
padding-top: 20px;
|
||||
}
|
||||
.userinfo-disyplay2{
|
||||
display: flex;
|
||||
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{
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
@ -2668,11 +3188,17 @@ function viewClick(){
|
||||
width: 100%;
|
||||
height: calc(50% - 7px);
|
||||
}
|
||||
|
||||
.body-video-imgbox2{
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: calc(50% - 8px);
|
||||
}
|
||||
.body-video-imgbox3{
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: calc(100%);
|
||||
}
|
||||
.patientInfotop1{
|
||||
font-weight: 700;
|
||||
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%); */
|
||||
}
|
||||
.pop-up-camera-container{
|
||||
width: 608px;
|
||||
height:495px;
|
||||
width: 668px;
|
||||
height:540px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
@ -2947,7 +3473,7 @@ function viewClick(){
|
||||
cursor:pointer;
|
||||
}
|
||||
.calibration-zero:hover{
|
||||
background-color: #5189ff;
|
||||
background-color: #14AAFF;
|
||||
}
|
||||
.noImageSvg-bg{
|
||||
display:flex;
|
||||
@ -2981,7 +3507,7 @@ function viewClick(){
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.pop-up-camera-container .formsaveCancel:hover{
|
||||
background: #5189ff;
|
||||
background: #14AAFF;
|
||||
color:#ffffff;
|
||||
}
|
||||
.big-img{
|
||||
@ -2996,4 +3522,25 @@ function viewClick(){
|
||||
justify-content: center;
|
||||
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>
|
||||
@ -4,7 +4,7 @@
|
||||
<div class="form-container">
|
||||
<div class="form-container-header">
|
||||
<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 style="padding:20px 40px;">
|
||||
<el-form :model="diagnosticForm" label-width="60px">
|
||||
@ -77,7 +77,7 @@
|
||||
style="cursor: pointer;margin-left: 10px;">
|
||||
</el-tooltip>
|
||||
<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;">
|
||||
</el-tooltip>
|
||||
</div>
|
||||
@ -132,6 +132,11 @@ const props = defineProps({
|
||||
type: Object,
|
||||
default: {}
|
||||
},
|
||||
isVideoOperation:{
|
||||
required: false,
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
})
|
||||
|
||||
const diagnosticForm = ref({
|
||||
@ -222,7 +227,57 @@ onMounted(() => {
|
||||
onMounted(loadCommonItems)
|
||||
|
||||
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) {
|
||||
try {
|
||||
|
||||
@ -109,12 +109,12 @@
|
||||
<img :src="BACKEND_URL+'/' + rawData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="generateReport-content-title">视频1图片</div>
|
||||
<div style="width: 600px;height: 338px; display: flex;">
|
||||
<div v-if="rawData.foot1_image!=null" class="generateReport-content-title">视频1图片</div>
|
||||
<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%;">
|
||||
</div>
|
||||
<div class="generateReport-content-title">视频2图片</div>
|
||||
<div style="width: 600px;height: 338px; display: flex;">
|
||||
<div v-if="rawData.foot2_image!=null" class="generateReport-content-title">视频2图片</div>
|
||||
<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%;">
|
||||
</div>
|
||||
</div>
|
||||
@ -176,12 +176,12 @@
|
||||
<img :src="BACKEND_URL+'/' + calibrationData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="generateReport-content-title">视频1图片</div>
|
||||
<div style="width: 600px;height: 338px; display: flex;">
|
||||
<div v-if="calibrationData.foot1_image !=null" class="generateReport-content-title">视频1图片</div>
|
||||
<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%;">
|
||||
</div>
|
||||
<div class="generateReport-content-title">视频2图片</div>
|
||||
<div style="width: 600px;height: 338px; display: flex;">
|
||||
<div v-if="calibrationData.foot2_image !=null" class="generateReport-content-title">视频2图片</div>
|
||||
<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%;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -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%);
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
color: rgb(255, 255, 255);
|
||||
color: rgba(255, 255, 255,0.8);
|
||||
font-size:14px;
|
||||
text-align: center;
|
||||
}
|
||||
@ -329,11 +329,12 @@ function userConfirm(){
|
||||
.badge-valid {
|
||||
|
||||
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-style:normal;
|
||||
font-size:14px;
|
||||
color:#191D28;
|
||||
|
||||
}
|
||||
.activate-btn {
|
||||
width: 76px;
|
||||
|
||||
@ -56,7 +56,8 @@
|
||||
<img :src="BACKEND_URL+'/' + ImageDetailsInfo.foot_data_image" alt="" style="width: 100%;height: 100%;object-fit:contain;">
|
||||
</div>
|
||||
<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;
|
||||
font-style: normal;
|
||||
font-size: 20px;
|
||||
@ -67,7 +68,8 @@
|
||||
</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;
|
||||
font-style: normal;
|
||||
font-size: 20px;
|
||||
|
||||
@ -122,23 +122,36 @@
|
||||
</div>
|
||||
</div>
|
||||
<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>
|
||||
<img :src="BACKEND_URL+'/' + ImageDetailsInfoLeft.foot1_image" alt=""
|
||||
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>
|
||||
<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">
|
||||
</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;">
|
||||
<div v-if="ImageDetailsInfoRight.foot1_image !=null">
|
||||
<div class="ImageDetailsCompare-content-title">{{ ImageDetailsInfoRight.id }}视频1</div>
|
||||
<img :src="BACKEND_URL+'/' + ImageDetailsInfoRight.foot1_image" alt=""
|
||||
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>
|
||||
<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">
|
||||
</div>
|
||||
<div v-else style="width: 500px;height: 335px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex;justify-content: center; margin-top: 35px;">
|
||||
|
||||
@ -341,8 +341,6 @@ const activatePackage = async () => {
|
||||
}
|
||||
.tab-content .formsaveCancel:hover{
|
||||
|
||||
/* background: #5189ff;
|
||||
border: 1px solid #5189ff; */
|
||||
background:#14aaff;
|
||||
border:1px solid #14aaff;
|
||||
|
||||
@ -403,7 +401,7 @@ const activatePackage = async () => {
|
||||
color: #fff;
|
||||
}
|
||||
.activatePackage:hover{
|
||||
background: #5189ff;
|
||||
border-color: #5189ff;
|
||||
background: #14AAFF;
|
||||
border-color: #14AAFF;
|
||||
}
|
||||
</style>
|
||||
@ -4,7 +4,7 @@
|
||||
<div class="form-container">
|
||||
<div class="form-container-header">
|
||||
<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>
|
||||
<el-form ref="patientFormRef" :model="patientForm" :rules="formRules" label-width="80px" class="patient-form">
|
||||
<div class="form-section">
|
||||
|
||||
@ -88,11 +88,14 @@
|
||||
</el-button> -->
|
||||
</div>
|
||||
</div>
|
||||
<el-table :data="recordData" style="
|
||||
<el-table
|
||||
ref="recordDataRef"
|
||||
:data="recordData" style="
|
||||
margin-left: 10px;
|
||||
margin-top: 10px;
|
||||
width: calc(100% - 20px);height: calc(100% - 70px);"
|
||||
@cell-click="selectRecord" @selection-change="handleSelectionChange"
|
||||
row-key="id"
|
||||
highlight-current-row>
|
||||
<el-table-column type="selection" width="30" />
|
||||
<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.start_time }}</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 class="patientprofile-container-bottombox">
|
||||
@ -154,7 +161,7 @@
|
||||
@click="viewCompareImg">
|
||||
<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;">
|
||||
查看
|
||||
对比
|
||||
</el-button>
|
||||
<el-button class="button-width70" type="primary"
|
||||
:class="checkboxGroup.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
||||
@ -347,7 +354,7 @@
|
||||
style="cursor: pointer;margin-left: 10px;">
|
||||
</el-tooltip>
|
||||
<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;">
|
||||
</el-tooltip>
|
||||
</div>
|
||||
@ -398,7 +405,7 @@ import ImageDetails from '@/views/ImageDetails.vue'
|
||||
import ViewPDF from '@/views/viewPDF.vue'
|
||||
import ReportComparison from '@/views/ReportComparison.vue'
|
||||
import AloneReportComparison from '@/views/AloneReportComparison.vue'
|
||||
|
||||
const recordDataRef = ref(null)
|
||||
const formatDate = (date) => {
|
||||
const d = new Date(date)
|
||||
const y = d.getFullYear()
|
||||
@ -617,6 +624,10 @@ const sessionsInit = async () => {
|
||||
recordData.value = response.data.sessions
|
||||
if (recordData.value && recordData.value.length > 0) {
|
||||
const first = recordData.value[0]
|
||||
if( first != null){
|
||||
recordDataRef.value?.setCurrentRow(recordData.value[0], true); // 第二个参数为 true 表示选中
|
||||
}
|
||||
|
||||
selectedRecord.value = first
|
||||
sessionsId.value = first.id
|
||||
profileInfo.value = {
|
||||
@ -724,14 +735,6 @@ function deletePDF(id) {
|
||||
}
|
||||
|
||||
function deleteClick(row){
|
||||
// 检查状态是否为 checking
|
||||
// if (row.status === 'checking') {
|
||||
// ElMessage.warning({
|
||||
// message: '平衡体态检查中,不能删除!',
|
||||
// duration: 3000
|
||||
// });
|
||||
// return;
|
||||
// }
|
||||
deleteId.value = row.id
|
||||
delType.value = 'listone'
|
||||
tipValue.value = '确定删除此检测记录吗?'
|
||||
@ -1138,9 +1141,9 @@ historyAPI.VideoDelById(ids).then((response)=>{
|
||||
width: 98px;
|
||||
height: 40px;
|
||||
background: inherit;
|
||||
background-color: rgba(55, 65, 81, 1);
|
||||
background-color: rgba(55, 65, 81, 1) !important;
|
||||
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);
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
@ -1161,7 +1164,9 @@ historyAPI.VideoDelById(ids).then((response)=>{
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.patientprofile-selectedbutotn:hover{
|
||||
background-color: #14AAFF;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.patient-profile-container .el-table {
|
||||
@ -1363,6 +1368,10 @@ historyAPI.VideoDelById(ids).then((response)=>{
|
||||
.button-width70{
|
||||
width: 70px !important;
|
||||
height: 26px !important;
|
||||
|
||||
}
|
||||
.button-width70:hover{
|
||||
background: #14AAFF;
|
||||
}
|
||||
.patientprofile-arrowbox{
|
||||
width: 70px;
|
||||
@ -1685,4 +1694,7 @@ historyAPI.VideoDelById(ids).then((response)=>{
|
||||
.el-select__input{
|
||||
color: #ffffff;
|
||||
}
|
||||
.patient-profile-container .el-table tr.el-table__row.current-row>td.el-table__cell{
|
||||
background-color: #194764 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -900,15 +900,6 @@ const deleteClick = async (row,row2) => {
|
||||
|
||||
|
||||
const sessionsDelById = async (row) => {
|
||||
// 检查状态是否为 checking
|
||||
if (row.status === 'checking') {
|
||||
ElMessage.warning({
|
||||
message: '平衡体态检查中,不能删除!',
|
||||
duration: 3000
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
ElMessageBox.confirm(
|
||||
'确定义删除此条数据?',
|
||||
'提示',
|
||||
|
||||
@ -105,12 +105,12 @@
|
||||
<img :src="BACKEND_URL+'/' + rawData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="PopUpOnlyReport-content-title">视频1图片</div>
|
||||
<div style="width: 600px;height: 338px; display: flex; margin: auto;">
|
||||
<div v-if="rawData.foot1_image != null" class="PopUpOnlyReport-content-title">视频1图片</div>
|
||||
<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%;">
|
||||
</div>
|
||||
<div class="PopUpOnlyReport-content-title">视频2图片</div>
|
||||
<div style="width: 600px;height: 338px; display: flex; margin: auto;">
|
||||
<div v-if="rawData.foot2_image != null" class="PopUpOnlyReport-content-title">视频2图片</div>
|
||||
<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%;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -106,12 +106,12 @@
|
||||
<img :src="BACKEND_URL+'/' + rawData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="PopUpReport-content-title">视频1图片</div>
|
||||
<div style="width: 90%;height: 230px; display: flex;">
|
||||
<div v-if="rawData.foot1_image != null" class="PopUpReport-content-title">视频1图片</div>
|
||||
<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%;">
|
||||
</div>
|
||||
<div class="PopUpReport-content-title">视频2图片</div>
|
||||
<div style="width: 90%;height: 230px; display: flex;">
|
||||
<div v-if="rawData.foot2_image != null" class="PopUpReport-content-title">视频2图片</div>
|
||||
<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%;">
|
||||
</div>
|
||||
</div>
|
||||
@ -171,12 +171,12 @@
|
||||
<img :src="BACKEND_URL+'/' + calibrationData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="PopUpReport-content-title">视频1图片</div>
|
||||
<div style="width: 90%;height: 230px; display: flex;">
|
||||
<div v-if="calibrationData.foot1_image != null" class="PopUpReport-content-title">视频1图片</div>
|
||||
<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%;">
|
||||
</div>
|
||||
<div class="PopUpReport-content-title">视频2图片</div>
|
||||
<div style="width: 90%;height: 230px; display: flex;">
|
||||
<div v-if="calibrationData.foot2_image != null" class="PopUpReport-content-title">视频2图片</div>
|
||||
<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%;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -113,12 +113,12 @@
|
||||
<img :src="BACKEND_URL+'/' + rawOneData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="ReportComparison-content-title">视频1图片</div>
|
||||
<div style="width: 90%;height:180px; display: flex;">
|
||||
<div v-if="rawOneData.foot1_image != null" class="ReportComparison-content-title">视频1图片</div>
|
||||
<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;">
|
||||
</div>
|
||||
<div class="ReportComparison-content-title">视频2图片</div>
|
||||
<div style="width: 90%;height:180px; display: flex;">
|
||||
<div v-if="rawOneData.foot2_image != null" class="ReportComparison-content-title">视频2图片</div>
|
||||
<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;">
|
||||
</div>
|
||||
|
||||
@ -180,12 +180,12 @@
|
||||
<img :src="BACKEND_URL+'/' + calibrationOneData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="ReportComparison-content-title">视频1图片</div>
|
||||
<div style="width: 90%;height:180px; display: flex;">
|
||||
<div v-if="calibrationOneData.foot1_image != null" class="ReportComparison-content-title">视频1图片</div>
|
||||
<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;">
|
||||
</div>
|
||||
<div class="ReportComparison-content-title">视频2图片</div>
|
||||
<div style="width: 90%;height:180px; display: flex;">
|
||||
<div v-if="calibrationOneData.foot2_image != null" class="ReportComparison-content-title">视频2图片</div>
|
||||
<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;">
|
||||
</div>
|
||||
</div>
|
||||
@ -257,12 +257,12 @@
|
||||
<img :src="BACKEND_URL+'/' + rawTwoData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="ReportComparison-content-title">视频1图片</div>
|
||||
<div style="width: 90%;height:180px; display: flex;">
|
||||
<div v-if="rawTwoData.foot1_image != null" class="ReportComparison-content-title">视频1图片</div>
|
||||
<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;">
|
||||
</div>
|
||||
<div class="ReportComparison-content-title">视频2图片</div>
|
||||
<div style="width: 90%;height:180px; display: flex;">
|
||||
<div v-if="rawTwoData.foot2_image != null" class="ReportComparison-content-title">视频2图片</div>
|
||||
<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;">
|
||||
</div>
|
||||
|
||||
@ -324,12 +324,12 @@
|
||||
<img :src="BACKEND_URL+'/' + calibrationTwoData.foot_data_image" alt="" srcset="" style="width: 100%;height: 100%;
|
||||
object-fit:contain; ">
|
||||
</div>
|
||||
<div class="ReportComparison-content-title">视频1图片</div>
|
||||
<div style="width: 90%;height:180px; display: flex;">
|
||||
<div v-if="calibrationTwoData.foot1_image != null" class="ReportComparison-content-title">视频1图片</div>
|
||||
<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;">
|
||||
</div>
|
||||
<div class="ReportComparison-content-title">视频2图片</div>
|
||||
<div style="width: 90%;height:180px; display: flex;">
|
||||
<div v-if="calibrationTwoData.foot2_image != null" class="ReportComparison-content-title">视频2图片</div>
|
||||
<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;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user