样式版本更新

This commit is contained in:
limengnan 2026-01-09 09:44:32 +08:00
parent 1ae2146ff0
commit d85b6feff9
10 changed files with 246 additions and 47 deletions

View File

@ -6,7 +6,7 @@
"scripts": {
"dev": "concurrently \"npm run dev:renderer\" \"wait-on http://localhost:3000 && npm run dev:electron\"",
"dev:renderer": "vite",
"dev:electron": "set NODE_ENV=development&& \"d:\\electron-v36.4.0-win32-x64\\electron.exe\" .",
"dev:electron": "electron .",
"build": "npm run build:renderer && npm run build:electron",
"build:renderer": "vite build",
"build:electron": "set HTTP_PROXY=&& set HTTPS_PROXY=&&electron-builder --config ./build/electron-builder.install.json",

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="20px" xmlns="http://www.w3.org/2000/svg">
<defs>
<pattern id="BGPattern" patternUnits="userSpaceOnUse" alignment="0 0" imageRepeat="None" />
<mask fill="white" id="Clip290">
<path d="M 21 3.905716464285714 C 21.27038787627078 3.245957928706087 20.735890223733122 2.702498517209308 20.064990224827696 3 L 1.195525299907394 3 C 0.5249081520192851 2.7031374543769244 -0.009213485708160033 3.246214555555484 0 3.9057164642857147 L 0 18.777907668189368 C -0.00921348570815974 19.4374095769196 0.5249081520192849 19.980486678098156 1.195525299907394 20 L 20.064990224827696 20 C 20.735607380518275 19.980486688686625 21.26972903018495 19.43740958438617 21 18.777907668189368 L 21 3.905716464285714 Z M 2.39690712331663 5.118813301910299 L 18.86958541889791 5.118813301910299 L 18.86958541889791 16.06607198089701 L 16.124935967333503 12.69479119975083 C 16.025639205909982 12.57265347420645 15.845591317420697 12.55026222871889 15.718498342050971 12.64424551038206 L 12.529158297758109 15.00226127450166 L 7.056595075330296 9.606801454734219 C 7.001168958709137 9.55195013470927 6.925781695757877 9.521105478442415 6.847145988179413 9.521105478442415 C 6.748976872404263 9.521105478442415 6.6572273760629495 9.56908313075721 6.602341250664903 9.649118786960134 L 2.39690712331663 15.751042965116277 L 2.39690712331663 5.118813301910299 Z M 11.676834668311601 9.671452941029901 L 11.679225491182653 9.671452941029901 C 11.686397920097628 8.591185500830566 12.561434247724588 7.720153745847176 13.6349077620998 7.726031146594684 C 14.707185884888577 7.730733078903654 15.573854372165034 8.60881770307309 15.571463549293984 9.689085162790699 C 15.569072746272022 10.769352602990034 14.698818044538072 11.642735314368773 13.625344510313774 11.642735314368773 C 12.547089370045551 11.639208870016613 11.67444386528964 10.757597781976747 11.676834668311601 9.671452941029901 Z M 23.00927227457588 15.588826524916941 L 23.01166309744693 15.588826524916941 C 22.513068917471912 15.581809171361453 22.11262253697901 15.182360556580665 22.11262253697901 14.69202604424181 C 22.11262253697901 14.687685151925008 22.112654585514925 14.683344316806666 22 14.6790038820598 L 22 2 L 3.442886333467469 2 C 2.938287533708241 1.8228303246589928 2.5338485057905884 1.4161889726150498 2.5391603100296973 0.9199936054817273 C 2.5391603100296973 0.416887551079734 2.94440254372579 0.010170962624584555 3.442886333467469 0 L 23.01166309744693 0 C 23.51400873914463 0.018545126845467025 23.914873644129443 0.42481727570425176 24 0.9188181175249168 L 24 14.68017937001661 C 23.914204343625748 15.174824428285286 23.51227526361774 15.581091721295216 23.00927227457588 15.588826524916941 Z " fill-rule="evenodd" />
</mask>
</defs>
<g transform="matrix(1 0 0 1 -876 -78 )">
<path d="M 21 3.905716464285714 C 21.27038787627078 3.245957928706087 20.735890223733122 2.702498517209308 20.064990224827696 3 L 1.195525299907394 3 C 0.5249081520192851 2.7031374543769244 -0.009213485708160033 3.246214555555484 0 3.9057164642857147 L 0 18.777907668189368 C -0.00921348570815974 19.4374095769196 0.5249081520192849 19.980486678098156 1.195525299907394 20 L 20.064990224827696 20 C 20.735607380518275 19.980486688686625 21.26972903018495 19.43740958438617 21 18.777907668189368 L 21 3.905716464285714 Z M 2.39690712331663 5.118813301910299 L 18.86958541889791 5.118813301910299 L 18.86958541889791 16.06607198089701 L 16.124935967333503 12.69479119975083 C 16.025639205909982 12.57265347420645 15.845591317420697 12.55026222871889 15.718498342050971 12.64424551038206 L 12.529158297758109 15.00226127450166 L 7.056595075330296 9.606801454734219 C 7.001168958709137 9.55195013470927 6.925781695757877 9.521105478442415 6.847145988179413 9.521105478442415 C 6.748976872404263 9.521105478442415 6.6572273760629495 9.56908313075721 6.602341250664903 9.649118786960134 L 2.39690712331663 15.751042965116277 L 2.39690712331663 5.118813301910299 Z M 11.676834668311601 9.671452941029901 L 11.679225491182653 9.671452941029901 C 11.686397920097628 8.591185500830566 12.561434247724588 7.720153745847176 13.6349077620998 7.726031146594684 C 14.707185884888577 7.730733078903654 15.573854372165034 8.60881770307309 15.571463549293984 9.689085162790699 C 15.569072746272022 10.769352602990034 14.698818044538072 11.642735314368773 13.625344510313774 11.642735314368773 C 12.547089370045551 11.639208870016613 11.67444386528964 10.757597781976747 11.676834668311601 9.671452941029901 Z M 23.00927227457588 15.588826524916941 L 23.01166309744693 15.588826524916941 C 22.513068917471912 15.581809171361453 22.11262253697901 15.182360556580665 22.11262253697901 14.69202604424181 C 22.11262253697901 14.687685151925008 22.112654585514925 14.683344316806666 22 14.6790038820598 L 22 2 L 3.442886333467469 2 C 2.938287533708241 1.8228303246589928 2.5338485057905884 1.4161889726150498 2.5391603100296973 0.9199936054817273 C 2.5391603100296973 0.416887551079734 2.94440254372579 0.010170962624584555 3.442886333467469 0 L 23.01166309744693 0 C 23.51400873914463 0.018545126845467025 23.914873644129443 0.42481727570425176 24 0.9188181175249168 L 24 14.68017937001661 C 23.914204343625748 15.174824428285286 23.51227526361774 15.581091721295216 23.00927227457588 15.588826524916941 Z " fill-rule="nonzero" fill="rgba(255, 255, 255, 1)" stroke="none" transform="matrix(1 0 0 1 876 78 )" class="fill" />
<path d="M 21 3.905716464285714 C 21.27038787627078 3.245957928706087 20.735890223733122 2.702498517209308 20.064990224827696 3 L 1.195525299907394 3 C 0.5249081520192851 2.7031374543769244 -0.009213485708160033 3.246214555555484 0 3.9057164642857147 L 0 18.777907668189368 C -0.00921348570815974 19.4374095769196 0.5249081520192849 19.980486678098156 1.195525299907394 20 L 20.064990224827696 20 C 20.735607380518275 19.980486688686625 21.26972903018495 19.43740958438617 21 18.777907668189368 L 21 3.905716464285714 Z " stroke-width="0" stroke-dasharray="0" stroke="rgba(255, 255, 255, 0)" fill="none" transform="matrix(1 0 0 1 876 78 )" class="stroke" mask="url(#Clip290)" />
<path d="M 2.39690712331663 5.118813301910299 L 18.86958541889791 5.118813301910299 L 18.86958541889791 16.06607198089701 L 16.124935967333503 12.69479119975083 C 16.025639205909982 12.57265347420645 15.845591317420697 12.55026222871889 15.718498342050971 12.64424551038206 L 12.529158297758109 15.00226127450166 L 7.056595075330296 9.606801454734219 C 7.001168958709137 9.55195013470927 6.925781695757877 9.521105478442415 6.847145988179413 9.521105478442415 C 6.748976872404263 9.521105478442415 6.6572273760629495 9.56908313075721 6.602341250664903 9.649118786960134 L 2.39690712331663 15.751042965116277 L 2.39690712331663 5.118813301910299 Z " stroke-width="0" stroke-dasharray="0" stroke="rgba(255, 255, 255, 0)" fill="none" transform="matrix(1 0 0 1 876 78 )" class="stroke" mask="url(#Clip290)" />
<path d="M 11.676834668311601 9.671452941029901 L 11.679225491182653 9.671452941029901 C 11.686397920097628 8.591185500830566 12.561434247724588 7.720153745847176 13.6349077620998 7.726031146594684 C 14.707185884888577 7.730733078903654 15.573854372165034 8.60881770307309 15.571463549293984 9.689085162790699 C 15.569072746272022 10.769352602990034 14.698818044538072 11.642735314368773 13.625344510313774 11.642735314368773 C 12.547089370045551 11.639208870016613 11.67444386528964 10.757597781976747 11.676834668311601 9.671452941029901 Z " stroke-width="0" stroke-dasharray="0" stroke="rgba(255, 255, 255, 0)" fill="none" transform="matrix(1 0 0 1 876 78 )" class="stroke" mask="url(#Clip290)" />
<path d="M 23.00927227457588 15.588826524916941 L 23.01166309744693 15.588826524916941 C 22.513068917471912 15.581809171361453 22.11262253697901 15.182360556580665 22.11262253697901 14.69202604424181 C 22.11262253697901 14.687685151925008 22.112654585514925 14.683344316806666 22 14.6790038820598 L 22 2 L 3.442886333467469 2 C 2.938287533708241 1.8228303246589928 2.5338485057905884 1.4161889726150498 2.5391603100296973 0.9199936054817273 C 2.5391603100296973 0.416887551079734 2.94440254372579 0.010170962624584555 3.442886333467469 0 L 23.01166309744693 0 C 23.51400873914463 0.018545126845467025 23.914873644129443 0.42481727570425176 24 0.9188181175249168 L 24 14.68017937001661 C 23.914204343625748 15.174824428285286 23.51227526361774 15.581091721295216 23.00927227457588 15.588826524916941 Z " stroke-width="0" stroke-dasharray="0" stroke="rgba(255, 255, 255, 0)" fill="none" transform="matrix(1 0 0 1 876 78 )" class="stroke" mask="url(#Clip290)" />
</g>
</svg>

View File

@ -33,7 +33,7 @@
<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-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>
@ -63,14 +63,14 @@
selectedPatient.name!=''"
style="position: absolute;
top: 10px;right: 10px; cursor: pointer;" @click="editClick">
<img src="@/assets/home/bigavatar.svg" alt="" style="margin-right:10px ;">
<img src="@/assets/home/bigavatar.svg" alt="" style="margin-right:28px ;">
<div>
<div v-if="selectedPatient" class="patient-detail-name">
{{ selectedPatient.name == '' || selectedPatient.name == null ?'—':selectedPatient.name }}
</div>
<div class="patient-detail-userid">
<span>用户ID</span>
<span>ID</span>
<span v-if="selectedPatient">{{ selectedPatient.id }}</span>
<span v-if="!selectedPatient"></span>
</div>
@ -457,6 +457,14 @@ const loadPatients = async (type) => {
const lastcheck = mh && mh.lastcheck_time ? mh.lastcheck_time : ''
return { ...p, doctor, status, updated_at: lastcheck || p.updated_at }
})
if(type === '01' && patients.value[rowIndex.value] != null){
rowIndex.value = 0
tableRef.value?.setCurrentRow(patients.value[0], true); // true
selectedPatient.value = patients.value[0]
}
if(type === '02' && patients.value[rowIndex.value] != null){
tableRef.value?.setCurrentRow(patients.value[rowIndex.value], true); // true
}
@ -686,7 +694,9 @@ function editClick(){
.patient-section {
width: calc(100% - 500px);
background: #1D2330;
/* background: #1D2330; */
background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
border-radius: 8px;
padding: 20px;
/* box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); */
@ -766,7 +776,8 @@ function editClick(){
width: 500px;
border-radius: 4px;
height: 100%;
background: #1f2533;
background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
border-radius: 8px;
padding: 20px 23px;
border:1px solid #292f3c;
@ -1186,7 +1197,7 @@ function editClick(){
color: rgb(255, 255, 255);
font-size: 24px;
padding-top: 5px;
padding-bottom: 10px;
padding-bottom: 5px;
}
.edit-icon-box{
width: 20px;
@ -1206,6 +1217,7 @@ function editClick(){
font-weight: 700;
font-style: normal;
font-size: 16px;
opacity:0.6;
color: #FFFFFF;
}
.patient-detail-display{

View File

@ -17,9 +17,15 @@
<el-button type="primary" class="endbutton" @click="endClick">结束检测</el-button>
</div>
<div class="displayleft">
<div class="icon-box" @click="isPhotoAlbum = true" title="图片相册">
<img src="@/assets/detection/photoalbum.svg" alt="">
</div>
<div class="icon-box" title="截图" @click="saveDetectionData">
<img src="@/assets/detection/screenshot.png" alt="">
</div>
<div v-if="!isStartVideo" class="icon-box" @click="startVideoClick" title="开始录像">
<img src="@/assets/detection/startvideo.png" alt="">
</div>
@ -276,7 +282,7 @@
<div class="userinfo-text2">{{ calculateAge(patientInfo.birth_date) }}</div>
</div>
<div class="userinfo-text3">
用户ID{{ patientInfo.id }}
ID{{ patientInfo.id }}
</div>
</div>
@ -440,6 +446,11 @@
</div>
</div>
</div>
<div class="pop-up-mask" v-if="isPhotoAlbum">
<PhotoAlbum @closePhotoAlbum="closePhotoAlbum"
:selectedPatient="selectedPatient" v-if="isPhotoAlbum"/>
</div>
<PatientProfile v-if="historyDialogVisible"
:archiveType="true"
:selectedPatient="selectedPatient"
@ -477,6 +488,7 @@ import PatientCreate from '@/views/PatientCreate.vue'
import PatientProfile from '@/views/PatientProfile.vue'
import Model from './model.vue'
import ViewUserInfo from '@/views/ViewUser.vue'
import PhotoAlbum from '@/views/PhotoAlbum.vue'
import refresh from '@/assets/detection/refresh.png'
import refresh_active from '@/assets/detection/refresh_active.png'
@ -2165,6 +2177,9 @@ function refreshClick(type) {
async function closeDiagnosticMessage(e){
isDiagnosticMessage.value = false
if(e == '退出'){
emit('endChange',false)
}
if (e === true || (typeof e === 'object' && e)){
try {
//
@ -2205,8 +2220,10 @@ async function closeDiagnosticMessage(e){
}
}
const isPhotoAlbum = ref(false)
function closePhotoAlbum(){
isPhotoAlbum.value = false
}
function closecreatbox(e){
if(e === true){
loadPatientInfo()
@ -2298,14 +2315,16 @@ function viewClick(){
.body-posture-box{
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%);
border: 1px solid #262d40;
background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
/* border: 1px solid transparent; */
border-radius: 4px;
}
.body-header-box{
width: 100%;
height: calc(50% - 7px) ;
background: linear-gradient(135deg, rgba(42, 54, 73, 1) 0%, rgba(42, 54, 73, 1) 0%, rgba(34, 43, 56, 1) 100%, rgba(34, 43, 56, 1) 100%);
/* background: linear-gradient(135deg, rgba(42, 54, 73, 1) 0%, rgba(42, 54, 73, 1) 0%, rgba(34, 43, 56, 1) 100%, rgba(34, 43, 56, 1) 100%); */
background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
border: 1px solid #262d40;
border-radius: 4px;
}
@ -2313,7 +2332,9 @@ function viewClick(){
margin-top: 15px;
width: 100%;
height: calc(50% - 7px) ;
background:linear-gradient(135deg, rgba(42, 54, 73, 1) 0%, rgba(42, 54, 73, 1) 0%, rgba(34, 43, 56, 1) 100%, rgba(34, 43, 56, 1) 100%);
/* background:linear-gradient(135deg, rgba(42, 54, 73, 1) 0%, rgba(42, 54, 73, 1) 0%, rgba(34, 43, 56, 1) 100%, rgba(34, 43, 56, 1) 100%); */
background: linear-gradient(135deg, #1a1e2a 0%, #222b38 100%);
border: 1px solid #262d40;
border-radius: 4px;
}
@ -2481,15 +2502,17 @@ function viewClick(){
.body-userinfo-box{
width: 100%;
height: calc(40% - 7px) ;
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%);
height: 348px ;
/* 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(60% - 7px) ;
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%);
height: calc(100% - 348px - 14px) ;
/* 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;
margin-top: 15px;
@ -2502,7 +2525,7 @@ function viewClick(){
.body-userinfo-content-top{
position: relative;
width: calc(100%);
height: calc(55%);
height: 116px;
background-color: #374151;
border-radius: 8px 8px 0 0;
display: flex;
@ -2515,7 +2538,7 @@ function viewClick(){
padding-top: 20px;
position: relative;
width: calc(100%);
height: calc(45%);
height: calc(100% - 116px);
border-radius: 8px;
display: flex;
flex-wrap: wrap;
@ -2551,7 +2574,7 @@ function viewClick(){
display: flex;
align-items: center;
justify-content: center;
margin-right: 20px;
margin-right: 35px;
}
.userinfo-text-top{
display: flex;
@ -2561,7 +2584,7 @@ function viewClick(){
font-weight: 700;
font-style: normal;
color: #FFFFFF;
font-size: 24px;
font-size: 20px;
}
.userinfo-text2{
font-family: "Noto Sans SC";
@ -2576,6 +2599,7 @@ function viewClick(){
font-style: normal;
font-size: 16px;
color: rgb(255, 255, 255);
margin-top: 15px;
}
.userinfo-text4{
font-family: "Noto Sans SC";
@ -2630,7 +2654,7 @@ function viewClick(){
.patientInfotop1{
font-weight: 700;
font-style: normal;
font-size: 22px;
font-size: 20px;
color: #FFFFFF;
margin:0 30px;
margin-left:40px
@ -2642,14 +2666,14 @@ function viewClick(){
color: #FFFFFF;
}
.endbutton{
width: 90px;
height: 30px;
width: 72px;
height: 28px;
background-color: rgba(11, 148, 213, 1);
border:1px solid rgba(11, 148, 213, 1);
font-weight: 400;
font-style: normal;
font-size: 16px;
color: #FFFFFF;
font-size: 14px;
color: #D7D7D7;
margin-left:20px
}
@ -2673,7 +2697,8 @@ function viewClick(){
bottom: 0;
margin: auto;
border-radius: 10px;
background: linear-gradient(135deg, rgba(53, 67, 90, 1) 0%, rgba(53, 67, 90, 1) 0%, rgba(62, 79, 105, 1) 99%, rgba(62, 79, 105, 1) 100%);
background: #1b202c;
/* 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;
@ -2883,7 +2908,7 @@ function viewClick(){
padding-right: 10px;
}
.calibration-zero{
width: 70px;
width: 72px;
height: 28px;
background-color: rgb(69, 91, 123);
display:flex;
@ -2900,7 +2925,7 @@ function viewClick(){
cursor:pointer;
}
.calibration-zero:hover{
background-color: #14aaff;
background-color: #5189ff;
}
.noImageSvg-bg{
display:flex;

View File

@ -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/header/closepage.png" alt="" style="cursor: pointer;" @click="handleCancel('关闭')">
</div>
<div style="padding:20px 40px;">
<el-form :model="diagnosticForm" label-width="60px">
@ -14,6 +14,7 @@
<el-form-item label="处理">
<div style="display:flex;width: 100%;align-items:center;">
<el-select v-model="diagnosticForm.treatment_info" placeholder="请选择"
@blur="blurChange"
filterable allow-create default-first-option clearable style="width:calc(100% - 70px);">
<el-option v-for="opt in commonItems.treatment" :key="opt" :label="opt" :value="opt" />
</el-select>
@ -48,7 +49,7 @@
</el-form-item>
</el-form>
<div class="form-actions-display">
<el-button @click="handleCancel" class="formreturnCancel">退出</el-button>
<el-button @click="handleCancel('退出')" class="formreturnCancel">退出</el-button>
<el-button type="primary" class="formsaveCancel"
@click="handleDiagnosticInfo('completed')">
保存
@ -138,7 +139,11 @@ const diagnosticForm = ref({
treatment_info: '',
suggestion_info: ''
})
function blurChange(event){
if(event.target.value != ''){
diagnosticForm.value.treatment_info = event.target.value
}
}
const commonItems = reactive({ treatment: [], suggestion: [] })
const loadCommonItems = async () => {
try {
@ -216,8 +221,8 @@ onMounted(() => {
})
onMounted(loadCommonItems)
const handleCancel = async () => {
emit('closeDiagnosticMessage',false)
const handleCancel = async (type) => {
emit('closeDiagnosticMessage',type)
}
async function handleDiagnosticInfo(status) {
try {
@ -225,6 +230,14 @@ async function handleDiagnosticInfo(status) {
if (!props.selectedPatient.sessionId) {
throw new Error('缺少会话Id')
}
if (diagnosticForm.value.diagnosis_info == '' || diagnosticForm.value.diagnosis_info == null) {
ElMessage.warning('请填写记录信息')
return
}
if (diagnosticForm.value.treatment_info == '' || diagnosticForm.value.treatment_info == null) {
ElMessage.warning('请填写处理方式')
return
}
// API
const response = await fetch(`${BACKEND_URL}/api/detection/${props.selectedPatient.sessionId}/save-info`, {
method: 'POST',

View File

@ -261,10 +261,10 @@ function userConfirm(){
}
.system-logo {
width: 26px;
height: 26px;
width: 30px;
height: 30px;
border-radius: 4px;
background: #0B8Db2;
background: #2464e0;
display: flex;
align-items: center;
justify-content: center;

View File

@ -4,7 +4,7 @@
<!-- 页面主内容 -->
<div class="login-content">
<!-- 系统标题 -->
<div style="margin-right: 150px;">
<div style="margin-right: 280px;margin-top: -100px;">
<h1 class="system-login-title">
<span v-if="!isRegisterMode && !isForgotPasswordMode">欢迎登录</span>
<span v-if="isRegisterMode && !isForgotPasswordMode">注册</span>

View File

@ -267,7 +267,8 @@
<div class="patientprofile-container-dataInfobg-rightbox">
<div class="patientprofile-container-dataInfobg-lefttext" style="padding-top:0px">处理</div>
<div style="width: 100%; display:flex;align-items:center;">
<el-select v-model="profileInfo.treatment_info" placeholder="请选择" filterable allow-create default-first-option clearable
<el-select v-model="profileInfo.treatment_info" placeholder="请选择"
filterable allow-create default-first-option clearable @blur="blurChange"
style="width:100%;">
<el-option v-for="opt in commonItems.treatment" :key="opt" :label="opt" :value="opt" />
</el-select>
@ -527,6 +528,14 @@ const useImgList = ref([])// 图片
const useVideoList = ref([])//
const selectedData = ref([]) //
function blurChange(event){ //
if(event.target.value != ''){
profileInfo.value.treatment_info = event.target.value
}
}
function getTime(time){
let date = ""
if(time != null && time != ''){

View File

@ -0,0 +1,123 @@
<template>
<div class="PhotoAlbum-box">
<div class="PhotoAlbum-header">
<div>图片相册</div>
<img src="@/assets/header/closepage.png" alt="" style="cursor: pointer;width: 13px;height: 14px;"
@click="handleCancel">
</div>
<div class="PhotoAlbum-imgul">
<el-checkbox-group v-model="checkboxGroup" size="large" @change="selectedChange" >
<div v-for="(item, index) in useImgList" :key="index"
class="PhotoAlbum-imgbox">
<div class="PhotoAlbum-imgactive" @click="clickImg(item,index)">
<img :src="BACKEND_URL+'/' + item.screen_image" alt="" style="width: 100%;height: 100%;">
</div>
<div class="PhotoAlbum-imgtextbox">
<el-checkbox
:value="item.id" size="large" style="display:flex; align-items: center; justify-content: space-between">
<div>{{ item.id }}</div>
<span>{{ getTime(item.timestamp) }}</span>
</el-checkbox>
</div>
</div>
</el-checkbox-group>
</div>
<ImageDetails v-if="isImageDetails" :ImageDetailsList="imageList" :selectIndex="selectIndex"
@closeImageDetails="closeImageDetails"/>
</div>
</template>
<script setup>
import { ref, reactive, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { historyAPI,getBackendUrl } from '@/services/api.js'
const emit = defineEmits([ 'closePhotoAlbum']);
const BACKEND_URL = getBackendUrl()
const checkboxGroup = ref([]) //
const useImgList = ref([]) //
const selectIndex = ref(0) //
const isImageDetails = ref(false) //
const imageList = ref([]) //
function clickImg(item,index){ //
selectIndex.value = index
isImageDetails.value =true
}
function getTime(time){ //
let date = ""
if(time != null && time != ''){
date = time.split(' ')[1]
}
return date
}
const handleCancel = () => {
emit('closePhotoAlbum');
}
function closeImageDetails(){ //
isImageDetails.value = false
}
</script>
<style>
.PhotoAlbum-box{
width: 958px;
height:732px;
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
margin: auto;
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%);
border-radius: 10px;
box-shadow: 0px 0px 16px rgba(17, 24, 33, 1);
}
.PhotoAlbum-header{
width: 100%;
height: 50px;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 0 30px;
font-family: 'Noto Sans SC';
font-weight: 700;
font-style: normal;
font-size: 20px;
color: #FFFFFF;
text-align: left;
opacity:0.86;
}
.PhotoAlbum-imgul{
width: 100%;
height: calc(100% - 140px);
/* background: red; */
margin-top: 10px;
display: flex;
flex-wrap:wrap ;
align-content: flex-start;
}
.PhotoAlbum-imgbox{
width: 23%;
height: 100%;
}
.PhotoAlbum-imgactive{
width: 100%;
height: calc(100% - 30px);
display: flex;
justify-content: center;
align-items: center;
border: 2px solid transparent;
border-radius: 4px;
}
.PhotoAlbum-imgtextbox{
width: 100%;
height: 30px;
display: flex;
justify-content: space-between;
align-items: center;
}
</style>

View File

@ -14,7 +14,7 @@
<div class="ViewUserInfo-userinfo-text2">{{ calculateAge(patientInfo.birth_date) }}</div>
</div>
<div class="ViewUserInfo-userinfo-text3">
用户ID{{ patientInfo.id }}
ID{{ patientInfo.id }}
</div>
</div>
@ -186,12 +186,12 @@ const formatDate = (date) => {
position: absolute;
top: 40px;
right: 0px;
width: 500px;
width: 425px;
height: 600px;
background-color: rgba(17, 24, 39, 1);
border-radius: 5px;
box-sizing: border-box;
padding-left: 40px;
/* padding-left: 40px; */
padding-top: 50px;
z-index: 10;
}
@ -220,6 +220,7 @@ const formatDate = (date) => {
align-items: center;
justify-content: center;
margin-right: 20px;
margin-left: 15px;
}
.ViewUserInfo--text-top{
@ -231,7 +232,7 @@ const formatDate = (date) => {
font-weight: 700;
font-style: normal;
color: #FFFFFF;
font-size: 24px;
font-size: 20px;
}
.ViewUserInfo-userinfo-text2{
font-family: "Noto Sans SC";
@ -246,7 +247,7 @@ const formatDate = (date) => {
font-style: normal;
font-size: 16px;
color: #FFFFFF;
padding-top: 5px;
padding-top: 10px;
}
.ViewUserInfo-userinfo-text4{
font-family: "Noto Sans SC";
@ -270,11 +271,11 @@ const formatDate = (date) => {
align-items: center;
box-sizing: border-box;
padding: 10px 20px;
padding-left: 30px;
padding-left: 15px;
padding-right: 0;
}
.ViewUserInfo-detailinfo-leftbox{
width: 235px;
width: 225px;
height: 48px;
}
.ViewUserInfo-detailinfo-rightbox{