This commit is contained in:
LiJianZhao 2025-04-30 13:48:48 +08:00
parent 26c70fc4a7
commit fe4770143c
12 changed files with 139 additions and 352 deletions

View File

@ -1,10 +1,10 @@
<template xmlns="http://www.w3.org/1999/html"> <template xmlns="http://www.w3.org/1999/html">
<Mask :width="1100" :height="600" :is-show="show" title="过期商品详情" @close="show=false"> <Mask :width="1100" :height="600" :is-show="show" title="过期商品详情" @close="show=false">
<el-table :data="tableData" style="width: 100%" class="table" max-height="1000px"> <el-table :data="tableData" style="width: 100%" class="table" max-height="1000px">
<el-table-column label="名称" prop="name"></el-table-column> <el-table-column label="名称" prop="name" show-overflow-tooltip></el-table-column>
<el-table-column label="剩余天数"> <el-table-column label="剩余天数">
<template #default="scope"> <template #default="scope">
<span class="remaining-date"> <span :class="[scope.row.remaining_days <0?'danger':'warn']">
{{scope.row.remaining_days <0?'已过期':scope.row.remaining_days+"天后到期"}} {{scope.row.remaining_days <0?'已过期':scope.row.remaining_days+"天后到期"}}
</span> </span>
</template> </template>
@ -47,8 +47,11 @@ const close = () => {
<style scoped lang="scss"> <style scoped lang="scss">
.table{ .table{
margin-top: 30px; margin-top: 30px;
.remaining-date{ .danger{
color: red; color: #FF282E;
}
.warn{
color: #F69C51;
} }
} }
</style> </style>

View File

@ -1,15 +1,17 @@
<template> <template>
<Mask :width="1100" :height="600" :is-show="show" title="库存预警详情" @close="close"> <Mask :width="1100" :height="600" :is-show="show" title="库存预警详情" @close="close">
<el-table :data="tableData" style="width: 100%" class="table" max-height="1000px"> <el-table :data="tableData" style="width: 100%" class="table" max-height="1000px">
<el-table-column label="名称" prop="name"></el-table-column> <el-table-column label="名称" prop="name" show-overflow-tooltip></el-table-column>
<el-table-column label="剩余库存"> <el-table-column label="剩余库存">
<template #default="scope"> <template #default="scope">
<span :class="[scope.row.inventoryWholeNumber===0 && scope.row.inventoryFragmentNumber===0?'danger':'warn']">
{{ {{
scope.row.inventoryWholeNumber scope.row.inventoryWholeNumber
}}{{ scope.row.packagingUnit }} }}{{ scope.row.packagingUnit }}
<span v-if="scope.row.inventoryFragmentNumber>0"> <span v-if="scope.row.inventoryFragmentNumber>0">
{{ scope.row.inventoryFragmentNumber }}{{ scope.row.minPackagingUnit }} {{ scope.row.inventoryFragmentNumber }}{{ scope.row.minPackagingUnit }}
</span> </span>
</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="库存预警线"> <el-table-column label="库存预警线">
@ -49,5 +51,11 @@ const close = () => {
<style scoped lang="scss"> <style scoped lang="scss">
.table{ .table{
margin-top: 30px; margin-top: 30px;
.danger{
color: #FF282E;
}
.warn{
color: #F69C51;
}
} }
</style> </style>

View File

@ -23,6 +23,10 @@ const getInventoryWarning = () => {
inventoryWarnList.value = res.slice(0, 4) inventoryWarnList.value = res.slice(0, 4)
}) })
} }
const isZeroInventory = (item: any) => {
return item.inventoryWholeNumber === 0 && item.inventoryFragmentNumber === 0
}
</script> </script>
<template> <template>
@ -32,102 +36,31 @@ const getInventoryWarning = () => {
</template> </template>
<div style="padding: 0 24px 24px"> <div style="padding: 0 24px 24px">
<div class="box"> <div class="box">
<div class="item" style="margin-right: 8px" v-if="inventoryWarnList[0]"> <div class="item" style="margin-right: 8px" v-for="item in inventoryWarnList" :class="isZeroInventory(item) ? 'item__danger' : 'item__warn'">
<img class="image" src="/static/images/home/1-danger.png" alt=""/> <div class="image" />
<div class="item-content"> <div class="item-content">
<el-tooltip <el-tooltip
effect="dark" effect="dark"
:content="inventoryWarnList[0].name" :content="item.name"
placement="bottom-start" placement="bottom-start"
> >
<div class="item-name">{{ inventoryWarnList[0].name }}</div> <div class="item-name">{{ item.name }}</div>
</el-tooltip> </el-tooltip>
<div class="item-name-font">剩余库存值</div> <div class="item-name-font">剩余库存值</div>
</div> </div>
<div class="item-right"> <div class="item-right">
<div class="wholeNumber">{{ inventoryWarnList[0].inventoryWholeNumber }} <div class="wholeNumber">{{ item.inventoryWholeNumber }}
<div class="item-right-num">{{ inventoryWarnList[0].packagingUnit }}</div> <div class="item-right-num">{{ item.packagingUnit }}</div>
</div> </div>
<div class="wholeNumber" v-if="inventoryWarnList[0].inventoryFragmentNumber>0"> <div class="wholeNumber" v-if="item.inventoryFragmentNumber>0">
{{ inventoryWarnList[0].inventoryFragmentNumber }} {{ item.inventoryFragmentNumber }}
<div class="item-right-num" v-if="inventoryWarnList[0].inventoryFragmentNumber>0"> <div class="item-right-num" v-if="item.inventoryFragmentNumber>0">
{{ inventoryWarnList[0].minPackagingUnit }} {{ item.minPackagingUnit }}
</div>
</div>
</div>
</div>
<div class="item1" style="margin-right: 8px" v-if="inventoryWarnList[1]">
<img class="image" src="/static/images/home/1-danger.png" alt=""/>
<div class="item-content">
<el-tooltip
effect="dark"
:content="inventoryWarnList[1].name"
placement="bottom-start"
>
<div class="item-name">{{ inventoryWarnList[1].name }}</div>
</el-tooltip>
<div class="item-name-font">剩余库存值</div>
</div>
<div class="item-right">
<div class="wholeNumber">{{ inventoryWarnList[1].inventoryWholeNumber }}
<div class="item-right-num">{{ inventoryWarnList[1].packagingUnit }}</div>
</div>
<div class="wholeNumber" v-if="inventoryWarnList[1].inventoryFragmentNumber>0">
{{ inventoryWarnList[1].inventoryFragmentNumber }}
<div class="item-right-num" v-if="inventoryWarnList[1].inventoryFragmentNumber>0">
{{ inventoryWarnList[1].minPackagingUnit }}
</div>
</div>
</div>
</div>
<div class="item" style="margin-right: 8px" v-if="inventoryWarnList[2]">
<img class="image" src="/static/images/home/1-danger.png" alt=""/>
<div class="item-content">
<el-tooltip
effect="dark"
:content="inventoryWarnList[2].name"
placement="bottom-start"
>
<div class="item-name">{{ inventoryWarnList[2].name }}</div>
</el-tooltip>
<div class="item-name-font">剩余库存值</div>
</div>
<div class="item-right">
<div class="wholeNumber">{{ inventoryWarnList[2].inventoryWholeNumber }}
<div class="item-right-num">{{ inventoryWarnList[2].packagingUnit }}</div>
</div>
<div class="wholeNumber" v-if="inventoryWarnList[2].inventoryFragmentNumber>0">
{{ inventoryWarnList[2].inventoryFragmentNumber }}
<div class="item-right-num" v-if="inventoryWarnList[2].inventoryFragmentNumber>0">
{{ inventoryWarnList[2].minPackagingUnit }}
</div>
</div>
</div>
</div>
<div class="item1" style="margin-right: 8px" v-if="inventoryWarnList[3]">
<img class="image" src="/static/images/home/1-danger.png" alt=""/>
<div class="item-content">
<el-tooltip
effect="dark"
:content="inventoryWarnList[3].name"
placement="bottom-start"
>
<div class="item-name">{{ inventoryWarnList[3].name }}</div>
</el-tooltip>
<div class="item-name-font">剩余库存值</div>
</div>
<div class="item-right">
<div class="wholeNumber">{{ inventoryWarnList[3].inventoryWholeNumber }}
<div class="item-right-num">{{ inventoryWarnList[3].packagingUnit }}</div>
</div>
<div class="wholeNumber" v-if="inventoryWarnList[3].inventoryFragmentNumber>0">
{{ inventoryWarnList[3].inventoryFragmentNumber }}
<div class="item-right-num" v-if="inventoryWarnList[3].inventoryFragmentNumber>0">
{{ inventoryWarnList[3].minPackagingUnit }}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</Panel> </Panel>
@ -142,9 +75,29 @@ const getInventoryWarning = () => {
margin-right: 24px; margin-right: 24px;
.box { .box {
.item__danger{
.image{
background-image: url("/static/images/home/1-danger.png") ;
}
.item-right{
color: #FF282E;
}
}
.item__warn{
.image{
background-image: url("/static/images/home/1-warn.png") ;
}
.item-right{
color: #F69C51;
}
}
.item { .item {
float: left; float: left;
width:48%; width: 48%;
height: 58px; height: 58px;
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.1); box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.1);
border-radius: 8px; border-radius: 8px;
@ -156,6 +109,7 @@ const getInventoryWarning = () => {
width: 34px; width: 34px;
height: 34px; height: 34px;
margin: 0 8px 0 16px; margin: 0 8px 0 16px;
background-size: 100% 100%;
} }
.item-content { .item-content {
@ -190,7 +144,6 @@ const getInventoryWarning = () => {
font-weight: bold; font-weight: bold;
font-style: normal; font-style: normal;
font-size: 28px; font-size: 28px;
color: #FF282E;
align-items: flex-end; align-items: flex-end;
.wholeNumber { .wholeNumber {
@ -207,82 +160,6 @@ const getInventoryWarning = () => {
} }
} }
&:nth-child(2n) {
margin-right: 0 !important;
}
&:nth-child(3) {
margin-top: 8px !important;
}
&:nth-child(4) {
margin-top: 8px !important;
}
}
.item1 {
float: right;
width:48%;
height: 58px;
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.1);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: space-between;
flex: 1 1 calc(50% - 8px); //2 item item 33.33%
.image {
width: 34px;
height: 34px;
margin: 0 8px 0 16px;
}
.item-content {
flex: 1;
.item-name {
font-weight: 400;
font-size: 14px;
color: #333333;
font-style: normal;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.item-name-font {
font-weight: 400;
font-size: 12px;
color: #999999;
font-style: normal;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.item-right {
width: 70px;
display: flex;
margin-right: 16px;
font-weight: bold;
font-style: normal;
font-size: 28px;
color: #FF282E;
align-items: flex-end;
.wholeNumber {
display: flex;
align-items: flex-end;
.item-right-num {
font-weight: 400;
font-size: 10px;
color: #333333;
font-style: normal;
padding-bottom: 3px;
}
}
}
&:nth-child(2n) { &:nth-child(2n) {
margin-right: 0 !important; margin-right: 0 !important;
@ -296,6 +173,7 @@ const getInventoryWarning = () => {
margin-top: 8px !important; margin-top: 8px !important;
} }
} }
} }
} }

View File

@ -11,7 +11,7 @@ const openExpireWarnDetail = () => {
}) })
} }
onMounted(()=>{ onMounted(() => {
getExpiryDateWarning() getExpiryDateWarning()
}) })
const expireDateWarningListSrc = ref<any>([]); const expireDateWarningListSrc = ref<any>([]);
@ -23,6 +23,9 @@ const getExpiryDateWarning = () => {
expireDateWarningList.value = res.slice(0, 4) expireDateWarningList.value = res.slice(0, 4)
}) })
} }
const isExpire = (item: any) => {
return item.remaining_days < 0
}
</script> </script>
<template> <template>
@ -32,107 +35,29 @@ const getExpiryDateWarning = () => {
</template> </template>
<div style="padding: 0 24px 24px"> <div style="padding: 0 24px 24px">
<div class="box"> <div class="box">
<div class="item" style="margin-right: 8px" v-if="expireDateWarningList[0]"> <div class="item" style="margin-right: 8px" v-for="(item,index) in expireDateWarningList" :class="isExpire(item) ? 'item__danger' : 'item__warn'">
<img class="image" src="/static/images/home/danger.png" alt=""> <div class="image" />
<div class="item-content"> <div class="item-content">
<el-tooltip <el-tooltip
effect="dark" effect="dark"
:content="expireDateWarningList[0].name" :content="item.name"
placement="bottom-start" placement="bottom-start"
> >
<div class="item-name">{{ expireDateWarningList[0].name }}</div> <div class="item-name">{{ item.name }}</div>
</el-tooltip> </el-tooltip>
<div class="item-name-font"> <div class="item-name-font">
<span>{{ expireDateWarningList[0].whole_number }}{{ expireDateWarningList[0].packaging_unit }}</span> <span>{{ item.whole_number }}{{ item.packaging_unit }}</span>
<span v-if="expireDateWarningList[0].fragment_number>0">{{ <span v-if="item.fragment_number>0">{{
expireDateWarningList[0].fragment_number item.fragment_number
}}{{ expireDateWarningList[0].min_packaging_unit }}</span> }}{{ item.min_packaging_unit }}</span>
</div> </div>
</div> </div>
<div class="item-right" style="margin-right: 10px"> <div class="item-right" style="margin-right: 10px">
<div v-if="expireDateWarningList[0].remaining_days<0">已过期<span class="item-right-num">{{ <div v-if="item.remaining_days<0">已过期<span class="item-right-num">{{
Math.abs(expireDateWarningList[0].remaining_days) Math.abs(item.remaining_days)
}}</span> }}</span>
</div> </div>
<div v-else>剩余<span class="item-right-num">{{ Math.abs(expireDateWarningList[0].remaining_days) }}</span> <div v-else>剩余<span class="item-right-num">{{ Math.abs(item.remaining_days) }}</span>
</div>
</div>
</div>
<div class="item1" style="margin-right: 8px" v-if="expireDateWarningList[1]">
<img class="image" src="/static/images/home/danger.png" alt="">
<div class="item-content">
<el-tooltip
effect="dark"
:content="expireDateWarningList[1].name"
placement="bottom-start"
>
<div class="item-name">{{ expireDateWarningList[1].name }}</div>
</el-tooltip>
<div class="item-name-font">
<span>{{ expireDateWarningList[1].whole_number }}{{ expireDateWarningList[1].packaging_unit }}</span>
<span v-if="expireDateWarningList[1].fragment_number>0">{{
expireDateWarningList[1].fragment_number
}}{{ expireDateWarningList[1].min_packaging_unit }}</span>
</div>
</div>
<div class="item-right" style="margin-right: 10px">
<div v-if="expireDateWarningList[1].remaining_days<0">已过期<span class="item-right-num">{{
Math.abs(expireDateWarningList[1].remaining_days)
}}</span>
</div>
<div v-else>剩余<span class="item-right-num">{{ Math.abs(expireDateWarningList[1].remaining_days) }}</span>
</div>
</div>
</div>
<div class="item" style="margin-right: 8px" v-if="expireDateWarningList[2]">
<img class="image" src="/static/images/home/danger.png" alt="">
<div class="item-content">
<el-tooltip
effect="dark"
:content="expireDateWarningList[2].name"
placement="bottom-start"
>
<div class="item-name">{{ expireDateWarningList[2].name }}</div>
</el-tooltip>
<div class="item-name-font">
<span>{{ expireDateWarningList[2].whole_number }}{{ expireDateWarningList[2].packaging_unit }}</span>
<span v-if="expireDateWarningList[2].fragment_number>0">{{
expireDateWarningList[2].fragment_number
}}{{ expireDateWarningList[2].min_packaging_unit }}</span>
</div>
</div>
<div class="item-right" style="margin-right: 10px">
<div v-if="expireDateWarningList[2].remaining_days<0">已过期<span class="item-right-num">{{
Math.abs(expireDateWarningList[2].remaining_days)
}}</span>
</div>
<div v-else>剩余<span class="item-right-num">{{ Math.abs(expireDateWarningList[2].remaining_days) }}</span>
</div>
</div>
</div>
<div class="item1" style="margin-right: 8px" v-if="expireDateWarningList[3]">
<img class="image" src="/static/images/home/danger.png" alt="">
<div class="item-content">
<el-tooltip
effect="dark"
:content="expireDateWarningList[3].name"
placement="bottom-start"
>
<div class="item-name">{{ expireDateWarningList[3].name }}</div>
</el-tooltip>
<div class="item-name-font">
<span>{{ expireDateWarningList[3].whole_number }}{{ expireDateWarningList[3].packaging_unit }}</span>
<span v-if="expireDateWarningList[3].fragment_number>0">{{
expireDateWarningList[3].fragment_number
}}{{ expireDateWarningList[3].min_packaging_unit }}</span>
</div>
</div>
<div class="item-right" style="margin-right: 10px">
<div v-if="expireDateWarningList[3].remaining_days<0">已过期<span class="item-right-num">{{
Math.abs(expireDateWarningList[3].remaining_days)
}}</span>
</div>
<div v-else>剩余<span class="item-right-num">{{ Math.abs(expireDateWarningList[3].remaining_days) }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -149,70 +74,30 @@ const getExpiryDateWarning = () => {
flex-direction: column; flex-direction: column;
.box { .box {
.item__danger{
.image{
background-image: url("/static/images/home/danger.png") ;
}
.item-right{
color: #FF282E;
}
}
.item__warn{
.image{
background-image: url("/static/images/home/warn.png") ;
}
.item-right{
color: #F69C51;
}
}
.item { .item {
float: left; float: left;
width:48%; width: 48%;
height: 58px;
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.1);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: space-between;
flex: 1 1 calc(50% - 8px); //2 item item 33.33%
.image {
width: 34px;
height: 34px;
margin: 0 8px 0 16px;
}
.item-content {
flex: 1;
.item-name {
font-weight: 400;
font-size: 14px;
color: #333333;
font-style: normal;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.item-name-font {
font-weight: 400;
font-size: 12px;
color: #999999;
font-style: normal;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.item-right{
width: 70px;
.item-right-num{
font-size: 28px;
color: #FF282E;
font-weight: bold;
font-style: normal;
}
}
&:nth-child(2n) {
margin-right: 0 !important;
}
&:nth-child(3) {
margin-top: 8px !important;
}
&:nth-child(4) {
margin-top: 8px !important;
}
}
.item1 {
float: right;
width:48%;
height: 58px; height: 58px;
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.1); box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.1);
border-radius: 8px; border-radius: 8px;
@ -224,6 +109,7 @@ const getExpiryDateWarning = () => {
width: 34px; width: 34px;
height: 34px; height: 34px;
margin: 0 8px 0 16px; margin: 0 8px 0 16px;
background-size: 100% 100%;
} }
.item-content { .item-content {
@ -250,12 +136,11 @@ const getExpiryDateWarning = () => {
} }
} }
.item-right {
width: 100px;
.item-right{ .item-right-num {
width: 70px;
.item-right-num{
font-size: 28px; font-size: 28px;
color: #FF282E;
font-weight: bold; font-weight: bold;
font-style: normal; font-style: normal;
} }
@ -273,7 +158,8 @@ const getExpiryDateWarning = () => {
margin-top: 8px !important; margin-top: 8px !important;
} }
} }
}
}
} }
</style> </style>

