Browse Source

charge

master
pengjun 4 weeks 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: "", lastModifierName: "",
lastModificationTime: null, lastModificationTime: null,
salesPerson: "", salesPerson: "",
salesPersonPhone: ""
salesPersonPhone: "",
medicalTypeId:''
}, // }, //
formInit: {}, formInit: {},
rules: { rules: {

6
src/components/doctorCheck/CheckPicture.vue

@ -362,17 +362,17 @@ export default {
let image = curImag.pictureFilename.indexOf('http') > -1 let image = curImag.pictureFilename.indexOf('http') > -1
? curImag.pictureFilename ? curImag.pictureFilename
: (this.sysConfig.pacsApi || this.sysConfig.apiurl) + 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) let lfind = arrayExistObj(oriList, 'id', curImag.id)
if (lfind > -1) { if (lfind > -1) {
for (let i = lfind + 1; i < oriList.length; i++) { for (let i = lfind + 1; i < oriList.length; i++) {
let e = oriList[i]; let e = oriList[i];
image = this.imageFilePlus(e.pictureFilename)
image = this.imageFilePlus(e.pictureFilename + `?r=${Math.random()}`)
srcList.push(image) srcList.push(image)
} }
for (let index = 0; index < lfind; index++) { for (let index = 0; index < lfind; index++) {
let e = oriList[index]; let e = oriList[index];
image = this.imageFilePlus(e.pictureFilename)
image = this.imageFilePlus(e.pictureFilename + `?r=${Math.random()}`)
srcList.push(image) 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() { handleFormData() {
return new Promise((resolve, reject) => { 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"> <el-dialog :visible.sync="qrCode.winDisplay" title="云胶片二维码" width="400px" style="text-align:center">
<!--<canvas ref="canvas"></canvas>--> <!--<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> <div style="font-size: 16px;">{{ qrCode.barcodeNo + ' ' + qrCode.patientName }}</div>
</el-dialog> </el-dialog>
@ -673,7 +673,8 @@ export default {
merge_lis_pacs_label: "0", //0 01 merge_lis_pacs_label: "0", //0 01
qrCode: { qrCode: {
winDisplay: false, // winDisplay: false, //
url: 'https://ccjktj.cn:5081/', //
url: 'https://ccjktj.cn:5081/', //
personUrl:'', //
barcodeNo: '条码号', barcodeNo: '条码号',
patientName: '姓 名' patientName: '姓 名'
}, },
@ -2368,7 +2369,7 @@ export default {
//let canvas = this.$refs.canvas; //let canvas = this.$refs.canvas;
let url = `${this.qrCode.url}?reportparam=条码号&mrn=条码号` //`https://ccjktj.cn:5081/?reportparam=条码号&mrn=条码号` let url = `${this.qrCode.url}?reportparam=条码号&mrn=条码号` //`https://ccjktj.cn:5081/?reportparam=条码号&mrn=条码号`
if (row?.patientRegisterNo) { 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 this.qrCode.barcodeNo = row.patientRegisterNo
} }
if (row?.patientName) { if (row?.patientName) {
@ -2395,7 +2396,7 @@ export default {
QRCode.toDataURL(url, { errorCorrectionLevel: 'H' }) QRCode.toDataURL(url, { errorCorrectionLevel: 'H' })
.then(res => { .then(res => {
console.log(res) console.log(res)
this.qrCode.url = res
this.qrCode.personUrl = res
this.qrCode.winDisplay = true this.qrCode.winDisplay = true
}) })
.catch(err => { .catch(err => {

4
src/components/patientRegister/patientRegisterQuery.vue

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

Loading…
Cancel
Save