Merge remote-tracking branch 'origin/main'

This commit is contained in:
LiJianZhao 2025-04-27 17:05:59 +08:00
commit 38d8aa9090
8 changed files with 83 additions and 65 deletions

View File

@ -186,7 +186,7 @@ const getInventoryWarning = () => {
.item-right { .item-right {
width: 70px; width: 70px;
display: flex; display: flex;
margin-right: 16px; margin-right: 10px;
font-weight: bold; font-weight: bold;
font-style: normal; font-style: normal;
font-size: 28px; font-size: 28px;

View File

@ -49,7 +49,7 @@ const getExpiryDateWarning = () => {
}}{{ expireDateWarningList[0].min_packaging_unit }}</span> }}{{ expireDateWarningList[0].min_packaging_unit }}</span>
</div> </div>
</div> </div>
<div class="item-right"> <div class="item-right" style="margin-right: 10px">
<div v-if="expireDateWarningList[0].remaining_days<0">已过期<span class="item-right-num">{{ <div v-if="expireDateWarningList[0].remaining_days<0">已过期<span class="item-right-num">{{
Math.abs(expireDateWarningList[0].remaining_days) Math.abs(expireDateWarningList[0].remaining_days)
}}</span> }}</span>
@ -75,7 +75,7 @@ const getExpiryDateWarning = () => {
}}{{ expireDateWarningList[1].min_packaging_unit }}</span> }}{{ expireDateWarningList[1].min_packaging_unit }}</span>
</div> </div>
</div> </div>
<div class="item-right"> <div class="item-right" style="margin-right: 10px">
<div v-if="expireDateWarningList[1].remaining_days<0">已过期<span class="item-right-num">{{ <div v-if="expireDateWarningList[1].remaining_days<0">已过期<span class="item-right-num">{{
Math.abs(expireDateWarningList[1].remaining_days) Math.abs(expireDateWarningList[1].remaining_days)
}}</span> }}</span>
@ -101,7 +101,7 @@ const getExpiryDateWarning = () => {
}}{{ expireDateWarningList[2].min_packaging_unit }}</span> }}{{ expireDateWarningList[2].min_packaging_unit }}</span>
</div> </div>
</div> </div>
<div class="item-right"> <div class="item-right" style="margin-right: 10px">
<div v-if="expireDateWarningList[2].remaining_days<0">已过期<span class="item-right-num">{{ <div v-if="expireDateWarningList[2].remaining_days<0">已过期<span class="item-right-num">{{
Math.abs(expireDateWarningList[2].remaining_days) Math.abs(expireDateWarningList[2].remaining_days)
}}</span> }}</span>
@ -127,7 +127,7 @@ const getExpiryDateWarning = () => {
}}{{ expireDateWarningList[3].min_packaging_unit }}</span> }}{{ expireDateWarningList[3].min_packaging_unit }}</span>
</div> </div>
</div> </div>
<div class="item-right"> <div class="item-right" style="margin-right: 10px">
<div v-if="expireDateWarningList[3].remaining_days<0">已过期<span class="item-right-num">{{ <div v-if="expireDateWarningList[3].remaining_days<0">已过期<span class="item-right-num">{{
Math.abs(expireDateWarningList[3].remaining_days) Math.abs(expireDateWarningList[3].remaining_days)
}}</span> }}</span>
@ -147,20 +147,19 @@ const getExpiryDateWarning = () => {
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
margin-right: 24px;
.box { .box {
display: flex;
flex-wrap: wrap;
.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;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between;
flex: 1 1 calc(50% - 8px); //2 item item 33.33%
.image { .image {
width: 34px; width: 34px;
height: 34px; height: 34px;
@ -178,24 +177,25 @@ const getExpiryDateWarning = () => {
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; 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{
.item-right { width: 70px;
width: 56px; .item-right-num{
margin-right: 16px;
font-weight: 400;
font-size: 10px;
color: #333333;
font-style: normal;
.item-right-num {
font-weight: bold;
font-size: 28px; font-size: 28px;
color: #FF282E; color: #FF282E;
font-weight: bold;
font-style: normal; font-style: normal;
} }
} }
@ -211,15 +211,16 @@ const getExpiryDateWarning = () => {
margin-top: 8px !important; margin-top: 8px !important;
} }
} }
.item1 { .item1 {
float: right; 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;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between;
flex: 1 1 calc(50% - 8px); //2 item item 33.33%
.image { .image {
width: 34px; width: 34px;
height: 34px; height: 34px;
@ -237,24 +238,27 @@ const getExpiryDateWarning = () => {
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; 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: 56px;
margin-right: 16px;
font-weight: 400;
font-size: 10px;
color: #333333;
font-style: normal;
.item-right-num { .item-right{
font-weight: bold; width: 70px;
.item-right-num{
font-size: 28px; font-size: 28px;
color: #FF282E; color: #FF282E;
font-weight: bold;
font-style: normal; font-style: normal;
} }
} }

View File

@ -38,7 +38,10 @@ const init = (patientId: any) => {
list.value = res list.value = res
}) })
} }
defineExpose({init}) const clearList = () => {
list.value = []
}
defineExpose({init,clearList})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.list { .list {

View File

@ -10,7 +10,7 @@
</div> </div>
<div class="list"> <div class="list">
<el-scrollbar> <el-scrollbar>
<ul> <ul v-loading="loading">
<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>
@ -86,12 +86,15 @@ onMounted(() => {
initStatusList() initStatusList()
init() init()
}) })
const loading = ref(true)
const init = () => { const init = () => {
loading.value = true
post(apiConfig.DoctorList, { post(apiConfig.DoctorList, {
query: { query: {
status: props.status, status: props.status,
} }
}).then((res: any) => { }).then((res: any) => {
loading.value = false
list.value = res.list list.value = res.list
}) })
} }

View File

@ -8,7 +8,7 @@
<span class="name">{{ item.name }}</span> <span class="name">{{ item.name }}</span>
<span class="type">{{ item.type }}</span> <span class="type">{{ item.type }}</span>
<span class="unit"> <span class="unit">
<el-input-number v-model="item.selectNum" min="0"></el-input-number> <el-input-number v-model="item.selectedNum" min="0"></el-input-number>
<el-dropdown> <el-dropdown>
<span style="line-height: 30px;margin-left: 10px">{{ item.selectedUnit }}</span> <span style="line-height: 30px;margin-left: 10px">{{ item.selectedUnit }}</span>
<template #dropdown> <template #dropdown>
@ -70,7 +70,7 @@ const itemShowConfig = [
}, },
] ]
const itemSelect = (row: any) => { const itemSelect = (row: any) => {
row.selectNum = 1 row.selectedNum = 1
row.selectedUnit = row.packagingUnit row.selectedUnit = row.packagingUnit
row.selectedPrice = row.unitPrice row.selectedPrice = row.unitPrice
list.value.push(row) list.value.push(row)
@ -94,7 +94,7 @@ const selectUnit = (item: any, unit: any) => {
const sumPrice = ref(0) const sumPrice = ref(0)
watch(()=>list.value, (newList) => { watch(()=>list.value, (newList) => {
sumPrice.value = newList.reduce((total, item) => { sumPrice.value = newList.reduce((total, item) => {
return total + (item.selectNum || 0) * (item.selectedPrice || 0); return total + (item.selectedNum || 0) * (item.selectedPrice || 0);
}, 0); }, 0);
}, {deep: true}) }, {deep: true})
</script> </script>

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="title"> <div class="title" style="margin-top: 24px">
<el-button type="primary">读卡</el-button> <el-button type="primary">读卡</el-button>
</div> </div>
<el-form <el-form
@ -12,7 +12,7 @@
border border
direction="vertical" direction="vertical"
label-width="100" label-width="100"
:column="2" :column="4"
style="margin-top: 20px" style="margin-top: 20px"
> >
<el-descriptions-item label="名称"> <el-descriptions-item label="名称">
@ -51,15 +51,15 @@
<el-input v-model="edit_data.memo" placeholder="备注"></el-input> <el-input v-model="edit_data.memo" placeholder="备注"></el-input>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<div class="content"> <div class="content" style="margin-top: 24px">
<CardDefault v-model="socialCard" @socialCardUpdate="socialCardUpdate"/> <CardDefault v-model="socialCard" @socialCardUpdate="socialCardUpdate"/>
</div> </div>
<div class="bottom_btn">
<el-button type="primary" @click="save">保存</el-button>
<el-button @click="close">取消</el-button>
<el-button v-if="id" type="danger" @click="deleteDetail">删除</el-button>
</div>
</el-form> </el-form>
<div class="bottom_btn">
<el-button type="primary" @click="save">保存</el-button>
<el-button @click="close">取消</el-button>
<el-button v-if="id" type="danger" @click="deleteDetail">删除</el-button>
</div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {onMounted, ref} from 'vue' import {onMounted, ref} from 'vue'
@ -120,6 +120,7 @@ const save = () => {
mdtrtCertType: socialCard.value.mdtrtCertType mdtrtCertType: socialCard.value.mdtrtCertType
}).then(() => { }).then(() => {
ElMessage.success('修改成功') ElMessage.success('修改成功')
close()
}) })
} else { } else {
console.log(socialCard.value) console.log(socialCard.value)
@ -128,9 +129,9 @@ const save = () => {
mdtrtCertType: socialCard.value.mdtrtCertType mdtrtCertType: socialCard.value.mdtrtCertType
}).then(() => { }).then(() => {
ElMessage.success('新建成功') ElMessage.success('新建成功')
close()
}) })
} }
close()
} }
const deleteDetail = () => { const deleteDetail = () => {
post('registration/delete', {id}).then(() => { post('registration/delete', {id}).then(() => {
@ -164,8 +165,8 @@ onMounted(() => {
} }
.bottom_btn { .bottom_btn {
display: flex; right: 0;
justify-content: flex-end; position: absolute;
margin-top: 10px; bottom: 0;
} }
</style> </style>

View File

@ -6,20 +6,21 @@
<div class="middle"> <div class="middle">
<el-scrollbar> <el-scrollbar>
<div class="case"> <div class="case">
<CaseDetail v-if="registerId&&formData.status == 3" v-model="formData"></CaseDetail> <CaseDetail v-if="patientRegistration.status==3" v-model="formData"></CaseDetail>
<Case v-else v-model="formData"></Case> <Case v-else v-model="formData"></Case>
</div> </div>
<div class="service-items"> <div class="service-items">
<ServiceItemsDetail v-if="registerId&&formData.status == 3" v-model="itemList"></ServiceItemsDetail> <ServiceItemsDetail v-if="patientRegistration.status==3" v-model="itemList"></ServiceItemsDetail>
<ServiceItems v-else v-model="itemList"></ServiceItems> <ServiceItems v-else v-model="itemList"></ServiceItems>
</div> </div>
<div class="pharmaceutical-consumables"> <div class="pharmaceutical-consumables">
<PharmaceuticalConsumablesDetail v-if="registerId&&formData.status == 3" <PharmaceuticalConsumablesDetail v-if="patientRegistration.status==3"
v-model="goodsList"></PharmaceuticalConsumablesDetail> v-model="goodsList"></PharmaceuticalConsumablesDetail>
<PharmaceuticalConsumables v-else v-model="goodsList"></PharmaceuticalConsumables> <PharmaceuticalConsumables v-else v-model="goodsList"></PharmaceuticalConsumables>
</div> </div>
<div class="bottom"> <div class="bottom">
<Settlement v-if="status!=1" v-model="totalAmount" @deleteItem="deleteItem" @save="save" :status="status" @edit="edit"></Settlement> <Settlement v-if="status!=1" v-model="totalAmount" @deleteItem="deleteItem" @save="save" :status="status"
@edit="edit"></Settlement>
</div> </div>
</el-scrollbar> </el-scrollbar>
</div> </div>
@ -121,25 +122,28 @@ const deleteItem = () => {
} }
const getStatus = (e: any) => { const getStatus = (e: any) => {
status.value = e status.value = e
formData.value = {}
goodsList.value = []
itemList.value = []
patientRegistration.value = {}
nextTick(() => {
medicalHistoryRef.value?.clearList();
})
} }
const edit=()=>{ const edit = () => {
post('registration/changeStatus', {id: registerId.value, status: 2}).then((res: any) => { post('registration/changeStatus', {id: registerId.value, status: 2}).then((res: any) => {
status.value = 2 status.value = 2
}) })
} }
// 使 watch goodsList itemList // 使 watch goodsList itemList
watch([()=>goodsList.value, itemList,status], ([newGoodsList, newItemList,newStatus]) => { watch([() => goodsList.value, itemList], ([newGoodsList, newItemList]) => {
const pharmaceuticalTotalAmount = newItemList.reduce((pre: any, cur: any) => { const pharmaceuticalTotalAmount = newItemList.reduce((pre: any, cur: any) => {
return pre + cur.unitPrice return pre + cur.unitPrice
}, 0); }, 0);
const serviceTotalAmount = newGoodsList.reduce((pre: any, cur: any) => { const serviceTotalAmount = newGoodsList.reduce((pre: any, cur: any) => {
return pre + cur.selectedNum * cur.selectedPrice
return pre + cur.selectNum * cur.selectedPrice
}, 0); }, 0);
totalAmount.value = pharmaceuticalTotalAmount + serviceTotalAmount; totalAmount.value = pharmaceuticalTotalAmount + serviceTotalAmount;
if (newStatus) {
registerId.value=''
}
}, {deep: true}); }, {deep: true});
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -47,8 +47,8 @@
</div> </div>
</div> </div>
</div> </div>
<Mask :is-show="isShow" width="400" title="挂号" @close="isShow=false"> <Mask :is-show="isShow" width="800" title="挂号" @close="close">
<Edit :id="id" :doctorList="roleList" @close="getPatientList"></Edit> <Edit :id="id" :doctorList="roleList" @close="close"></Edit>
</Mask> </Mask>
</div> </div>
</template> </template>
@ -90,7 +90,6 @@ const getPatientList = () => {
}).then((res: any) => { }).then((res: any) => {
patientList.value = res.list patientList.value = res.list
}) })
isShow.value = false
} }
const total = ref(0) const total = ref(0)
const size = ref(20) const size = ref(20)
@ -104,6 +103,10 @@ const rowClick = (row: any) => {
isShow.value = true isShow.value = true
id.value = row.id id.value = row.id
} }
const close = () => {
isShow.value = false
getPatientList()
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.container-wrapper { .container-wrapper {