pengjun 1 month ago
parent
commit
510a19cfa9
  1. 102
      src/components/customerOrg/customerOrgEdit.vue
  2. 27
      src/utlis/proFunc.js
  3. 75
      src/views/charge/charge.vue

102
src/components/customerOrg/customerOrgEdit.vue

@ -19,12 +19,30 @@
:disabled="customerOrg.oprStatus ? false : true" /> :disabled="customerOrg.oprStatus ? false : true" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-col :span="4">
<el-form-item label="单位简称" prop="shortName"> <el-form-item label="单位简称" prop="shortName">
<el-input class="enterToTab" v-model="form.shortName" placeholder="请输入单位简称" <el-input class="enterToTab" v-model="form.shortName" placeholder="请输入单位简称"
:disabled="customerOrg.oprStatus ? false : true" /> :disabled="customerOrg.oprStatus ? false : true" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="2">
<el-form-item label="加锁" prop="isLock" label-width="56px">
<!--
<el-radio v-model="form.isLock" label="Y" ></el-radio>
<el-radio v-model="form.isLock" label="N" ></el-radio>
-->
<el-checkbox v-model="form.isLock" true-label="Y" false-label="N" />
</el-form-item>
</el-col>
<el-col :span="2">
<el-form-item label="启用" prop="isActive" label-width="56px">
<!--
<el-radio v-model="form.isActive" label="Y">启用</el-radio>
<el-radio v-model="form.isActive" label="N">停用</el-radio>
-->
<el-checkbox v-model="form.isActive" true-label="Y" false-label="N" />
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
@ -45,7 +63,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item label="体检类别" prop="medicalTypeId">
<el-select v-model="form.medicalTypeId" placeholder="请选择" filterable clearable
:style="'width:' + Math.floor((window.pageWidth - 585) / 3) + 'px;'" size="small">
<el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<!-- <!--
<el-form-item label="显示顺序" prop="displayOrder"> <el-form-item label="显示顺序" prop="displayOrder">
<el-input type="number" v-model="form.displayOrder" /> <el-input type="number" v-model="form.displayOrder" />
@ -58,13 +83,14 @@
</el-form-item> </el-form-item>
--> -->
</el-row>
<el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="联系电话" prop="telephone"> <el-form-item label="联系电话" prop="telephone">
<el-input class="enterToTab" v-model="form.telephone" placeholder="请输入联系电话" /> <el-input class="enterToTab" v-model="form.telephone" placeholder="请输入联系电话" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="传真" prop="fax"> <el-form-item label="传真" prop="fax">
<el-input class="enterToTab" v-model="form.fax" placeholder="请输入传真" /> <el-input class="enterToTab" v-model="form.fax" placeholder="请输入传真" />
@ -75,24 +101,6 @@
<el-input class="enterToTab" v-model="form.postalCode" placeholder="请输入邮政编码" /> <el-input class="enterToTab" v-model="form.postalCode" placeholder="请输入邮政编码" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
<el-form-item label="加锁" prop="isLock" label-width="56px">
<!--
<el-radio v-model="form.isLock" label="Y" ></el-radio>
<el-radio v-model="form.isLock" label="N" ></el-radio>
-->
<el-checkbox v-model="form.isLockBox" @change="changeBox" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="启用" prop="isActive" label-width="56px">
<!--
<el-radio v-model="form.isActive" label="Y">启用</el-radio>
<el-radio v-model="form.isActive" label="N">停用</el-radio>
-->
<el-checkbox v-model="form.isActiveBox" @change="changeBox('isActive')" />
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
@ -210,7 +218,7 @@ export default {
routeUrlorPageName: 'customerOrg', // routeUrlorPageName: 'customerOrg', //
privs: [] // privs: [] //
}, },
isActiveBox: false,
customerOrgEditStyle: "height:400px;", customerOrgEditStyle: "height:400px;",
data: { data: {
organizationdata: [], // organizationdata: [], //
@ -235,8 +243,6 @@ export default {
remark: "", remark: "",
isLock: "N", isLock: "N",
isActive: "Y", isActive: "Y",
isLockBox: false,
isActiveBox: true,
medicalCenterId: null, medicalCenterId: null,
creatorName: "", creatorName: "",
creationTime: null, creationTime: null,
@ -282,19 +288,19 @@ export default {
}, },
computed: { computed: {
...mapState(["customerOrg", "window", "dataTransOpts"]),
...mapState(["customerOrg", "dict", "window", "dataTransOpts"]),
}, },
methods: { methods: {
...mapMutations(["setData"]), checkPagePriv, ...mapMutations(["setData"]), checkPagePriv,
changeBox(type) {
//
if (this.form[type + "Box"]) {
this.form[type] = "Y";
} else {
this.form[type] = "N";
}
},
// changeBox(type) {
// //
// if (this.form[type + "Box"]) {
// this.form[type] = "Y";
// } else {
// this.form[type] = "N";
// }
// },
// //
getCustomerOrgRd(id) { getCustomerOrgRd(id) {
@ -307,16 +313,16 @@ export default {
this.dataTransOpts.tableS.customer_org.id = res.data.id this.dataTransOpts.tableS.customer_org.id = res.data.id
objCopy(res.data, this.form); objCopy(res.data, this.form);
if (res.data.isActive == "Y") {
this.form.isActiveBox = true;
} else {
this.form.isActiveBox = false;
}
if (res.data.isLock == "Y") {
this.form.isLockBox = true;
} else {
this.form.isLockBox = false;
}
// if (res.data.isActive == "Y") {
// this.form.isActiveBox = true;
// } else {
// this.form.isActiveBox = false;
// }
// if (res.data.isLock == "Y") {
// this.form.isLockBox = true;
// } else {
// this.form.isLockBox = false;
// }
} }
}); });
}, },
@ -332,6 +338,14 @@ export default {
getapi("/api/app/customer-org-type/get-all").then((res) => { getapi("/api/app/customer-org-type/get-all").then((res) => {
this.data.customerOrgType = res.data; this.data.customerOrgType = res.data;
}); });
//
getapi("/api/app/medical-type/in-filter").then((res) => {
if (res.code > -1) {
this.dict.medicalType = res.data;
}
});
}, },
//() //()

