Browse Source

charge

master
pengjun 5 months ago
parent
commit
1aa2d1c898
  1. 3
      src/components/customerOrg/customerOrgEdit.vue
  2. 6
      src/components/doctorCheck/CheckPicture.vue
  3. 7
      src/components/patientRegister/PatientRegisterEdit.vue
  4. 9
      src/components/patientRegister/PatientRegisterList.vue
  5. 4
      src/components/patientRegister/patientRegisterQuery.vue
  6. 170
      src/views/charge/charge.vue

3
src/components/customerOrg/customerOrgEdit.vue

@ -249,7 +249,8 @@ export default {
lastModifierName: "",
lastModificationTime: null,
salesPerson: "",
salesPersonPhone: ""
salesPersonPhone: "",
medicalTypeId:''
}, //
formInit: {},
rules: {

6
src/components/doctorCheck/CheckPicture.vue

@ -362,17 +362,17 @@ export default {
let image = curImag.pictureFilename.indexOf('http') > -1
? curImag.pictureFilename
: (this.sysConfig.pacsApi || this.sysConfig.apiurl) + curImag.pictureFilename;
srcList.push(image)
srcList.push(image + `?r=${Math.random()}`)
let lfind = arrayExistObj(oriList, 'id', curImag.id)
if (lfind > -1) {
for (let i = lfind + 1; i < oriList.length; i++) {
let e = oriList[i];
image = this.imageFilePlus(e.pictureFilename)
image = this.imageFilePlus(e.pictureFilename + `?r=${Math.random()}`)
srcList.push(image)
}
for (let index = 0; index < lfind; index++) {
let e = oriList[index];
image = this.imageFilePlus(e.pictureFilename)
image = this.imageFilePlus(e.pictureFilename + `?r=${Math.random()}`)
srcList.push(image)
}
}

7
src/components/patientRegister/PatientRegisterEdit.vue

@ -1397,6 +1397,13 @@ export default {
})
},
// ID
getMedicalTypeByOrg(orgId){
return new Promise((resolve, reject) => {
postapi('/api/app/Customerorg/GetMedicalTypeIdByCustomerOrgId')
})
},
handleFormData() {
return new Promise((resolve, reject) => {
//

9
src/components/patientRegister/PatientRegisterList.vue

@ -429,7 +429,7 @@
<!--云胶片二维码-->
<el-dialog :visible.sync="qrCode.winDisplay" title="云胶片二维码" width="400px" style="text-align:center">
<!--<canvas ref="canvas"></canvas>-->
<img width="100%" :src="qrCode.url">
<img width="100%" :src="qrCode.personUrl">
<div style="font-size: 16px;">{{ qrCode.barcodeNo + ' ' + qrCode.patientName }}</div>
</el-dialog>
@ -673,7 +673,8 @@ export default {
merge_lis_pacs_label: "0", //0 01
qrCode: {
winDisplay: false, //
url: 'https://ccjktj.cn:5081/', //
url: 'https://ccjktj.cn:5081/', //
personUrl:'', //
barcodeNo: '条码号',
patientName: '姓 名'
},
@ -2368,7 +2369,7 @@ export default {
//let canvas = this.$refs.canvas;
let url = `${this.qrCode.url}?reportparam=条码号&mrn=条码号` //`https://ccjktj.cn:5081/?reportparam=条码号&mrn=条码号`
if (row?.patientRegisterNo) {
url = `${this.qrCode.url}?reportparam=${row.checkRequestNo}&mrn=${row.checkRequestNo}`
url = `${this.qrCode.url}?reportparam=${row.patientRegisterNo}&mrn=${row.patientRegisterNo}`
this.qrCode.barcodeNo = row.patientRegisterNo
}
if (row?.patientName) {
@ -2395,7 +2396,7 @@ export default {
QRCode.toDataURL(url, { errorCorrectionLevel: 'H' })
.then(res => {
console.log(res)
this.qrCode.url = res
this.qrCode.personUrl = res
this.qrCode.winDisplay = true
})
.catch(err => {

4
src/components/patientRegister/patientRegisterQuery.vue

@ -68,11 +68,15 @@
<el-tooltip class="item" effect="dark" content="单位作为查询条件" placement="top">
<el-checkbox v-model="patientRegister.query.customerOrgFlag"></el-checkbox>
</el-tooltip>
<el-input placeholder="请选择单位" v-model="patientRegister.query.customerOrgName" size="small" disabled
style="width: 120px" />
<!--
<el-cascader v-model="patientRegister.query.customerOrgId" :options="patientRegister.customerOrgTreeAll"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" placeholder="请选择单位"
:show-all-levels="false" clearable :disabled="orgEnable == 'Y' ? false : true" size="small"
style="width:120px;">
</el-cascader>
-->
</div>
<div v-show="dispTimes" class="query">
<span class="spanClass">次数</span>

170
src/views/charge/charge.vue

@ -13,28 +13,44 @@
<div style="height: 60px;padding: 10px;border-radius: 8px;background-color: #fff;margin-bottom: 10px;">
<div style="display:flex;">
<div>
<span>登记日期</span>
<span>{{ dateTypeName }}日期</span>
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small"
style="width:90px;" :picker-options="pickerOptions" />
<span style="margin: 0 3px;"></span>
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small"
style="width:90px;" :picker-options="pickerOptions" />
</div>
<div style="margin-left:10px;">
<el-button type="primary" class="commonbutton" @click="Query" size="small"
style="width:95px;">查询</el-button>
<div>
<span class="query">条码号</span>
<el-input ref="tmh" placeholder="条码号" v-model="query.patientRegisterNo" size="small"
style="width: 120px;" clearable />
</div>
<div>
<span class="query">档案号</span>
<el-input placeholder="档案号" v-model="query.patientNo" size="small" style="width: 90px;" clearable />
</div>
</div>
<div style="display:flex;justify-content: space-between;">
<div style="display:flex;">
<el-radio-group v-model="query.chargeFlag" @input="Query" size="mini" style="margin-top:8px;">
<div>
<span>姓名</span>
<el-input placeholder="姓名" v-model="query.patientName" size="small" style="width: 100px;"
clearable />
</div>
<el-radio-group v-model="query.chargeFlag" @input="btnQuery" size="mini" style="margin-top:8px;margin-left: 21px;">
<el-radio label="N">未收费</el-radio>
<el-radio label="Y">已收费</el-radio>
<el-radio label="B">已退费</el-radio>
</el-radio-group>
<div v-if="query.chargeFlag != 'N'" style="margin-left:20px;">
<div v-if="query.chargeFlag != 'N'" style="margin-left:21px;">
<span>发票号</span>
<el-input placeholder="发票/收据号" v-model="query.invoiceNo" size="small"
style="margin-left: 3px; width: 100px;" clearable @change="Query('invoiceNo')" />
style="width: 90px;" clearable />
</div>
</div>
<div>
<el-button type="primary" class="commonbutton" @click="btnQuery" size="small"
style="width:60px;">查询</el-button>
</div>
</div>
</div>
@ -45,7 +61,22 @@
<!--
<el-table-column prop="patientRegisterId" label="体检记录ID" />
-->
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<el-table-column type="index" label="序号" width="40" align="center" />
<el-table-column v-if="query.chargeFlag == 'Y'" label="收费时间" prop="chargeTime" width="140"
align="center" />
<el-table-column v-if="query.chargeFlag == 'Y'" label="收费人" prop="chargeName" width="80"
align="center" />
<el-table-column v-if="query.chargeFlag == 'Y'" label="收费金额" prop="chargeMoney" width="80"
align="center" />
<el-table-column v-if="query.chargeFlag == 'B'" label="退费时间" prop="chargeBackTime" width="140"
align="center" />
<el-table-column v-if="query.chargeFlag == 'B'" label="退费人" prop="chargeBackName" width="80"
align="center" />
<el-table-column v-if="query.chargeFlag == 'B'" label="退费金额" prop="chargeBackMoney" width="80"
align="center" />
<el-table-column prop="customerOrgParentName" label="单位" width="150">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName :
scope.row.customerOrgName }}
@ -53,12 +84,12 @@
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" />
<el-table-column prop="sexId" label="性别" />
<el-table-column prop="age" label="年龄" />
<el-table-column prop="patientRegisterNo" label="条码号" width="150" />
<el-table-column prop="patientNo" label="档案号" />
<el-table-column prop="medicalTimes" label="体检次数" />
<el-table-column prop="isVip" label="是否VIP">
<el-table-column prop="sexId" label="性别" width="40" align="center" />
<el-table-column prop="age" label="年龄" width="40" align="center" />
<el-table-column prop="patientRegisterNo" label="条码号" width="120" align="center" />
<el-table-column prop="patientNo" label="档案号" width="80" align="center" />
<el-table-column prop="medicalTimes" label="体检次数" width="80" align="center" />
<el-table-column prop="isVip" label="VIP" width="30" align="center">
<template slot-scope="scope">
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
</template>
@ -78,25 +109,26 @@
</el-table>
</div>
</div>
<!-- 收费操作 -->
<div :style="`display: block;margin-left:10px;width: ${Math.floor(bodyWidth * 2 / 5)}px;`">
<!-- 查询信息 -->
<!-- 人员信息 -->
<div style="height: 40px; background-color: #fff;border-radius: 8px;margin-bottom: 10px;">
<div style="display: flex; flex-wrap: wrap;height:40px; width: 100%;align-items: center;">
<div class="query">
<span>条码号</span>
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small"
style="margin-left: 3px; width: 120px;" clearable @change="Query('patientRegisterNo')" />
<el-input v-model="info.patientRegisterNo" size="small"
style="margin-left: 3px; width: 120px;" disabled />
</div>
<div class="query">
<span>档案号</span>
<el-input placeholder="档案号" v-model="query.patientNo" size="small"
style="margin-left: 3px; width: 80px;" clearable @change="Query('patientNo')" />
<el-input v-model="info.patientNo" size="small"
style="margin-left: 3px; width: 90px;" disabled />
</div>
<div class="query">
<span>姓名</span>
<el-input placeholder="姓名" v-model="query.patientName" size="small"
style="margin-left: 3px; width: 70px;" disabled @change="Query" />
<el-input v-model="info.patientName" size="small"
style="margin-left: 3px; width: 80px;" disabled />
</div>
</div>
</div>
@ -359,6 +391,13 @@ export default {
invoiceNo: '',
patientName: '',
},//
info:{
patientRegisterNo: '',
patientNo: '',
patientName:''
},
patientList: [],//
formInit: {},
form: {
@ -444,19 +483,37 @@ export default {
//
mounted() {
//this.enterToQuery()
this.enterToQuery()
if (this.patientRegisterNo){
this.Query('patientRegisterNo');
} else {
this.Query();
this.query.patientRegisterNo = this.patientRegisterNo
this.query.chargeFlag = 'N'
}
this.btnQuery();
},
computed: {
...mapState(["pickerOptions", "window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]),
dateTypeName() {
let ret = '登记'
switch (this.query.chargeFlag) {
case 'N':
break;
case 'Y':
ret = '收费'
break;
case 'B':
ret = '退费'
break;
default:
break;
}
return ret
},
tableListHeight() {
let tempH = this.window.pageHeight < 600 ? 600 : this.window.pageHeight
return tempH - 175 - 30 - 35
@ -474,8 +531,8 @@ export default {
dddw, moment,
//
Query(type) {
let url = '', ltype = type, body = {};
btnQuery() {
let url = '', body = {};
// {
@ -490,22 +547,13 @@ export default {
// "maxResultCount": 0
// }
if (this.patientRegisterNo) {
this.query.patientRegisterNo = this.patientRegisterNo
ltype = 'patientRegisterNo'
}
console.log('query', ltype, this.query, this.patientRegisterNo);
//console.log('query', this.query);
if (ltype == 'patientRegisterNo') {
if (!this.query.patientRegisterNo) return;
if(this.query.patientRegisterNo){
body = { patientRegisterNo: this.query.patientRegisterNo };
} else if (ltype == 'patientNo') {
if (!this.query.patientNo) return;
}else if(this.query.patientNo){
body = { patientNo: this.query.patientNo };
} else if (ltype == 'invoiceNo' && this.query.chargeFlag != 'N') {
if (!this.query.invoiceNo) return;
}else if(this.query.invoiceNo && this.query.chargeFlag != 'N'){
body = { invoiceNo: this.query.invoiceNo };
}else{
if (this.query.startDate && this.query.endDate) {
@ -515,6 +563,7 @@ export default {
this.$message.warning("起始日期不能大于截止日期,数据校验不通过!")
return
}
if(this.query.patientName) body.patientName = this.query.patientName
}
}
@ -533,6 +582,14 @@ export default {
break;
}
//
this.info.patientName = ''
this.info.patientNo = ''
this.info.patientRegisterNo = ''
this.form = Object.assign({}, this.formInit)
this.chargePays = []
this.asbItemsForFee = []
// const loading = this.$loading({
// lock: true,
// text: 'Loading',
@ -570,9 +627,10 @@ export default {
//
rowClick(row) {
this.query.patientRegisterNo = row.patientRegisterNo;
this.query.patientName = row.patientName;
this.query.patientNo = row.patientNo;
this.info.patientRegisterNo = row.patientRegisterNo;
this.info.patientName = row.patientName;
this.info.patientNo = row.patientNo;
this.chargePays = deepCopy(this.chargePaysInit);
//console.log(this.chargePays, this.chargePaysInit);
@ -593,10 +651,8 @@ export default {
this.form.invoiceOrgName = row.patientName;
}
//
this.getCardRegister(row.idNo);
// ()
//this.getCardRegister(row.idNo);
switch (this.query.chargeFlag) {
case 'N':
@ -1114,9 +1170,9 @@ export default {
//console.log('body',body);
postapi('/api/app/registerasbitem/registerasbitemcharge', body).then(res => {
if (res.code != -1) {
this.form.id = res.data.chargeId; //
//
this.$confirm("操作成功, 是否打印发票?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
@ -1124,12 +1180,12 @@ export default {
}).then(() => {
this.chargePrint('0007', false, res.data.chargeId)
setTimeout(() => {
this.Query();
this.btnQuery();
}, 1000)
}).catch((err) => {
if (err == "cancel") {
//this.$message.info("");
this.Query();
this.btnQuery();
}
});
}
@ -1207,7 +1263,7 @@ export default {
if (res.code != -1) {
console.log("操作成功!");
this.form.chargeFlag = '1'; //退
this.Query();
this.btnQuery();
}
});
@ -1486,9 +1542,15 @@ export default {
console.log(input.getAttribute('placeholder'), input.value)
let placeholder = input.getAttribute('placeholder')
switch (placeholder) {
case '条码号':
case '档案号':
case '发票/收据号':
if (input.value) this.btnQuery()
input.select()
break;
case '卡号':
if (input.value) this.btnQueryCard()
//input.select()
input.select()
break;
}
}
@ -1515,13 +1577,15 @@ export default {
//()
watch: {
//
"dataTransOpts.refresh.charge.S": {
//immediate: true, //
// // deep: true, //
handler(newVal, oldVal) {
console.log(`watch: 收费 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.patientRegisterNo)
this.query.patientRegisterNo = this.patientRegisterNo
this.Query("patientRegisterNo")
this.query.chargeFlag = 'N'
this.btnQuery()
}
},
},

Loading…
Cancel
Save