修改诊断数据处理和建议新增按钮样式

This commit is contained in:
limengnan 2026-01-12 15:03:38 +08:00
parent e8ca34c34b
commit c1cb2a0970
13 changed files with 217 additions and 4646 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 533 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 422 B

View File

@ -101,7 +101,7 @@
</div>
</div>
<!-- 头部姿态3D模型 -->
<div class="body-header-bottombox">
<div class="body-header-bottombox" ref="imuHeaderRef">
<div class="body-header-bottombox-left">
<div class="body-header-bottombox-lefttext" style="height: 20%;"></div>
<div class="body-header-bottombox-lefttext">
@ -268,7 +268,7 @@
<div class="body-userinfo-content">
<div class="body-userinfo-content-top">
<img src="@/assets/detection/useredit.png" alt=""
<img src="@/assets/detection/useredit.png" alt="" title="编辑患者信息"
class="userinfo-edit-img" style="cursor: pointer;" @click="handleEditUserInfo">
<div class="useravatar-box">
<img src="@/assets/detection/useravatar.svg" alt="">
@ -440,7 +440,7 @@
<div class="body-userinfo-content">
<div class="body-userinfo-content-top">
<img src="@/assets/detection/useredit.png" alt=""
<img src="@/assets/detection/useredit.png" alt="" title="编辑患者信息"
class="userinfo-edit-img" style="cursor: pointer;" @click="handleEditUserInfo">
<div class="useravatar-box">
<img src="@/assets/detection/useravatar.svg" alt="">
@ -575,8 +575,8 @@
<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">
<img src="@/assets/detection/useredit.png" alt="" title="编辑患者信息"
class="userinfo-edit-img" style="cursor: pointer;" @click="handleEditUserInfo">
<div class="useravatar-box">
<img src="@/assets/detection/useravatar.svg" alt="">
</div>
@ -788,6 +788,19 @@
<el-checkbox v-model="cameraForm.remote.enable" 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">IMU设备</div>
</div>
<div class="pop-up-camera-display" style="padding-top: 10px;">
<div class="pop-up-camera-name">Mac地址</div>
<el-input v-model="cameraForm.imu.mac_address" placeholder="请输入"
style="width: 434px;" />
<el-checkbox v-model="cameraForm.imu.enable" label="有效" size="large" style="width: 60px;margin-left:10px ;" />
</div>
<div class="form-actions-display">
<el-button @click="handleCameraCancel" class="formreturnCancel">退出</el-button>
<el-button type="primary" class="formsaveCancel"
@ -922,9 +935,10 @@ const screenshotLoading = ref(false)
const cameraDialogVisible =ref(false) //
const contenGridRef =ref(null) // box
const wholeBodyRef = ref(null) // 姿ref
const camera1Ref = ref(null)
const camera2Ref = ref(null)
const pressureRef = ref(null)
const camera1Ref = ref(null) // 1ref
const camera2Ref = ref(null) // 2ref
const pressureRef = ref(null) // ref
const imuHeaderRef = ref(null) // IMUref
const historyDialogVisible = ref(false)
// API
const patientInfo = ref({
@ -1013,12 +1027,14 @@ const cameraForm = ref({ // 相机参数
depth_range_max: '', //
},
imu:{
port: '', // IMU
mac_address: '', // IMU
enable: false
},
remote:{
port: '', // IMU
port: '', //
enable: false
}
},
})
const calculatedAge = ref(null)
//
@ -1255,7 +1271,8 @@ function cameraUpdate() { // 相机设置数据更新弹框
depth_range_max: '', //
},
imu:{
port: '', // IMU
mac_address: '', // IMU
enable: false
},
remote:{
port: '', // IMU
@ -1952,11 +1969,18 @@ async function saveDetectionData() {
}
let pressureBox = pressureRef.value?.getBoundingClientRect()
let imuHeaderBox = imuHeaderRef.value?.getBoundingClientRect()
let titile_height = 24
pressure_image =[
Math.round(pressureBox.x), Math.round(pressureBox.y)+ titile_height,
Math.round(pressureBox.width), Math.round(pressureBox.height)
]
let head_data_image = []
head_data_image =[
Math.round(imuHeaderBox.x), Math.round(imuHeaderBox.y)+ titile_height,
Math.round(imuHeaderBox.width), Math.round(imuHeaderBox.height)
]
let foot1_image=""
if(tempInfo.value.camera1_frame != null
&& tempInfo.value.camera1_frame.image != null ){
@ -1990,7 +2014,8 @@ async function saveDetectionData() {
foot_data:foot_data,
foot1_image:foot1_image,
foot2_image:foot2_image,
foot_data_image:pressure_image,
foot_data_image:pressure_image,
head_data_image:head_data_image,
screen_image:null
})
@ -2648,9 +2673,8 @@ function viewClick(e){
cursor: pointer;
}
.icon-box:hover{
/* background-color: #14AAFF; */
background-color: rgb(20 170 255 / 30%);
border: 1px solid rgb(20 170 255 / 50%);
border: 1px solid rgb(20 170 255 / 50%);
}
.startvideo-box{
width: 130px;
@ -3183,10 +3207,13 @@ function viewClick(e){
font-weight: 400;
font-style: normal;
font-size: 14px;
color: #D7D7D7;
color: #D7D7D7;
margin-left:20px
}
.endbutton:hover {
background-color: #14aaff;
border:1px solid #14aaff;
}
.pop-up-mask{
position: fixed;
z-index: 99;

File diff suppressed because it is too large Load Diff

View File

@ -19,28 +19,32 @@
<el-option v-for="opt in commonItems.treatment" :key="opt" :label="opt" :value="opt" />
</el-select>
<el-tooltip content="新增到常用项" placement="top">
<img src="@/assets/process/add.png" alt="" @click="addTreatmentFromInput"
style="cursor: pointer;margin-left: 5px;">
<div class="processadd" @click="addTreatmentFromInput">
<img src="@/assets/process/add.png" alt="" @click="addTreatmentFromInput">
</div>
</el-tooltip>
<el-tooltip content="选择处理" placement="top">
<img src="@/assets/process/set.png" alt="" @click="treatmentDialogVisible=true"
style="cursor: pointer;margin-left: 5px;">
<div class="processadd" @click="treatmentDialogVisible=true">
<img src="@/assets/process/set.png" alt="" >
</div>
</el-tooltip>
</div>
</el-form-item>
<el-form-item label="备注">
<el-form-item label="建议">
<div style="display: flex;width: 100%;">
<el-input v-model="diagnosticForm.suggestion_info" resize="none" :rows="5" type="textarea" placeholder="备注信息"
style="margin-top:8px;width:calc(100% - 70px)" />
<div style="margin-top:8px;display:flex;align-items:center;">
<el-tooltip content="新增到常用项" placement="top">
<img src="@/assets/process/add.png" alt="" @click="addSuggestionFromInput"
style="cursor: pointer;margin-left: 5px;">
<div class="processadd" @click="addSuggestionFromInput">
<img src="@/assets/process/add.png" alt="">
</div>
</el-tooltip>
<el-tooltip content="选择建议" placement="top">
<img src="@/assets/process/set.png" alt="" @click="suggestionDialogVisible=true"
style="cursor: pointer;margin-left: 5px;">
<div class="processadd" @click="suggestionDialogVisible=true">
<img src="@/assets/process/set.png" alt="">
</div>
</el-tooltip>
</div>
@ -73,12 +77,10 @@
<span>{{opt}}</span>
<div style="display:flex;gap:6px;">
<el-tooltip content="选中" placement="top">
<img src="@/assets/process/selected.png" alt="" @click="onPickTreatment(opt)"
style="cursor: pointer;margin-left: 10px;">
<div class="selected-icon" @click="onPickTreatment(opt)" ></div>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<img src="@/assets/process/del.png" alt="" @click="removeCommonItem('treatment',opt)"
style="cursor: pointer;margin-left: 10px;">
<div class="processdel-icon" @click="removeCommonItem('treatment',opt)" ></div>
</el-tooltip>
</div>
</div>
@ -96,12 +98,10 @@
<span>{{opt}}</span>
<div style="display:flex;gap:6px;">
<el-tooltip content="选中" placement="top">
<img src="@/assets/process/selected.png" alt="" @click="onPickSuggestion(opt)"
style="cursor: pointer;margin-left: 10px;">
<div class="selected-icon" @click="onPickSuggestion(opt)" ></div>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<img src="@/assets/process/del.png" alt="" @click="removeCommonItem('suggestion',opt)"
style="cursor: pointer;margin-left: 10px;">
<div class="processdel-icon" @click="removeCommonItem('suggestion',opt)" ></div>
</el-tooltip>
</div>
</div>
@ -506,4 +506,48 @@ async function handleDiagnosticInfo(status) {
.el-select__input{
color: #ffffff;
}
.processadd{
display: flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
border-radius: 4px;
margin-left:5px;
cursor: pointer;
}
.processadd:hover{
background-color: rgb(20 170 255 / 30%);
border: 1px solid rgb(20 170 255 / 50%);
cursor: pointer;
}
.selected-icon {
width: 18px;
height: 18px;
background-image: url(@/assets/process/selected.png);
cursor: pointer;
margin-left: 10px;
}
.selected-icon:hover {
width: 18px;
height: 18px;
background-image: url(@/assets/process/selected-active.png);
}
.processdel-icon {
width: 15px;
height: 18px;
background-image: url(@/assets/process/del.png);
cursor: pointer;
margin-left: 10px;
}
.processdel-icon:hover {
width: 15px;
height: 18px;
background-image: url(@/assets/process/del-active.png);
}
</style>

View File

@ -16,14 +16,20 @@
</div>
</div>
<div class="header-right">
<div style="color:#fff;margin-right: 20px;">登录时间{{ time }} </div>
<div class="user-line"></div>
<div style="color:#fff;margin-right: 35px;
font-family: 'Noto Sans SC', sans-serif;
font-weight: 400;
font-style: normal;
font-size: 16px;
letter-spacing: 1px;
color: #9CA3AF;">{{ time }} <span style="padding-left:20px">{{ headerWeek }}</span></div>
<!-- <div class="user-line"></div> -->
<div class="user-info">
<img src="@/assets/new/u13.png" alt="Avatar" style="width: 30px;height: 30px;">
<!-- @click="isUpdateUserInfo = true" -->
<span class="username" >{{ userInfo.name }}</span>
<div class="user-line"></div>
<span class="username user-return" @click="isTip = true">退出登录</span>
<span class="username user-return" @click="isTip = true">退出</span>
</div>
</div>
</div>
@ -89,7 +95,7 @@
</template>
<script setup>
import { ref, reactive, onMounted } from 'vue'
import { ref, reactive, onMounted,onUnmounted } from 'vue'
import { useRouter, viewDepthKey } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus'
import { useAuthStore } from '../stores/index.js'
@ -125,6 +131,7 @@
isLicense.value = false
// getLicense()
}
const headerWeek = ref("")
function dateFormat(row) {
const daterc = row;
if (daterc != null) {
@ -136,8 +143,12 @@
var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
const dayIndex = date.getDay();
const fullWeeks = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
headerWeek.value = fullWeeks[dayIndex]
//
return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds ;
}
}
const handleLogout = async () => {
@ -151,7 +162,10 @@
//
}
}
const timer =ref(null)
onUnmounted(()=>{ //
clearInterval(timer.value)
})
//
onMounted(() => {
//
@ -164,10 +178,16 @@
})
}
time.value = dateFormat(new Date())
clearInterval(timer.value)
timer.value = setInterval(() => {
time.value = dateFormat(new Date())
}, 1000)
//
// /api/license/info
getLicense()
})
async function getLicense(){
try {
const json = await api.get('/api/license/info')
@ -295,11 +315,17 @@ function userConfirm(){
}
.username {
font-family: "Noto Sans SC", sans-serif;
font-weight: 400;
font-style: normal;
letter-spacing: 1px;
color: #D1D5DB;
font-size: 14px;
color: #fff;
cursor: pointer;
}
.user-return{
color: #0B94D5;
}
.user-dropdown {
padding: 0;
color: #fff;
@ -374,6 +400,7 @@ function userConfirm(){
margin: 0 10px;
background-color: #949494;
}
.user-return:hover{
cursor: pointer;
color: rgb(0, 140, 255);

View File

@ -298,16 +298,19 @@
<div style="width: 100%; display:flex;align-items:center;">
<el-select v-model="profileInfo.treatment_info" placeholder="请选择"
filterable allow-create default-first-option clearable @blur="blurChange"
style="width:100%;">
style="width:calc(100% - 60px)">
<el-option v-for="opt in commonItems.treatment" :key="opt" :label="opt" :value="opt" />
</el-select>
<el-tooltip content="新增到常用项" placement="top">
<img src="@/assets/process/add.png" alt="" @click="addTreatmentFromInput"
style="cursor: pointer;margin-left: 5px;">
<div class="processadd" @click="addTreatmentFromInput">
<img src="@/assets/process/add.png" alt="" @click="addTreatmentFromInput">
</div>
</el-tooltip>
<el-tooltip content="选择处理" placement="top">
<img src="@/assets/process/set.png" alt="" @click="treatmentDialogVisible=true"
style="cursor: pointer;margin-left: 5px;">
<div class="processadd" @click="treatmentDialogVisible=true">
<img src="@/assets/process/set.png" alt="" >
</div>
</el-tooltip>
</div>
</div>
@ -316,12 +319,14 @@
<el-input type="textarea" v-model="profileInfo.suggestion_info" :resize="'none'" class="patientprofile-container-dataInfobg-textarea"></el-input>
<div style="margin-top:8px;display:flex;align-items:center;">
<el-tooltip content="新增到常用项" placement="top">
<img src="@/assets/process/add.png" alt="" @click="addSuggestionFromInput"
style="cursor: pointer;margin-left: 5px;">
<div class="processadd" @click="addSuggestionFromInput">
<img src="@/assets/process/add.png" alt="">
</div>
</el-tooltip>
<el-tooltip content="选择建议" placement="top">
<img src="@/assets/process/set.png" alt="" @click="suggestionDialogVisible=true"
style="cursor: pointer;margin-left: 5px;">
<div class="processadd" @click="suggestionDialogVisible=true">
<img src="@/assets/process/set.png" alt="">
</div>
</el-tooltip>
</div>
</div>
@ -372,12 +377,14 @@
<span>{{opt}}</span>
<div style="display:flex;gap:6px;">
<el-tooltip content="选中" placement="top">
<img src="@/assets/process/selected.png" alt="" @click="onPickTreatment(opt)"
style="cursor: pointer;margin-left: 10px;">
<div class="selected-icon" @click="onPickTreatment(opt)" ></div>
<!-- <img src="@/assets/process/selected.png" alt="" @click="onPickTreatment(opt)"
style="cursor: pointer;margin-left: 10px;"> -->
</el-tooltip>
<el-tooltip content="删除" placement="top">
<img src="@/assets/process/del.png" alt="" @click="removeCommonItem('treatment',opt)"
style="cursor: pointer;margin-left: 10px;">
<div class="processdel-icon" @click="removeCommonItem('treatment',opt)" ></div>
<!-- <img src="@/assets/process/del.png" alt="" @click="removeCommonItem('treatment',opt)"
style="cursor: pointer;margin-left: 10px;"> -->
</el-tooltip>
</div>
</div>
@ -395,12 +402,10 @@
<span>{{opt}}</span>
<div style="display:flex;gap:6px;">
<el-tooltip content="选中" placement="top">
<img src="@/assets/process/selected.png" alt="" @click="onPickSuggestion(opt)"
style="cursor: pointer;margin-left: 10px;">
<div class="selected-icon" @click="onPickSuggestion(opt)" ></div>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<img src="@/assets/process/del.png" alt="" @click="removeCommonItem('suggestion',opt)"
style="cursor: pointer;margin-left: 10px;">
<div class="processdel-icon" @click="removeCommonItem('suggestion',opt)" ></div>
</el-tooltip>
</div>
</div>
@ -1726,4 +1731,46 @@ historyAPI.VideoDelById(ids).then((response)=>{
.patient-profile-container .el-table tr.el-table__row.current-row>td.el-table__cell{
background-color: #194764 !important;
}
.processadd{
display: flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
border-radius: 4px;
margin-left:5px;
cursor: pointer;
}
.processadd:hover{
background-color: rgb(20 170 255 / 30%);
border: 1px solid rgb(20 170 255 / 50%);
cursor: pointer;
}
.selected-icon {
width: 18px;
height: 18px;
background-image: url(@/assets/process/selected.png);
cursor: pointer;
margin-left: 10px;
}
.selected-icon:hover {
width: 18px;
height: 18px;
background-image: url(@/assets/process/selected-active.png);
}
.processdel-icon {
width: 15px;
height: 18px;
background-image: url(@/assets/process/del.png);
cursor: pointer;
margin-left: 10px;
}
.processdel-icon:hover {
width: 15px;
height: 18px;
background-image: url(@/assets/process/del-active.png);
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -32,6 +32,7 @@
<div style="display: flex;justify-content: flex-end;padding-right: 58px;padding-top: 20px;">
<div
:class="checkboxGroup.length == 0? 'delButton':'delButton-selectedbutotn'" @click="delImgClick">
<div :class="checkboxGroup.length == 0?'delButton-icon':'delButton-selectedicon'"></div>
<div>删除</div>
</div>
</div>
@ -410,5 +411,16 @@ onMounted(() => {
background-color: #14aaff;
color: #fff;
}
.PhotoAlbum-bg .delButton-icon{
width: 18px;
height: 18px;
background-image: url(@/assets/process/del-disabled.png);
margin-right:5px ;
}
.delButton-selectedicon{
width: 18px;
height: 18px;
background-image: url(@/assets/process/del-selected.png);
margin-right:5px ;
}
</style>