pengjun 4 months ago
parent
commit
5a70d9a1af
  1. 74
      src/components/customerOrg/customerOrgGroupAsbitem.vue
  2. 2
      src/components/patientRegister/PatientRegisterEdit.vue
  3. 23
      src/components/patientRegister/PatientRegisterItem.vue
  4. 33
      src/components/report/BtnReport.vue
  5. 2
      src/store/index.js
  6. 2
      src/views/customerOrg/customerOrgGroup.vue

74
src/components/customerOrg/customerOrgGroupAsbitem.vue

@ -6,9 +6,9 @@
<div> <div>
<span>项目类别</span> <span>项目类别</span>
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" popper-class="example" <el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" popper-class="example"
style="margin-left: 3px;width:240px;"
style="margin-left: 3px;width:235px;"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" clearable filterable :props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" clearable filterable
@change="getAsbItemByItemType" size="small">
@change="changeItemTypeIds" size="small">
</el-cascader> </el-cascader>
</div> </div>
<div class="box"> <div class="box">
@ -100,6 +100,12 @@
<div v-show="checkPagePriv(pagePriv.privs, '复制套餐')" style="margin-top: 10px;"> <div v-show="checkPagePriv(pagePriv.privs, '复制套餐')" style="margin-top: 10px;">
<el-button class="commonbutton" @click="btnCopyMedicalPackage">复制套餐</el-button> <el-button class="commonbutton" @click="btnCopyMedicalPackage">复制套餐</el-button>
</div> </div>
<div style="margin-top: 10px;">
<el-button class="commonbutton" @click="btnCopyGroupAsbitem">复制</el-button>
</div>
<div style="margin-top: 10px;">
<el-button class="commonbutton" @click="btnPastGroupAsbitem" :disabled="dataTransOpts.copyGroupAsbitem.length == 0 ? true:false" >粘贴</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '保存')" style="margin-top: 10px;"> <div v-show="checkPagePriv(pagePriv.privs, '保存')" style="margin-top: 10px;">
<el-button class="commonbutton" @click="btnSave">保存</el-button> <el-button class="commonbutton" @click="btnSave">保存</el-button>
</div> </div>
@ -337,7 +343,7 @@ export default {
this.dict.asbItemAll.forEach(e => { this.dict.asbItemAll.forEach(e => {
e.choosed = false e.choosed = false
}) })
this.dict.asbItem = deepCopy(this.dict.asbItemAll);
this.dict.asbItem = [] //deepCopy(this.dict.asbItemAll);
this.dict.asbItemQuick = deepCopy(res.data); this.dict.asbItemQuick = deepCopy(res.data);
this.quickAsb = deepCopy(res.data); this.quickAsb = deepCopy(res.data);
} }
@ -441,26 +447,25 @@ export default {
}, },
// //
getAsbItemByItemTypeAll() {
//console.log('getAsbItemByItemType', typeof this.itemTypeIds, this.itemTypeIds)
changeItemTypeIds(data) {
//console.log('refAsbItemByChoosed', typeof this.itemTypeIds, this.itemTypeIds)
let lv = ""; let lv = "";
if (typeof this.itemTypeIds === "object") {
if (typeof data === "object") {
lv = this.itemTypeIds[this.itemTypeIds.length - 1]; lv = this.itemTypeIds[this.itemTypeIds.length - 1];
} }
if (lv) { if (lv) {
this.dict.asbItem = arrayFilter(this.dict.asbItemAll, "itemTypeId", lv); this.dict.asbItem = arrayFilter(this.dict.asbItemAll, "itemTypeId", lv);
} else { } else {
this.dict.asbItem = deepCopy(this.dict.asbItemAll);
this.dict.asbItem = [] //deepCopy(this.dict.asbItemAll);
} }
//console.log('lv,this.dict.asbItem', lv, this.dict.asbItem) //console.log('lv,this.dict.asbItem', lv, this.dict.asbItem)
this.dict.asbItemQuick = deepCopy(this.dict.asbItemAll); this.dict.asbItemQuick = deepCopy(this.dict.asbItemAll);
}, },
//
getAsbItemByItemType() {
this.getAsbItemByItemTypeAll()
// //
refAsbItemByChoosed() {
// //
arrayReduce(this.dict.asbItem, [...this.customerOrgGroupAsbitems], "id=asbitemId"); arrayReduce(this.dict.asbItem, [...this.customerOrgGroupAsbitems], "id=asbitemId");
arrayReduce(this.dict.asbItemQuick, [...this.customerOrgGroupAsbitems], "id=asbitemId"); arrayReduce(this.dict.asbItemQuick, [...this.customerOrgGroupAsbitems], "id=asbitemId");
@ -574,8 +579,8 @@ export default {
lfind = arrayExistObj(this.dict.asbItem, 'id', asbItemChoosed[i].id) lfind = arrayExistObj(this.dict.asbItem, 'id', asbItemChoosed[i].id)
if (lfind > -1) this.dict.asbItem.splice(lfind, 1) if (lfind > -1) this.dict.asbItem.splice(lfind, 1)
lfind = arrayExistObj(this.dict.asbItemQuick, 'id', asbItemChoosed[i].id)
if (lfind > -1) this.dict.asbItemQuick.splice(lfind, 1)
// //
this.refAsbItemByChoosed()
} }
@ -692,19 +697,23 @@ export default {
return return
} }
for (let i = 0; i < absForDel.length; i++) {
for (let i = absForDel.length - 1; i > -1; i--) {
lfind = arrayExistObj(this.customerOrgGroupAsbitems, 'asbitemId', absForDel[i].asbitemId) lfind = arrayExistObj(this.customerOrgGroupAsbitems, 'asbitemId', absForDel[i].asbitemId)
if (lfind > -1) this.customerOrgGroupAsbitems.splice(lfind, 1) if (lfind > -1) this.customerOrgGroupAsbitems.splice(lfind, 1)
lfind = arrayExistObj(this.dict.asbItemAll,'id',absForDel[i].asbitemId)
if (lfind > -1) this.dict.asbItem.push(this.dict.asbItemAll[lfind])
absForDel.splice(i, 1) absForDel.splice(i, 1)
i--
continue continue
} }
//
this.getAsbItemByItemType()
if(Array.isArray(this.itemTypeIds) && this.itemTypeIds.length > 0 ) this.changeItemTypeIds(this.itemTypeIds)
// //
this.refAsbItemByChoosed()
}, },
@ -1021,15 +1030,44 @@ export default {
).then((res) => { ).then((res) => {
if (res.code != -1) { if (res.code != -1) {
this.customerOrgGroupAsbitems = res.data; this.customerOrgGroupAsbitems = res.data;
this.getAsbItemByItemType()
// //
this.refAsbItemByChoosed()
} }
}); });
} else { } else {
this.customerOrgGroupAsbitems = [] this.customerOrgGroupAsbitems = []
this.getAsbItemByItemType()
// //
this.refAsbItemByChoosed()
}
},
// /
btnCopyGroupAsbitem(){
if(this.customerOrgGroupAsbitems.length == 0){
this.$message.warning({showClose:true,message:'没有可复制的项目,请先选择分组'})
return
} }
this.dataTransOpts.copyGroupAsbitem = deepCopy(this.customerOrgGroupAsbitems)
this.$message.success({showClose:true,message:'操作成功!'})
}, },
// /
btnPastGroupAsbitem(){
let lfind = -1
this.dataTransOpts.copyGroupAsbitem.forEach(e => {
lfind = arrayExistObj(this.customerOrgGroupAsbitems,'asbitemId',e.asbitemId)
if(lfind == -1){
let pojo = Object.assign({},e,{id:Date.now(),})
this.customerOrgGroupAsbitems.push(pojo)
}
});
this.dataTransOpts.copyGroupAsbitem = []
this.refAsbItemByChoosed()
this.$message.success({showClose:true,message:'操作成功!'})
}
}, },
// //

2
src/components/patientRegister/PatientRegisterEdit.vue

@ -636,7 +636,7 @@
:append-to-body="true"> :append-to-body="true">
<div style="height: 320px;"> <div style="height: 320px;">
<el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll" style="width:400px;" <el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll" style="width:400px;"
filterable popper-class="example" :props="{ ...customerOrg.treeprops, leaf: 'isLeaf' }" size="small">
filterable popper-class="example" :props="{ checkStrictly: true, expandTrigger: 'hover',...customerOrg.treeprops, leaf: 'isLeaf' }" size="small">
</el-cascader> </el-cascader>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">

23
src/components/patientRegister/PatientRegisterItem.vue

@ -295,7 +295,7 @@ export default {
// //
postapi('/api/app/asbitem/GetBasicList', { isFilterActive: 'Y' }).then(res => { postapi('/api/app/asbitem/GetBasicList', { isFilterActive: 'Y' }).then(res => {
if (res.code != -1) { if (res.code != -1) {
this.dataTransOpts.copyGroup.asbItem = res.data
this.dataTransOpts.copyGroup.asbItem = [] //res.data
this.dataTransOpts.copyGroup.asbItemAll = res.data this.dataTransOpts.copyGroup.asbItemAll = res.data
this.asbItemQuick = res.data this.asbItemQuick = res.data
this.quickAsb = res.data this.quickAsb = res.data
@ -384,7 +384,7 @@ export default {
}) // }) //
arrayReduce(asbItemAll, choosedAsb, "id=asbitemId"); arrayReduce(asbItemAll, choosedAsb, "id=asbitemId");
this.changeItemType(deepCopy(this.itemTypeIds));
if(Array.isArray(this.itemTypeIds) && this.itemTypeIds.length > 0) this.changeItemType(this.itemTypeIds);
this.asbItemQuick = deepCopy(asbItemAll); this.asbItemQuick = deepCopy(asbItemAll);
this.quickAsb = deepCopy(asbItemAll); this.quickAsb = deepCopy(asbItemAll);
}, },
@ -588,7 +588,7 @@ export default {
if (!checked) return if (!checked) return
if (this.prForm.customerOrgId != this.dict.personOrgId) payTypeFlag = '1' if (this.prForm.customerOrgId != this.dict.personOrgId) payTypeFlag = '1'
for (let i = 0; i < asbItemChoosed.length; i++) {
for (let i = asbItemChoosed.length - 1; i > -1; i--) {
let pojo = { let pojo = {
asbitemId: asbItemChoosed[i].id, asbitemId: asbItemChoosed[i].id,
asbitemName: asbItemChoosed[i].displayName, asbitemName: asbItemChoosed[i].displayName,
@ -605,6 +605,8 @@ export default {
// //
//this.dataTransOpts.tableM.register_check_asbitem.push(pojo) //this.dataTransOpts.tableM.register_check_asbitem.push(pojo)
this.dataTransOpts.tableM.register_check_asbitem.splice(0, 0, pojo) this.dataTransOpts.tableM.register_check_asbitem.splice(0, 0, pojo)
let lfind = arrayExistObj(this.dataTransOpts.copyGroup.asbItem,'id',asbItemChoosed[i].id)
if(lfind > -1) this.dataTransOpts.copyGroup.asbItem.splice(lfind,1)
} }
// //
this.refreshAsbitem() this.refreshAsbitem()
@ -722,6 +724,8 @@ export default {
let lfind = -1 let lfind = -1
let tempRd = {} let tempRd = {}
this.itemTypeIds = deepCopy(this.dataTransOpts.copyGroup.itemTypeIds)
// start // start
if (oprType && oprType == 'all') { if (oprType && oprType == 'all') {
absForDel = deepCopy(this.dataTransOpts.tableM.register_check_asbitem) absForDel = deepCopy(this.dataTransOpts.tableM.register_check_asbitem)
@ -748,8 +752,13 @@ export default {
} else { } else {
lfind = arrayExistObj(this.dataTransOpts.tableM.register_check_asbitem, 'asbitemId', e.asbitemId) lfind = arrayExistObj(this.dataTransOpts.tableM.register_check_asbitem, 'asbitemId', e.asbitemId)
if (lfind > -1) { if (lfind > -1) {
tempRd = Object.assign({}, this.dataTransOpts.tableM.register_check_asbitem.splice(lfind, 1)[0])
// if(e.id) this.prAsbDels.push(tempRd)
tempRd = this.dataTransOpts.tableM.register_check_asbitem.splice(lfind, 1)[0]
console.log('tempRd',tempRd,this.dataTransOpts.copyGroup.itemTypeIds)
if(!(Array.isArray(this.itemTypeIds) && this.itemTypeIds.length > 0)){
console.log(22222)
let lfind2 = arrayExistObj(this.dataTransOpts.copyGroup.asbItemAll, 'id', e.asbitemId)
if(lfind2 > -1) this.dataTransOpts.copyGroup.asbItem.push(this.dataTransOpts.copyGroup.asbItemAll[lfind2])
}
} }
} }
}) })
@ -786,7 +795,7 @@ export default {
if (lv) { if (lv) {
this.dataTransOpts.copyGroup.asbItem = arrayFilter(asbItemAll, "itemTypeId", lv); this.dataTransOpts.copyGroup.asbItem = arrayFilter(asbItemAll, "itemTypeId", lv);
} else { } else {
this.dataTransOpts.copyGroup.asbItem = deepCopy(asbItemAll);
this.dataTransOpts.copyGroup.asbItem = [] //deepCopy(asbItemAll);
} }
arrayReduce(this.dataTransOpts.copyGroup.asbItem, this.dataTransOpts.tableM.register_check_asbitem, "id=asbitemId"); arrayReduce(this.dataTransOpts.copyGroup.asbItem, this.dataTransOpts.tableM.register_check_asbitem, "id=asbitemId");
}, },
@ -1106,7 +1115,7 @@ export default {
const sumCol = [1, 5,6] // const sumCol = [1, 5,6] //
const sums = []; const sums = [];
console.log('columns, data',columns, data)
//console.log('columns, data',columns, data)
let count = this.dataTransOpts.tableM.register_check_asbitem.length let count = this.dataTransOpts.tableM.register_check_asbitem.length
let pack = this.dataTransOpts.tableM.register_check_asbitem.filter(e => { return e.isBelongGroupPackage == 'Y' }).length let pack = this.dataTransOpts.tableM.register_check_asbitem.filter(e => { return e.isBelongGroupPackage == 'Y' }).length

33
src/components/report/BtnReport.vue

@ -141,27 +141,26 @@ export default {
dragCol: [ dragCol: [
{ label: "序号", prop: "sn", minWidth: 40, align: "center" }, { label: "序号", prop: "sn", minWidth: 40, align: "center" },
{ label: "体检进度", prop: "completeFlag", minWidth: 90, align: "center" },
{ label: "体检日期", prop: "medicalStartDate", minWidth: 100, align: "center" },
{ label: "打印", prop: "isReportPrint", minWidth: 60, align: "center" }, { label: "打印", prop: "isReportPrint", minWidth: 60, align: "center" },
{ label: "领取", prop: "isReceiveReport", minWidth: 60, align: "center" }, { label: "领取", prop: "isReceiveReport", minWidth: 60, align: "center" },
{ label: "预约备单", prop: "isUploadAppoint", minWidth: 90, align: "center" },
{ label: "上传", prop: "isUpload", minWidth: 60, align: "center" },
{ label: "条码号", prop: "patientRegisterNo", minWidth: 150, align: "center" },
{ label: "体检进度", prop: "completeFlag", minWidth: 90, align: "center" },
{ label: "体检日期", prop: "medicalStartDate", minWidth: 100, align: "center" },
{ label: "单位名称", prop: "org", minWidth: 180, align: "left", showTooltip: true },
{ label: "部门名称", prop: "dept", minWidth: 150, align: "left", showTooltip: true },
{ label: "姓名", prop: "patientName", minWidth: 60, align: "center" }, { label: "姓名", prop: "patientName", minWidth: 60, align: "center" },
{ label: "性别", prop: "sexName", minWidth: 60, align: "center" }, { label: "性别", prop: "sexName", minWidth: 60, align: "center" },
{ label: "年龄", prop: "age", minWidth: 60, align: "center" }, { label: "年龄", prop: "age", minWidth: 60, align: "center" },
{ label: "民族", prop: "nationName", minWidth: 70, align: "center" },
{ label: "身份证号", prop: "idNo", minWidth: 160, align: "center" },
{ label: "条码号", prop: "patientRegisterNo", minWidth: 110, align: "center" },
{ label: "档案号", prop: "patientNo", minWidth: 80, align: "center" },
{ label: "次数", prop: "medicalTimes", minWidth: 60, align: "center" },
{ label: "备注", prop: "remark", minWidth: 150, align: "left" },
{ label: "分组/套餐", prop: "groupPack", minWidth: 150, align: "center" }, { label: "分组/套餐", prop: "groupPack", minWidth: 150, align: "center" },
{ label: "体检次数", prop: "medicalTimes", minWidth: 90, align: "center" },
{ label: "单位名称", prop: "org", minWidth: 180, align: "left", showTooltip: true },
{ label: "部门名称", prop: "dept", minWidth: 180, align: "left", showTooltip: true },
{ label: "手机", prop: "mobileTelephone", minWidth: 130, align: "center" }, { label: "手机", prop: "mobileTelephone", minWidth: 130, align: "center" },
{ label: "电话", prop: "telephone", minWidth: 130, align: "center" }, { label: "电话", prop: "telephone", minWidth: 130, align: "center" },
{ label: "档案号", prop: "patientNo", minWidth: 80, align: "center" },
{ label: "身份证号", prop: "idNo", minWidth: 160, align: "center" },
{ label: "出生日期", prop: "birthDate", minWidth: 90, align: "center" }, { label: "出生日期", prop: "birthDate", minWidth: 90, align: "center" },
{ label: "婚姻", prop: "maritalStatusName", minWidth: 70, align: "center" }, { label: "婚姻", prop: "maritalStatusName", minWidth: 70, align: "center" },
{ label: "民族", prop: "nationName", minWidth: 70, align: "center" },
{ label: "地址", prop: "address", minWidth: 400, align: "left", showTooltip: true }, { label: "地址", prop: "address", minWidth: 400, align: "left", showTooltip: true },
{ label: "体检卡号", prop: "medicalCardNo", minWidth: 90, align: "center" }, { label: "体检卡号", prop: "medicalCardNo", minWidth: 90, align: "center" },
{ label: "工卡号", prop: "jobCardNo", minWidth: 90, align: "center" }, { label: "工卡号", prop: "jobCardNo", minWidth: 90, align: "center" },
@ -181,6 +180,8 @@ export default {
{ label: "领取人", prop: "reportReceiveName", minWidth: 70, align: "center" }, { label: "领取人", prop: "reportReceiveName", minWidth: 70, align: "center" },
{ label: "领取时间", prop: "reportReceiveDate", minWidth: 140, align: "center" }, { label: "领取时间", prop: "reportReceiveDate", minWidth: 140, align: "center" },
{ label: "锁住", prop: "isLock", minWidth: 60, align: "center" }, { label: "锁住", prop: "isLock", minWidth: 60, align: "center" },
{ label: "预约备单", prop: "isUploadAppoint", minWidth: 90, align: "center" },
{ label: "上传", prop: "isUpload", minWidth: 60, align: "center" },
], ],
}; };
}, },
@ -733,7 +734,7 @@ export default {
this.jsonFields[e.label] = { this.jsonFields[e.label] = {
field: e.prop, field: e.prop,
callback: value => { callback: value => {
return value ? `\u200C${value}`:'';
return value ? `\u200C${value}` : '';
} }
} }
break; break;
@ -755,8 +756,8 @@ export default {
if (e.isUpload) e.isUpload = e.isUpload == 'Y' ? '√' : '' if (e.isUpload) e.isUpload = e.isUpload == 'Y' ? '√' : ''
if (e.isUploadAppoint) e.isUploadAppoint = e.isUploadAppoint == 'Y' ? '√' : '' if (e.isUploadAppoint) e.isUploadAppoint = e.isUploadAppoint == 'Y' ? '√' : ''
if (e.isReceiveReport) e.isReceiveReport = e.isReceiveReport == 'Y' ? '√' : '' if (e.isReceiveReport) e.isReceiveReport = e.isReceiveReport == 'Y' ? '√' : ''
//if (e.sexId) e.sexId = dddw(this.dict.sex, "id", e.sexId, "displayName") //if (e.sexId) e.sexId = dddw(this.dict.sex, "id", e.sexId, "displayName")
// if (e.patientRegisterNo) e.patientRegisterNo = " " + e.patientRegisterNo // if (e.patientRegisterNo) e.patientRegisterNo = " " + e.patientRegisterNo
// if (e.patientNo) e.patientNo = " " + e.patientNo // if (e.patientNo) e.patientNo = " " + e.patientNo
@ -772,8 +773,8 @@ export default {
// if (e.telephone) e.telephone = " " + e.telephone // if (e.telephone) e.telephone = " " + e.telephone
if (e.birthDate) e.birthDate = moment(e.birthDate).format("yyyy-MM-DD") if (e.birthDate) e.birthDate = moment(e.birthDate).format("yyyy-MM-DD")
}) })
this.xlsName = '人员列表' + moment(new Date()).format('yyyyMMDDHHmmss') + '.xls' this.xlsName = '人员列表' + moment(new Date()).format('yyyyMMDDHHmmss') + '.xls'

2
src/store/index.js

@ -549,6 +549,8 @@ export default new Vuex.Store({
asbItemAll: [], //所有未选组合项目 asbItemAll: [], //所有未选组合项目
}, },
copyGroupAsbitem:[], //单位设置 复制/粘贴 用
doctorCutPics:[], // 医生诊台剪切图片用 doctorCutPics:[], // 医生诊台剪切图片用
sumCutRows:[], // 总检剪切诊断用 sumCutRows:[], // 总检剪切诊断用

2
src/views/customerOrg/customerOrgGroup.vue

@ -29,7 +29,7 @@
</div> </div>
<div> <div>
<el-table :data="customerOrgGroups" ref="customerOrgGroups" style="margin-top: 2px" row-key="id" border <el-table :data="customerOrgGroups" ref="customerOrgGroups" style="margin-top: 2px" row-key="id" border
height="240px" size="small" highlight-current-row :row-class-name="handleRowClassName"
height="258px" size="small" highlight-current-row :row-class-name="handleRowClassName"
@row-click="rowClick" id="customerOrgGroups"> @row-click="rowClick" id="customerOrgGroups">
<el-table-column type="index" label="序号" width="50" align="center" /> <el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column label="id" prop="id" min-width="200" align="center" /> <el-table-column label="id" prop="id" min-width="200" align="center" />

Loading…
Cancel
Save