View File

@ -15,39 +15,40 @@
<el-form :model="formDate" label-width="auto" ref="formRef"> <el-form :model="formDate" label-width="auto" ref="formRef">
<el-descriptions <el-descriptions
:column="1" :column="1"
label-width="100px"
border border
> >
<el-descriptions-item :width="140" label="主诉"> <el-descriptions-item label="主诉">
<div>{{ formDate.mainAppeal}}</div> <div>{{ formDate.mainAppeal}}</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :width="140" label="诊断"> <el-descriptions-item label="诊断">
<div>{{ formDate.diagnosisSummary}}</div> <div>{{ formDate.diagnosisSummary}}</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :width="140" label="现病史"> <el-descriptions-item label="现病史">
<div>{{ formDate.nowMedicalHistory}}</div> <div>{{ formDate.nowMedicalHistory}}</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :width="140" label="既往史"> <el-descriptions-item label="既往史">
<div>{{ formDate.beforeMedicalHistory}}</div> <div>{{ formDate.beforeMedicalHistory}}</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :width="140" label="过敏史"> <el-descriptions-item label="过敏史">
<div>{{ formDate.allergyHistory}}</div> <div>{{ formDate.allergyHistory}}</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :width="140" label="体格检查"> <el-descriptions-item label="体格检查">
<div>{{ formDate.exam}}</div> <div>{{ formDate.exam}}</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :width="140" label="望闻问切" v-if="modelType==1"> <el-descriptions-item label="望闻问切" v-if="modelType==1">
<div>{{ formDate.chinaAdjunctCheck}}</div> <div>{{ formDate.chinaAdjunctCheck}}</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :width="140" label="法制" v-if="modelType==1"> <el-descriptions-item label="法制" v-if="modelType==1">
<div>{{ formDate.chinaDeal}}</div> <div>{{ formDate.chinaDeal}}</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :width="140" label="口腔检查" v-if="modelType==2"> <el-descriptions-item label="口腔检查" v-if="modelType==2">
<div>{{ formDate.mouthCheck}}</div> <div>{{ formDate.mouthCheck}}</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :width="140" label="辅助检查" v-if="modelType==2 || modelType ==0"> <el-descriptions-item label="辅助检查" v-if="modelType==2 || modelType ==0">
<div>{{ formDate.adjunctCheck}}</div> <div>{{ formDate.adjunctCheck}}</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :width="140" label="处置" v-if="modelType==0 || modelType ==2"> <el-descriptions-item label="处置" v-if="modelType==0 || modelType ==2">
<div>{{ formDate.deal}}</div> <div>{{ formDate.deal}}</div>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
@ -58,10 +59,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {ref} from "vue"; import {ref} from "vue";
import {tempList} from "@/assets/config/constants.ts";
import Panel from "@/components/common/Panel.vue"; import Panel from "@/components/common/Panel.vue";
import PopoverInput from "@/components/PopoverInput.vue";
import DiagnosisSearchInput from "@/components/outpatient/DiagnosisSearchInput.vue";
const formDate = defineModel<any>(); const formDate = defineModel<any>();
const modelType = ref(0) const modelType = ref(0)

