Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
38d8aa9090
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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-right {
|
.item-name-font {
|
||||||
width: 56px;
|
|
||||||
margin-right: 16px;
|
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 10px;
|
font-size: 12px;
|
||||||
color: #333333;
|
color: #999999;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
white-space: nowrap;
|
||||||
.item-right-num {
|
overflow: hidden;
|
||||||
font-weight: bold;
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.item-right{
|
||||||
|
width: 70px;
|
||||||
|
.item-right-num{
|
||||||
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-right {
|
.item-name-font {
|
||||||
width: 56px;
|
|
||||||
margin-right: 16px;
|
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 10px;
|
font-size: 12px;
|
||||||
color: #333333;
|
color: #999999;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.item-right-num {
|
|
||||||
font-weight: bold;
|
.item-right{
|
||||||
|
width: 70px;
|
||||||
|
.item-right-num{
|
||||||
font-size: 28px;
|
font-size: 28px;
|
||||||
color: #FF282E;
|
color: #FF282E;
|
||||||
|
font-weight: bold;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
</el-form>
|
||||||
<div class="bottom_btn">
|
<div class="bottom_btn">
|
||||||
<el-button type="primary" @click="save">保存</el-button>
|
<el-button type="primary" @click="save">保存</el-button>
|
||||||
<el-button @click="close">取消</el-button>
|
<el-button @click="close">取消</el-button>
|
||||||
<el-button v-if="id" type="danger" @click="deleteDetail">删除</el-button>
|
<el-button v-if="id" type="danger" @click="deleteDetail">删除</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
|
||||||
</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>
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue