|
|
|
@ -1,21 +1,25 @@ |
|
|
|
<template> |
|
|
|
<div style="font-size: 14px;"> |
|
|
|
<div> |
|
|
|
<el-card> |
|
|
|
<div slot="header">体检收费</div> |
|
|
|
<div class="contenttitle"> |
|
|
|
体检登记 /<span class="contenttitleBold">收费</span> |
|
|
|
</div> |
|
|
|
<div style="display: flex; width: 100%;"> |
|
|
|
<!-- 查询条件 与列表 --> |
|
|
|
<div class="queryDivClass"> |
|
|
|
<div :style="`display: block;width: ${Math.floor(bodyWidth * 3 / 5)}px;`"> |
|
|
|
<!-- 查询条件 --> |
|
|
|
<div style="height: 80px;"> |
|
|
|
<div style="display:flex;"> |
|
|
|
<div> |
|
|
|
<span>登记日期:</span> |
|
|
|
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small" style="width:90px;"/> |
|
|
|
<span>至</span> |
|
|
|
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small" style="width:90px;"/> |
|
|
|
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small" |
|
|
|
style="width:90px;" /> |
|
|
|
<span style="margin: 0 3px;">至</span> |
|
|
|
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small" style="width:90px;" /> |
|
|
|
</div> |
|
|
|
<div style="margin-left:10px;"> |
|
|
|
<el-button type="primary" class="btnClass" @click="Query" size="small" style="width:95px;">查询</el-button> |
|
|
|
<el-button type="primary" class="commonbutton" @click="Query" size="small" |
|
|
|
style="width:95px;">查询</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div style="display:flex;margin-top:10px;"> |
|
|
|
@ -26,15 +30,15 @@ |
|
|
|
</el-radio-group> |
|
|
|
<div v-if="query.chargeFlag != 'N'" style="margin-left:20px;"> |
|
|
|
<span>发票号</span> |
|
|
|
<el-input placeholder="发票/收据号" v-model="query.invoiceNo" size="small" style="width: 100px;" clearable |
|
|
|
<el-input placeholder="发票/收据号" v-model="query.invoiceNo" size="small" style="margin-left: 3px; width: 100px;" clearable |
|
|
|
@change="Query('invoiceNo')" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 列表 --> |
|
|
|
<div class="prListDivClass"> |
|
|
|
<el-table :data="patientList" border highlight-current-row ref="patientList" |
|
|
|
:height="(window.pageHeight > 600 ? (window.pageHeight - 230) : 370)" @row-click="rowClick" size="small"> |
|
|
|
<div> |
|
|
|
<el-table :data="patientList" border highlight-current-row ref="patientList" :height="tableListHeight" |
|
|
|
@row-click="rowClick" size="small"> |
|
|
|
<!-- |
|
|
|
<el-table-column prop="patientRegisterId" label="体检记录ID" /> |
|
|
|
--> |
|
|
|
@ -72,66 +76,66 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 收费操作 --> |
|
|
|
<div class="queryDivClass" style="margin-left:5px;"> |
|
|
|
<div :style="`display: block;margin-left:5px;width: ${Math.floor(bodyWidth * 2 / 5)}px;`"> |
|
|
|
<!-- 查询信息 --> |
|
|
|
<div style="height: 40px;"> |
|
|
|
<div style="display: flex; flex-wrap: wrap;margin-top:40px; height:40px; width: 100%;"> |
|
|
|
<div class="query"> |
|
|
|
<span>条码号</span> |
|
|
|
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small" style="width: 140px;" clearable |
|
|
|
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small" style="margin-left: 3px; width: 120px;" clearable |
|
|
|
@change="Query('patientRegisterNo')" /> |
|
|
|
</div> |
|
|
|
<div class="query"> |
|
|
|
<span>档案号</span> |
|
|
|
<el-input placeholder="档案号" v-model="query.patientNo" size="small" style="width: 100px;" clearable |
|
|
|
<el-input placeholder="档案号" v-model="query.patientNo" size="small" style="margin-left: 3px; width: 80px;" clearable |
|
|
|
@change="Query('patientNo')" /> |
|
|
|
</div> |
|
|
|
<div class="query"> |
|
|
|
<span>姓名</span> |
|
|
|
<el-input placeholder="姓名" v-model="query.patientName" size="small" style="width: 100px;" disabled |
|
|
|
<el-input placeholder="姓名" v-model="query.patientName" size="small" style="margin-left: 3px; width: 70px;" disabled |
|
|
|
@change="Query" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 收费信息 --> |
|
|
|
<div class="prListDivClass"> |
|
|
|
<div> |
|
|
|
<!-- charge --> |
|
|
|
<div style="height:148px;"> |
|
|
|
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="small" |
|
|
|
:disabled="query.chargeFlag != 'N'"> |
|
|
|
<div style="height:108px;"> |
|
|
|
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium" |
|
|
|
:disabled="query.chargeFlag != 'N'" > |
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="发票号" prop="invoiceNo"> |
|
|
|
<el-input v-model="form.invoiceNo" /> |
|
|
|
<el-input v-model="form.invoiceNo" size="small"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="开票抬头" prop="invoiceOrgName"> |
|
|
|
<el-input v-model="form.invoiceOrgName" /> |
|
|
|
<el-input v-model="form.invoiceOrgName" size="small"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="折扣" prop="discount"> |
|
|
|
<el-input v-model="form.discount" @input="discountToDetails" /> |
|
|
|
<el-input v-model="form.discount" @input="discountToDetails" size="small"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="应收金额" prop="total"> |
|
|
|
<el-input v-model="form.total" @input="totalToDetails" /> |
|
|
|
<el-input v-model="form.total" @input="totalToDetails" size="small"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row v-if="query.chargeFlag == 'N'"> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="预收金额" prop="preTotal"> |
|
|
|
<el-input v-model="form.preTotal" disabled/> |
|
|
|
<el-input v-model="form.preTotal" disabled size="small"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="找零" prop="balance"> |
|
|
|
<el-input v-model="form.balance" disabled /> |
|
|
|
<el-input v-model="form.balance" disabled size="small"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
@ -141,7 +145,7 @@ |
|
|
|
<div> |
|
|
|
<div style="margin-top:5px;font-size:10px;">{{ query.chargeFlag == 'B' ? '退' : '收' }}费方式:</div> |
|
|
|
<el-table :data="chargePays" border highlight-current-row size="small" |
|
|
|
:height="window.pageHeight > 600 ? (window.pageHeight - 270 - 146) / 2 : 92"> |
|
|
|
:height="Math.floor((tableListHeight - 146)/2)"> |
|
|
|
<el-table-column prop="payModeId" :label="(query.chargeFlag == 'B' ? '退' : '收') + '费方式'" width="180"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ dddw(dict.payMode, "id", scope.row.payModeId, "displayName") }}</div> |
|
|
|
@ -168,7 +172,7 @@ |
|
|
|
<div style="margin-top:5px; font-size:10px;">{{ query.chargeFlag == 'N' ? '待收' : (query.chargeFlag == 'Y' ? |
|
|
|
'已收' : '已退') }}费项目:</div> |
|
|
|
<el-table :data="asbItemsForFee" border highlight-current-row |
|
|
|
:height="window.pageHeight > 600 ? (window.pageHeight - 270 - 146) / 2 : 92" size="small" |
|
|
|
:height="Math.floor((tableListHeight - 146)/2)" size="small" |
|
|
|
@selection-change="handleSelectionChange" ref="asbItemsForFeeTable"> |
|
|
|
<el-table-column type="selection" align="center" v-if="query.chargeFlag == 'N'" /> |
|
|
|
<el-table-column label="组合项目" width="120" prop="asbitemName" /> |
|
|
|
@ -213,24 +217,24 @@ |
|
|
|
</div> |
|
|
|
<div class="btnDivClass"> |
|
|
|
<div class="btnListClass"> |
|
|
|
<el-button type="primary" class="btnClass" @click="btnCharge" |
|
|
|
<el-button type="primary" class="commonbutton" @click="btnCharge" |
|
|
|
:disabled="query.chargeFlag == 'N' ? false : true">收费</el-button> |
|
|
|
</div> |
|
|
|
<div class="btnListClass"> |
|
|
|
<el-button type="danger" class="btnClass" @click="btnChargeBack" |
|
|
|
<el-button type="danger" class="commonbutton" @click="btnChargeBack" |
|
|
|
:disabled="query.chargeFlag == 'Y' ? false : true">退费</el-button> |
|
|
|
</div> |
|
|
|
<div class="btnListClass"> |
|
|
|
<el-button type="success" class="btnClass" @click="chargePrint('0007', false, form.id)" |
|
|
|
<el-button type="success" class="commonbutton" @click="chargePrint('0007', false, form.id)" |
|
|
|
:disabled="query.chargeFlag == 'B' ? true : false">打印</el-button> |
|
|
|
</div> |
|
|
|
<div class="btnListClass"> |
|
|
|
<el-button type="success" class="btnClass" @click="chargePrint('0007', true, form.id)" |
|
|
|
<el-button type="success" class="commonbutton" @click="chargePrint('0007', true, form.id)" |
|
|
|
:disabled="query.chargeFlag == 'B' ? true : false">打印预览</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script> |
|
|
|
@ -247,7 +251,7 @@ export default { |
|
|
|
PatientRegisterQuery, |
|
|
|
PatientRegisterRefuseList, |
|
|
|
}, |
|
|
|
props:["patientRegisterNo"], |
|
|
|
props: ["patientRegisterNo"], |
|
|
|
data() { |
|
|
|
return { |
|
|
|
query: { |
|
|
|
@ -261,7 +265,7 @@ export default { |
|
|
|
patientName: '', |
|
|
|
},//查询条件 |
|
|
|
patientList: [],//人员列表 |
|
|
|
formInit:{}, |
|
|
|
formInit: {}, |
|
|
|
form: { |
|
|
|
id: null, |
|
|
|
patientRegisterId: null, |
|
|
|
@ -323,21 +327,31 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
created() { |
|
|
|
this.formInit = Object.assign({},this.form) |
|
|
|
this.formInit = Object.assign({}, this.form) |
|
|
|
this.dictInit(); |
|
|
|
}, |
|
|
|
|
|
|
|
//挂载完成 |
|
|
|
mounted() { |
|
|
|
if(this.patientRegisterNo){ |
|
|
|
if (this.patientRegisterNo) { |
|
|
|
this.Query('patientRegisterNo'); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
this.Query(); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
computed: { |
|
|
|
...mapState(["window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]), |
|
|
|
|
|
|
|
tableListHeight() { |
|
|
|
let tempH = this.window.pageHeight < 600 ? 600 : this.window.pageHeight |
|
|
|
return tempH - 175 |
|
|
|
}, |
|
|
|
|
|
|
|
bodyWidth() { |
|
|
|
let tempW = this.window.pageWidth < 600 ? 600 : this.window.pageWidth |
|
|
|
return tempW - 110 - 20 |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
@ -347,7 +361,7 @@ export default { |
|
|
|
|
|
|
|
//查询人员列表数据 |
|
|
|
Query(type) { |
|
|
|
let url = '', ltype = type,body = {}; |
|
|
|
let url = '', ltype = type, body = {}; |
|
|
|
|
|
|
|
|
|
|
|
// { |
|
|
|
@ -362,13 +376,13 @@ export default { |
|
|
|
// "maxResultCount": 0 |
|
|
|
// } |
|
|
|
|
|
|
|
if(this.patientRegisterNo){ |
|
|
|
if (this.patientRegisterNo) { |
|
|
|
this.query.patientRegisterNo = this.patientRegisterNo |
|
|
|
ltype = 'patientRegisterNo' |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
console.log('query', ltype, this.query,this.patientRegisterNo); |
|
|
|
console.log('query', ltype, this.query, this.patientRegisterNo); |
|
|
|
|
|
|
|
if (ltype == 'patientRegisterNo') { |
|
|
|
if (!this.query.patientRegisterNo) return; |
|
|
|
@ -383,7 +397,7 @@ export default { |
|
|
|
if (this.query.startDate && this.query.endDate) { |
|
|
|
body.startDate = moment(this.query.startDate).format("yyyy-MM-DD") |
|
|
|
body.endDate = moment(this.query.endDate).format("yyyy-MM-DD") |
|
|
|
if(body.startDate > body.endDate){ |
|
|
|
if (body.startDate > body.endDate) { |
|
|
|
this.$message.warning("起始日期不能大于截止日期,数据校验不通过!") |
|
|
|
return |
|
|
|
} |
|
|
|
@ -412,7 +426,7 @@ export default { |
|
|
|
background: 'rgba(0, 0, 0, 0.7)' |
|
|
|
}); |
|
|
|
postapi(url, body).then(res => { |
|
|
|
console.log(url,body,res) |
|
|
|
console.log(url, body, res) |
|
|
|
if (res.code != - 1) { |
|
|
|
this.patientList = res.data.items; |
|
|
|
//this.patientList.length == 1 && this.query.chargeFlag == 'N' |
|
|
|
@ -420,15 +434,15 @@ export default { |
|
|
|
// this.query.patientRegisterNo = this.patientList[0].patientRegisterNo; |
|
|
|
// this.query.patientName = this.patientList[0].patientName; |
|
|
|
// this.query.patientNo = this.patientList[0].patientNo; |
|
|
|
this.$nextTick(() =>{ |
|
|
|
this.$nextTick(() => { |
|
|
|
setTimeout(() => { |
|
|
|
this.$refs['patientList'].setCurrentRow(this.patientList[0]) |
|
|
|
this.rowClick(this.patientList[0]) |
|
|
|
}, 20) |
|
|
|
}) |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
this.asbItemsForFee = [] |
|
|
|
this.form = Object.assign({},this.formInit) |
|
|
|
this.form = Object.assign({}, this.formInit) |
|
|
|
} |
|
|
|
} |
|
|
|
loading.close(); |
|
|
|
@ -532,7 +546,7 @@ export default { |
|
|
|
getCardRegister(idNo) { |
|
|
|
this.cardRegister = []; |
|
|
|
|
|
|
|
if(!idNo) return; |
|
|
|
if (!idNo) return; |
|
|
|
let body = { cardModeId: '0', idNo }; |
|
|
|
postapi(`/api/app/cardregister/getcardregisterlist`, body).then(res => { |
|
|
|
if (res.code != - 1) { |
|
|
|
@ -703,18 +717,18 @@ export default { |
|
|
|
|
|
|
|
//输入预收金额,计算找零 |
|
|
|
findBalance() { |
|
|
|
this.form.balance = Math.round((this.form.preTotal - this.form.total)*100)/100; |
|
|
|
this.form.balance = Math.round((this.form.preTotal - this.form.total) * 100) / 100; |
|
|
|
}, |
|
|
|
|
|
|
|
//输入收费方式金额 |
|
|
|
inputMoney() { |
|
|
|
// 现金 id = 01 |
|
|
|
let cashTotal= Number(0), unCashTotal= Number(0); |
|
|
|
let cashTotal = Number(0), unCashTotal = Number(0); |
|
|
|
this.chargePays.forEach(e => { |
|
|
|
console.log('e',e) |
|
|
|
if(e.payModeId == '01'){ |
|
|
|
console.log('e', e) |
|
|
|
if (e.payModeId == '01') { |
|
|
|
cashTotal += Number(e.chargeMoney); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
unCashTotal += Number(e.chargeMoney); |
|
|
|
} |
|
|
|
}); |
|
|
|
@ -758,7 +772,7 @@ export default { |
|
|
|
//收费 |
|
|
|
btnCharge() { |
|
|
|
let body = {}; |
|
|
|
let unCashTotal = Number(0) , cashTotal = Number(0); |
|
|
|
let unCashTotal = Number(0), cashTotal = Number(0); |
|
|
|
let msg = ''; |
|
|
|
let chargePays = []; |
|
|
|
let asbitems = []; |
|
|
|
@ -781,9 +795,9 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
this.chargePays.forEach(e => { |
|
|
|
if(e.payModeId == '01'){ |
|
|
|
if (e.payModeId == '01') { |
|
|
|
cashTotal += Number(e.chargeMoney); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
unCashTotal += Number(e.chargeMoney); |
|
|
|
} |
|
|
|
if (e.payModeId == '05' && e.chargeMoney) { |
|
|
|
@ -813,14 +827,14 @@ export default { |
|
|
|
|
|
|
|
this.chargePays.forEach(e => { |
|
|
|
if (e.chargeMoney) { |
|
|
|
if(e.payModeId == '01'){ |
|
|
|
if (e.payModeId == '01') { |
|
|
|
//现金支付,数据库中存找零后的现金 |
|
|
|
chargePays.push({ |
|
|
|
payModeId: e.payModeId, |
|
|
|
chargeMoney: e.chargeMoney - this.form.balance, |
|
|
|
cardRegisterId: e.cardRegisterId, |
|
|
|
}); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
chargePays.push({ |
|
|
|
payModeId: e.payModeId, |
|
|
|
chargeMoney: e.chargeMoney, |
|
|
|
@ -976,12 +990,12 @@ export default { |
|
|
|
|
|
|
|
//收费打印 |
|
|
|
chargePrint(ReportCode, isPreview, chargeId) { |
|
|
|
console.log('ReportCode, isPreview, chargeId',ReportCode, isPreview, chargeId) |
|
|
|
console.log('ReportCode, isPreview, chargeId', ReportCode, isPreview, chargeId) |
|
|
|
if (!chargeId) { |
|
|
|
this.$message.info("人员信息尚未保存,不可执行此操作!"); |
|
|
|
return; |
|
|
|
} |
|
|
|
if(!this.$peisAPI) { |
|
|
|
if (!this.$peisAPI) { |
|
|
|
this.$message.info("此功能,需要在壳客户端才可运行!") |
|
|
|
return |
|
|
|
} |
|
|
|
@ -1006,9 +1020,9 @@ export default { |
|
|
|
return this.$peisAPI.printPre(JSON.stringify(toOutShell)); |
|
|
|
} |
|
|
|
}) |
|
|
|
.then(res =>{ |
|
|
|
.then(res => { |
|
|
|
console.log(res) |
|
|
|
if(JSON.parse(res).code < 0){ |
|
|
|
if (JSON.parse(res).code < 0) { |
|
|
|
this.$message.error(JSON.parse(res).message) |
|
|
|
} |
|
|
|
}) |
|
|
|
@ -1024,9 +1038,9 @@ export default { |
|
|
|
return this.$peisAPI.print(JSON.stringify(toOutShell)); |
|
|
|
} |
|
|
|
}) |
|
|
|
.then(res =>{ |
|
|
|
.then(res => { |
|
|
|
console.log(res) |
|
|
|
if(JSON.parse(res).code < 0){ |
|
|
|
if (JSON.parse(res).code < 0) { |
|
|
|
this.$message.error(JSON.parse(res).message) |
|
|
|
} |
|
|
|
}) |
|
|
|
@ -1122,7 +1136,7 @@ export default { |
|
|
|
}); |
|
|
|
|
|
|
|
//套餐 |
|
|
|
postapi("/api/app/medicalpackage/getmedicalpackagelist",{}).then((res) => { |
|
|
|
postapi("/api/app/medicalpackage/getmedicalpackagelist", {}).then((res) => { |
|
|
|
if (res.code == 1) { |
|
|
|
this.dict.medicalPackage = res.data; |
|
|
|
} |
|
|
|
@ -1156,7 +1170,7 @@ export default { |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
postapi("/api/app/asbitem/getasbitemlist",{}).then((res) => { |
|
|
|
postapi("/api/app/asbitem/getasbitemlist", {}).then((res) => { |
|
|
|
if (res.code == 1) { |
|
|
|
this.dict.asbItemAll = res.data; |
|
|
|
} |
|
|
|
@ -1169,11 +1183,11 @@ export default { |
|
|
|
|
|
|
|
//监听事件() |
|
|
|
watch: { |
|
|
|
"dataTransOpts.refresh.charge.S":{ |
|
|
|
"dataTransOpts.refresh.charge.S": { |
|
|
|
immediate: true, // 立即执行 |
|
|
|
// // deep: true, // 深度监听复杂类型内变化 |
|
|
|
handler(newVal,oldVal){ |
|
|
|
console.log(`watch: 收费 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `,this.patientRegisterNo) |
|
|
|
handler(newVal, oldVal) { |
|
|
|
console.log(`watch: 收费 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.patientRegisterNo) |
|
|
|
this.query.patientRegisterNo = this.patientRegisterNo |
|
|
|
this.Query("patientRegisterNo") |
|
|
|
} |
|
|
|
@ -1191,18 +1205,8 @@ export default { |
|
|
|
@import '../../assets/css/global.css'; |
|
|
|
|
|
|
|
|
|
|
|
.queryDivClass { |
|
|
|
display: block; |
|
|
|
width: v-bind("(window.pageWidth > 600 ? (window.pageWidth - 110 - 50) / 2 : 200) + 'px'"); |
|
|
|
height: v-bind("(window.pageHeight > 600 ? (window.pageHeight - 150) : 450) + 'px'"); |
|
|
|
} |
|
|
|
|
|
|
|
.query { |
|
|
|
margin-left: 10px; |
|
|
|
} |
|
|
|
|
|
|
|
.prListDivClass { |
|
|
|
height: v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'"); |
|
|
|
margin-left: 5px; |
|
|
|
} |
|
|
|
|
|
|
|
.btnDivClass { |
|
|
|
|