27
src/utlis/proFunc.js

@ -179,6 +179,33 @@ function arrayExistObj(arr, key, value) {
}; };
exports.arrayExistObj = arrayExistObj; exports.arrayExistObj = arrayExistObj;
//判断数组中 是否存在 某个值的对象记录 如不存在返回 - 1,存在返回相应的 序列
function arrayExistObjPos(arr, key, value, pos) {
let ret = - 1
for (let i = pos; i < arr.length; i++) {
if (arr[i][key] == value) {
ret = i
break
}
}
return ret
};
exports.arrayExistObjPos = arrayExistObjPos;
//判断数组中 是否存在 某个值的对象记录 如不存在返回 - 1,存在返回相应的 序列
function arrayExistObjByKeys(arr, keys, values) {
let ret = - 1
for (let i = 0; i < arr.length; i++) {
ret = i
keys.forEach((key, index) => {
if (arr[i][key] !== values[index]) ret = -1
});
if (ret == i) break
}
return ret
};
exports.arrayExistObjByKeys = arrayExistObjByKeys;
//判断身份证是否合法 //判断身份证是否合法
function checkIDCode(IDCode) { function checkIDCode(IDCode) {
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X

75
src/views/charge/charge.vue

@ -75,7 +75,6 @@
<el-table-column prop="mobileTelephone" label="手机" width="100" /> <el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" /> <el-table-column prop="telephone" label="电话" width="100" />
<el-table-column prop="address" label="地址" width="300" /> <el-table-column prop="address" label="地址" width="300" />
</el-table> </el-table>
</div> </div>
</div> </div>
@ -178,10 +177,12 @@
<el-input v-model="scope.row.cardNo" size="small" disabled /> <el-input v-model="scope.row.cardNo" size="small" disabled />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="query.chargeFlag == 'N'" width="30" align="center">
<el-table-column v-if="query.chargeFlag == 'N'" width="60" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<i class="el-icon-search" @click="getCardId(scope.$index)" v-if="scope.row.payModeId == '05'" <i class="el-icon-search" @click="getCardId(scope.$index)" v-if="scope.row.payModeId == '05'"
style="font-size: 24px;color: blue;cursor:pointer;"></i> style="font-size: 24px;color: blue;cursor:pointer;"></i>
<i class="el-icon-s-open" @click="brushCard(scope.$index)" v-if="scope.row.payModeId == '05'"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -332,7 +333,7 @@
import moment from 'moment'; import moment from 'moment';
import { mapState, mapActions } from "vuex"; import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api"; import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { tcdate, dddw, arrayExistObj, deepCopy } from "../../utlis/proFunc";
import { tcdate, dddw, arrayExistObj,arrayExistObjPos, deepCopy } from "../../utlis/proFunc";
import PatientRegisterQuery from "../../components/patientRegister/patientRegisterQuery.vue"; import PatientRegisterQuery from "../../components/patientRegister/patientRegisterQuery.vue";
import PatientRegisterRefuseList from "../../components/patientRegister/PatientRegisterRefuseList.vue"; import PatientRegisterRefuseList from "../../components/patientRegister/PatientRegisterRefuseList.vue";
@ -622,7 +623,7 @@ export default {
this.asbItemsForFee = res.data; this.asbItemsForFee = res.data;
for (let i = this.asbItemsForFee.length - 1; i >= 0; i--) { for (let i = this.asbItemsForFee.length - 1; i >= 0; i--) {
if (this.asbItemsForFee[i].isCharge == 'Y' || this.asbItemsForFee[i].payTypeFlag == '1') {
if (this.asbItemsForFee[i].isCharge == 'Y' || this.asbItemsForFee[i].payTypeFlag !== '0' ) {
this.asbItemsForFee.splice(i, 1); this.asbItemsForFee.splice(i, 1);
continue; continue;
} }
@ -668,6 +669,21 @@ export default {
}); });
}, },
//
brushCard(index){
this.chargePays[index].cardNo = ''
this.chargePays[index].cardRegisterId = ''
this.chargePays[index].chargeMoney = 0
delete this.chargePays[index].discount
delete this.chargePays[index].cardBalance
//
this.inputMoney()
},
// //
getCardId(index) { getCardId(index) {
console.log('index', index) console.log('index', index)
@ -705,10 +721,36 @@ export default {
// //
btnOkCard() { btnOkCard() {
this.chargePays[this.cardSeq].cardNo = this.cardChoosed.cardNo + ' 余:' + this.cardChoosed.cardBalance
//
let lfind = arrayExistObj(this.chargePays,'cardRegisterId',this.cardChoosed.id)
if(lfind > -1){
this.$message.warning({showClose:true,message:'单次收费不允重复同一张卡!'})
return
}
//
let diffDiscount = false //
let preDiscount = 100
let curDiscount = this.cardChoosed.discount||100
this.chargePays.forEach(e => {
if(e.payModeId == '05' && e.discount){
if(Number(e.discount) !== Number(curDiscount)){
preDiscount = e.discount
diffDiscount = true
}
}
});
//
if(diffDiscount){
this.$message.warning({showClose:true,message:`当前所选卡折扣 ${curDiscount} 与 上次所选卡折扣 ${preDiscount} 不同,不可执行此操作`})
return
}
this.chargePays[this.cardSeq].cardNo = this.cardChoosed.cardNo + ' 余:' + this.cardChoosed.cardBalance + ' 折:' + curDiscount
this.chargePays[this.cardSeq].discount = curDiscount
this.chargePays[this.cardSeq].cardBalance = this.cardChoosed.cardBalance
this.chargePays[this.cardSeq].cardRegisterId = this.cardChoosed.id this.chargePays[this.cardSeq].cardRegisterId = this.cardChoosed.id
// //
this.form.discount = this.cardChoosed.discount || 100
this.form.discount = curDiscount
this.discountToDetails() this.discountToDetails()
this.winDialog.queryCard = false this.winDialog.queryCard = false
@ -746,16 +788,21 @@ export default {
// //
getChargePayByChargeId(ChargeId) { getChargePayByChargeId(ChargeId) {
let curPayModeId = ''
let lfind = -1; let lfind = -1;
getapi(`/api/app/chargepay/getchargepayinchargeid?ChargeId=${ChargeId}`).then(res => { getapi(`/api/app/chargepay/getchargepayinchargeid?ChargeId=${ChargeId}`).then(res => {
if (res.code != - 1) { if (res.code != - 1) {
res.data.forEach(e => { res.data.forEach(e => {
lfind = arrayExistObj(this.chargePays, 'payModeId', e.payModeId);
if(curPayModeId != e.payModeId) lfind = -1
lfind++
console.log('lfind',lfind)
lfind = arrayExistObjPos(this.chargePays, 'payModeId', e.payModeId,lfind);
if (lfind > - 1) { if (lfind > - 1) {
this.chargePays[lfind].chargeMoney = e.chargeMoney; this.chargePays[lfind].chargeMoney = e.chargeMoney;
this.chargePays[lfind].cardRegisterId = e.cardRegisterId; this.chargePays[lfind].cardRegisterId = e.cardRegisterId;
this.chargePays[lfind].cardNo = e.cardNo; this.chargePays[lfind].cardNo = e.cardNo;
} }
curPayModeId = e.payModeId
}); });
} }
}); });
@ -888,6 +935,7 @@ export default {
// //
inputMoney() { inputMoney() {
// id = 01 // id = 01
let err = ''
let cashTotal = Number(0), unCashTotal = Number(0); let cashTotal = Number(0), unCashTotal = Number(0);
this.chargePays.forEach(e => { this.chargePays.forEach(e => {
console.log('e', e) console.log('e', e)
@ -896,7 +944,17 @@ export default {
} else { } else {
unCashTotal += Number(e.chargeMoney); unCashTotal += Number(e.chargeMoney);
} }
if(e.payModeId == '05'){
if(Number(e.cardBalance) < Number(e.chargeMoney)){
err = `会员卡【${e.cardNo}】 余额不足`
}
}
}); });
if(err){
this.$message.warning({showClose:true,message:err})
return
}
this.form.preTotal = cashTotal + unCashTotal this.form.preTotal = cashTotal + unCashTotal
this.findBalance() this.findBalance()
if (unCashTotal > this.form.total) this.$message.warning(`数据校验失败:输入的非现金金额${unCashTotal}不能超过应收金额${this.form.total}`); if (unCashTotal > this.form.total) this.$message.warning(`数据校验失败:输入的非现金金额${unCashTotal}不能超过应收金额${this.form.total}`);
@ -968,11 +1026,13 @@ export default {
if (e.payModeId == '05' && e.chargeMoney) { if (e.payModeId == '05' && e.chargeMoney) {
//console.log(e.payModeId,e.chargeMoney,e.cardRegisterId); //console.log(e.payModeId,e.chargeMoney,e.cardRegisterId);
if (!e.cardRegisterId) msg = dddw(this.dict.payMode, "id", e.payModeId, "displayName") + '付费,必需选择会员卡号'; if (!e.cardRegisterId) msg = dddw(this.dict.payMode, "id", e.payModeId, "displayName") + '付费,必需选择会员卡号';
if(Number(e.cardBalance) < Number(e.chargeMoney)) msg = `会员卡【${e.cardNo}】 余额不足`
} else { } else {
e.cardRegisterId = null; e.cardRegisterId = null;
} }
}); });
/**/
if (msg) { if (msg) {
this.$message.warning(msg); this.$message.warning(msg);
return; return;
@ -989,7 +1049,6 @@ export default {
return; return;
} }
this.chargePays.forEach(e => { this.chargePays.forEach(e => {
if (e.chargeMoney) { if (e.chargeMoney) {
if (e.payModeId == '01') { if (e.payModeId == '01') {

Loading…
Cancel
Save