View File

@ -32,7 +32,7 @@ const props = defineProps({
}, },
width: { width: {
type: Number, type: Number,
default: 1000
}, },
showConfig: { showConfig: {
type: Array as () => showConfig[], type: Array as () => showConfig[],

View File

@ -5,31 +5,30 @@
<img class="avatar-image" src="/static/images/outpatient/profile-picture.png" alt="头像"/> <img class="avatar-image" src="/static/images/outpatient/profile-picture.png" alt="头像"/>
<div class="avatar-info-wrapper"> <div class="avatar-info-wrapper">
<div class="avatar-info"> <div class="avatar-info">
<span class="avatar-info-name">{{ patientRegistration.name }}</span> <span class="avatar-info-name">{{ patientRegistration?.patientInfo?.name }}</span>
<span class="avatar-info-sex" style="margin: 0 16px">{{ patientRegistration.gender }}</span> <span class="avatar-info-sex" style="margin: 0 16px">{{ patientRegistration?.patientInfo?.sex == 1 ? '男' : '女'}}</span>
<span class="avatar-info-age">{{ patientRegistration.age }}</span> <span class="avatar-info-age">{{ patientRegistration?.patientInfo?.age }}</span>
</div> </div>
<div class="avatar-info-phone-num"> <div class="avatar-info-phone-num">
<span class="avatar-info-phone">{{ patientRegistration.phone }}</span> <span class="avatar-info-phone">{{ patientRegistration?.patientInfo?.phone }}</span>
<span class="avatar-info-num">就诊次数<i class="caret-num">{{ patientRegistration.visitCount || 0 }}</i></span> <span class="avatar-info-num">就诊次数<i class="caret-num">{{ patientRegistration?.seeDoctorCount || 0 }}</i></span>
</div> </div>
</div> </div>
</div> </div>
<div class="detail"> <div class="detail">
<div>挂号医生:&nbsp;<span class="detail-doctor">{{patientRegistration.dockerName}}-{{patientRegistration.dockerSection}}</span></div> <div>挂号医生:&nbsp;<span class="detail-doctor">{{patientRegistration?.dockerName}}-{{patientRegistration?.sectionName}}</span></div>
<div class="detail-middle"> <div class="detail-middle">
<div>费用类别:&nbsp;<span class="detail-doctor">医保</span></div> <div>费用类别:&nbsp;<span class="detail-doctor">医保</span></div>
<div>医保卡剩余金额:&nbsp;<span class="detail-balance">756</span></div> <div>医保卡剩余金额:&nbsp;<span class="detail-balance">{{patientRegistration?.socialBalance}}</span></div>
</div> </div>
<div>上次就诊时间:&nbsp;<span class="detail-doctor">{{ patientRegistration.lastVisitTime }}</span></div> <div>上次就诊时间:&nbsp;<span class="detail-doctor">{{ formatDate(patientRegistration?.lastSeeDoctorTime) }}</span></div>
</div> </div>
</div> </div>
</Panel> </Panel>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import Panel from "@/components/common/Panel.vue"; import Panel from "@/components/common/Panel.vue";
import {post} from "@/utils/request.ts"; import {formatDate} from "@/utils/dateUtils.ts"
import {ref} from "vue";
const patientRegistration=defineModel<any>() const patientRegistration=defineModel<any>()
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -14,9 +14,9 @@
<li class="list-item" :class="curItem.id == item.id ? 'active' : ''" v-for="(item, index) in list" <li class="list-item" :class="curItem.id == item.id ? 'active' : ''" v-for="(item, index) in list"
:key="index" @click="clickLi(item)"> :key="index" @click="clickLi(item)">
<span> <span>
<img v-if="item.gender==''" class="avatar" src="/static/images/outpatient/man.png" <img v-if="item.gender==1" class="avatar" src="/static/images/outpatient/man.png"
alt="头像"/> alt="头像"/>
<img v-if="item.gender==''" class="avatar" src="/static/images/outpatient/women.png" <img v-if="item.gender==2" class="avatar" src="/static/images/outpatient/women.png"
alt="头像"/> alt="头像"/>
</span> </span>
<span class="item_name">{{ item.name }}</span> <span class="item_name">{{ item.name }}</span>

View File

@ -22,7 +22,7 @@ const editItem= () => {
<div class="btn-group"> <div class="btn-group">
<el-button v-if="status == 2" @click="deleteItem">取消接诊</el-button> <el-button v-if="status == 2" @click="deleteItem">取消接诊</el-button>
<el-button v-if="status == 2" type="primary" @click="save">完成接诊</el-button> <el-button v-if="status == 2" type="primary" @click="save">完成接诊</el-button>
<el-button v-if="status == 3" type="primary" @click="editItem">修改</el-button> <!-- <el-button v-if="status == 3" type="primary" @click="editItem">修改</el-button>-->
</div> </div>
</div> </div>
</Panel> </Panel>

View File

@ -171,7 +171,6 @@ const openPsnPayment = (payInfo:any,orderInfo:any)=>{
height: 16px; height: 16px;
margin-right: 3px; margin-right: 3px;
border-radius: 23px; border-radius: 23px;
background-color: #ffffff;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;

View File

@ -49,6 +49,7 @@
:show-header="false" :show-header="false"
:disabled="statusDisabled==1" :disabled="statusDisabled==1"
> >
</DiagnosisSearchInput> </DiagnosisSearchInput>
</div> </div>

View File

@ -26,7 +26,7 @@
</div> </div>
<div class="right"> <div class="right">
<div class="top"> <div class="top">
<MedicalInformation v-model="patientRegistration" ref="medicalInformationRef"></MedicalInformation> <MedicalInformation v-model="seeDockerInfo" ref="medicalInformationRef"></MedicalInformation>
</div> </div>
<div class="bottom"> <div class="bottom">
<MedicalHistory ref="medicalHistoryRef" @copy="copyForm" @copyItem="copyItemList" @copyGoods="copyGoodsList"></MedicalHistory> <MedicalHistory ref="medicalHistoryRef" @copy="copyForm" @copyItem="copyItemList" @copyGoods="copyGoodsList"></MedicalHistory>
@ -122,6 +122,7 @@ const getId = (item: any) => {
itemList.value = res.itemDetail itemList.value = res.itemDetail
patientRegistration.value = res.patientRegistration patientRegistration.value = res.patientRegistration
}) })
} }
} }
const status = ref<any>(1) const status = ref<any>(1)
@ -172,6 +173,20 @@ const copyItemList=(item:any) => {
const copyGoodsList=(item:any) => { const copyGoodsList=(item:any) => {
goodsList.value = item.goodsDetail goodsList.value = item.goodsDetail
} }
const seeDockerInfo = ref<any>()
const getSeeDockerInfo = (newValue:any) => {
if (!registerId.value)return;
post('medical/record/getSeeDockerInfo', {regisId: newValue}).then((res: any) => {
seeDockerInfo.value = res
})
}
watch(() => registerId.value, (newValue) => {
if (!newValue) {
seeDockerInfo.value = {}
return
}
getSeeDockerInfo(newValue)
})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.container { .container {