This commit is contained in:
ChenQiuYu 2025-05-22 17:05:12 +08:00
parent bd542a6cb4
commit 589f3ec8ec
4 changed files with 82 additions and 42 deletions

View File

@ -5,7 +5,7 @@
<div class="btns">
<div
class="btn"
style="cursor: pointer"
:class="[!props.disabled && item.type == 1?'disabled':'']"
:style="{
backgroundColor:
selectedIndex === index
@ -72,7 +72,7 @@ const socialCard = ref<any>({
const loading = ref(false);
const show = ref(false)
const printReceipt = ref(false);
const payType = ref(null);
const payType = ref<any>(null);
const retailOrder = ref<any>(null);
const close = () => {
show.value = false;
@ -80,7 +80,16 @@ const close = () => {
selectedIndex.value = null
loading.value = false
}
const props = defineProps({
disabled: {
type: Boolean,
default: false
},
})
const init = async (code: any, psnNo: any) => {
if (props.disabled) {
selectedIndex.value = 0
}
retailOrder.value = await post("charge/getByCode", {code: code});
if (psnNo != null) {
let result: any = await post("social/person/getSocialInfoByPsnNo", {psnNo: psnNo});
@ -95,6 +104,9 @@ const init = async (code: any, psnNo: any) => {
}
defineExpose({init})
const changePriceType = (type: any, index: any) => {
if (!props.disabled && type == 1) {
return
}
payType.value = type;
selectedIndex.value = index
}
@ -113,10 +125,13 @@ const completeSettlement = () => {
} else {
//
loading.value = true;
post('charge/completeOrder', {id: retailOrder.value.id, payType: payType.value}, {catch_error:true}).then((res: any) => {
post('charge/completeOrder', {
id: retailOrder.value.id,
payType: payType.value
}, {catch_error: true}).then((res: any) => {
orderCompleted()
loading.value = false
}).catch((e)=>{
}).catch((e) => {
loading.value = false
ElMessage.error(e)
})
@ -305,6 +320,8 @@ const btnsList = [
font-size: 16px;
color: #333333;
font-style: normal;
cursor: pointer;
.img {
width: 24px;
@ -316,6 +333,13 @@ const btnsList = [
color: #fff;
}
}
.disabled {
cursor: not-allowed;
opacity: 0.6;
background-color: #eee;
color: #999;
}
}
.pay {
@ -404,4 +428,6 @@ const btnsList = [
padding: 0 24px;
align-items: center;
}
</style>

View File

@ -116,11 +116,13 @@
<el-descriptions-item
:span="2"
label="时间">
<el-form-item v-if="props.dateName!='预约'" style="width: 100%">
<div>{{ getToday().start }}</div>
</el-form-item>
<div v-else style="display: flex;width: 100%">
<el-form-item style="width: 100%" prop="date">
<div style=" display: flex;width: 100%">
<div v-if="isBtnShow" style="display: flex;width: 100%">
<div>现在</div>
</div>
<div v-else style="display: flex;width: 100%">
<el-date-picker
v-model="edit_data.date"
type="date"
@ -139,8 +141,10 @@
placeholder="选择时间"
style="width: 50%"
/>
</el-form-item>
</div>
<span v-if="dateName!='预约'" class="small-btn" @click="changeBtn">{{ isBtnShow ? '预约' : '挂号' }}</span>
</div>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
:span="4"
@ -172,7 +176,6 @@
</el-table-column>
</el-table>
</div>
</template>
<template #footer>
<div class="bottom">
@ -195,7 +198,7 @@
退出医保
</div>
<div class="bottom-right">
<span class="default-btn" type="primary" @click="save" :disabled="edit_data.status==0">保存</span>
<span class="default-btn" type="primary" @click="save">保存</span>
<span class="default-btn" @click="close" style="margin: 0 24px">取消</span>
<span class="default-btn" v-if="edit_data.status==1" @click="registrationCancel">退号</span>
</div>
@ -285,17 +288,13 @@ const disabledDate = (date: Date) => {
today.setHours(0, 0, 0, 0); // 00:00:00
return date < today; //
};
const props = defineProps({
dateName: {
type: String,
default: '现在'
},
})
const dateName = defineModel()
const save = () => {
if (props.dateName == '现在') {
edit_data.value.timeList = []
if (dateName.value == '现在') {
edit_data.value.timeList = ''
} else {
edit_data.value.timeList.push(new Date(edit_data.value.date), time.value)
JSON.stringify(edit_data.value.timeList)
}
let data = {
...edit_data.value,
@ -448,6 +447,14 @@ const loading = ref(false)
const changeLoading = (e: any) => {
loading.value = e
}
const isBtnShow = ref(true)
const changeBtn = () => {
isBtnShow.value = !isBtnShow.value
time.value = ''
edit_data.value = {
timeList: [],
}
}
defineExpose({init})
</script>
<style scoped lang="scss">
@ -534,4 +541,9 @@ defineExpose({init})
:deep(.el-form-item) {
margin-bottom: 2px !important;
}
.small-btn{
height: 32px;
line-height: 32px;
margin-left: 5px;
}
</style>

View File

@ -77,6 +77,7 @@
</div>
<CheckoutDetail ref="checkoutDetailRef" @confirm="saveAndCharge"></CheckoutDetail>
<Settlement
:disabled="disabled"
ref="settlementRef"
@orderCompleted="orderCompleted"
@orderCanceled="orderCanceled"
@ -200,6 +201,7 @@ const diagnosisSelect = (list: any) => {
}
const recordsConsumptionRef = ref<any>("")
const patientCardRef = ref()
const disabled = ref(false)
const clickItem = async (item: any, status: any) => {
statusDisabled.value = status
formData.value = await post('medical/record/getByDiagnosisCode', {diagnosisCode: item.code})
@ -213,7 +215,7 @@ const clickItem = async (item: any, status: any) => {
}
goodsItem.idCode = goodsItem.idCode ? goodsItem.idCode == "" ? null : goodsItem.idCode.split(",") : null
}
disabled.value = formData.value.patientRegistration.type == 2
getOrderTotalPrice()
nextTick(() => {
let list = JSON.parse(formData.value.diagnosisMedicalRecord.diagnosisDetail)
@ -246,7 +248,7 @@ const orderCompleted = (printReceipt: any) => {
type MedTypeKey = keyof typeof medTypeJson;
const wsStore = useWsStore()
const printReceiptDo = async () => {
let chargeOrder:any = await post("charge/getOrderByDiagnosisCode", {
let chargeOrder: any = await post("charge/getOrderByDiagnosisCode", {
diagnosisCode: formData.value.code,
})
if (!chargeOrder) {
@ -350,7 +352,7 @@ const refund = async () => {
ElMessage.error("请先选择要退费的订单")
return
}
let chargeOrder:any = await post("charge/getOrderByDiagnosisCode", {
let chargeOrder: any = await post("charge/getOrderByDiagnosisCode", {
diagnosisCode: formData.value.code,
})
if (!chargeOrder) {

View File

@ -74,7 +74,7 @@
</Panel>
</div>
</div>
<Edit :dateName="dateName" ref="editRef" @close="getPatientList"></Edit>
<Edit v-model="dateName" ref="editRef" @close="getPatientList"></Edit>
</div>
</template>
<script setup lang="ts">