This commit is contained in:
ChenQiuYu 2025-05-15 09:33:00 +08:00
parent 2814cc4da7
commit acb47d04ce
2 changed files with 188 additions and 169 deletions

View File

@ -53,10 +53,11 @@
<GoodsDetail v-model="formData.goodsDetail" :status="formData.status == 0" <GoodsDetail v-model="formData.goodsDetail" :status="formData.status == 0"
@totalPriceChange="getOrderTotalPrice" :statusDisabled="statusDisabled==1"></GoodsDetail> @totalPriceChange="getOrderTotalPrice" :statusDisabled="statusDisabled==1"></GoodsDetail>
</div> </div>
<div class="bottom">
<TotalPrice v-model="formData.totalPrice" @save="charge" :status="formData.status ==0" @openSettlement="charge" @openCheckOut ="openCheckoutDetail(formData.goodsDetail,formData.patientRegistration.psnNo)"></TotalPrice>
</div>
</el-scrollbar> </el-scrollbar>
<div class="bottom">
<TotalPrice v-model="formData.totalPrice" @save="charge" :status="formData.status ==0" @openSettlement="charge"
@openCheckOut="openCheckoutDetail(formData.goodsDetail,formData.patientRegistration.psnNo)"></TotalPrice>
</div>
</div> </div>
<div class="right"> <div class="right">
<div class="top"> <div class="top">
@ -67,7 +68,7 @@
</div> </div>
</div> </div>
</div> </div>
<CheckoutDetail ref="checkoutDetailRef" @confirm ="saveAndCharge"></CheckoutDetail> <CheckoutDetail ref="checkoutDetailRef" @confirm="saveAndCharge"></CheckoutDetail>
<Settlement <Settlement
ref="settlementRef" ref="settlementRef"
@orderCompleted="orderCompleted" @orderCompleted="orderCompleted"
@ -117,7 +118,7 @@ const charge = () => {
saveAndCharge() saveAndCharge()
} else { } else {
// //
openCheckoutDetail(formData.value.goodsDetail,formData.value.patientRegistration.psnNo) openCheckoutDetail(formData.value.goodsDetail, formData.value.patientRegistration.psnNo)
} }
} }
@ -137,8 +138,8 @@ const checkTraceCode = (goodsList: any[]) => {
return true; return true;
} }
const checkoutDetailRef = ref() const checkoutDetailRef = ref()
const openCheckoutDetail = (goodsList: any[],psnNo:string) => { const openCheckoutDetail = (goodsList: any[], psnNo: string) => {
if (!goodsList || goodsList.length == 0) { if (!goodsList || goodsList.length == 0) {
ElMessage({ ElMessage({
message: '没有商品信息,请先选择需要售卖的商品', message: '没有商品信息,请先选择需要售卖的商品',
@ -148,21 +149,21 @@ const checkTraceCode = (goodsList: any[]) => {
return return
} }
nextTick(() => { nextTick(() => {
checkoutDetailRef.value.init(goodsList,psnNo); checkoutDetailRef.value.init(goodsList, psnNo);
}) })
} }
const saveAndCharge = () => { const saveAndCharge = () => {
post('charge/save', {data: {...formData.value, doctorId: doctorId.value}}).then((res: any) => { post('charge/save', {data: {...formData.value, doctorId: doctorId.value}}).then((res: any) => {
formData.value.code = res formData.value.code = res
nextTick(() => { nextTick(() => {
settlementRef.value?.init(res, formData.value.patientRegistration.psnNo) settlementRef.value?.init(res, formData.value.patientRegistration.psnNo)
}) })
}) })
} }
const diagnosisSearchRef = ref() const diagnosisSearchRef = ref()
const diagnosisSearchApi = "social/diagnose/search" const diagnosisSearchApi = "social/diagnose/search"
const diagnosisShowConfig = [ const diagnosisShowConfig = [
{ {
label: "诊断名称", label: "诊断名称",
prop: "name", prop: "name",
@ -171,26 +172,26 @@ const checkTraceCode = (goodsList: any[]) => {
label: "诊断编码", label: "诊断编码",
prop: "code", prop: "code",
} }
] ]
const diagnosisSelect = (list: any) => { const diagnosisSelect = (list: any) => {
const diagnosisNames = list.map((item: any) => item.name).join(',') const diagnosisNames = list.map((item: any) => item.name).join(',')
formData.value.diagnosisMedicalRecord.diagnosisDetail = JSON.stringify(list) formData.value.diagnosisMedicalRecord.diagnosisDetail = JSON.stringify(list)
formData.value.diagnosisMedicalRecord.diagnosisSummary = diagnosisNames formData.value.diagnosisMedicalRecord.diagnosisSummary = diagnosisNames
} }
const recordsConsumptionRef = ref<any>("") const recordsConsumptionRef = ref<any>("")
const patientCardRef = ref() const patientCardRef = ref()
const clickItem = async (item: any, status: any) => { const clickItem = async (item: any, status: any) => {
statusDisabled.value = status statusDisabled.value = status
formData.value = await post('medical/record/getByDiagnosisCode', {diagnosisCode: item.code}) formData.value = await post('medical/record/getByDiagnosisCode', {diagnosisCode: item.code})
// //
for (let i =0;i<formData.value.goodsDetail.length;i++){ for (let i = 0; i < formData.value.goodsDetail.length; i++) {
let goodsItem =formData.value.goodsDetail[i] let goodsItem = formData.value.goodsDetail[i]
if (goodsItem.packagingUnit == goodsItem.selectedUnit){ if (goodsItem.packagingUnit == goodsItem.selectedUnit) {
goodsItem.shouldNumber = goodsItem.selectedNum; goodsItem.shouldNumber = goodsItem.selectedNum;
}else { } else {
goodsItem.shouldNumber = Math.ceil(goodsItem.selectedNum / goodsItem.minPackagingNumber); goodsItem.shouldNumber = Math.ceil(goodsItem.selectedNum / goodsItem.minPackagingNumber);
} }
goodsItem.idCode = goodsItem.idCode?goodsItem.idCode==""?null:goodsItem.idCode.split(","):null goodsItem.idCode = goodsItem.idCode ? goodsItem.idCode == "" ? null : goodsItem.idCode.split(",") : null
} }
getOrderTotalPrice() getOrderTotalPrice()
@ -201,22 +202,22 @@ const checkTraceCode = (goodsList: any[]) => {
recordsConsumptionRef.value?.init(formData.value.patientInfo.id); recordsConsumptionRef.value?.init(formData.value.patientInfo.id);
patientCardRef.value?.init(formData.value.registrationId); patientCardRef.value?.init(formData.value.registrationId);
}) })
} }
const dockerList = ref<any[]>([]) const dockerList = ref<any[]>([])
const getDockerList = () => { const getDockerList = () => {
let query = { let query = {
role: 1 role: 1
} }
post('organization/member/search', {query: query}).then((res: any) => { post('organization/member/search', {query: query}).then((res: any) => {
dockerList.value = res dockerList.value = res
}) })
} }
const orderCompleted = () => { const orderCompleted = () => {
nextTick(() => { nextTick(() => {
chargeQueueRef.value?.getOrderList() chargeQueueRef.value?.getOrderList()
}) })
} }
const orderCanceled = () => { const orderCanceled = () => {
nextTick(() => { nextTick(() => {
chargeQueueRef.value?.getOrderList() chargeQueueRef.value?.getOrderList()
}) })
@ -260,7 +261,7 @@ const list = () => {
doctorList.value = res doctorList.value = res
}) })
} }
const getStatus=(status:any)=>{ const getStatus = (status: any) => {
statusDisabled.value = status statusDisabled.value = status
formData.value = { formData.value = {
patientInfo: {}, patientInfo: {},

View File

@ -9,13 +9,14 @@
</div> </div>
<div class="left-bottom"> <div class="left-bottom">
<Panel title="医生列表"> <Panel title="医生列表">
<div class="search" style="padding: 0 24px ;height: 42px"> <div class="panel-content" style="display: flex;flex-direction: column;height: 100%">
<div class="search">
<el-input style="height: 100%" v-model="keyword" placeholder="搜索医生姓名" <el-input style="height: 100%" v-model="keyword" placeholder="搜索医生姓名"
@keydown.enter="initDoctor" :prefix-icon="Search"></el-input> @keydown.enter="initDoctor" :prefix-icon="Search"></el-input>
</div> </div>
<div class="content_list" style="padding: 0 24px"> <div class="content_list" style="padding: 0 24px">
<div class="role_list"> <ul class="role_list">
<ul> <el-scrollbar style="height: 100%">
<li v-for="(item, index) in roleList" :key="index" <li v-for="(item, index) in roleList" :key="index"
:class="{active:isShowNum==index}"> :class="{active:isShowNum==index}">
<span class="name">{{ item.name }}</span> <span class="name">{{ item.name }}</span>
@ -23,17 +24,19 @@
<span class="btn" @click="openDialog(item,index)" <span class="btn" @click="openDialog(item,index)"
@mouseover="isShowNum = index" @mouseover="isShowNum = index"
@mouseleave="isShowNum = -1"> @mouseleave="isShowNum = -1">
<img v-if="isShowNum==index" src="/static/images/registration/3-active.png" style="width: 15px;height: 14px;margin-right: 8px" alt=""> <img v-if="isShowNum==index" src="/static/images/registration/3-active.png"
<img v-else src="/static/images/registration/3.png" alt="" style="width: 15px;height: 14px;margin-right: 8px"> style="width: 15px;height: 14px;margin-right: 8px" alt="">
<img v-else src="/static/images/registration/3.png" alt=""
style="width: 15px;height: 14px;margin-right: 8px">
挂号 挂号
</span> </span>
</li> </li>
</el-scrollbar>
</ul> </ul>
</div> </div>
</div> </div>
</Panel> </Panel>
</div> </div>
</div> </div>
<div class="right"> <div class="right">
<Panel title="挂号列表"> <Panel title="挂号列表">
@ -151,8 +154,8 @@ const close = () => {
id.value = null id.value = null
getPatientList() getPatientList()
} }
const reset=() =>{ const reset = () => {
keyword.value='' keyword.value = ''
getPatientList() getPatientList()
} }
</script> </script>
@ -183,8 +186,25 @@ const reset=() =>{
flex: 1; flex: 1;
min-height: 0; min-height: 0;
margin-top: 20px; margin-top: 20px;
.panel-content {
display: flex;
flex-direction: column;
.search {
padding: 0 24px;
height: 42px;
margin-top: 10px;
} }
.content_list {
flex: 1;
min-height: 0;
margin-top: 10px;
.role_list {
height: 100%;
li { li {
height: 50px; height: 50px;
display: flex; display: flex;
@ -222,6 +242,7 @@ const reset=() =>{
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
&:hover { &:hover {
background: #4D6DE4; background: #4D6DE4;
color: #FFF; color: #FFF;
@ -231,14 +252,6 @@ const reset=() =>{
} }
.search {
margin-top: 10px;
}
.content_list {
margin-top: 10px;
}
.active { .active {
background: #4D6DE4; background: #4D6DE4;
@ -255,6 +268,11 @@ const reset=() =>{
} }
} }
} }
}
}
}
}
.right { .right {
margin-left: 20px; margin-left: 20px;