diff --git a/src/components/common/LocalConfig.vue b/src/components/common/LocalConfig.vue index 04f5c74..c409de7 100644 --- a/src/components/common/LocalConfig.vue +++ b/src/components/common/LocalConfig.vue @@ -7,11 +7,16 @@ - + + + + + + @@ -137,6 +142,7 @@ export default { LocalConfig: { normal: { isDevTool: false, // 壳端是否显示打开调试工具按钮 + maxResultCount:100, //分页时单页记录数 PatientRegisterEdit: 'standard', //standard/qztl 人员登记组件版本 PatientRegisterEditHeight: 0, // 相较与标准版,选组合项目组件,减少高度 }, diff --git a/src/components/patientRegister/PatientRegisterItem.vue b/src/components/patientRegister/PatientRegisterItem.vue index f50b12e..c8a367a 100644 --- a/src/components/patientRegister/PatientRegisterItem.vue +++ b/src/components/patientRegister/PatientRegisterItem.vue @@ -1162,11 +1162,48 @@ export default { let asbItems = this.asbItems.filter(e => { return e.asbitemId == row.asbitemId }) let content = "" - asbItems.forEach(e => { - content += '

' + e.itemName + '

' + + let length = asbItems.length + let modeBase = 1,count = 0,pWidth=390 + + if(length >= 30){ + modeBase = 3 + pWidth=130 + }else if(length >= 20){ + modeBase = 2 + pWidth=195 + } + + // 数据项太多时,分列显示 + asbItems.forEach((e,i) => { + if(modeBase == 1){ + content += '

' + e.itemName + '

' + }else{ + if(i==0){ + count = 1 + content += `

` + e.itemName + '

' + }else if((i+1)%modeBase == 0){ + content += `

` + e.itemName + '

' + count = 1 + }else{ + content += `

` + e.itemName + '

' + count++ + } + } }); - this.$alert(content, `${row.asbitemName}`, { + if(modeBase > 1){ + for (let index = 0; index < 3; index++) { + if(modeBase == count) break + content += '

' + count++ + } + content += '
' + } + + // console.log('content',content) + + this.$alert(content, `${row.asbitemName} (共 ${asbItems.length} 项)`, { dangerouslyUseHTMLString: true, showClose: false }); diff --git a/src/components/patientRegister/PatientRegisterList.vue b/src/components/patientRegister/PatientRegisterList.vue index 4831513..8fb7595 100644 --- a/src/components/patientRegister/PatientRegisterList.vue +++ b/src/components/patientRegister/PatientRegisterList.vue @@ -80,7 +80,7 @@ {{ dddw(dict.personnelType, "id", scope.row[dragCol[index].prop], "displayName") }}
- {{ scope.row[dragCol[index].prop]}} + {{ scope.row[dragCol[index].prop] }}
{{ scope.row[dragCol[index].prop] == scope.row['customerOrgParentName'] ? @@ -278,7 +278,7 @@ - @@ -426,6 +426,12 @@ export default { }, queueParams: {}, // 分诊排队参数 + LocalConfig: { + normal: { + maxResultCount: 100, //分页时单页记录数 + }, + }, + LocalConfigInit: {}, }; }, @@ -433,6 +439,17 @@ export default { //获取用户当前页面的权限 let userPriv = window.sessionStorage.getItem('userPriv') if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) + + this.LocalConfigInit = deepCopy(this.LocalConfig) + let LocalConfig = window.localStorage.getItem("LocalConfig") || null + // console.log('LocalConfig',LocalConfig) + try { + this.LocalConfig = Object.assign({}, deepCopy(this.LocalConfigInit), JSON.parse(LocalConfig) || {}) + } catch (error) { + console.log('window.localStorage.getItem("LocalConfig")', error) + } + // console.log('this.LocalConfig',this.LocalConfig) + this.loadOpts.maxResultCount = Number(this.LocalConfig.normal.maxResultCount||100) this.loadOptsInit = Object.assign({}, this.loadOpts) @@ -1624,6 +1641,7 @@ export default { let tableData = table.innerHTML let fileName = moment(new Date()).format('yyyyMMDDHHmmss') + let blob = new Blob([tableData], { type: "text/plain;charset=utf-8" }); FileSaver.saveAs(blob, fileName + '.xls'); @@ -1631,7 +1649,7 @@ export default { // 导出图片 // 使用html2canvas将HTML元素转换为画布 // let cloneTable = table.cloneNode(true) //[elId] - + /* html2canvas(table).then(canvas => { // 创建一个a元素用于下载 @@ -1650,6 +1668,7 @@ export default { // pdf.save('员工信息表.pdf'); }); + */ }) }, diff --git a/src/components/patientRegister/patientRegisterAsbItem.vue b/src/components/patientRegister/patientRegisterAsbItem.vue index 333dfa4..2185839 100644 --- a/src/components/patientRegister/patientRegisterAsbItem.vue +++ b/src/components/patientRegister/patientRegisterAsbItem.vue @@ -102,11 +102,48 @@ export default { let asbItems = this.asbItems.filter(e => { return e.asbitemId == row.asbitemId }) let content = "" - asbItems.forEach(e => { - content += '

' + e.itemName + '

' + + let length = asbItems.length + let modeBase = 1,count = 0,pWidth=390 + + if(length >= 39){ + modeBase = 3 + pWidth=130 + }else if(length >= 20){ + modeBase = 2 + pWidth=195 + } + + // 数据项太多时,分列显示 + asbItems.forEach((e,i) => { + if(modeBase == 1){ + content += '

' + e.itemName + '

' + }else{ + if(i==0){ + count = 1 + content += `

` + e.itemName + '

' + }else if((i+1)%modeBase == 0){ + content += `

` + e.itemName + '

' + count = 1 + }else{ + content += `

` + e.itemName + '

' + count++ + } + } }); - this.$alert(content, `${row.asbitemName}`, { + if(modeBase > 1){ + for (let index = 0; index < 3; index++) { + if(modeBase == count) break + content += '

' + count++ + } + content += '
' + } + + // console.log('content',content) + + this.$alert(content, `${row.asbitemName} (共 ${asbItems.length} 项)`, { dangerouslyUseHTMLString: true, showClose: false }); diff --git a/src/components/report/BtnReport.vue b/src/components/report/BtnReport.vue index 70a9c43..f182019 100644 --- a/src/components/report/BtnReport.vue +++ b/src/components/report/BtnReport.vue @@ -16,6 +16,9 @@
打印报告
+
+ 导出 pdf 报告 +
领用报告
@@ -169,7 +172,7 @@ export default { let res2 = await postapi('/api/app/TransToWebPeis/TransPatientRegisterByPatientRegisterId', { patientRegisterId }) if (res2.code == -1) { console.log('TransToWebPeis err', res2) - }else{ + } else { // 上传成功 ,更新备单状态 e.isUploadAppoint = 'Y' } @@ -276,6 +279,82 @@ export default { }, + // 导出 pdf 报告 + btnReportExport() { + if (!this.$peisAPI) { + this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!" }) + return + } + + if (!(this.dataTransOpts.tableM.patient_register && this.dataTransOpts.tableM.patient_register.length > 0)) { + this.$message.warning({ showClose: true, message: "请勾选择记录!" }) + return + } + + this.$peisAPI.openDirectoryDialog() + .then(res => { + let lres = JSON.parse(res) + if (lres.code > -1 && lres.data) { + this.report2pdf(JSON.parse(lres.data).directory) + } + console.log('lres', lres) + }) + .catch(err => { + this.$message.error(err) + }) + }, + + async report2pdf(path) { + this.elProgress.display = true; + this.elProgress.percentage = 0; + + let ReportCode = '0005'; + let token = window.sessionStorage.getItem('token'); + let user = window.sessionStorage.getItem('user'); + let toOutShell = { + ReportCode, token, + isBuildImage: 'N', + IsUploadPdf: 'N', + preViewCanPrint: 'Y', + BusinessCode: '', + Parameters: [ + { Name: 'printer', Value: user }, + { Name: 'LTS', Value: 'Y' }, //Y、N N只看不能打印 + { Name: "firstPage", Value: "pic/peisReportFirstPage.jpg" }, + { Name: "pageHeader", Value: "pic/peisReportPageHeader.jpg" }, + { Name: "pageFooter", Value: "pic/peisReportPageFooter.jpg" }, + { Name: "orgSign", Value: "pic/orgSign.png" }, + { Name: 'picExtOne', Value: 'pic/hisLog.jpg' }, + ], + IsHealthReport: 'Y' + }; + + for (let i = 0; i < this.dataTransOpts.tableM.patient_register.length; i++) { + + let e = this.dataTransOpts.tableM.patient_register[i]; + this.elProgress.percentage = Math.floor(((i + 1) * 100) / this.dataTransOpts.tableM.patient_register.length); + + // 导出pdf + try { + if (e.completeFlag == '3') { + toOutShell.BusinessCode = e.patientRegisterId + toOutShell.ExportDirectory = `${path}\\${e.patientRegisterNo + e.patientName}.pdf` + let jsonToOutShell = JSON.stringify(toOutShell) + console.log('toOutShell', jsonToOutShell) + let res = await this.$peisAPI.exportToPdfPre(jsonToOutShell) + if (JSON.parse(res).code < 0) { + console.log('this.$peisAPI.exportToPdfPre err', res) + } + } + + } catch (error) { + console.log('error', error) + this.$message.warning({ showClose: true, message: error }); + } + } + this.elProgress.display = false; + }, + //按条码号查个人数据 getPatientRegister(patientRegisterNo) { if (!patientRegisterNo) return