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

View File

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

View File

@ -77,6 +77,7 @@
</div> </div>
<CheckoutDetail ref="checkoutDetailRef" @confirm="saveAndCharge"></CheckoutDetail> <CheckoutDetail ref="checkoutDetailRef" @confirm="saveAndCharge"></CheckoutDetail>
<Settlement <Settlement
:disabled="disabled"
ref="settlementRef" ref="settlementRef"
@orderCompleted="orderCompleted" @orderCompleted="orderCompleted"
@orderCanceled="orderCanceled" @orderCanceled="orderCanceled"
@ -200,6 +201,7 @@ const diagnosisSelect = (list: any) => {
} }
const recordsConsumptionRef = ref<any>("") const recordsConsumptionRef = ref<any>("")
const patientCardRef = ref() const patientCardRef = ref()
const disabled = ref(false)
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})
@ -213,7 +215,7 @@ const clickItem = async (item: any, status: any) => {
} }
goodsItem.idCode = goodsItem.idCode ? goodsItem.idCode == "" ? null : goodsItem.idCode.split(",") : null goodsItem.idCode = goodsItem.idCode ? goodsItem.idCode == "" ? null : goodsItem.idCode.split(",") : null
} }
disabled.value = formData.value.patientRegistration.type == 2
getOrderTotalPrice() getOrderTotalPrice()
nextTick(() => { nextTick(() => {
let list = JSON.parse(formData.value.diagnosisMedicalRecord.diagnosisDetail) let list = JSON.parse(formData.value.diagnosisMedicalRecord.diagnosisDetail)

View File

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