Browse Source

report

master
pengjun 1 year ago
parent
commit
21d31e89a5
  1. 8
      src/components/common/LocalConfig.vue
  2. 43
      src/components/patientRegister/PatientRegisterItem.vue
  3. 25
      src/components/patientRegister/PatientRegisterList.vue
  4. 43
      src/components/patientRegister/patientRegisterAsbItem.vue
  5. 81
      src/components/report/BtnReport.vue

8
src/components/common/LocalConfig.vue

@ -7,11 +7,16 @@
<el-tab-pane label="常规设置">
<el-form label-width="140px" size="size">
<el-row>
<el-col :span="24">
<el-col :span="12">
<el-form-item label="显示调试工具">
<el-checkbox v-model="LocalConfig.normal.isDevTool" size="small" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分页时单页记录数">
<el-input type="number" v-model="LocalConfig.normal.maxResultCount" size="small" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
@ -137,6 +142,7 @@ export default {
LocalConfig: {
normal: {
isDevTool: false, //
maxResultCount:100, //
PatientRegisterEdit: 'standard', //standard/qztl
PatientRegisterEditHeight: 0, //
},

43
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 += '<p>' + e.itemName + '</p>'
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 += '<p>' + e.itemName + '</p>'
}else{
if(i==0){
count = 1
content += `<div style="display: flex;"><p style="width: ${pWidth}px;">` + e.itemName + '</p>'
}else if((i+1)%modeBase == 0){
content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p></div><div style="display: flex;">'
count = 1
}else{
content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p>'
count++
}
}
});
this.$alert(content, `${row.asbitemName}`, {
if(modeBase > 1){
for (let index = 0; index < 3; index++) {
if(modeBase == count) break
content += '<p></p>'
count++
}
content += '</div>'
}
// console.log('content',content)
this.$alert(content, `${row.asbitemName} (共 ${asbItems.length} 项)`, {
dangerouslyUseHTMLString: true,
showClose: false
});

25
src/components/patientRegister/PatientRegisterList.vue

@ -80,7 +80,7 @@
{{ dddw(dict.personnelType, "id", scope.row[dragCol[index].prop], "displayName") }}
</div>
<div v-else-if="dragCol[index].prop == 'idNo'">
{{ scope.row[dragCol[index].prop]}}&#031;
{{ scope.row[dragCol[index].prop] }}&#031;
</div>
<div v-else-if="dragCol[index].prop == 'customerOrgName'">
{{ scope.row[dragCol[index].prop] == scope.row['customerOrgParentName'] ?
@ -278,7 +278,7 @@
</el-dialog>
<!-- 批量调整检查项目医生 -->
<el-dialog title="批量调整检查项目医生" :visible.sync="dialogWin.PatientRegisterEditDoctorBatch" width="610px"
<el-dialog title="批量调整检查项目医生" :visible.sync="dialogWin.PatientRegisterEditDoctorBatch" width="610px"
:append-to-body="true" :close-on-click-modal="false">
<PatientRegisterEditDoctorBatch :multipleSelection="multipleSelection" />
</el-dialog>
@ -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 {
//
// 使html2canvasHTML
// let cloneTable = table.cloneNode(true) //[elId]
/*
html2canvas(table).then(canvas => {
// a
@ -1650,6 +1668,7 @@ export default {
// pdf.save('.pdf');
});
*/
})
},

43
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 += '<p>' + e.itemName + '</p>'
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 += '<p>' + e.itemName + '</p>'
}else{
if(i==0){
count = 1
content += `<div style="display: flex;"><p style="width: ${pWidth}px;">` + e.itemName + '</p>'
}else if((i+1)%modeBase == 0){
content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p></div><div style="display: flex;">'
count = 1
}else{
content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p>'
count++
}
}
});
this.$alert(content, `${row.asbitemName}`, {
if(modeBase > 1){
for (let index = 0; index < 3; index++) {
if(modeBase == count) break
content += '<p></p>'
count++
}
content += '</div>'
}
// console.log('content',content)
this.$alert(content, `${row.asbitemName} (共 ${asbItems.length} 项)`, {
dangerouslyUseHTMLString: true,
showClose: false
});

81
src/components/report/BtnReport.vue

@ -16,6 +16,9 @@
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnReport(false)">打印报告</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnReportExport(false)">导出 pdf 报告</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnGetReport">领用报告</el-button>
</div>
@ -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' }, //YN 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

Loading…
Cancel
Save