修改样式,根据需求修改

This commit is contained in:
limengnan 2026-01-12 11:03:06 +08:00
parent 5ed15ce017
commit df63b22e7a
6 changed files with 96 additions and 75 deletions

View File

@ -10,7 +10,7 @@
<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="搜索患者姓名" class="search-input"/> <el-input v-model="search" placeholder="搜索患者姓名" class="search-input" @keyup.enter="handleSearch"/>
<div class="primary-search-buttons" :class="search != ''?'primary-searchactive-buttons':''" @click="handleSearch"> <div class="primary-search-buttons" :class="search != ''?'primary-searchactive-buttons':''" @click="handleSearch">
搜索 搜索
</div> </div>

View File

@ -755,11 +755,11 @@
<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;">
<el-radio :value="0" border>0</el-radio> <el-radio :value="0" border>1</el-radio>
<el-radio :value="1" border>1</el-radio> <el-radio :value="1" border>2</el-radio>
<el-radio :value="2" border>2</el-radio> <el-radio :value="2" border>3</el-radio>
<el-radio :value="3" border>3</el-radio> <el-radio :value="3" border>4</el-radio>
<el-radio :value="4" border>4</el-radio> <el-radio :value="4" border>5</el-radio>
</div> </div>
</el-radio-group> </el-radio-group>
<el-checkbox v-model="cameraForm.camera1.enable" label="有效" size="large" style="width: 60px;margin-left:10px ;" /> <el-checkbox v-model="cameraForm.camera1.enable" label="有效" size="large" style="width: 60px;margin-left:10px ;" />
@ -768,11 +768,11 @@
<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;">
<el-radio :value="0" border>0</el-radio> <el-radio :value="0" border>1</el-radio>
<el-radio :value="1" border>1</el-radio> <el-radio :value="1" border>2</el-radio>
<el-radio :value="2" border>2</el-radio> <el-radio :value="2" border>3</el-radio>
<el-radio :value="3" border>3</el-radio> <el-radio :value="3" border>4</el-radio>
<el-radio :value="4" border>4</el-radio> <el-radio :value="4" border>5</el-radio>
</div> </div>
</el-radio-group> </el-radio-group>
<el-checkbox v-model="cameraForm.camera2.enable" label="有效" size="large" style="width: 60px;margin-left:10px ;" /> <el-checkbox v-model="cameraForm.camera2.enable" label="有效" size="large" style="width: 60px;margin-left:10px ;" />
@ -810,15 +810,18 @@
@closePatientProfile="closePatientProfile"/> @closePatientProfile="closePatientProfile"/>
<div v-if="isBig1" style="position: fixed;top: 122px;right: 0; <div v-if="isBig1" style="position: fixed;top: 122px;right: 0;
background: #323232; width: 100%;height:calc(100% - 122px);z-index: 9999;
width: 100%;height:calc(100% - 122px);z-index: 9999;border: 2px solid #b0b0b0"> background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
border: 1px solid #262d40;">
<svg @click="isBig1=false" style="position: absolute;right: 10px;top:10px;cursor: pointer;" t="1760175800150" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5743" width="24" height="24"><path d="M796 163.1L511.1 448l-285-285-63.9 64 285 285-285 285 63.8 63.8 285-285 285 285 63.8-63.8-285-285 285-285-63.8-63.9z" fill="#ffffff" p-id="5744"></path></svg> <svg @click="isBig1=false" style="position: absolute;right: 10px;top:10px;cursor: pointer;" t="1760175800150" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5743" width="24" height="24"><path d="M796 163.1L511.1 448l-285-285-63.9 64 285 285-285 285 63.8 63.8 285-285 285 285 63.8-63.8-285-285 285-285-63.8-63.9z" fill="#ffffff" p-id="5744"></path></svg>
<img v-if="isBig1" :src="camera1ImgSrc" alt="" <img v-if="isBig1" :src="camera1ImgSrc" alt=""
style="width: 100%;height: calc(100%);object-fit:contain;background:#323232;" /> style="width: 100%;height: calc(100%);object-fit:contain;background:#323232;" />
</div> </div>
<div v-if="isBig2" style="position: fixed;top: 122px;right: 0; <div v-if="isBig2" style="position: fixed;top: 122px;right: 0;
width: 100%;height:calc(100% - 122px);z-index: 9999;background: #323232;border: 2px solid #b0b0b0"> width: 100%;height:calc(100% - 122px);z-index: 9999;
background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
border: 1px solid #262d40;">
<svg @click="isBig2=false" style="position: absolute;right: 10px;top:10px;cursor: pointer;" t="1760175800150" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5743" width="24" height="24"><path d="M796 163.1L511.1 448l-285-285-63.9 64 285 285-285 285 63.8 63.8 285-285 285 285 63.8-63.8-285-285 285-285-63.8-63.9z" fill="#ffffff" p-id="5744"></path></svg> <svg @click="isBig2=false" style="position: absolute;right: 10px;top:10px;cursor: pointer;" t="1760175800150" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5743" width="24" height="24"><path d="M796 163.1L511.1 448l-285-285-63.9 64 285 285-285 285 63.8 63.8 285-285 285 285 63.8-63.8-285-285 285-285-63.8-63.9z" fill="#ffffff" p-id="5744"></path></svg>
<img v-if="isBig2" :src="camera2ImgSrc" alt="" <img v-if="isBig2" :src="camera2ImgSrc" alt=""
style="width: 100%;height: calc(100%);object-fit:contain;background:#323232;" /> style="width: 100%;height: calc(100%);object-fit:contain;background:#323232;" />
@ -1409,7 +1412,7 @@ function connectWebSocket() {
devicesSocket.on('device_restart_message', (data) => { devicesSocket.on('device_restart_message', (data) => {
ElMessage.success({ ElMessage.success({
message: data.message, message: data.message,
duration: 5000 duration: 1000
}) })
}) })
@ -1996,7 +1999,7 @@ async function saveDetectionData() {
// //
ElMessage.success({ ElMessage.success({
message: `检测数据保存成功!`, message: `检测数据保存成功!`,
duration: 5000 duration: 500
}) })
@ -2277,6 +2280,10 @@ const calibrationClick = async () => {
} }
const cameraSubmit = async () => { const cameraSubmit = async () => {
if(cameraForm.value.camera1.device_index == cameraForm.value.camera2.device_index){
ElMessage.error('相机上和相机下的号码不能相同!')
return
}
const response = await fetch(`${BACKEND_URL}/api/config/devices/all`, { const response = await fetch(`${BACKEND_URL}/api/config/devices/all`, {
method: 'POST', method: 'POST',
headers: { headers: {

View File

@ -1962,22 +1962,24 @@ const calibrationClick = async () => {
} }
const cameraSubmit = async () => { const cameraSubmit = async () => {
const response = await fetch(`${BACKEND_URL}/api/config/devices/all`, { console.log(cameraForm.value)
method: 'POST', debugger
headers: { // const response = await fetch(`${BACKEND_URL}/api/config/devices/all`, {
'Content-Type': 'application/json' // method: 'POST',
}, // headers: {
body: JSON.stringify(cameraForm.value) // 'Content-Type': 'application/json'
}) // },
if (response.ok) { // body: JSON.stringify(cameraForm.value)
const result = await response.json() // })
if (result.success) { // if (response.ok) {
ElMessage.success(result.message) // const result = await response.json()
cameraDialogVisible.value = false // if (result.success) {
} else { // ElMessage.success(result.message)
ElMessage.error(result.message) // cameraDialogVisible.value = false
} // } else {
} // ElMessage.error(result.message)
// }
// }
} }
// //

View File

@ -9,10 +9,12 @@
<img src="@/assets/archive/leftbutton.png" alt=""> <img src="@/assets/archive/leftbutton.png" alt="">
</div> </div>
<div class="ImageDetails-content-imgbox" v-if="indexActive == 0"> <div class="ImageDetails-content-imgbox" v-if="indexActive == 0">
<img :src="BACKEND_URL+'/' + ImageDetailsInfo.screen_image" alt="" style="width: 100%;height: 100%;object-fit:contain;"> <img :src="BACKEND_URL+'/' + ImageDetailsInfo.screen_image" alt=""
style="max-width: 100%;max-height: 100%;object-fit:contain;">
</div> </div>
<div class="ImageDetails-content-imgbox" v-if="indexActive == 1"> <div class="ImageDetails-content-imgbox" v-if="indexActive == 1">
<img :src="BACKEND_URL+'/' + ImageDetailsInfo.body_image" alt="" style="width: 100%;height: 100%;object-fit:contain;"> <img :src="BACKEND_URL+'/' + ImageDetailsInfo.body_image" alt=""
style="max-width: 100%;max-height: 100%;object-fit:contain;">
</div> </div>
<div class="ImageDetails-content-imgbox" v-if="indexActive == 2"> <div class="ImageDetails-content-imgbox" v-if="indexActive == 2">
<div style="background: #fff; padding-left: 80px;"> <div style="background: #fff; padding-left: 80px;">
@ -53,7 +55,8 @@
<!-- <img :src="BACKEND_URL+'/' + ImageDetailsInfo.screen_image" alt="" style="width: 100%;height: 100%;object-fit:contain;"> --> <!-- <img :src="BACKEND_URL+'/' + ImageDetailsInfo.screen_image" alt="" style="width: 100%;height: 100%;object-fit:contain;"> -->
</div> </div>
<div class="ImageDetails-content-imgbox" v-if="indexActive == 3"> <div class="ImageDetails-content-imgbox" v-if="indexActive == 3">
<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="max-width: 100%;max-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 v-if="ImageDetailsInfo.foot1_image != null && ImageDetailsInfo.foot1_image != ''" <div v-if="ImageDetailsInfo.foot1_image != null && ImageDetailsInfo.foot1_image != ''"

View File

@ -109,16 +109,16 @@
</div> </div>
</div> </div>
<div class="ImageDetailsCompare-display" v-if="indexActive == 3"> <div class="ImageDetailsCompare-display" v-if="indexActive == 3">
<div class="ImageDetailsCompare-content-imgbox" style="width: 456px;height: 100%;"> <div class="ImageDetailsCompare-content-imgbox" style="width: 50%;height: 100%;">
<div class="ImageDetailsCompare-content-title">{{ ImageDetailsInfoLeft.id }}</div> <div class="ImageDetailsCompare-content-title">{{ ImageDetailsInfoLeft.id }}</div>
<img :src="BACKEND_URL+'/' + ImageDetailsInfoLeft.foot_data_image" alt="" <img :src="BACKEND_URL+'/' + ImageDetailsInfoLeft.foot_data_image" alt=""
style="width: 456px;height:456px"> style="max-width: 100%;max-height: 100%;">
</div> </div>
<div class="ImageDetailsCompare-content-imgbox" <div class="ImageDetailsCompare-content-imgbox"
style="width: 456px;height: 100%;margin-left: 50px;"> style="width: 50%;height: 100%;margin-left: 50px;">
<div class="ImageDetailsCompare-content-title">{{ ImageDetailsInfoRight.id }}</div> <div class="ImageDetailsCompare-content-title">{{ ImageDetailsInfoRight.id }}</div>
<img :src="BACKEND_URL+'/' + ImageDetailsInfoRight.foot_data_image" alt="" <img :src="BACKEND_URL+'/' + ImageDetailsInfoRight.foot_data_image" alt=""
style="width: 456px;height:456px"> style="max-width: 100%;max-height: 100%;">
</div> </div>
</div> </div>
<div class="ImageDetailsCompare-display" v-if="indexActive == 4"> <div class="ImageDetailsCompare-display" v-if="indexActive == 4">

View File

@ -102,9 +102,8 @@
<el-table-column prop="creator_name" label="测试医生" min-width="60" align="center" /> <el-table-column prop="creator_name" label="测试医生" min-width="60" align="center" />
<el-table-column prop="report" label="报告" width="60" align="center"> <el-table-column prop="report" label="报告" width="60" align="center">
<template #default="scope"> <template #default="scope">
<div <div v-if="scope.row.data_count == 0"
v-if="scope.row.data_count == 0" style="width:28px;
style="width:28px;
font-family: 'Noto Sans SC'; font-family: 'Noto Sans SC';
font-weight: 400; font-weight: 400;
font-style: normal; font-style: normal;
@ -112,9 +111,8 @@
color: rgba(255, 255, 255, 0.5); color: rgba(255, 255, 255, 0.5);
line-height: 18px; line-height: 18px;
cursor: not-allowed;"> 数据</div> cursor: not-allowed;"> 数据</div>
<div <div v-else-if="scope.row.data_count > 0 && scope.row.status == 'checked'"
v-if="scope.row.data_count > 0 && scope.row.status == 'checked'" style="width:28px;
style="width:28px;
font-family: 'Noto Sans SC'; font-family: 'Noto Sans SC';
font-weight: 400; font-weight: 400;
font-style: normal; font-style: normal;
@ -123,16 +121,16 @@
line-height: 18px; line-height: 18px;
cursor: not-allowed;"> 诊断</div> cursor: not-allowed;"> 诊断</div>
<div <div
v-else-if="scope.row.status == 'completed'" v-else-if="scope.row.status == 'completed'"
style="width:28px; style="width:28px;
font-family: 'Noto Sans SC'; font-family: 'Noto Sans SC';
font-weight: 400; font-weight: 400;
font-style: normal; font-style: normal;
font-size: 14px; font-size: 14px;
color: #14AAFF; color: #14AAFF;
line-height: 18px; line-height: 18px;
cursor: pointer;" cursor: pointer;"
@click.stop="generateReport(scope.row,scope.$index)">生成报告</div> @click.stop="generateReport(scope.row,scope.$index)">生成报告</div>
<div class="patientprofile-file-box" v-else-if="scope.row.status == 'reported'"> <div class="patientprofile-file-box" v-else-if="scope.row.status == 'reported'">
<img src="@/assets/new/file.png" alt="" @click.stop="fileClick(scope.row)"> <img src="@/assets/new/file.png" alt="" @click.stop="fileClick(scope.row)">
<img src="@/assets/new/del.png" class="patientprofile-del" alt="" <img src="@/assets/new/del.png" class="patientprofile-del" alt=""
@ -184,9 +182,10 @@
对比 对比
</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 && selectedRecord.status != 'reported'? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@click="delImgClick('img')"> @click="delImgClick('img')"
<img v-if="checkboxGroup.length>0" src="@/assets/new/del2.png" alt="" style="margin-right: 8px;"> :title="checkboxGroup.length>0 && selectedRecord.status == 'reported'?'已生成报告,图片不能删除': ''">
<img v-if="checkboxGroup.length>0 && selectedRecord.status != 'reported'" src="@/assets/new/del2.png" alt="" style="margin-right: 8px;">
<img v-else src="@/assets/new/del3.png" alt="" style="margin-right: 8px;"> <img v-else src="@/assets/new/del3.png" alt="" style="margin-right: 8px;">
删除 删除
</el-button> </el-button>
@ -231,7 +230,8 @@
</div> </div>
<el-button class="button-width70" type="primary" <el-button class="button-width70" type="primary"
:class="checkboxVideo.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'" :class="checkboxVideo.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@click="delVideoClick"> @click="delVideoClick"
:title="checkboxVideo.length>0 &&selectedRecord.status == 'reported'?'已生成报告,视频不能删除': ''">
<img v-if="checkboxVideo.length>0" src="@/assets/new/del2.png" alt="" style="margin-right: 8px;"> <img v-if="checkboxVideo.length>0" src="@/assets/new/del2.png" alt="" style="margin-right: 8px;">
<img v-else src="@/assets/new/del3.png" alt="" style="margin-right: 8px;"> <img v-else src="@/assets/new/del3.png" alt="" style="margin-right: 8px;">
删除 删除
@ -277,7 +277,9 @@
<div class="patientprofile-container-data-title">诊断数据</div> <div class="patientprofile-container-data-title">诊断数据</div>
</div> </div>
<el-button type="primary" <el-button type="primary"
class="button-width70 patientprofile-selectedbutotn" class="button-width70"
:class="selectedRecord.status != 'reported'? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
:title="selectedRecord.status == 'reported'?'已生成报告,诊断数据不能修改': ''"
@click="handleDiagnosticInfo('completed')"> @click="handleDiagnosticInfo('completed')">
<img src="@/assets/new/save.png" alt="" style="margin-right: 8px;"> <img src="@/assets/new/save.png" alt="" style="margin-right: 8px;">
保存 保存
@ -611,7 +613,9 @@ const handleSubmit = (item) => {
} }
}; };
const sessionsId = ref('') const sessionsId = ref('')
const recordIndex = ref(0)
function selectRecord(data){ function selectRecord(data){
recordIndex.value = recordData.value.indexOf(data);
selectedRecord.value = data selectedRecord.value = data
checkboxVideo.value = [] checkboxVideo.value = []
checkboxGroup.value = [] checkboxGroup.value = []
@ -638,14 +642,11 @@ const sessionsInit = async () => {
// //
const response = await historyAPI.sessionsPage(params) const response = await historyAPI.sessionsPage(params)
if (response.success) { if (response.success) {
// response.data.sessions.forEach(element => {
// element.list = [{}]
// });
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[recordIndex.value]
if( first != null){ if( first != null){
recordDataRef.value?.setCurrentRow(recordData.value[0], true); // true recordDataRef.value?.setCurrentRow(recordData.value[recordIndex.value], true); // true
} }
selectedRecord.value = first selectedRecord.value = first
@ -727,7 +728,7 @@ onMounted(() => {
}) })
const deleteId = ref('') const deleteId = ref('')
function sessionsDelById(id) { function sessionsDelById(id) { //
let ids = id.join(',') let ids = id.join(',')
historyAPI.sessionsDelById(ids).then((response)=>{ historyAPI.sessionsDelById(ids).then((response)=>{
if(response.success){ if(response.success){
@ -735,6 +736,7 @@ function sessionsDelById(id) {
message: response.message, message: response.message,
duration: 5000 duration: 5000
}); });
recordIndex.value = 0
sessionsInit() sessionsInit()
} }
}).catch(()=>{ }).catch(()=>{
@ -839,6 +841,9 @@ function handleVideoUpward(){ // 视频上一页
async function handleDiagnosticInfo(status) { async function handleDiagnosticInfo(status) {
if(selectedRecord.value.status == 'reported'){
return
}
try { try {
// ID // ID
if (!profileInfo.value.id) { if (!profileInfo.value.id) {
@ -864,10 +869,11 @@ async function handleDiagnosticInfo(status) {
const result = await response.json() const result = await response.json()
if (result.success) { if (result.success) {
selectedRecord.value.diagnosis_info = profileInfo.value.diagnosis_info // selectedRecord.value.diagnosis_info = profileInfo.value.diagnosis_info
selectedRecord.value.treatment_info = profileInfo.value.treatment_info // selectedRecord.value.treatment_info = profileInfo.value.treatment_info
selectedRecord.value.suggestion_info = profileInfo.value.suggestion_info // selectedRecord.value.suggestion_info = profileInfo.value.suggestion_info
selectedRecord.value.status = status // selectedRecord.value.status = status
sessionsInit()
ElMessage.success({ ElMessage.success({
message: '诊断信息成功', message: '诊断信息成功',
duration: 5000 duration: 5000
@ -943,7 +949,7 @@ function viewCompareImg(){
isImageDetailsCompare.value = true isImageDetailsCompare.value = true
} }
function delImgClick(e){ // function delImgClick(e){ //
if(checkboxGroup.value.length < 1){ if(checkboxGroup.value.length < 1 || selectedRecord.value.status == 'reported'){
return return
} }
delType.value = e delType.value = e
@ -951,7 +957,7 @@ function delImgClick(e){ // 临时方法
isTip.value = true isTip.value = true
} }
function delVideoClick(){ // function delVideoClick(){ //
if(checkboxVideo.value.length < 1){ if(checkboxVideo.value.length < 1 || selectedRecord.value.status == 'reported'){
return return
} }
delType.value = 'video' delType.value = 'video'
@ -997,11 +1003,12 @@ function detectionDelById(){
let ids = checkboxGroup.value.join(',') let ids = checkboxGroup.value.join(',')
historyAPI.detectionDelById(ids).then((response)=>{ historyAPI.detectionDelById(ids).then((response)=>{
if(response.success){ if(response.success){
checkboxGroup.value = []
ElMessage.success({ ElMessage.success({
message: response.message, message: response.message,
duration: 5000 duration: 5000
}); });
sessionsById(sessionsId.value) sessionsInit()
} }
}).catch(()=>{ }).catch(()=>{
}) })
@ -1012,11 +1019,13 @@ function VideoDelById(){
let ids = checkboxVideo.value.join(',') let ids = checkboxVideo.value.join(',')
historyAPI.VideoDelById(ids).then((response)=>{ historyAPI.VideoDelById(ids).then((response)=>{
if(response.success){ if(response.success){
checkboxVideo.value = []
ElMessage.success({ ElMessage.success({
message: response.message, message: response.message,
duration: 5000 duration: 5000
}); });
sessionsById(sessionsId.value) sessionsInit()
// sessionsById(sessionsId.value)
} }
}).catch(()=>{ }).catch(()=>{
}) })
@ -1169,7 +1178,7 @@ historyAPI.VideoDelById(ids).then((response)=>{
font-style: normal; font-style: normal;
font-size: 14px; font-size: 14px;
color: rgba(255, 255, 255, 0.5); color: rgba(255, 255, 255, 0.5);
cursor: default; cursor: not-allowed;
} }
.patientprofile-selectedbutotn{ .patientprofile-selectedbutotn{
width: 98px; width: 98px;