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>
<span>项目类别</span>
<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
@change="getAsbItemByItemType" size="small">
@change="changeItemTypeIds" size="small">
</el-cascader>
</div>
<div class="box">
@ -100,6 +100,12 @@
<div v-show="checkPagePriv(pagePriv.privs, '复制套餐')" style="margin-top: 10px;">
<el-button class="commonbutton" @click="btnCopyMedicalPackage">复制套餐</el-button>
</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;">
<el-button class="commonbutton" @click="btnSave">保存</el-button>
</div>
@ -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:'操作成功!'})
}
},
//

2
src/components/patientRegister/PatientRegisterEdit.vue

@ -636,7 +636,7 @@
:append-to-body="true">
<div style="height: 320px;">
<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>
</div>
<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 => {
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

33
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'

2
src/store/index.js

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

2
src/views/customerOrg/customerOrgGroup.vue

@ -29,7 +29,7 @@
</div>
<div>
<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">
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column label="id" prop="id" min-width="200" align="center" />

Loading…
Cancel
Save