修改患者档案页面

This commit is contained in:
limengnan 2025-11-28 08:10:31 +08:00
parent fbe332a8a6
commit 79c6b5859b
10 changed files with 619 additions and 39 deletions

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="14px" height="14px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -301 -488 )">
<path d="M 1.28597284696696 2.56561085477938 L 1.28597284696696 11.4343891452206 L 5.08687783547794 11.4343891452206 L 5.08687783547794 12.7013574586397 L 0 12.7013574586397 L 0 1.29864254136032 L 5.08687783547794 1.29864254136032 L 5.08687783547794 2.56561085477938 L 1.28597284696696 2.56561085477938 Z M 8.25429863511033 12.7013574586397 L 8.25429863511033 11.4343891452206 L 9.52126696461403 11.4343891452206 L 9.52126696461403 12.7013574586397 L 8.25429863511033 12.7013574586397 Z M 10.1547511374081 12.7013574586397 L 10.1547511374081 11.4343891452206 L 11.4217194508273 11.4343891452206 L 11.4217194508273 12.7013574586397 L 10.1547511374081 12.7013574586397 Z M 13.322171953125 12.7013574586397 L 12.0552036236213 12.7013574586397 L 12.0552036236213 11.4343891452206 L 13.322171953125 11.4343891452206 L 13.322171953125 12.7013574586397 Z M 13.322171953125 8.2669683295037 L 12.0552036236213 8.2669683295037 L 12.0552036236213 7 L 13.322171953125 7 L 13.322171953125 8.2669683295037 Z M 13.322171953125 10.1674208157169 L 12.0552036236213 10.1674208157169 L 12.0552036236213 8.90045248621323 L 13.322171953125 8.90045248621323 L 13.322171953125 10.1674208157169 Z M 13.322171953125 6.36651584329047 L 12.0552036236213 6.36651584329047 L 12.0552036236213 5.09954751378677 L 13.322171953125 5.09954751378677 L 13.322171953125 6.36651584329047 Z M 13.322171953125 4.4660633409926 L 12.0552036236213 4.4660633409926 L 12.0552036236213 3.19909502757355 L 13.322171953125 3.19909502757355 L 13.322171953125 4.4660633409926 Z M 13.322171953125 2.56561085477938 L 12.0552036236213 2.56561085477938 L 12.0552036236213 1.29864254136032 L 13.322171953125 1.29864254136032 L 13.322171953125 2.56561085477938 Z M 11.4217194508273 1.29864254136032 L 11.4217194508273 2.56561085477938 L 10.1547511374081 2.56561085477938 L 10.1547511374081 1.29864254136032 L 11.4217194508273 1.29864254136032 Z M 9.52126696461403 1.29864254136032 L 9.52126696461403 2.56561085477938 L 8.25429863511033 2.56561085477938 L 8.25429863511033 1.29864254136032 L 9.52126696461403 1.29864254136032 Z M 6.35384614889711 13.9683257881434 L 6.35384614889711 0.0316742118566253 L 7.6208144784008 0.0316742118566253 L 7.6208144784008 13.9683257881434 L 6.35384614889711 13.9683257881434 Z " fill-rule="nonzero" fill="#787878" stroke="none" transform="matrix(1 0 0 1 301 488 )" />
</g>
</svg>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="14px" height="14px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -301 -488 )">
<path d="M 1.28597284696696 2.56561085477938 L 1.28597284696696 11.4343891452206 L 5.08687783547794 11.4343891452206 L 5.08687783547794 12.7013574586397 L 0 12.7013574586397 L 0 1.29864254136032 L 5.08687783547794 1.29864254136032 L 5.08687783547794 2.56561085477938 L 1.28597284696696 2.56561085477938 Z M 8.25429863511033 12.7013574586397 L 8.25429863511033 11.4343891452206 L 9.52126696461403 11.4343891452206 L 9.52126696461403 12.7013574586397 L 8.25429863511033 12.7013574586397 Z M 10.1547511374081 12.7013574586397 L 10.1547511374081 11.4343891452206 L 11.4217194508273 11.4343891452206 L 11.4217194508273 12.7013574586397 L 10.1547511374081 12.7013574586397 Z M 13.322171953125 12.7013574586397 L 12.0552036236213 12.7013574586397 L 12.0552036236213 11.4343891452206 L 13.322171953125 11.4343891452206 L 13.322171953125 12.7013574586397 Z M 13.322171953125 8.2669683295037 L 12.0552036236213 8.2669683295037 L 12.0552036236213 7 L 13.322171953125 7 L 13.322171953125 8.2669683295037 Z M 13.322171953125 10.1674208157169 L 12.0552036236213 10.1674208157169 L 12.0552036236213 8.90045248621323 L 13.322171953125 8.90045248621323 L 13.322171953125 10.1674208157169 Z M 13.322171953125 6.36651584329047 L 12.0552036236213 6.36651584329047 L 12.0552036236213 5.09954751378677 L 13.322171953125 5.09954751378677 L 13.322171953125 6.36651584329047 Z M 13.322171953125 4.4660633409926 L 12.0552036236213 4.4660633409926 L 12.0552036236213 3.19909502757355 L 13.322171953125 3.19909502757355 L 13.322171953125 4.4660633409926 Z M 13.322171953125 2.56561085477938 L 12.0552036236213 2.56561085477938 L 12.0552036236213 1.29864254136032 L 13.322171953125 1.29864254136032 L 13.322171953125 2.56561085477938 Z M 11.4217194508273 1.29864254136032 L 11.4217194508273 2.56561085477938 L 10.1547511374081 2.56561085477938 L 10.1547511374081 1.29864254136032 L 11.4217194508273 1.29864254136032 Z M 9.52126696461403 1.29864254136032 L 9.52126696461403 2.56561085477938 L 8.25429863511033 2.56561085477938 L 8.25429863511033 1.29864254136032 L 9.52126696461403 1.29864254136032 Z M 6.35384614889711 13.9683257881434 L 6.35384614889711 0.0316742118566253 L 7.6208144784008 0.0316742118566253 L 7.6208144784008 13.9683257881434 L 6.35384614889711 13.9683257881434 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 301 488 )" />
</g>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="14px" height="14px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -408 -488 )">
<path d="M 13.9522983870968 3.23185483870968 C 13.9522983870968 2.90415322580645 13.6881048387097 2.63911290322581 13.3604032258065 2.63911290322581 L 9.86153225806447 2.63911290322581 L 9.86153225806447 1.82959677419355 C 9.86153225806447 0.847338709677416 9.06217741935484 0.0479838709677409 8.07991935483869 0.0479838709677409 L 5.70302419354834 0.0479838709677409 C 4.7207661290322 0.0479838709677409 3.92141129032257 0.847338709677416 3.92141129032257 1.82959677419355 L 3.92141129032257 2.63911290322581 L 0.644395161290277 2.63911290322581 C 0.316693548387093 2.63911290322581 0.0516532258063762 2.90415322580645 0.0516532258063762 3.23185483870968 C 0.0516532258063762 3.55955645161291 0.316693548387093 3.82459677419355 0.644395161290277 3.82459677419355 L 1.6147983870967 3.82459677419355 L 1.6147983870967 11.0060887096774 C 1.6147983870967 12.3406048387097 2.70036290322582 13.4253225806452 4.0340322580646 13.4253225806452 L 9.76076612903216 13.4253225806452 C 11.0952822580646 13.4253225806452 12.1800000000001 12.3397580645161 12.1800000000001 11.0060887096774 L 12.1800000000001 3.82459677419355 L 13.3595564516129 3.82459677419355 C 13.6872580645161 3.82459677419355 13.9522983870968 3.55955645161291 13.9522983870968 3.23185483870968 Z M 5.10689516129037 2.63911290322581 L 5.10689516129037 1.82959677419355 C 5.10689516129037 1.50104838709677 5.37447580645153 1.23346774193548 5.70302419354834 1.23346774193548 L 8.08076612903233 1.23346774193548 C 8.40931451612892 1.23346774193548 8.6768951612903 1.50104838709677 8.6768951612903 1.82959677419355 L 8.6768951612903 2.63911290322581 L 5.10689516129037 2.63911290322581 Z M 10.9953629032259 11.0052419354839 C 10.9953629032259 11.6860483870968 10.4415725806452 12.2389919354839 9.7616129032258 12.2389919354839 L 4.034879032258 12.2389919354839 C 3.35407258064515 12.2389919354839 2.80112903225813 11.6852016129032 2.80112903225813 11.0052419354839 L 2.80112903225813 3.82459677419355 L 10.9962096774193 3.82459677419355 L 10.9962096774193 11.0052419354839 Z M 5.89778225806458 6.22604838709677 C 5.89778225806458 5.89834677419356 5.63274193548386 5.63330645161291 5.30504032258068 5.63330645161291 C 4.9773387096775 5.63330645161291 4.71229838709678 5.89834677419356 4.71229838709678 6.22604838709678 L 4.71229838709678 9.85193548387096 C 4.71229838709678 10.1796370967742 4.9773387096775 10.4446774193548 5.30504032258068 10.4446774193548 C 5.63274193548386 10.4446774193548 5.89778225806458 10.1796370967742 5.89778225806458 9.85193548387096 L 5.89778225806458 6.22604838709677 Z M 9.01560483870958 6.22604838709677 C 9.01560483870958 5.89834677419356 8.74971774193546 5.63330645161291 8.42286290322591 5.63330645161291 C 8.09516129032249 5.63330645161291 7.830120967742 5.89834677419356 7.830120967742 6.22604838709678 L 7.830120967742 9.85193548387096 C 7.830120967742 10.1796370967742 8.09516129032249 10.4446774193548 8.42286290322591 10.4446774193548 C 8.75056451612909 10.4446774193548 9.01560483870958 10.1796370967742 9.01560483870958 9.85193548387096 L 9.01560483870958 6.22604838709677 Z " fill-rule="nonzero" fill="#787878" stroke="none" transform="matrix(1 0 0 1 408 488 )" />
</g>
</svg>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="14px" height="14px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -408 -488 )">
<path d="M 13.9522983870968 3.23185483870968 C 13.9522983870968 2.90415322580645 13.6881048387097 2.63911290322581 13.3604032258065 2.63911290322581 L 9.86153225806447 2.63911290322581 L 9.86153225806447 1.82959677419355 C 9.86153225806447 0.847338709677416 9.06217741935484 0.0479838709677409 8.07991935483869 0.0479838709677409 L 5.70302419354834 0.0479838709677409 C 4.7207661290322 0.0479838709677409 3.92141129032257 0.847338709677416 3.92141129032257 1.82959677419355 L 3.92141129032257 2.63911290322581 L 0.644395161290277 2.63911290322581 C 0.316693548387093 2.63911290322581 0.0516532258063762 2.90415322580645 0.0516532258063762 3.23185483870968 C 0.0516532258063762 3.55955645161291 0.316693548387093 3.82459677419355 0.644395161290277 3.82459677419355 L 1.6147983870967 3.82459677419355 L 1.6147983870967 11.0060887096774 C 1.6147983870967 12.3406048387097 2.70036290322582 13.4253225806452 4.0340322580646 13.4253225806452 L 9.76076612903216 13.4253225806452 C 11.0952822580646 13.4253225806452 12.1800000000001 12.3397580645161 12.1800000000001 11.0060887096774 L 12.1800000000001 3.82459677419355 L 13.3595564516129 3.82459677419355 C 13.6872580645161 3.82459677419355 13.9522983870968 3.55955645161291 13.9522983870968 3.23185483870968 Z M 5.10689516129037 2.63911290322581 L 5.10689516129037 1.82959677419355 C 5.10689516129037 1.50104838709677 5.37447580645153 1.23346774193548 5.70302419354834 1.23346774193548 L 8.08076612903233 1.23346774193548 C 8.40931451612892 1.23346774193548 8.6768951612903 1.50104838709677 8.6768951612903 1.82959677419355 L 8.6768951612903 2.63911290322581 L 5.10689516129037 2.63911290322581 Z M 10.9953629032259 11.0052419354839 C 10.9953629032259 11.6860483870968 10.4415725806452 12.2389919354839 9.7616129032258 12.2389919354839 L 4.034879032258 12.2389919354839 C 3.35407258064515 12.2389919354839 2.80112903225813 11.6852016129032 2.80112903225813 11.0052419354839 L 2.80112903225813 3.82459677419355 L 10.9962096774193 3.82459677419355 L 10.9962096774193 11.0052419354839 Z M 5.89778225806458 6.22604838709677 C 5.89778225806458 5.89834677419356 5.63274193548386 5.63330645161291 5.30504032258068 5.63330645161291 C 4.9773387096775 5.63330645161291 4.71229838709678 5.89834677419356 4.71229838709678 6.22604838709678 L 4.71229838709678 9.85193548387096 C 4.71229838709678 10.1796370967742 4.9773387096775 10.4446774193548 5.30504032258068 10.4446774193548 C 5.63274193548386 10.4446774193548 5.89778225806458 10.1796370967742 5.89778225806458 9.85193548387096 L 5.89778225806458 6.22604838709677 Z M 9.01560483870958 6.22604838709677 C 9.01560483870958 5.89834677419356 8.74971774193546 5.63330645161291 8.42286290322591 5.63330645161291 C 8.09516129032249 5.63330645161291 7.830120967742 5.89834677419356 7.830120967742 6.22604838709678 L 7.830120967742 9.85193548387096 C 7.830120967742 10.1796370967742 8.09516129032249 10.4446774193548 8.42286290322591 10.4446774193548 C 8.75056451612909 10.4446774193548 9.01560483870958 10.1796370967742 9.01560483870958 9.85193548387096 L 9.01560483870958 6.22604838709677 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 408 488 )" />
</g>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="18px" height="18px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -35 -486 )">
<path d="M 17.9488636363636 9 C 17.9488636363636 4.05814985795453 13.9418501420455 0.051136363636374 9 0.051136363636374 C 4.05814985795453 0.051136363636374 0.051136363636374 4.05814985795453 0.051136363636374 9 C 0.051136363636374 13.9418501420455 4.05814985795453 17.9488636363636 9 17.9488636363636 C 13.9418501420455 17.9488636363636 17.9488636363636 13.9418501420455 17.9488636363636 9 Z M 14.1136363636364 10.2784090909091 C 14.1136363636364 10.6319691051136 13.8279918323864 10.9176136363636 13.4744318181818 10.9176136363636 L 7.72159090909091 10.9176136363636 C 7.36803089488637 10.9176136363636 7.08238636363637 10.6319691051136 7.08238636363637 10.2784090909091 L 7.08238636363637 4.52556818181819 C 7.08238636363637 4.17200816761363 7.36803089488637 3.88636363636363 7.72159090909091 3.88636363636363 C 8.07515092329547 3.88636363636363 8.36079545454547 4.17200816761363 8.36079545454547 4.52556818181819 L 8.36079545454547 9.63920454545453 L 13.4744318181818 9.63920454545453 C 13.8279918323864 9.63920454545453 14.1136363636364 9.92484907670453 14.1136363636364 10.2784090909091 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 35 486 )" />
</g>
</svg>

