diff --git a/public/pic/auditDoctorSign.jpg b/public/pic/auditDoctorSign.jpg new file mode 100644 index 0000000..dbefb8f Binary files /dev/null and b/public/pic/auditDoctorSign.jpg differ diff --git a/public/pic/sumDoctorSign.jpg b/public/pic/sumDoctorSign.jpg new file mode 100644 index 0000000..9c02e2f Binary files /dev/null and b/public/pic/sumDoctorSign.jpg differ diff --git a/src/components/doctorCheck/ButtonList.vue b/src/components/doctorCheck/ButtonList.vue index 04dc212..cba3e70 100644 --- a/src/components/doctorCheck/ButtonList.vue +++ b/src/components/doctorCheck/ButtonList.vue @@ -142,7 +142,7 @@ - +
diff --git a/src/components/doctorCheck/PatientRegisterList.vue b/src/components/doctorCheck/PatientRegisterList.vue index 6f9d9f0..7249310 100644 --- a/src/components/doctorCheck/PatientRegisterList.vue +++ b/src/components/doctorCheck/PatientRegisterList.vue @@ -95,11 +95,7 @@ @row-click="rowClick" @row-dblclick="rowDblclick" ref="info" id="info" style="border-radius:10px;"> - - - + - - - + - + @@ -190,7 +162,7 @@
{{ dddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}
- + diff --git a/src/components/report/BtnReport.vue b/src/components/report/BtnReport.vue index 2e73552..864826f 100644 --- a/src/components/report/BtnReport.vue +++ b/src/components/report/BtnReport.vue @@ -26,7 +26,9 @@ 上传Web
- 导出人员 + + 人员信息导出 +
导出Zip @@ -48,7 +50,8 @@
领取人 - +
@@ -57,7 +60,8 @@ 确定
- 取消 + 取消
@@ -70,7 +74,7 @@ import moment from "moment"; import { mapState } from "vuex"; import { getapi, postapi, putapi, deletapi } from "@/api/api"; -import { arrayExistObj, deepCopy, parseID } from "../../utlis/proFunc"; +import { arrayExistObj, deepCopy, parseID,dddw } from "../../utlis/proFunc"; import ElProgressOCX from "../report/ElProgressOCX.vue"; //import PatientRegisterList from "../doctorCheck/PatientRegisterList.vue"; export default { @@ -80,13 +84,59 @@ export default { }, data() { return { - dialogGetReport:false, - receiveReport:{ + dialogGetReport: false, + receiveReport: { patientRegisterIds: [ ], isReceiveReport: "Y", reportReceiveName: "" //// 报告领取人 - } + }, + jsonFields: {}, + xlsName: '', + + 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: "patientName", minWidth: 60, align: "center" }, + { label: "性别", prop: "sexName", minWidth: 60, align: "center" }, + { label: "年龄", prop: "age", minWidth: 60, align: "center" }, + { label: "分组/套餐", prop: "packGroup", minWidth: 150, align: "center" }, + { label: "体检次数", prop: "medicalTimes", minWidth: 90, align: "center" }, + { label: "单位名称", prop: "customerOrgName", minWidth: 180, align: "left", showTooltip: true }, + { label: "部门名称", prop: "departmentName", 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" }, + { label: "体检类别", prop: "medicalTypeName", minWidth: 100, align: "center" }, + { label: "人员类别", prop: "personnelTypeName", minWidth: 100, align: "center" }, + { label: "职务", prop: "jobPost", minWidth: 70, align: "center" }, + { label: "职称", prop: "jobTitle", minWidth: 70, align: "center" }, + { label: "介绍人", prop: "salesman", minWidth: 80, align: "center" }, + { label: "VIP", prop: "isVip", minWidth: 80, align: "center" }, + { label: "总检医生", prop: "summaryDoctorName", minWidth: 90, align: "center" }, + { label: "总检日期", prop: "summaryDate", minWidth: 140, align: "center" }, + { label: "审核医生", prop: "auditDoctorName", minWidth: 90, align: "center" }, + { label: "审核日期", prop: "auditDate", minWidth: 140, align: "center" }, + { label: "登记人", prop: "registerName", minWidth: 80, align: "center" }, + { label: "登记时间", prop: "registerDate", minWidth: 140, align: "center" }, + { label: "打印人", prop: "reportPrintName", minWidth: 70, align: "center" }, + { label: "领取人", prop: "reportReceiveName", minWidth: 70, align: "center" }, + { label: "领取时间", prop: "reportReceiveDate", minWidth: 140, align: "center" }, + { label: "锁住", prop: "isLock", minWidth: 60, align: "center" }, + ], }; }, @@ -103,6 +153,7 @@ export default { }, methods: { + dddw, btnQuery() { this.patientRegister.query.times++ }, @@ -220,6 +271,7 @@ export default { } this.elProgress.display = false; }, + // 导入结果 btnImportResult(checkType) { if (!this.dataTransOpts.tableS.patient_register.id) { @@ -256,44 +308,46 @@ export default { }, - btnGetReportOk(){ - postapi('/api/app/PatientRegister/BatchUpdatePatientRegisterReportReceive',this.receiveReport) - .then(res => { - if(res.code > -1){ - this.$message.success({showClose:true,message:'操作成功!'}) - let reportReceiveDate = moment(new Date()).format('yyyy-MM-DD HH:mm:ss') - let lfind = -1 - this.receiveReport.patientRegisterIds.forEach(patientRegisterId => { - lfind = arrayExistObj(this.patientRegister.prList,'patientRegisterId',patientRegisterId) - if(lfind > -1){ - this.patientRegister.prList[lfind].isReceiveReport = this.receiveReport.isReceiveReport - this.patientRegister.prList[lfind].reportReceiveName = this.receiveReport.reportReceiveName - this.patientRegister.prList[lfind].reportReceiveDate = reportReceiveDate - } - }); - } - }) + //领取体检报告(提交) + btnGetReportOk() { + postapi('/api/app/PatientRegister/BatchUpdatePatientRegisterReportReceive', this.receiveReport) + .then(res => { + if (res.code > -1) { + this.$message.success({ showClose: true, message: '操作成功!' }) + let reportReceiveDate = moment(new Date()).format('yyyy-MM-DD HH:mm:ss') + let lfind = -1 + this.receiveReport.patientRegisterIds.forEach(patientRegisterId => { + lfind = arrayExistObj(this.patientRegister.prList, 'patientRegisterId', patientRegisterId) + if (lfind > -1) { + this.patientRegister.prList[lfind].isReceiveReport = this.receiveReport.isReceiveReport + this.patientRegister.prList[lfind].reportReceiveName = this.receiveReport.reportReceiveName + this.patientRegister.prList[lfind].reportReceiveDate = reportReceiveDate + } + }); + this.dialogGetReport = false + } + }) }, - //领取体检报告 + //领取体检报告(按钮) btnGetReport(isReceiveReport) { //console.log('this.dataTransOpts.tableS.patient_register.id',this.dataTransOpts.tableS.patient_register.id,this.dataTransOpts.tableM.patient_register) let rd = [] if (this.dataTransOpts.tableM.patient_register && this.dataTransOpts.tableM.patient_register.length > 0) { rd = rd.concat(this.dataTransOpts.tableM.patient_register) } - if(rd.length == 0){ - if(this.dataTransOpts.tableS.patient_register.id) rd.push({patientRegisterId:this.dataTransOpts.tableS.patient_register.id}) + if (rd.length == 0) { + if (this.dataTransOpts.tableS.patient_register.id) rd.push({ patientRegisterId: this.dataTransOpts.tableS.patient_register.id }) } if (rd.length == 0) { this.$message.warning({ showClose: true, message: "请先勾选或选择记录(有勾选人员时,仅操作勾选的记录)!" }) return - } - let lfind = arrayExistObj(this.patientRegister.prList,'patientRegisterId',rd[0].patientRegisterId) - if(lfind > -1){ + } + let lfind = arrayExistObj(this.patientRegister.prList, 'patientRegisterId', rd[0].patientRegisterId) + if (lfind > -1) { this.receiveReport.reportReceiveName = this.patientRegister.prList[lfind].patientName } - + this.receiveReport.patientRegisterIds = [] this.receiveReport.isReceiveReport = isReceiveReport rd.forEach(e => { @@ -307,7 +361,7 @@ export default { // "isReceiveReport": "string", // "reportReceiveName": "string" // } - + this.dialogGetReport = true }, @@ -394,30 +448,17 @@ export default { - //体检报告 + //体检报告打印(预览) async btnReport(isPreview) { - if (!this.dataTransOpts.tableS.patient_register.id || !(this.dataTransOpts.tableM.patient_register && this.dataTransOpts.tableM.patient_register.length > 0)) { - this.$message.warning({ showClose: true, message: "请先勾选或选择记录(优先打印勾选人员的报告)!" }) - return - } - if (!this.$peisAPI) { this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!" }) return } ///3a0c990e-5756-2dc0-19d5-69a617fe4048 isPatientOccupationalDisease patientRegisterId completeFlag isAudit - let rds = [] - if (this.dataTransOpts.tableM.patient_register && this.dataTransOpts.tableM.patient_register.length > 0) { - rds = this.dataTransOpts.tableM.patient_register - } else { - rds.push({ - patientRegisterId: this.dataTransOpts.tableS.patient_register.id, - isPatientOccupationalDisease: this.dataTransOpts.tableS.patient_register.isPatientOccupationalDisease, - completeFlag: this.dataTransOpts.tableS.patient_register.completeFlag, - isAudit: this.dataTransOpts.tableS.patient_register.isAudit, - }) - } + let rds = this.getChoosedRds() + if (rds.length == 0) return + let ReportCode = '0005'; if (rds[0].isPatientOccupationalDisease == 'Y') ReportCode = '0006' @@ -442,6 +483,8 @@ export default { { Name: 'resultSign', Value: 'pic/resultSign.png' }, // 结果章,如:职业病(本次体检未发现职业性异常) { Name: 'picExtThree', Value: 'pic/peisQrCode.jpg' }, // 公众号二维码 { Name: 'picExtFour', Value: 'pic/peisQrCodeMini.jpg' }, // 小程序二维码 + { Name: 'picExtFive', Value: 'pic/sumDoctorSign.jpg' }, // 总检签名(部份企业固定才用) + { Name: 'picExtSix', Value: 'pic/auditDoctorSign.jpg' }, // 总检审核签名(部份企业固定才用) ], }; @@ -470,6 +513,7 @@ export default { }); } else { + let lfind = -1 for (let i = 0; i < rds.length; i++) { let rd = rds[i]; @@ -493,6 +537,12 @@ export default { this.$message.warning({ showClose: true, message: JSON.parse(lres).message }); } else { postapi('/api/app/patientregister/updatepatientregisterreportprinttimesmany', [rd.patientRegisterId]) + .then(res => { + if (res.code > -1) { + lfind = arrayExistObj(this.patientRegister.prList, 'patientRegisterId', rd.patientRegisterId) + if (lfind > -1) this.patientRegister.prList[lfind].isReportPrint = 'Y' + } + }) } } catch (error) { this.$message.warning({ showClose: true, message: error }); @@ -599,6 +649,61 @@ export default { }) }, + // 通用判断 是否有选中或勾选记录(同时有选中与勾选记录时,以勾选记录为主) + getChoosedRds() { + let rd = [] + if (this.dataTransOpts.tableM.patient_register && this.dataTransOpts.tableM.patient_register.length > 0) { + rd = rd.concat(this.dataTransOpts.tableM.patient_register) + } + if (rd.length == 0) { + if (this.dataTransOpts.tableS.patient_register.id) { + let lfind = arrayExistObj(this.patientRegister.prList, 'patientRegisterId', this.dataTransOpts.tableS.patient_register.id) + if (lfind > -1) rd.push(this.patientRegister.prList.slice(lfind, Number(lfind) + 1)) + } + } + if (rd.length == 0) { + this.$message.warning({ showClose: true, message: "请先勾选或选择记录(有勾选人员时,仅操作勾选的记录)!" }) + } + return rd + }, + + //通用导出 + btnExport(elId) { + this.dragCol.forEach((e) => { + this.jsonFields[e.label] = e.prop; + }); + let tableDatas = deepCopy(this.patientRegister.prList) + tableDatas.forEach((e, index) => { + e.sn = index + 1 + if (e.completeFlag) e.completeFlag = e.isAudit == "Y" ? "已审核" : dddw(this.dict.completeFlag, "id", e.completeFlag, "displayName") + e.isReportPrint = e.isReportPrint == 'Y' ? '√' : '' + if (e.isLock) e.isLock = e.isLock == '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 + if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId === this.dict.personOrgId) { + e.groupPack = e.medicalPackageName // dddw(this.dict.medicalPackage, "id", e.medicalPackageId, "displayName") + } else if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId !== this.dict.personOrgId) { + e.groupPack = e.customerOrgGroupName // dddw(this.dict.customerOrgGroupAll, "id", e.customerOrgGroupId, "displayName") + } + //if (e.nationId) e.nationId = dddw(this.dict.nation, "id", e.nationId, "displayName") + // if (e.idNo) e.idNo = " " + e.idNo + // if (e.mobileTelephone) e.mobileTelephone = " " + e.mobileTelephone + // if (e.telephone) e.telephone = " " + e.telephone + + if (e.birthDate) e.birthDate = moment(e.birthDate).format("yyyy-MM-DD") + //if (e.maritalStatusId) e.maritalStatusId = dddw(this.dict.maritalStatus, "id", e.maritalStatusId, "displayName") + //if (e.medicalTypeId) e.medicalTypeId = dddw(this.dict.medicalType, "id", e.medicalTypeId, "displayName") + //if (e.personnelTypeId) e.personnelTypeId = dddw(this.dict.personnelType, "id", e.personnelTypeId, "displayName") + if (e.isVip) e.isVip = e.isVip == "Y" ? "是" : "否" + if (e.isUpload) e.isUpload = e.isUpload == "Y" ? "是" : "否" + + }) + this.xlsName = '人员列表' + moment(new Date()).format('yyyyMMDDHHmmss') + '.xls' + return tableDatas; + + }, + }, //监听事件() @@ -630,8 +735,7 @@ export default { } .spanClass { - font-size: 14px; - padding: 5px 2px 0 0; + font-size: 14px; + padding: 5px 2px 0 0; } - \ No newline at end of file diff --git a/src/components/report/PatientRegisterListNobtn.vue b/src/components/report/PatientRegisterListNobtn.vue index 8a1a37c..8d55028 100644 --- a/src/components/report/PatientRegisterListNobtn.vue +++ b/src/components/report/PatientRegisterListNobtn.vue @@ -9,10 +9,13 @@ + :sortable="dragCol[index].type || dragCol[index].prop == 'sn' ? false : true" :show-overflow-tooltip="dragCol[index].showTooltip">