修改档案
BIN
frontend/src/renderer/src/assets/archive/bi.png
Normal file
|
After Width: | Height: | Size: 334 B |
BIN
frontend/src/renderer/src/assets/archive/bi2.png
Normal file
|
After Width: | Height: | Size: 334 B |
BIN
frontend/src/renderer/src/assets/archive/close.png
Normal file
|
After Width: | Height: | Size: 387 B |
BIN
frontend/src/renderer/src/assets/archive/del.png
Normal file
|
After Width: | Height: | Size: 401 B |
BIN
frontend/src/renderer/src/assets/archive/del2.png
Normal file
|
After Width: | Height: | Size: 401 B |
BIN
frontend/src/renderer/src/assets/archive/table.png
Normal file
|
After Width: | Height: | Size: 445 B |
BIN
frontend/src/renderer/src/assets/archive/usericon.png
Normal file
|
After Width: | Height: | Size: 460 B |
@ -630,6 +630,10 @@ export const historyAPI = {
|
||||
sessionsPage(params) {
|
||||
return api.get('/api/history/sessions', { params })
|
||||
},
|
||||
// 获取会话详细数据(一个)
|
||||
sessionsById(session_id) {
|
||||
return api.get(`/api/history/sessions/${session_id}`)
|
||||
},
|
||||
// 删除检测数据记录
|
||||
detectionDelById(id) {
|
||||
return api.delete(`/api/detection/data/${id}`, {})
|
||||
|
||||
@ -45,7 +45,6 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination background layout="prev, pager, next"
|
||||
:size="size"
|
||||
:page-size="size"
|
||||
:total="patienttotal"
|
||||
@current-change="handleCurrentChange"
|
||||
@ -204,14 +203,6 @@
|
||||
@click="startDetection">
|
||||
开始检测
|
||||
</div>
|
||||
<!-- <el-button v-if="selectedPatient" type="primary" class="primary-view-profile"
|
||||
@click="viewPatientProfile">
|
||||
查看档案
|
||||
</el-button>
|
||||
<el-button v-if="selectedPatient" type="primary" class="primary-view-profile"
|
||||
@click="startDetection">
|
||||
开始检测
|
||||
</el-button> -->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -226,7 +217,8 @@
|
||||
<Detection v-if="isDetection" :selectedPatient="selectedPatient"
|
||||
@endChange="endChange"></Detection>
|
||||
</div>
|
||||
<PatientProfile v-if="isPatientProfile"
|
||||
<PatientProfile
|
||||
v-if="isPatientProfile"
|
||||
:archiveType="false"
|
||||
:selectedPatient="selectedPatient"
|
||||
@closePatientProfile="closePatientProfile"/>
|
||||
|
||||
@ -480,7 +480,7 @@ import { getBackendUrl, patientAPI } from '../services/api.js'
|
||||
import noImageSvg from '@/assets/detection/no-image.png'
|
||||
import DiagnosticMessage from '@/views/DiagnosticMessage.vue'
|
||||
import PatientCreate from '@/views/PatientCreate.vue'
|
||||
import HistoryDashboard from '@/views/PatientProfile.vue'
|
||||
import PatientProfile from '@/views/PatientProfile.vue'
|
||||
import Model from './model.vue'
|
||||
import ViewUserInfo from '@/views/ViewUser.vue'
|
||||
|
||||
|
||||
@ -6,82 +6,84 @@
|
||||
<div class="patientprofiletext2" style="margin-right: 20px;">{{ selectedPatient.name }}</div>
|
||||
<div class="patientprofiletext3">{{ selectedPatient.gender }}</div>
|
||||
<div class="username-line"></div>
|
||||
<div class="patientprofiletext3">{{ calculateAge(selectedPatient.birth_date) }}</div>
|
||||
<div class="patientprofiletext3">{{ calculateAge(selectedPatient.birth_date) }}岁</div>
|
||||
</div>
|
||||
<img src="@/assets/new/close.png" alt="" style="cursor: pointer;" @click="handleCancel">
|
||||
<img src="@/assets/archive/close.png" alt="" style="cursor: pointer;" @click="handleCancel">
|
||||
</div>
|
||||
<div class="patientprofile-container">
|
||||
<div style="height: 100%;width: 500px;margin-right: 15px;">
|
||||
<div class="patientprofile-container-leftbox">
|
||||
<div class="patientprofile-title-display" style="margin-bottom:30px">
|
||||
<div class="patientprofile-title-display" style="margin-bottom:10px">
|
||||
<div class="patientprofile-son-display">
|
||||
<img src="@/assets/new/title4.svg" alt="" style="margin-right: 8px;">
|
||||
<div class="body-posture-text">用户信息</div>
|
||||
<img src="@/assets/archive/usericon.png" alt="" style="margin-right: 8px;">
|
||||
<div class="profile-text">用户信息</div>
|
||||
</div>
|
||||
<div class="patientprofile-son-display"></div>
|
||||
</div>
|
||||
<div class="patientprofile-userinfo-box">
|
||||
<div class="patientprofile-userinfo-text1">用户姓名:</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.name }}</div>
|
||||
<div class="patientprofile-userinfo-text1">用户ID:</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.id }}</div>
|
||||
</div>
|
||||
<div class="patientprofile-userinfo-box">
|
||||
<div class="patientprofile-userinfo-text1">性别:</div>
|
||||
<div class="patientprofile-userinfo-text1">性别</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.gender }}</div>
|
||||
<div class="patientprofile-userinfo-text1">出生日期:</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.birth_date }}</div>
|
||||
<div class="patientprofile-userinfo-text3">出生日期</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ formatDate(selectedPatient.birth_date) }}</div>
|
||||
</div>
|
||||
<div class="patientprofile-userinfo-box">
|
||||
<div class="patientprofile-userinfo-text1">年龄:</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ calculateAge(selectedPatient.birth_date) }}</div>
|
||||
<div class="patientprofile-userinfo-text1">民族:</div>
|
||||
<div class="patientprofile-userinfo-text1">年龄</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ calculateAge(selectedPatient.birth_date) }}岁</div>
|
||||
<div class="patientprofile-userinfo-text3">民族</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.nationality }}</div>
|
||||
</div>
|
||||
<div class="patientprofile-userinfo-box">
|
||||
<div class="patientprofile-userinfo-text1">居住地:</div>
|
||||
<div class="patientprofile-userinfo-text1">居住地</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.residence }}</div>
|
||||
<div class="patientprofile-userinfo-text1">身高:</div>
|
||||
<div class="patientprofile-userinfo-text3">身高</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.height }}cm</div>
|
||||
</div>
|
||||
<div class="patientprofile-userinfo-box">
|
||||
<div class="patientprofile-userinfo-text1">体重:</div>
|
||||
<div class="patientprofile-userinfo-text1">体重</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.weight }}kg</div>
|
||||
<div class="patientprofile-userinfo-text1">鞋码:</div>
|
||||
<div class="patientprofile-userinfo-text3">鞋码</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.shoe_size }}码</div>
|
||||
</div>
|
||||
<div class="patientprofile-userinfo-box">
|
||||
<div class="patientprofile-userinfo-text1">电话:</div>
|
||||
<div class="patientprofile-userinfo-text1">电话</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.phone }}</div>
|
||||
<div class="patientprofile-userinfo-text1">邮箱:</div>
|
||||
<div class="patientprofile-userinfo-text3">邮箱</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.email }}</div>
|
||||
</div>
|
||||
<div class="patientprofile-userinfo-box">
|
||||
<div class="patientprofile-userinfo-text1">职业:</div>
|
||||
<div class="patientprofile-userinfo-text1">职业</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.occupation }}</div>
|
||||
<div class="patientprofile-userinfo-text1">证件号:</div>
|
||||
<div class="patientprofile-userinfo-text3">证件号</div>
|
||||
<div class="patientprofile-userinfo-text2">{{ selectedPatient.workplace }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="patientprofile-container-leftbottombox">
|
||||
<div class="patientprofile-title-display">
|
||||
<div class="patientprofile-son-display">
|
||||
<img src="@/assets/new/history2.svg" alt="" style="margin-right: 8px;">
|
||||
<div class="body-posture-text">检测记录(9次)</div>
|
||||
<img src="@/assets/archive/table.png" alt="" style="margin-right: 8px;">
|
||||
<div class="profile-text">检测记录
|
||||
<span style="padding-left:5px; font-family: 'Noto Sans SC';
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
color: rgba(255, 255, 255, 0.5);">共计:{{recordData.length}}次
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="patientprofile-son-display">
|
||||
<el-button v-if="selectedPatient" type="primary"
|
||||
:class="selectedData.length == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
||||
@click="viewPatientProfile">
|
||||
<img v-if="selectedData.length == 2" src="@/assets/new/bi2.png" alt="" style="margin-right: 8px;">
|
||||
<img v-else src="@/assets/new/bi.png" alt="" style="margin-right: 8px;">
|
||||
<img v-if="selectedData.length == 2" src="@/assets/archive/bi2.png" alt="" style="margin-right: 8px;">
|
||||
<img v-else src="@/assets/archive/bi.png" alt="" style="margin-right: 8px;" class="opacity50">
|
||||
报告对比
|
||||
</el-button>
|
||||
<el-button v-if="selectedPatient" type="primary"
|
||||
:class="selectedData.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
||||
@click="viewPatientProfile">
|
||||
<img v-if="selectedData.length>0" src="@/assets/new/del2.png" alt="" style="margin-right: 8px;">
|
||||
<img v-else src="@/assets/new/del.png" alt="" style="margin-right: 8px;">
|
||||
<img v-if="selectedData.length>0" src="@/assets/archive/del2.png" alt=""
|
||||
style="margin-right: 8px;" >
|
||||
<img v-else src="@/assets/archive/del.png" alt="" style="margin-right: 8px;" class="opacity50">
|
||||
删除记录
|
||||
</el-button>
|
||||
</div>
|
||||
@ -93,21 +95,21 @@
|
||||
@cell-click="selectRecord" @selection-change="handleSelectionChange"
|
||||
highlight-current-row>
|
||||
<el-table-column type="selection" width="30" />
|
||||
<el-table-column prop="id" label="患者ID" width="70" />
|
||||
<el-table-column prop="created_at" label="就诊时间" width="100" align="center" />
|
||||
<el-table-column prop="doctor" label="测试医生" min-width="80" align="center" />
|
||||
<el-table-column prop="start_time" label="就诊时间" width="160" align="center" />
|
||||
<el-table-column prop="creator_name" label="测试医生" min-width="80" align="center" />
|
||||
<el-table-column prop="report" label="报告" width="60">
|
||||
<template #default="scope">
|
||||
<div
|
||||
v-if="scope.row.report == null"
|
||||
v-if="scope.row.detection_report == null"
|
||||
style="width:28px;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
color: #266FFF;
|
||||
font-family: 'Noto Sans SC';
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
color: #14AAFF;
|
||||
line-height: 18px;
|
||||
cursor: pointer;">生成报告</div>
|
||||
<div class="patientprofile-file-box" v-if="scope.row.report != null">
|
||||
<div class="patientprofile-file-box" v-if="scope.row.detection_report != null">
|
||||
<img src="@/assets/new/file.png" alt="" @click="fileClick(scope.row)">
|
||||
<img src="@/assets/new/del.png" class="patientprofile-del" alt=""
|
||||
@click="deleteClick(scope.row)">
|
||||
@ -116,13 +118,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="60">
|
||||
<template #default="scope">
|
||||
<span
|
||||
style="font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
color: #FF3300;
|
||||
cursor: pointer;"
|
||||
@click="deleteClick(scope.row.id)">删除</span>
|
||||
<img src="@/assets/archive/del.png"
|
||||
style="cursor: pointer;" @click.stop="deleteClick(scope.row)">
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -132,12 +129,12 @@
|
||||
<div class="patientprofile-title-display">
|
||||
<div class="patientprofile-son-display">
|
||||
<img src="@/assets/new/history3.svg" alt="" style="margin-right: 8px;">
|
||||
<div class="body-posture-text">就诊档案</div>
|
||||
<div class="profile-text">就诊档案</div>
|
||||
</div>
|
||||
<div class="patientprofile-son-display">
|
||||
<div class="patientprofile-son-text">测试医生:李莉莉</div>
|
||||
<div class="patientprofile-son-text">就诊时间:2025年10月20日 10:48:23</div>
|
||||
<div class="patientprofile-son-text">档案ID:25002</div>
|
||||
<div class="patientprofile-son-text">测试医生:{{ selectedRecord.creator_name }}</div>
|
||||
<div class="patientprofile-son-text">就诊时间:{{ selectedRecord.start_time }}</div>
|
||||
<div class="patientprofile-son-text">档案ID:{{ selectedPatient.id }}</div>
|
||||
<div v-if="archiveType == true" class="patientprofile-son-detectiontext">正在检测</div>
|
||||
|
||||
</div>
|
||||
@ -167,16 +164,16 @@
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="patientprofile-container-databg">
|
||||
<div v-if="useImgList.length>0" class="patientprofile-container-databg">
|
||||
<div class="patientprofile-arrowbox">
|
||||
<div class="leftjiantou" @click="handleUpward"></div>
|
||||
</div>
|
||||
<div class="patientprofile-imgbgbox">
|
||||
<el-checkbox-group v-model="checkboxGroup" size="large" @change="selectedChange" >
|
||||
<div v-for="(item, index) in useImgList" :key="index"
|
||||
class="patientprofile-imgbox">
|
||||
class="patientprofile-imgbox">
|
||||
<div class="patientprofile-imgactive">
|
||||
<img src="@/assets/new/test.png" alt="">
|
||||
<img :src="BACKEND_URL+'/' + item.foot_data_image" alt="" style="width: 100%;height: 100%;">
|
||||
</div>
|
||||
<div class="patientprofile-imgtextbox">
|
||||
<el-checkbox
|
||||
@ -186,6 +183,9 @@
|
||||
</el-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
<div class="patientprofile-imgbox" v-if="useImgList.length < 2"></div>
|
||||
<div class="patientprofile-imgbox" v-if="useImgList.length < 3"></div>
|
||||
<div class="patientprofile-imgbox" v-if="useImgList.length < 4"></div>
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
<div class="patientprofile-arrowbox">
|
||||
@ -193,6 +193,7 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else class="patientprofile-container-databg"></div>
|
||||
</div>
|
||||
<div class="patientprofile-container-video">
|
||||
<div class="patientprofile-container-data-displaycup">
|
||||
@ -208,16 +209,19 @@
|
||||
删除
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="patientprofile-container-databg">
|
||||
<div v-if="useVideoList.length>0" class="patientprofile-container-databg" >
|
||||
<div class="patientprofile-arrowbox">
|
||||
<div class="leftjiantou" @click="handleVideoUpward"></div>
|
||||
</div>
|
||||
<div class="patientprofile-imgbgbox">
|
||||
<el-checkbox-group v-model="checkboxVideo" size="large" @change="selectedChange" >
|
||||
<div v-for="(item, index) in useVideoList" :key="index"
|
||||
class="patientprofile-imgbox">
|
||||
class="patientprofile-imgbox">
|
||||
<div class="patientprofile-imgactive">
|
||||
<img src="@/assets/new/test.png" alt="">
|
||||
{{ BACKEND_URL+'/' + item.screen_video.replace(/\\/g, '/') }}
|
||||
<video ref="videoPlayerRef" :src="item.screen_video ? BACKEND_URL+'/' + item.screen_video.replace(/\\/g, '/') : ''" controls width="100%" height="100%">
|
||||
您的浏览器不支持视频播放
|
||||
</video>
|
||||
</div>
|
||||
<div class="patientprofile-imgtextbox">
|
||||
<el-checkbox
|
||||
@ -227,6 +231,9 @@
|
||||
</el-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
<div class="patientprofile-imgbox" v-if="useVideoList.length < 2"></div>
|
||||
<div class="patientprofile-imgbox" v-if="useVideoList.length < 3"></div>
|
||||
<div class="patientprofile-imgbox" v-if="useVideoList.length < 4"></div>
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
<div class="patientprofile-arrowbox">
|
||||
@ -234,6 +241,7 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else class="patientprofile-container-databg"></div>
|
||||
</div>
|
||||
<div class="patientprofile-container-info">
|
||||
<div class="patientprofile-container-data-displaycup">
|
||||
@ -282,6 +290,11 @@ import { useRouter, useRoute } from 'vue-router'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { patientAPI, detectionAPI,historyAPI,getBackendUrl } from '@/services/api.js'
|
||||
import { useAuthStore } from '@/stores/index.js'
|
||||
const formatDate = (date) => {
|
||||
return new Date(date).toLocaleDateString('zh-CN')
|
||||
}
|
||||
// 后端服务器地址配置
|
||||
const BACKEND_URL = getBackendUrl()
|
||||
const emit = defineEmits([ 'endChange']);
|
||||
const props = defineProps({
|
||||
selectedPatient: {
|
||||
@ -298,55 +311,22 @@ const props = defineProps({
|
||||
const archiveType =ref(false)
|
||||
const profileInfo = ref({}) // 患者信息
|
||||
const selectedRecord = ref({})
|
||||
const recordData =ref([{
|
||||
id: 1,
|
||||
name: '张三',
|
||||
sex: '男',
|
||||
age: 18,
|
||||
phone: '12345678901',
|
||||
address: '中国',
|
||||
description: '这是一个测试患者',
|
||||
created_at: '2021-01-01 00:00:00',
|
||||
updateTime: '2021-01-01 00:00:00',
|
||||
status: '正常',
|
||||
isDeleted: false,
|
||||
|
||||
},{
|
||||
id: 2,
|
||||
name: '张三',
|
||||
sex: '男',
|
||||
age: 18,
|
||||
phone: '12345678901',
|
||||
address: '中国',
|
||||
description: '这是一个测试患者',
|
||||
created_at: '2021-01-01 00:00:00',
|
||||
updateTime: '2021-01-01 00:00:00',
|
||||
report: '正常',
|
||||
isDeleted: false,
|
||||
|
||||
}
|
||||
|
||||
])
|
||||
const recordData =ref([])
|
||||
|
||||
const checkboxGroup = ref([]) // 图片列表选中的数据
|
||||
|
||||
const checkboxVideo =ref([]) // 视频列表选中的数据
|
||||
const imageList = ref([])
|
||||
for (let i = 0; i < 10; i++) {
|
||||
imageList.value.push({
|
||||
id: i,
|
||||
name: '图片' + i,
|
||||
url: '',
|
||||
description: '这是一个测试图片',
|
||||
|
||||
})
|
||||
}
|
||||
const videoList = ref([])
|
||||
const activeImgIndex = ref(0)
|
||||
const activeVideoIndex = ref(0)
|
||||
const tempImgList = ref([])
|
||||
tempImgList.value = [...imageList.value]
|
||||
const tempVideoList = ref([])
|
||||
// tempImgList.value = [...imageList.value]
|
||||
const useImgList = ref([])// 图片
|
||||
const useVideoList = ref([])// 视频
|
||||
useImgList.value =[...tempImgList.value.slice(0, 4)] // 图片
|
||||
useVideoList.value =[...tempImgList.value.slice(0, 4)] // 视频
|
||||
// useImgList.value =[...tempImgList.value.slice(0, 4)] // 图片
|
||||
// useVideoList.value =[...tempImgList.value.slice(0, 4)] // 视频
|
||||
|
||||
const selectedData = ref([]) // 列表选中的数据
|
||||
|
||||
@ -379,6 +359,8 @@ const handleSubmit = (item) => {
|
||||
|
||||
function selectRecord(data){ // 列表点击单选
|
||||
selectedRecord.value = data
|
||||
sessionsById(data.id)
|
||||
|
||||
}
|
||||
const handleSelectionChange = (val) => { // 列表多选
|
||||
selectedData.value = val
|
||||
@ -387,34 +369,73 @@ const handleSelectionChange = (val) => { // 列表多选
|
||||
const sessionsInit = async () => {
|
||||
try {
|
||||
let params ={
|
||||
patient_id: props.selectedPatient.id
|
||||
patient_id: props.selectedPatient.id,
|
||||
size: 99
|
||||
}
|
||||
// 导出报告逻辑
|
||||
const response = await historyAPI.sessionsPage(params)
|
||||
if (response.success) {
|
||||
response.data.sessions.forEach(element => {
|
||||
element.list = [{}]
|
||||
});
|
||||
// response.data.sessions.forEach(element => {
|
||||
// element.list = [{}]
|
||||
// });
|
||||
recordData.value = response.data.sessions
|
||||
}
|
||||
} catch (error) {
|
||||
ElMessage.error('获取失败')
|
||||
}
|
||||
}
|
||||
const sessionsById = async (session_id) => {
|
||||
try {
|
||||
imageList.value = []
|
||||
videoList.value = []
|
||||
|
||||
tempImgList.value = []
|
||||
tempVideoList.value = []
|
||||
useImgList.value = []
|
||||
useVideoList.value = []
|
||||
activeImgIndex.value = 0
|
||||
activeVideoIndex.value = 0
|
||||
// 导出报告逻辑
|
||||
const response = await historyAPI.sessionsById(session_id)
|
||||
if (response.success) {
|
||||
imageList.value = response.data.data
|
||||
videoList.value = response.data.videos
|
||||
|
||||
tempImgList.value = [...imageList.value]
|
||||
tempVideoList.value = [...videoList.value]
|
||||
if(tempImgList.value.length>4){
|
||||
useImgList.value =[...tempImgList.value.slice(0, 4)]
|
||||
}else{
|
||||
useImgList.value =[...tempImgList.value]
|
||||
}
|
||||
if(useVideoList.value.length>4){
|
||||
useVideoList.value =[...tempVideoList.value.slice(0, 4)]
|
||||
}else{
|
||||
useVideoList.value =[...tempVideoList.value]
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
ElMessage.error('获取失败')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
archiveType.value = props.archiveType
|
||||
// sessionsInit()
|
||||
sessionsInit()
|
||||
|
||||
})
|
||||
|
||||
function deleteClick(row){
|
||||
// 检查状态是否为 checking
|
||||
if (row.status === 'checking') {
|
||||
ElMessage.warning({
|
||||
message: '平衡体态检查中,不能删除!',
|
||||
duration: 3000
|
||||
});
|
||||
return;
|
||||
}
|
||||
// if (row.status === 'checking') {
|
||||
// ElMessage.warning({
|
||||
// message: '平衡体态检查中,不能删除!',
|
||||
// duration: 3000
|
||||
// });
|
||||
// return;
|
||||
// }
|
||||
|
||||
ElMessageBox.confirm(
|
||||
'确定义删除此条数据?',
|
||||
@ -425,17 +446,17 @@ function deleteClick(row){
|
||||
type: 'warning',
|
||||
}
|
||||
).then(() => {
|
||||
historyAPI.sessionsDelById(row.id).then((response)=>{
|
||||
if(response.success){
|
||||
ElMessage.success({
|
||||
message: response.message,
|
||||
duration: 5000
|
||||
});
|
||||
sessionsInit()
|
||||
}
|
||||
}).catch(()=>{
|
||||
})
|
||||
historyAPI.sessionsDelById(row.id).then((response)=>{
|
||||
if(response.success){
|
||||
ElMessage.success({
|
||||
message: response.message,
|
||||
duration: 5000
|
||||
});
|
||||
sessionsInit()
|
||||
}
|
||||
}).catch(()=>{
|
||||
})
|
||||
})
|
||||
}
|
||||
function fileClick(row){
|
||||
ElMessage.success({
|
||||
@ -447,10 +468,15 @@ function fileClick(row){
|
||||
function selectedChange(val){
|
||||
console.log(val)
|
||||
}
|
||||
const activeImgIndex = ref(0)
|
||||
const activeVideoIndex = ref(0)
|
||||
function handleNext(){
|
||||
|
||||
function handleNext(){ //图片下一页
|
||||
if( useImgList.value.length<4){
|
||||
ElMessage.success({
|
||||
message: '已最后一页',
|
||||
duration: 3000
|
||||
});
|
||||
return
|
||||
}
|
||||
if(activeImgIndex.value + 4 >= imageList.value.length){
|
||||
ElMessage.success({
|
||||
message: '已最后一页',
|
||||
@ -461,63 +487,53 @@ function handleNext(){
|
||||
activeImgIndex.value = activeImgIndex.value + 1
|
||||
tempImgList.value = [...imageList.value]
|
||||
useImgList.value =[...tempImgList.value.slice(activeImgIndex.value, activeImgIndex.value+4)]
|
||||
ElMessage.success({
|
||||
message: '下一页',
|
||||
duration: 3000
|
||||
});
|
||||
}
|
||||
function handleUpward(){
|
||||
|
||||
function handleUpward(){ //图片上一页
|
||||
if(activeImgIndex.value + 4 <= 4){
|
||||
ElMessage.success({
|
||||
message: '已第一页',
|
||||
duration: 3000
|
||||
duration: 1000
|
||||
});
|
||||
return
|
||||
}
|
||||
activeImgIndex.value = activeImgIndex.value - 1
|
||||
tempImgList.value = [...imageList.value]
|
||||
useImgList.value =[...tempImgList.value.slice(activeImgIndex.value, activeImgIndex.value+4)]
|
||||
ElMessage.success({
|
||||
message: '下一页',
|
||||
duration: 3000
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
function handleVideoNext(){
|
||||
if(activeVideoIndex.value + 4 >= imageList.value.length){
|
||||
function handleVideoNext(){ // 视频下一页
|
||||
if( useVideoList.value.length<4){
|
||||
ElMessage.success({
|
||||
message: '已最后一页',
|
||||
duration: 3000
|
||||
duration: 1000
|
||||
});
|
||||
return
|
||||
}
|
||||
if(activeVideoIndex.value + 4 >= videoList.value.length){
|
||||
ElMessage.success({
|
||||
message: '已最后一页',
|
||||
duration: 1000
|
||||
});
|
||||
return
|
||||
}
|
||||
activeVideoIndex.value = activeVideoIndex.value + 1
|
||||
tempImgList.value = [...imageList.value]
|
||||
tempImgList.value = [...videoList.value]
|
||||
useVideoList.value = [...tempImgList.value.slice(activeVideoIndex.value, activeVideoIndex.value+4)]
|
||||
ElMessage.success({
|
||||
message: '下一页',
|
||||
duration: 3000
|
||||
});
|
||||
}
|
||||
function handleVideoUpward(){
|
||||
function handleVideoUpward(){ // 视频上一页
|
||||
|
||||
if(activeVideoIndex.value + 4 <= 4){
|
||||
ElMessage.success({
|
||||
message: '已第一页',
|
||||
duration: 3000
|
||||
duration: 1000
|
||||
});
|
||||
return
|
||||
}
|
||||
activeVideoIndex.value = activeVideoIndex.value - 1
|
||||
tempImgList.value = [...imageList.value]
|
||||
tempImgList.value = [...videoList.value]
|
||||
useVideoList.value = [...tempImgList.value.slice(activeVideoIndex.value, activeVideoIndex.value+4)]
|
||||
ElMessage.success({
|
||||
message: '下一页',
|
||||
duration: 3000
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -568,7 +584,9 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
function viewPatientProfile() { // 临时方法
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@ -579,7 +597,7 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background: #101010;
|
||||
background: rgba(25, 29, 40, 1);
|
||||
}
|
||||
.patient-profile-header{
|
||||
width: 100%;
|
||||
@ -591,27 +609,30 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
padding: 0 20px;
|
||||
}
|
||||
.patientprofiletext1{
|
||||
font-family: 'Noto Sans SC Bold', 'Noto Sans SC Regular', 'Noto Sans SC';
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
color: #266FFF;
|
||||
font-size: 18px;
|
||||
font-size: 24px;
|
||||
color: #0B94D5;
|
||||
text-align: left;
|
||||
}
|
||||
.patientprofiletext2{
|
||||
font-family: 'Noto Sans SC Bold', 'Noto Sans SC Regular', 'Noto Sans SC';
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-size: 22px;
|
||||
font-size: 20px;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.patientprofiletext3{
|
||||
font-weight: 400;
|
||||
font-family: 'Noto Sans SC Bold', 'Noto Sans SC Regular', 'Noto Sans SC';
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-size: 16px;
|
||||
font-size: 20px;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.username-line {
|
||||
width: 2px;
|
||||
height: 15px;
|
||||
height: 22px;
|
||||
margin: 0 10px;
|
||||
background-color: #fff;
|
||||
}
|
||||
@ -625,28 +646,27 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
}
|
||||
.patientprofile-container-leftbox{
|
||||
width: 500px;
|
||||
height: 395px;
|
||||
background-color: rgba(40, 40, 40, 1);
|
||||
height: 350px;
|
||||
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-radius: 5px;
|
||||
}
|
||||
.patientprofile-container-leftbottombox{
|
||||
margin-top: 15px;
|
||||
width: 500px;
|
||||
height: calc(100% - 395px - 15px) ;
|
||||
background-color: rgba(40, 40, 40, 1);
|
||||
height: calc(100% - 350px - 15px) ;
|
||||
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-radius: 5px;
|
||||
}
|
||||
.patientprofile-container-rightbox{
|
||||
width: calc(100% - 500px - 15px) ;
|
||||
height: 100%;
|
||||
background-color: rgba(40, 40, 40, 1);
|
||||
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-radius: 5px;
|
||||
}
|
||||
|
||||
.patientprofile-title-display{
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
border-bottom: 1px solid #000;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
@ -675,40 +695,50 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
.patientprofile-userinfo-text1{
|
||||
width: 75px;
|
||||
width: 60px;
|
||||
font-family: 'Noto Sans SC';
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
color: #949494;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
}
|
||||
.patientprofile-userinfo-text2{
|
||||
width: 150px;
|
||||
font-family: 'Noto Sans SC';
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 16px;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.patientprofile-userinfo-text3{
|
||||
width: 70px;
|
||||
font-family: 'Noto Sans SC';
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
color: #FFFFFF;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
}
|
||||
.patientprofile-butotn{
|
||||
width: 98px;
|
||||
height: 30px;
|
||||
height: 40px;
|
||||
background: inherit;
|
||||
background-color: rgba(64, 64, 64, 1);
|
||||
background-color: rgba(55, 65, 81, 1);
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 0 0 rgba(64, 64, 64, 1);
|
||||
border-color: rgba(64, 64, 64, 1);
|
||||
box-shadow: 0 0 0 rgba(55, 65, 81, 1);
|
||||
border-color: rgba(55, 65, 81, 1);
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
color: rgb(120, 120, 120);
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
cursor: default;
|
||||
}
|
||||
.patientprofile-selectedbutotn{
|
||||
width: 98px;
|
||||
height: 30px;
|
||||
background-color: rgba(38, 111, 255, 1);
|
||||
height: 40px;
|
||||
background-color: #0b94d5;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 0 0 rgba(38, 111, 255, 1);
|
||||
border-color: rgba(38, 111, 255, 1);
|
||||
box-shadow: 0 0 0 #0b94d5;
|
||||
border-color: #0b94d5;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
@ -739,17 +769,23 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
}
|
||||
|
||||
.patient-profile-container .el-table th.el-table__cell.is-leaf {
|
||||
background-color: rgb(70, 70, 70) !important;
|
||||
background-color: #374151!important;
|
||||
font-family: 'Noto Sans SC Bold', 'Noto Sans SC Regular', 'Noto Sans SC';
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
height: 50px;
|
||||
}
|
||||
.patient-profile-container .el-table th.el-table__cell.is-leaf{
|
||||
border-bottom: 1px solid rgba(54, 54, 54, 1);
|
||||
border-bottom: 1px solid #374151;
|
||||
}
|
||||
.patient-profile-container .el-table td.el-table__cell {
|
||||
background-color: #282828 !important;
|
||||
border-bottom: 1px solid rgba(54, 54, 54, 1);
|
||||
background-color: transparent !important;
|
||||
border-bottom: 1px solid #374151;
|
||||
}
|
||||
.patient-profile-container .el-table td.el-table__cell:hover {
|
||||
background-color: #363636 !important; /* 自定义浅蓝底色 */
|
||||
background-color: #1f2a45 !important; /* 自定义浅蓝底色 */
|
||||
}
|
||||
.patient-profile-container .el-table .cell{
|
||||
font-size: 14px !important;
|
||||
@ -822,20 +858,20 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
height: 16px;
|
||||
}
|
||||
.patient-profile-container .el-checkbox__input.is-indeterminate .el-checkbox__inner{
|
||||
background-color: rgba(38, 111, 255, 1);
|
||||
border-color: rgba(38, 111, 255, 1);
|
||||
background-color: #0b94d5;
|
||||
border-color: #0b94d5;
|
||||
|
||||
}
|
||||
.patient-profile-container .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{
|
||||
top: 6px;
|
||||
}
|
||||
.patient-profile-container .el-checkbox__input.is-checked .el-checkbox__inner{
|
||||
background-color: rgba(38, 111, 255, 1);
|
||||
border-color: rgba(38, 111, 255, 1);
|
||||
background-color: #0b94d5;
|
||||
border-color: #0b94d5;
|
||||
|
||||
}
|
||||
.patient-profile-container .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{
|
||||
background-color: #363636 !important;
|
||||
background-color: #1f2a45 !important;
|
||||
}
|
||||
.patientprofile-son-text{
|
||||
font-weight: 700;
|
||||
@ -858,21 +894,21 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
.patientprofile-container-databg{
|
||||
width: 100%;
|
||||
height: calc(100% - 40px);
|
||||
background-color: rgba(27, 27, 27, 1);
|
||||
background-color: rgba(55, 65, 81, 1);
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
.patientprofile-container-dataInfobg{
|
||||
width: 100%;
|
||||
height: calc(100% - 40px);
|
||||
background-color: rgba(27, 27, 27, 1);
|
||||
/* background-color: rgba(55, 65, 81, 1); */
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 10px;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
|
||||
@ -901,7 +937,7 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
.patientprofile-container-data-line{
|
||||
width: 4px;
|
||||
height: 13px;
|
||||
background-color: rgba(38, 111, 255, 1);
|
||||
background-color: #0b94d5;
|
||||
margin-right: 3px;
|
||||
}
|
||||
.patientprofile-container-data-title{
|
||||
@ -942,7 +978,7 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
border-radius: 4px;
|
||||
}
|
||||
.patientprofile-imgactive:hover{
|
||||
border: 2px solid rgba(38, 111, 255, 1);
|
||||
border: 2px solid #0b94d5;
|
||||
}
|
||||
.patientprofile-imgtextbox{
|
||||
width: 100%;
|
||||
@ -1000,10 +1036,11 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
justify-items: center;
|
||||
}
|
||||
.patientprofile-container-dataInfobg-lefttext{
|
||||
font-family: 'Noto Sans SC';
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
color: #787878;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
padding-top: 10px;
|
||||
@ -1018,15 +1055,15 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
.patientprofile-container-dataInfobg-textarea .el-textarea__inner{
|
||||
width: 100% ;
|
||||
height: 100%;
|
||||
background: #282828;
|
||||
box-shadow: 0 0 0 1px rgb(54, 54, 54) inset;
|
||||
background: #191D28;
|
||||
box-shadow: 0 0 0 1px #191D28 inset;
|
||||
color: #fff;
|
||||
}
|
||||
.patientprofile-container-dataInfobg-textarea .el-textarea__inner:hover{
|
||||
width: 100% ;
|
||||
height: 100%;
|
||||
background: #282828;
|
||||
box-shadow: 0 0 0 1px rgba(38, 111, 255, 1) inset;
|
||||
background: #191D28;
|
||||
box-shadow: 0 0 0 1px #0b94d5 inset;
|
||||
|
||||
}
|
||||
.patientprofile-container-dataInfobg-rightbox{
|
||||
@ -1037,12 +1074,12 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
}
|
||||
.patientprofile-container-dataInfobg .el-select__wrapper{
|
||||
height: 40px;
|
||||
background: #282828;
|
||||
box-shadow: 0 0 0 1px rgb(54, 54, 54) inset;
|
||||
background: #191D28;
|
||||
box-shadow: 0 0 0 1px #191D28 inset;
|
||||
}
|
||||
.patientprofile-container-dataInfobg .el-select__wrapper:hover{
|
||||
background: #282828;
|
||||
box-shadow: 0 0 0 1px rgba(38, 111, 255, 1) inset !important;
|
||||
background: #191D28;
|
||||
box-shadow: 0 0 0 1px #0b94d5 inset !important;
|
||||
}
|
||||
.patientprofile-container-dataInfobg-rightbottombox{
|
||||
display: flex;
|
||||
@ -1060,4 +1097,15 @@ async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||
color: #00CC00;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.profile-text{
|
||||
font-family: 'Noto Sans SC Bold', 'Noto Sans SC Regular', 'Noto Sans SC';
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-size: 20px;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.opacity50{
|
||||
opacity: 0.5;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -515,10 +515,11 @@ function getDayNum(date2,index){
|
||||
const sessionsInit = async () => {
|
||||
try {
|
||||
let params ={
|
||||
patient_id: route.params.id
|
||||
patient_id: '202511270002'
|
||||
}
|
||||
// 导出报告逻辑
|
||||
const response = await historyAPI.sessionsPage(params)
|
||||
debugger
|
||||
if (response.success) {
|
||||
response.data.sessions.forEach(element => {
|
||||
element.list = [{}]
|
||||
|
||||