|
|
|
|
@ -54,7 +54,7 @@
|
|
|
|
|
@totalPriceChange="getOrderTotalPrice" :statusDisabled="statusDisabled==1"></GoodsDetail>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="bottom">
|
|
|
|
|
<TotalPrice v-model="formData.totalPrice" @save="charge" :status="formData.status" @openCheckOut ="openCheckoutDetail(formData.goodsDetail)"></TotalPrice>
|
|
|
|
|
<TotalPrice v-model="formData.totalPrice" @edit="saveAndCharge" :status="!(statusDisabled)&&formData.status==0"></TotalPrice>
|
|
|
|
|
</div>
|
|
|
|
|
</el-scrollbar>
|
|
|
|
|
</div>
|
|
|
|
|
@ -67,7 +67,6 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<CheckoutDetail ref="checkoutDetailRef" @confirm ="saveAndCharge"></CheckoutDetail>
|
|
|
|
|
<Settlement
|
|
|
|
|
ref="settlementRef"
|
|
|
|
|
v-model="socialCard"
|
|
|
|
|
@ -93,8 +92,6 @@ import antys from "@/assets/config/directory/antys.json"
|
|
|
|
|
import RecordsLog from "@/components/charge/RecordsLog.vue";
|
|
|
|
|
import PatientCard from "@/components/charge/PatientCard.vue";
|
|
|
|
|
import {apiConfig} from "@/assets/config/apiConfig.ts";
|
|
|
|
|
import CheckoutDetail from "@/components/charge/CheckoutDetail.vue";
|
|
|
|
|
import {ElMessage} from "element-plus";
|
|
|
|
|
|
|
|
|
|
const socialCard = ref<any>({payInfo: {}})
|
|
|
|
|
const formData = ref<any>({
|
|
|
|
|
@ -113,116 +110,66 @@ const delDraft = () => {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const settlementRef = ref()
|
|
|
|
|
const charge = () => {
|
|
|
|
|
|
|
|
|
|
if (checkTraceCode(formData.value.goodsDetail)) {
|
|
|
|
|
//保存订单
|
|
|
|
|
saveAndCharge()
|
|
|
|
|
} else {
|
|
|
|
|
//打开追溯码详情页
|
|
|
|
|
openCheckoutDetail(formData.value.goodsDetail)
|
|
|
|
|
}
|
|
|
|
|
const saveAndCharge = () => {
|
|
|
|
|
post('charge/save', {data: {...formData.value, doctorId: doctorId.value}}).then((res: any) => {
|
|
|
|
|
formData.value.code = res
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
settlementRef.value?.init(res)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const checkTraceCode = (goodsList: any[]) => {
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < goodsList.length; i++) {
|
|
|
|
|
const item = goodsList[i];
|
|
|
|
|
if (!item.traceAbilityCodeList || item.shouldNumber != item.traceAbilityCodeList.length) {
|
|
|
|
|
ElMessage({
|
|
|
|
|
message: `${item.name}的追溯码采集未完成`,
|
|
|
|
|
type: 'warning',
|
|
|
|
|
})
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
const diagnosisSearchRef = ref()
|
|
|
|
|
const diagnosisSearchApi = "social/diagnose/search"
|
|
|
|
|
const diagnosisShowConfig = [
|
|
|
|
|
{
|
|
|
|
|
label: "诊断名称",
|
|
|
|
|
prop: "name",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: "诊断编码",
|
|
|
|
|
prop: "code",
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
]
|
|
|
|
|
const diagnosisSelect = (list: any) => {
|
|
|
|
|
const diagnosisNames = list.map((item: any) => item.name).join(',')
|
|
|
|
|
formData.value.diagnosisMedicalRecord.diagnosisDetail = JSON.stringify(list)
|
|
|
|
|
formData.value.diagnosisMedicalRecord.diagnosisSummary = diagnosisNames
|
|
|
|
|
}
|
|
|
|
|
const checkoutDetailRef = ref()
|
|
|
|
|
const openCheckoutDetail = (goodsList: any[]) => {
|
|
|
|
|
if (!goodsList || goodsList.length == 0) {
|
|
|
|
|
ElMessage({
|
|
|
|
|
message: '没有商品信息,请先选择需要售卖的商品',
|
|
|
|
|
type: 'info',
|
|
|
|
|
plain: true,
|
|
|
|
|
});
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
checkoutDetailRef.value.init(goodsList);
|
|
|
|
|
})
|
|
|
|
|
const recordsConsumptionRef = ref<any>("")
|
|
|
|
|
const patientCardRef = ref()
|
|
|
|
|
const clickItem = async (item: any, status: any) => {
|
|
|
|
|
statusDisabled.value = status
|
|
|
|
|
formData.value = await post('medical/record/getByDiagnosisCode', {diagnosisCode: item.code})
|
|
|
|
|
formData.value.doctorId = formData.value.patientRegistration.organizationDoctorId
|
|
|
|
|
getOrderTotalPrice()
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
let list = JSON.parse(formData.value.diagnosisMedicalRecord.diagnosisDetail)
|
|
|
|
|
let nList = formData.value.diagnosisMedicalRecord.diagnosisSummary.split(',')
|
|
|
|
|
diagnosisSearchRef.value?.init(list, nList);
|
|
|
|
|
recordsConsumptionRef.value?.init(formData.value.patientInfo.id);
|
|
|
|
|
patientCardRef.value?.init(formData.value.registrationId);
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const dockerList = ref<any[]>([])
|
|
|
|
|
const getDockerList = () => {
|
|
|
|
|
let query = {
|
|
|
|
|
role: 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const saveAndCharge = () => {
|
|
|
|
|
post('charge/save', {data: {...formData.value, doctorId: doctorId.value}}).then((res: any) => {
|
|
|
|
|
formData.value.code = res
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
settlementRef.value?.init(res)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const diagnosisSearchRef = ref()
|
|
|
|
|
const diagnosisSearchApi = "social/diagnose/search"
|
|
|
|
|
const diagnosisShowConfig = [
|
|
|
|
|
{
|
|
|
|
|
label: "诊断名称",
|
|
|
|
|
prop: "name",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: "诊断编码",
|
|
|
|
|
prop: "code",
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
const diagnosisSelect = (list: any) => {
|
|
|
|
|
const diagnosisNames = list.map((item: any) => item.name).join(',')
|
|
|
|
|
formData.value.diagnosisMedicalRecord.diagnosisDetail = JSON.stringify(list)
|
|
|
|
|
formData.value.diagnosisMedicalRecord.diagnosisSummary = diagnosisNames
|
|
|
|
|
}
|
|
|
|
|
const recordsConsumptionRef = ref<any>("")
|
|
|
|
|
const patientCardRef = ref()
|
|
|
|
|
const clickItem = async (item: any, status: any) => {
|
|
|
|
|
statusDisabled.value = status
|
|
|
|
|
formData.value = await post('medical/record/getByDiagnosisCode', {diagnosisCode: item.code})
|
|
|
|
|
//添加追溯码应采字段
|
|
|
|
|
for (let i =0;i<formData.value.goodsDetail.length;i++){
|
|
|
|
|
let goodsItem =formData.value.goodsDetail[i]
|
|
|
|
|
if (goodsItem.packagingUnit == goodsItem.selectedUnit){
|
|
|
|
|
goodsItem.shouldNumber = goodsItem.selectedNum;
|
|
|
|
|
}else {
|
|
|
|
|
goodsItem.shouldNumber = Math.ceil(goodsItem.selectedNum / goodsItem.minPackagingNumber);
|
|
|
|
|
}
|
|
|
|
|
goodsItem.idCode = goodsItem.idCode?.split(",")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getOrderTotalPrice()
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
let list = JSON.parse(formData.value.diagnosisMedicalRecord.diagnosisDetail)
|
|
|
|
|
let nList = formData.value.diagnosisMedicalRecord.diagnosisSummary.split(',')
|
|
|
|
|
diagnosisSearchRef.value?.init(list, nList);
|
|
|
|
|
recordsConsumptionRef.value?.init(formData.value.patientInfo.id);
|
|
|
|
|
patientCardRef.value?.init(formData.value.registrationId);
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const dockerList = ref<any[]>([])
|
|
|
|
|
const getDockerList = () => {
|
|
|
|
|
let query = {
|
|
|
|
|
role: 1
|
|
|
|
|
}
|
|
|
|
|
post('organization/member/search', {query: query}).then((res: any) => {
|
|
|
|
|
dockerList.value = res
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const orderCompleted = () => {
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
chargeQueueRef.value?.getOrderList()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const orderCanceled = () => {
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
chargeQueueRef.value?.getOrderList()
|
|
|
|
|
})
|
|
|
|
|
post('organization/member/search', {query: query}).then((res: any) => {
|
|
|
|
|
dockerList.value = res
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const orderCompleted = () => {
|
|
|
|
|
getDockerList()
|
|
|
|
|
list()
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
chargeQueueRef.value?.getOrderList()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const orderCanceled = () => {
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
chargeQueueRef.value?.getOrderList()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|