Commit defa0e33 authored by 任鸿志's avatar 任鸿志

fix(settle): 优化结算流程和逻辑

- 修改了医保个账支付的输入框样式
- 优化了结算类型切换的逻辑
- 增加了慢病和省职未审核时禁止结算的提示
- 调整了结算金额的计算方式
- 优化了对话框的显示逻辑
parent 2c36ab9f
......@@ -141,7 +141,19 @@
><span style="color: #666666"
>( 姓名:{{ patientData.name }} <span style="margin: 0px 10px"> 门诊号码: {{ patientData.patient_id }} </span>病人ID:{{ patientData.id_card }}
<span style="color: red">{{man_name=='1'?'自费':man_name=='2'?'门诊统筹':man_name=='3'?'医保个账':man_name=='4'?'门诊慢性病':selectTableArr[0] ? selectTableArr[0].settle_type.name : '' }}</span>
<span style="color: red">{{
man_name == '1'
? '自费'
: man_name == '2'
? '门诊统筹'
: man_name == '3'
? '医保个账'
: man_name == '4'
? '门诊慢性病'
: selectTableArr[0]
? selectTableArr[0].settle_type.name
: ''
}}</span>
</span>
<span style="margin-left: 10px">{{ this.channels }}</span>
</div>
......@@ -367,13 +379,7 @@
<el-form-item>
<div class="form_item">
<el-tag class="label" color="#E7EEFF" style="color: #1a5bfd; font-weight: 600"><span>医保个账支付</span></el-tag>
<el-input
v-model="bxxxinfo.grzhzf"
@input="gjzhifu()"
@blur="grzhzfBlur()"
type="number"
:disabled="form.insurance_type == 'LONGDISTANCE'"
></el-input>
<el-input v-model="bxxxinfo.grzhzf" @input="gjzhifu()" @blur="grzhzfBlur()" type="number" :disabled="form.insurance_type == 'LONGDISTANCE'"></el-input>
</div>
</el-form-item>
<el-form-item>
......@@ -636,7 +642,7 @@ export default {
name: 'Outpatient',
data() {
return {
is_sy:false,
is_sy: false,
saveLoding: false,
invoicepostData: {},
invoicepostVisible: false,
......@@ -692,7 +698,6 @@ export default {
label: '医保个账',
},
{
value: '1',
label: '自费',
......@@ -1054,10 +1059,7 @@ export default {
let chongzhi = this.source_pay_amount * 1 + this.xj_amount * 1
this.form.djf =
// this.round(
this.round(
this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2) - chongzhi,
2,
)
this.round(this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2) - chongzhi, 2)
// - this.bxxxinfo.personal_pay_syd,2)
// this.round( // - chongzhi,
// 2,
......@@ -1388,7 +1390,7 @@ export default {
},
//选中左边处方,展示右边方法
seletei(e) {
this.man_name=''
this.man_name = ''
let searchByFind = this.tableData.cost.filter(item => item.settle_type.name === e)
let arr = []
for (let index = 0; index < searchByFind.length; index++) {
......@@ -1693,7 +1695,7 @@ export default {
},
//调取待结算清单
getWaiting(e) {
this.man_name=''
this.man_name = ''
var that = this
this.is_sy = false
this.gz_name = false
......@@ -1730,7 +1732,7 @@ export default {
}
})
// 医技预约channel=4不走审核
if ((!this.ismb && this.man_name !='1') || this.channel == '4') {
if ((!this.ismb && this.man_name != '1') || this.channel == '4') {
if (this.orders.length > 0) {
this.ybjs()
} else {
......@@ -1798,7 +1800,7 @@ export default {
this.carddialogFormVisible = true
},
ybjs() {
if (this.checktipes() && this.man_name !='1' || this.man_name =='2') {
if ((this.checktipes() && this.man_name != '1') || this.man_name == '2') {
// this.yibaoshow = true
this.yibaoshowNew = true
this.yujiesuanload = false
......@@ -1910,7 +1912,7 @@ export default {
} else {
this.qrjs()
}
} else if ((this.ztvalue.value == 'SELF_PAY' || this.man_name == '1' )&& this.man_name != '2') {
} else if ((this.ztvalue.value == 'SELF_PAY' || this.man_name == '1') && this.man_name != '2') {
this.selfPre()
} else {
this.qrjs()
......@@ -2051,7 +2053,7 @@ export default {
sy: this.is_sy,
source_type: this.payData?.targetSys,
source_trade_no: this.payData?.tradeNo,
is_gz: this.man_name=='3'?true:false,
is_gz: this.man_name == '3' ? true : false,
channel: this.channel,
xj_amount: this.xj_amount,
source_pay_amount: this.source_pay_amount,
......@@ -2274,12 +2276,12 @@ export default {
},
// 切换结算类型
changePersonType(x) {
if (this.form.insurance_type=='PROVINCE' || this.man_name=='4') {
if (this.form.insurance_type == 'PROVINCE' || this.man_name == '4') {
this.$message({
message: '省职或慢病患者请到15号医保审核窗口,审核后缴费',
type: 'error',
})
this.man_name=''
this.man_name = ''
return false
}
......@@ -2317,7 +2319,7 @@ export default {
get_zfbl({
item_code: row.item_code,
//yltclb:row.settle_type.is_mb==true?'4':'6',
rqlb:this.is_sy?'E': this.patientData.crowd_type,
rqlb: this.is_sy ? 'E' : this.patientData.crowd_type,
//xzbz:row.settle_type.is_gs==true?'D':'C',
settle_type: row.settle_type.code,
})
......@@ -2390,6 +2392,7 @@ export default {
} else {
this.selectCardYiboPre(data, x, y, data?.mzdbjbs_arr[0]?.code)
}
// 慢病未审核禁止结算
if (this.selectTableArr.some(item => item.reviewed != '1')) {
this.$alert('存在未审核的收费项目,请审核后再进行结算!', '提示', {
confirmButtonText: '确定',
......@@ -2398,12 +2401,19 @@ export default {
// type: 'info',
// message: `action: ${ action }`
// });
}
});
},
})
return false
}
} else {
// 省职未审核禁止结算
if (this.selectTableArr.some(item => item.reviewed != '1') && this.form.insurance_type == 'PROVINCE') {
this.$alert('存在未审核的收费项目,请审核后再进行结算!', '提示', {
confirmButtonText: '确定',
callback: action => {},
})
return false
}
this.selectCardYiboPre(data, x, y, data?.mzdbjbs_arr[0]?.code)
}
// if (data?.mzdbjbs_arr.length > 1 && this.selectTableArr[0]?.settle_type.is_mb) {
......@@ -2421,8 +2431,8 @@ export default {
},
// 医保预结算
selectCardYiboPre(data, x, y, zhenduan) {
if (this.man_name=='2' || this.man_name=='3' || this.man_name=='1') {
zhenduan=''
if (this.man_name == '2' || this.man_name == '3' || this.man_name == '1') {
zhenduan = ''
}
this.yujiesuanLoading = true
this.xj_amount = 0
......@@ -2437,7 +2447,7 @@ export default {
settlementPre({
sy: this.is_sy,
channel: this.channel,
is_gz: this.man_name=='3'?true:false,
is_gz: this.man_name == '3' ? true : false,
injury_date: this.GSdatatime,
p_jbbm: this.selectTableArr[0]?.settle_type.is_mb ? zhenduan : '',
patient_id: this.patientData.patient_id,
......@@ -2480,16 +2490,16 @@ export default {
// console.log(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2),this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2), this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2), this.round(this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2) - this.bxxxinfo.personal_pay_syd,2),'oooooooooooooooooo')
this.bxxxinfo.grzhzf = 0
let djf =this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2) //this.round(this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2) - this.bxxxinfo.personal_pay_syd,2)
let djf = this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2) //this.round(this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2) - this.bxxxinfo.personal_pay_syd,2)
if (this.bxxxinfo.personal_balance >= djf) {
this.bxxxinfo.grzhzf = djf
if ( this.form.insurance_type == 'LONGDISTANCE') {
if (this.form.insurance_type == 'LONGDISTANCE') {
this.bxxxinfo.grzhzf = 0
}
}
if (this.bxxxinfo.personal_balance < djf) {
this.bxxxinfo.grzhzf = this.bxxxinfo.personal_balance
if ( this.form.insurance_type == 'LONGDISTANCE') {
if (this.form.insurance_type == 'LONGDISTANCE') {
this.bxxxinfo.grzhzf = 0
}
if (res2.data.family_type != '1') {
......@@ -2514,7 +2524,7 @@ export default {
// console.log(this.bxxxinfo.his_deduct_amount, this.form.insurance_type, '++++++++++++')
this.form.djf =this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2) //this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2)
this.form.djf = this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2) //this.round(this.round(this.round(this.bxxxinfo.patient_burden - this.bxxxinfo.gjzhzf, 2) - this.bxxxinfo.his_deduct_amount, 2) - this.bxxxinfo.grzhzf, 2)
// this.form.djf=0
console.log(this.form.djf, 'djf')
// 验证违规
......@@ -2530,7 +2540,6 @@ export default {
// this.weiguiData = response.data.result
// // this.ViolationShow = true
// } else {
// }
})
this.dialogVisible = true
......@@ -2554,7 +2563,12 @@ export default {
this.xj_amount = 0
this.source_pay_amount = 0
this.form = {}
settleSelfPre({ patient_id: this.patientData.patient_id, prescription_nos: this.cost_id, settle_type: this.selectTableArr[0] ? this.selectTableArr[0].settle_type.code : '', channel: this.channel, })
settleSelfPre({
patient_id: this.patientData.patient_id,
prescription_nos: this.cost_id,
settle_type: this.selectTableArr[0] ? this.selectTableArr[0].settle_type.code : '',
channel: this.channel,
})
.then(res => {
this.yujiesuanLoading = false
this.dialogVisible = true
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment