From 5a70d9a1af0f166e4cd0aa8e45c9bbbffda581e5 Mon Sep 17 00:00:00 2001 From: pengjun <158915633@qq.com> Date: Sat, 20 Dec 2025 19:34:44 +0800 Subject: [PATCH] seo --- .../customerOrg/customerOrgGroupAsbitem.vue | 74 ++++++++++++++----- .../patientRegister/PatientRegisterEdit.vue | 2 +- .../patientRegister/PatientRegisterItem.vue | 23 ++++-- src/components/report/BtnReport.vue | 33 +++++---- src/store/index.js | 2 + src/views/customerOrg/customerOrgGroup.vue | 2 +- 6 files changed, 93 insertions(+), 43 deletions(-) diff --git a/src/components/customerOrg/customerOrgGroupAsbitem.vue b/src/components/customerOrg/customerOrgGroupAsbitem.vue index 30ac94f..119f9ff 100644 --- a/src/components/customerOrg/customerOrgGroupAsbitem.vue +++ b/src/components/customerOrg/customerOrgGroupAsbitem.vue @@ -6,9 +6,9 @@
项目类别 + @change="changeItemTypeIds" size="small">
@@ -100,6 +100,12 @@
复制套餐
+
+ 复制 +
+
+ 粘贴 +
保存
@@ -337,7 +343,7 @@ export default { this.dict.asbItemAll.forEach(e => { e.choosed = false }) - this.dict.asbItem = deepCopy(this.dict.asbItemAll); + this.dict.asbItem = [] //deepCopy(this.dict.asbItemAll); this.dict.asbItemQuick = 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 = ""; - if (typeof this.itemTypeIds === "object") { + if (typeof data === "object") { lv = this.itemTypeIds[this.itemTypeIds.length - 1]; } if (lv) { this.dict.asbItem = arrayFilter(this.dict.asbItemAll, "itemTypeId", lv); } 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) this.dict.asbItemQuick = deepCopy(this.dict.asbItemAll); }, - //按项目类别显示组合项目,并过滤已选择的组合项目 - getAsbItemByItemType() { - this.getAsbItemByItemTypeAll() + //按项目类别显示组合项目,并过滤已选择的组合项目 // 刷新快速选择数据集 + refAsbItemByChoosed() { //刷新显示 未选组合项目 arrayReduce(this.dict.asbItem, [...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) 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 } - 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) 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) - i-- 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) => { if (res.code != -1) { this.customerOrgGroupAsbitems = res.data; - this.getAsbItemByItemType() + //按项目类别显示组合项目,并过滤已选择的组合项目 // 刷新快速选择数据集 + this.refAsbItemByChoosed() } }); } else { 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:'操作成功!'}) + } + + }, //监听事件 diff --git a/src/components/patientRegister/PatientRegisterEdit.vue b/src/components/patientRegister/PatientRegisterEdit.vue index afa5479..9edb723 100644 --- a/src/components/patientRegister/PatientRegisterEdit.vue +++ b/src/components/patientRegister/PatientRegisterEdit.vue @@ -636,7 +636,7 @@ :append-to-body="true">
+ filterable popper-class="example" :props="{ checkStrictly: true, expandTrigger: 'hover',...customerOrg.treeprops, leaf: 'isLeaf' }" size="small">
diff --git a/src/components/patientRegister/PatientRegisterItem.vue b/src/components/patientRegister/PatientRegisterItem.vue index d22cfb3..0dbfb37 100644 --- a/src/components/patientRegister/PatientRegisterItem.vue +++ b/src/components/patientRegister/PatientRegisterItem.vue @@ -295,7 +295,7 @@ export default { // 获取组合项目 postapi('/api/app/asbitem/GetBasicList', { isFilterActive: 'Y' }).then(res => { if (res.code != -1) { - this.dataTransOpts.copyGroup.asbItem = res.data + this.dataTransOpts.copyGroup.asbItem = [] //res.data this.dataTransOpts.copyGroup.asbItemAll = res.data this.asbItemQuick = res.data this.quickAsb = res.data @@ -384,7 +384,7 @@ export default { }) // 如果已经检查,则可以重新选进来(复查) 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.quickAsb = deepCopy(asbItemAll); }, @@ -588,7 +588,7 @@ export default { if (!checked) return 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 = { asbitemId: asbItemChoosed[i].id, asbitemName: asbItemChoosed[i].displayName, @@ -605,6 +605,8 @@ export default { // 优化加最上面 //this.dataTransOpts.tableM.register_check_asbitem.push(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() @@ -722,6 +724,8 @@ export default { let lfind = -1 let tempRd = {} + this.itemTypeIds = deepCopy(this.dataTransOpts.copyGroup.itemTypeIds) + //勾选时不需要此操作 start if (oprType && oprType == 'all') { absForDel = deepCopy(this.dataTransOpts.tableM.register_check_asbitem) @@ -748,8 +752,13 @@ export default { } else { lfind = arrayExistObj(this.dataTransOpts.tableM.register_check_asbitem, 'asbitemId', e.asbitemId) 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) { this.dataTransOpts.copyGroup.asbItem = arrayFilter(asbItemAll, "itemTypeId", lv); } 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"); }, @@ -1106,7 +1115,7 @@ export default { const sumCol = [1, 5,6] //需合计的列 const sums = []; - console.log('columns, data',columns, data) + //console.log('columns, data',columns, data) let count = this.dataTransOpts.tableM.register_check_asbitem.length let pack = this.dataTransOpts.tableM.register_check_asbitem.filter(e => { return e.isBelongGroupPackage == 'Y' }).length diff --git a/src/components/report/BtnReport.vue b/src/components/report/BtnReport.vue index ef213fc..5fbe4a6 100644 --- a/src/components/report/BtnReport.vue +++ b/src/components/report/BtnReport.vue @@ -141,27 +141,26 @@ export default { dragCol: [ { 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: "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: "sexName", 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: "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: "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: "maritalStatusName", minWidth: 70, align: "center" }, - { label: "民族", prop: "nationName", minWidth: 70, align: "center" }, { label: "地址", prop: "address", minWidth: 400, align: "left", showTooltip: true }, { label: "体检卡号", prop: "medicalCardNo", 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: "reportReceiveDate", minWidth: 140, 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] = { field: e.prop, callback: value => { - return value ? `\u200C${value}`:''; + return value ? `\u200C${value}` : ''; } } break; @@ -755,8 +756,8 @@ export default { if (e.isUpload) e.isUpload = e.isUpload == 'Y' ? '√' : '' if (e.isUploadAppoint) e.isUploadAppoint = e.isUploadAppoint == 'Y' ? '√' : '' if (e.isReceiveReport) e.isReceiveReport = e.isReceiveReport == 'Y' ? '√' : '' - - + + //if (e.sexId) e.sexId = dddw(this.dict.sex, "id", e.sexId, "displayName") // if (e.patientRegisterNo) e.patientRegisterNo = " " + e.patientRegisterNo // if (e.patientNo) e.patientNo = " " + e.patientNo @@ -772,8 +773,8 @@ export default { // if (e.telephone) e.telephone = " " + e.telephone if (e.birthDate) e.birthDate = moment(e.birthDate).format("yyyy-MM-DD") - - + + }) this.xlsName = '人员列表' + moment(new Date()).format('yyyyMMDDHHmmss') + '.xls' diff --git a/src/store/index.js b/src/store/index.js index f33ff55..00d68c2 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -549,6 +549,8 @@ export default new Vuex.Store({ asbItemAll: [], //所有未选组合项目 }, + copyGroupAsbitem:[], //单位设置 复制/粘贴 用 + doctorCutPics:[], // 医生诊台剪切图片用 sumCutRows:[], // 总检剪切诊断用 diff --git a/src/views/customerOrg/customerOrgGroup.vue b/src/views/customerOrg/customerOrgGroup.vue index cdaded6..e354de3 100644 --- a/src/views/customerOrg/customerOrgGroup.vue +++ b/src/views/customerOrg/customerOrgGroup.vue @@ -29,7 +29,7 @@