File diff suppressed because one or more lines are too long

View File

@ -24,7 +24,6 @@
</div> </div>
</div> </div>
<el-table ref="tableRef" :data="patients" style="width: 100%;height: calc(100% - 100px);" <el-table ref="tableRef" :data="patients" style="width: 100%;height: calc(100% - 100px);"
@cell-click="selectPatient" @cell-click="selectPatient"
highlight-current-row> highlight-current-row>
<el-table-column type="index" label="序号" width="60" /> <el-table-column type="index" label="序号" width="60" />
@ -219,7 +218,7 @@
<PatientProfile v-if="isPatientProfile" <PatientProfile v-if="isPatientProfile"
:PatientProfileType="true" :PatientProfileType="true"
:selectedPatient="selectedPatient" :selectedPatient="selectedPatient"
@endChange="endChange"/> @closePatientProfile="closePatientProfile"/>
</div> </div>
</template> </template>
@ -613,6 +612,9 @@ function closecreatbox(e){
function endChange(){ function endChange(){
isDetection.value = false isDetection.value = false
} }
function closePatientProfile(){
isPatientProfile.value =false
}
function handleCurrentChange (val) { function handleCurrentChange (val) {
page.value = val page.value = val
loadPatients() loadPatients()
@ -1055,31 +1057,31 @@ function editClick(){
} }
</style> </style>
<style> <style>
.dashboard-container.dashboard-container-home .el-table { .dashboard-container .main-dashboard-content .el-table {
background: transparent !important; background: transparent !important;
} }
.dashboard-container.dashboard-container-home .el-table tr { .dashboard-container .main-dashboard-content .el-table tr {
background-color: transparent !important; background-color: transparent !important;
} }
.dashboard-container.dashboard-container-home .el-table thead.is-group th.el-table__cell { .dashboard-container .main-dashboard-content .el-table thead.is-group th.el-table__cell {
background-color: transparent !important; background-color: transparent !important;
} }
.dashboard-container.dashboard-container-home .cell { .dashboard-container .main-dashboard-content .cell {
color: #fff; color: #fff;
} }
.dashboard-container.dashboard-container-home .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell { .dashboard-container .main-dashboard-content .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
background-color: transparent !important; background-color: transparent !important;
} }
.dashboard-container.dashboard-container-home .el-table th.el-table__cell.is-leaf { .dashboard-container .main-dashboard-content .el-table th.el-table__cell.is-leaf {
background-color: rgb(70, 70, 70) !important; background-color: rgb(70, 70, 70) !important;
} }
.dashboard-container.dashboard-container-home .el-table td.el-table__cell { .dashboard-container .main-dashboard-content .el-table td.el-table__cell {
background-color: #282828 !important; background-color: #282828 !important;
} }
@ -1088,51 +1090,51 @@ function editClick(){
border-right: transparent !important; border-right: transparent !important;
} }
.dashboard-container.dashboard-container-home .el-table--border .el-table__inner-wrapper:after, .dashboard-container .main-dashboard-content .el-table--border .el-table__inner-wrapper:after,
.el-table--border:after, .el-table--border:after,
.el-table--border:before, .el-table--border:before,
.el-table__inner-wrapper:before { .el-table__inner-wrapper:before {
background-color: #787878; background-color: #787878;
} }
.dashboard-container.dashboard-container-home .el-table__border-bottom-patch, .dashboard-container .main-dashboard-content .el-table__border-bottom-patch,
.el-table__border-left-patch { .el-table__border-left-patch {
background-color: #787878; background-color: #787878;
} }
.dashboard-container.dashboard-container-home .el-input__wrapper { .dashboard-container .main-dashboard-content .el-input__wrapper {
box-shadow: none; box-shadow: none;
} }
.dashboard-container.dashboard-container-home .el-table__cell { .dashboard-container .main-dashboard-content .el-table__cell {
border-bottom: 1px solid #787878; border-bottom: 1px solid #787878;
} }
.dashboard-container.dashboard-container-home .el-table__cell { .dashboard-container .main-dashboard-content .el-table__cell {
border-bottom: 1px solid #787878; border-bottom: 1px solid #787878;
} }
.dashboard-container.dashboard-container-home .el-table__header th { .dashboard-container .main-dashboard-content .el-table__header th {
border-color: #787878; border-color: #787878;
} }
.dashboard-container.dashboard-container-home .el-dialog { .dashboard-container .main-dashboard-content .el-dialog {
background-color: rgba(85, 85, 85, 1); background-color: rgba(85, 85, 85, 1);
} }
.dashboard-container.dashboard-container-home .el-dialog__title { .dashboard-container .main-dashboard-content .el-dialog__title {
color: #ffffff; color: #ffffff;
} }
.dashboard-container.dashboard-container-home .el-dialog__headerbtn .el-dialog__close { .dashboard-container .main-dashboard-content .el-dialog__headerbtn .el-dialog__close {
font-size: 25px; font-size: 25px;
} }
.dashboard-container.dashboard-container-home .el-dialog__footer { .dashboard-container .main-dashboard-content .el-dialog__footer {
text-align: center; text-align: center;
} }
.dashboard-container.dashboard-container-home .dialog-footer .el-button { .dashboard-container .main-dashboard-content .dialog-footer .el-button {
background: linear-gradient(to right, #F135A6, #A005D8); background: linear-gradient(to right, #F135A6, #A005D8);
border: none; border: none;
color: #ffffff; color: #ffffff;
@ -1161,31 +1163,31 @@ function editClick(){
.primary-view-buttons:hover{ .primary-view-buttons:hover{
background-color: rgb(52, 119, 254); background-color: rgb(52, 119, 254);
} }
.dashboard-container.dashboard-container-home .el-table--enable-row-hover .el-table__body tr:hover > td { .dashboard-container .main-dashboard-content .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #363636 !important; /* 自定义浅蓝底色 */ background-color: #363636 !important; /* 自定义浅蓝底色 */
} }
.dashboard-container.dashboard-container-home .el-table .el-table__row.current-row td{ .dashboard-container .main-dashboard-content .el-table .el-table__row.current-row td{
background-color: #282f3d !important; background-color: #282f3d !important;
border-top:1px solid rgba(38, 111, 255, 1); border-top:1px solid rgba(38, 111, 255, 1);
border-bottom:1px solid rgba(38, 111, 255, 1) border-bottom:1px solid rgba(38, 111, 255, 1)
} }
.dashboard-container.dashboard-container-home .el-table .el-table__row.current-row td:last-child{ .dashboard-container .main-dashboard-content .el-table .el-table__row.current-row td:last-child{
border-right:1px solid rgba(38, 111, 255, 1); border-right:1px solid rgba(38, 111, 255, 1);
} }
.dashboard-container.dashboard-container-home .el-table .el-table__row.current-row td:first-child{ .dashboard-container .main-dashboard-content .el-table .el-table__row.current-row td:first-child{
border-left:1px solid rgba(38, 111, 255, 1); border-left:1px solid rgba(38, 111, 255, 1);
} }
.dashboard-container.dashboard-container-home .el-table .el-table__row.current-row:last-child td{ .dashboard-container .main-dashboard-content .el-table .el-table__row.current-row:last-child td{
border-bottom:2px solid rgba(38, 111, 255, 1) border-bottom:2px solid rgba(38, 111, 255, 1)
} }
.dashboard-container.dashboard-container-home .el-table .el-table__body tr td { .dashboard-container .main-dashboard-content .el-table .el-table__body tr td {
height: 50px !important; height: 50px !important;
} }
/* 设置表头行高 */ /* 设置表头行高 */
.dashboard-container.dashboard-container-home .el-table .el-table__header tr th { .dashboard-container .main-dashboard-content .el-table .el-table__header tr th {
height: 50px !important; height: 50px !important;
} }

View File

@ -4,19 +4,198 @@
<div style="display: flex; align-items: center;"> <div style="display: flex; align-items: center;">
<div class="patientprofiletext1" style="padding-right: 40px;">患者档案</div> <div class="patientprofiletext1" style="padding-right: 40px;">患者档案</div>
<div class="patientprofiletext2" style="margin-right: 20px;">{{ selectedPatient.name }}</div> <div class="patientprofiletext2" style="margin-right: 20px;">{{ selectedPatient.name }}</div>
<div class="patientprofiletext3"> {{ selectedPatient.gender =='male'||selectedPatient.gender =='男' ?'男':'女' }}</div> <div class="patientprofiletext3">{{ selectedPatient.gender }}</div>
<div class="username-line"></div> <div class="username-line"></div>
<div class="patientprofiletext3">{{ calculateAge(selectedPatient.birth_date) }}</div> <div class="patientprofiletext3">{{ calculateAge(selectedPatient.birth_date) }}</div>
</div> </div>
<img src="@/assets/new/close.png" alt=""> <img src="@/assets/new/close.png" alt="" style="cursor: pointer;" @click="handleCancel">
</div> </div>
<div class="patientprofile-container"> <div class="patientprofile-container">
<div> <div style="height: 100%;width: 500px;margin-right: 15px;">
<div class="patientprofile-container-leftbox"></div> <div class="patientprofile-container-leftbox">
<div class="patientprofile-container-leftbottombox"></div> <div class="patientprofile-title-display" style="margin-bottom:30px">
<div class="patientprofile-son-display">
<img src="@/assets/new/title4.svg" alt="" style="margin-right: 8px;">
<div class="body-posture-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-text2">{{ selectedPatient.gender }}</div>
<div class="patientprofile-userinfo-text1">出生日期</div>
<div class="patientprofile-userinfo-text2">{{ 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-text2">{{ selectedPatient.nationality }}</div>
</div>
<div class="patientprofile-userinfo-box">
<div class="patientprofile-userinfo-text1">居住地</div>
<div class="patientprofile-userinfo-text2">{{ selectedPatient.residence }}</div>
<div class="patientprofile-userinfo-text1">身高</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-text2">{{ selectedPatient.weight }}kg</div>
<div class="patientprofile-userinfo-text1">鞋码</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-text2">{{ selectedPatient.phone }}</div>
<div class="patientprofile-userinfo-text1">邮箱</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-text2">{{ selectedPatient.occupation }}</div>
<div class="patientprofile-userinfo-text1">证件号</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>
</div>
<div class="patientprofile-son-display">
<el-button v-if="selectedPatient" type="primary"
:class="selectedData.leng == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@click="viewPatientProfile">
<img src="@/assets/new/bi.svg" alt="" style="margin-right: 8px;">
报告对比
</el-button>
<el-button v-if="selectedPatient" type="primary"
:class="selectedData.leng>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@click="viewPatientProfile">
<img src="@/assets/new/del.svg" alt="" style="margin-right: 8px;">
删除记录
</el-button>
</div>
</div>
<el-table :data="recordData" style="
margin-left: 10px;
margin-top: 10px;
width: calc(100% - 20px);height: calc(100% - 70px);"
@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="report" label="报告" width="60">
<template #default="scope">
<div
v-if="scope.row.report == null"
style="width:28px;
font-weight: 400;
font-style: normal;
font-size: 14px;
color: #266FFF;
line-height: 18px;
cursor: pointer;">生成报告</div>
<div class="patientprofile-file-box" v-if="scope.row.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)">
</div>
</template>
</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>
</template>
</el-table-column>
</el-table>
</div>
</div> </div>
<div> <div class="patientprofile-container-rightbox">
<div class="patientprofile-container-rightbox"></div> <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>
<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">档案ID25002</div>
</div>
</div>
<div class="patientprofile-container-bottombox">
<div class="patientprofile-container-data">
<div class="patientprofile-container-data-displaycup">
<div class="patientprofile-container-data-display">
<div class="patientprofile-container-data-line"></div>
<div class="patientprofile-container-data-title">检测数据</div>
</div>
<div>
<el-button type="primary"
class="button-width70"
:class="selectedData.leng == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@click="viewPatientProfile">
<img src="@/assets/new/bi.svg" alt="" style="margin-right: 8px;">
查看
</el-button>
<el-button class="button-width70" type="primary"
:class="selectedData.leng>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@click="viewPatientProfile">
<img src="@/assets/new/del.svg" alt="" style="margin-right: 8px;">
删除
</el-button>
</div>
</div>
<div class="patientprofile-container-databg"></div>
</div>
<div class="patientprofile-container-video">
<div class="patientprofile-container-data-displaycup">
<div class="patientprofile-container-data-display">
<div class="patientprofile-container-data-line"></div>
<div class="patientprofile-container-data-title">检测视频</div>
</div>
<el-button class="button-width70" type="primary"
:class="selectedData.leng>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@click="viewPatientProfile">
<img src="@/assets/new/del.svg" alt="" style="margin-right: 8px;">
删除
</el-button>
</div>
<div class="patientprofile-container-databg"></div>
</div>
<div class="patientprofile-container-info">
<div class="patientprofile-container-data-displaycup">
<div class="patientprofile-container-data-display">
<div class="patientprofile-container-data-line"></div>
<div class="patientprofile-container-data-title">检测数据</div>
</div>
<el-button type="primary"
class="button-width70"
:class="selectedData.leng == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@click="viewPatientProfile">
<img src="@/assets/new/bi.svg" alt="" style="margin-right: 8px;">
查看
</el-button>
</div>
<div class="patientprofile-container-databg"></div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -27,7 +206,6 @@ import { ref, reactive, computed, onMounted, isShallow } from 'vue'
import { useRouter, useRoute } from 'vue-router' import { useRouter, useRoute } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus' import { ElMessage, ElMessageBox } from 'element-plus'
import { patientAPI, detectionAPI,historyAPI,getBackendUrl } from '@/services/api.js' import { patientAPI, detectionAPI,historyAPI,getBackendUrl } from '@/services/api.js'
import Header from '@/views/Header.vue'
import { useAuthStore } from '@/stores/index.js' import { useAuthStore } from '@/stores/index.js'
const emit = defineEmits([ 'endChange']); const emit = defineEmits([ 'endChange']);
const props = defineProps({ const props = defineProps({
@ -37,6 +215,37 @@ const props = defineProps({
default: null default: null
} }
}) })
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 selectedData = ref([])
const calculateAge = (birthDate) => { // const calculateAge = (birthDate) => { //
if (!birthDate) return '—' if (!birthDate) return '—'
const today = new Date() const today = new Date()
@ -48,6 +257,77 @@ const calculateAge = (birthDate) => { // 获取年龄
} }
return age return age
} }
function handleCancel(){
emit('closePatientProfile',false)
}
function selectRecord(data){ //
selectedRecord.value = data
}
const handleSelectionChange = (val) => { //
multipleSelection.value = val
}
const sessionsInit = async () => {
try {
debugger
let params ={
patient_id: props.selectedPatient.id
}
//
const response = await historyAPI.sessionsPage(params)
if (response.success) {
response.data.sessions.forEach(element => {
element.list = [{}]
});
recordData.value = response.data.sessions
}
} catch (error) {
ElMessage.error('获取失败')
}
}
onMounted(() => {
// sessionsInit()
})
function deleteClick(row){
// checking
if (row.status === 'checking') {
ElMessage.warning({
message: '平衡体态检查中,不能删除!',
duration: 3000
});
return;
}
ElMessageBox.confirm(
'确定义删除此条数据?',
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
).then(() => {
historyAPI.sessionsDelById(row.id).then((response)=>{
if(response.success){
ElMessage.success({
message: response.message,
duration: 5000
});
sessionsInit()
}
}).catch(()=>{
})
})
}
function fileClick(row){
ElMessage.success({
message: '预览文件',
duration: 3000
});
}
</script> </script>
<style scoped> <style scoped>
@ -98,7 +378,6 @@ const calculateAge = (birthDate) => { // 获取年龄
.patientprofile-container{ .patientprofile-container{
width: 100%; width: 100%;
height: calc(100vh - 75px); height: calc(100vh - 75px);
background: red;
padding: 0 15px; padding: 0 15px;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
@ -106,14 +385,277 @@ const calculateAge = (birthDate) => { // 获取年龄
.patientprofile-container-leftbox{ .patientprofile-container-leftbox{
width: 500px; width: 500px;
height: 395px; height: 395px;
background: blue; background-color: rgba(40, 40, 40, 1);
border-radius: 5px;
} }
.patientprofile-container-leftbottombox{ .patientprofile-container-leftbottombox{
margin-top: 15px;
width: 500px; width: 500px;
height: calc(100% - 395px -15px) ; height: calc(100% - 395px - 15px) ;
background: blue; background-color: rgba(40, 40, 40, 1);
border-radius: 5px;
} }
.patientprofile-container-rightbox{ .patientprofile-container-rightbox{
width: calc(100% - 500px - 15px) ;
height: 100%;
background-color: rgba(40, 40, 40, 1);
border-radius: 5px;
}
.patientprofile-title-display{
width: 100%;
height: 50px;
border-bottom: 1px solid #000;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 0 20px;
font-weight: 700;
font-style: normal;
font-size: 18px;
color: #FFFFFF;
}
.patientprofile-son-display{
display: flex;
align-items: center;
}
.patientprofile-connecttext{
font-weight: 700;
font-style: normal;
font-size: 16px;
}
.patientprofile-userinfo-box{
width: 100%;
display: flex;
align-items: center;
box-sizing: border-box;
padding-left: 30px;
margin-bottom: 22px;
}
.patientprofile-userinfo-text1{
width: 75px;
font-weight: 400;
font-style: normal;
font-size: 14px;
color: #949494;
}
.patientprofile-userinfo-text2{
width: 150px;
font-weight: 400;
font-style: normal;
font-size: 14px;
color: #FFFFFF;
}
.patientprofile-butotn{
width: 98px;
height: 30px;
background: inherit;
background-color: rgba(64, 64, 64, 1);
border-radius: 4px;
box-shadow: 0 0 0 rgba(64, 64, 64, 1);
border-color: rgba(64, 64, 64, 1);
font-weight: 400;
font-style: normal;
font-size: 14px;
color: rgb(120, 120, 120);
cursor: default;
}
.patientprofile-selectedbutotn{
width: 98px;
height: 30px;
background-color: rgba(38, 111, 255, 1);
border-radius: 4px;
box-shadow: 0 0 0 rgba(38, 111, 255, 1);
border-color: rgba(38, 111, 255, 1);
font-weight: 400;
font-style: normal;
font-size: 14px;
color: #fff;
cursor: pointer;
}
</style>
<style>
.patient-profile-container .el-table {
background: transparent !important;
}
.patient-profile-container .el-table tr {
background-color: transparent !important;
}
.patient-profile-container .el-table thead.is-group th.el-table__cell {
background-color: transparent !important;
}
.patient-profile-container .cell {
color: #fff;
}
.patient-profile-container .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
background-color: transparent !important;
}
.patient-profile-container .el-table th.el-table__cell.is-leaf {
background-color: rgb(70, 70, 70) !important;
}
.patient-profile-container .el-table th.el-table__cell.is-leaf{
border-bottom: 1px solid rgba(54, 54, 54, 1);
}
.patient-profile-container .el-table td.el-table__cell {
background-color: #282828 !important;
border-bottom: 1px solid rgba(54, 54, 54, 1);
}
.patient-profile-container .el-table td.el-table__cell:hover {
background-color: #363636 !important; /* 自定义浅蓝底色 */
}
.patient-profile-container .el-table .cell{
font-size: 14px !important;
}
.el-table--border .el-table__cell {
border-right: transparent !important;
}
.patient-profile-container .el-table--border .el-table__inner-wrapper:after,
.el-table--border:after,
.el-table--border:before,
.el-table__inner-wrapper:before {
background-color: #787878;
}
.patient-profile-container .el-table__border-bottom-patch,
.el-table__border-left-patch {
background-color: #787878;
}
.patient-profile-container .el-input__wrapper {
box-shadow: none;
}
.patient-profile-container .el-table__cell {
border-bottom: 1px solid #787878;
}
.patient-profile-container .el-table__cell {
border-bottom: 1px solid #787878;
}
.patient-profile-container .el-table__header th {
border-color: #787878;
}
.patient-profile-container .el-dialog {
background-color: rgba(85, 85, 85, 1);
}
.patient-profile-container .el-dialog__title {
color: #ffffff;
}
.patient-profile-container .el-dialog__headerbtn .el-dialog__close {
font-size: 25px;
}
.patientprofile-file-box{
position: relative;
width: 19px;
height: 24px;
margin-top: 5px;
cursor: pointer;
}
.patientprofile-del{
position: absolute;
left: -5px;
top: -5px;
display: none;
z-index: 1;
}
.patientprofile-file-box:hover .patientprofile-del{
display: block;
}
.patient-profile-container .el-checkbox__inner{
background-color: rgba(255, 255, 255, 0);
border-color: rgba(120, 120, 120, 1);
width: 16px;
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);
} }
.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);
}
.patient-profile-container .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{
background-color: #363636 !important;
}
.patientprofile-son-text{
font-weight: 700;
font-style: normal;
font-size: 14px;
color: #FFFFFF;
padding-left: 30px;
}
.patientprofile-container-bottombox{
width: 100%;
height: calc(100% - 50px);
background: red;
padding: 20px;
box-sizing: border-box;
}
.patientprofile-container-data{
width: 100%;
height: 32%;
}
.patientprofile-container-databg{
width: 100%;
height: calc(100% - 30px);
background-color: rgba(27, 27, 27, 1);
border-radius: 10px;
}
.patientprofile-container-video{
width: 100%;
height: 32%;
margin-top: 5px;
}
.patientprofile-container-info{
width: 100%;
height: 36%;
margin-top: 5px;
}
.patientprofile-container-data-displaycup{
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 5px;
}
.patientprofile-container-data-display{
display: flex;
align-items: center;
}
.patientprofile-container-data-line{
width: 4px;
height: 13px;
background-color: rgba(38, 111, 255, 1);
margin-right: 3px;
}
.patientprofile-container-data-title{
font-weight: 700;
font-style: normal;
font-size: 15px;
color: #FFFFFF;
}
.button-width70{
width: 70px !important;
height: 26px !important;
}
</style> </style>