|
|
@@ -817,98 +817,6 @@ let rptControlObj = {
|
|
|
rst.closeArchiveSignature = getCloseArchiveSignature();
|
|
|
return rst;
|
|
|
},
|
|
|
- getAllInOneBook: async function () {
|
|
|
- if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
|
|
|
- let me = rptControlObj;
|
|
|
- let refRptTplIds = [], rpt_sheet_names = [], splitArchives = [];
|
|
|
- rptControlObj.getTplIdsCommon(refRptTplIds, rpt_sheet_names, splitArchives);
|
|
|
- let params = rptControlObj.creatCommonExportParam(refRptTplIds);
|
|
|
- params.closeWatermark = getCloseWatermarkForExcel();
|
|
|
- if (current_stage_id > 0) {
|
|
|
- await rptCustomObj.getCustomSelect(params);
|
|
|
- }
|
|
|
- params.rpt_names = rpt_sheet_names;
|
|
|
- params.rptName = TENDER_NAME;
|
|
|
- params.option = getExcelOutputOption();
|
|
|
- params.splitArchives = splitArchives;
|
|
|
- let chkNodes = zTreeOprObj.treeObj.getCheckedNodes(true);
|
|
|
- if (chkNodes.length > 0) {
|
|
|
- delete params.orientation; // 打印时有勾选的话,不需要提供方向
|
|
|
- }
|
|
|
- $.bootstrapLoading.start();
|
|
|
- CommonAjax.postXsrfEx("/tender/report_api/createExcelFilesInOneBook", params, WAIT_TIME_EXPORT, true, getCookie('csrfToken_j'), function(result){
|
|
|
- $.bootstrapLoading.end();
|
|
|
- if (result) {
|
|
|
- let uuIdUrls = [];
|
|
|
- let uuIdUrl = "/getFileByUUID/" + result.data[0].uuid + "/" + stringUtil.replaceAll(result.data[0].reportName, "#", "_") + "/xlsx";
|
|
|
- uuIdUrls.push(uuIdUrl);
|
|
|
- downloadReport(uuIdUrls);
|
|
|
- } else {
|
|
|
- //
|
|
|
- }
|
|
|
- },
|
|
|
- function(failRst){
|
|
|
- // closeWaitingView();
|
|
|
- $.bootstrapLoading.end();
|
|
|
- console.log(failRst);
|
|
|
- },
|
|
|
- function(exceptionRst){
|
|
|
- // closeWaitingView();
|
|
|
- $.bootstrapLoading.end();
|
|
|
- console.log(exceptionRst);
|
|
|
- }
|
|
|
- );
|
|
|
- }
|
|
|
- },
|
|
|
- getAllIndividualExcelBook: async function () {
|
|
|
- let me = rptControlObj;
|
|
|
- if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
|
|
|
- let refRptTplIds = [];
|
|
|
- let rpt_names = [], splitArchives = [];
|
|
|
- rptControlObj.getTplIdsCommon(refRptTplIds, rpt_names, splitArchives);
|
|
|
- let params = rptControlObj.creatCommonExportParam(refRptTplIds);
|
|
|
- params.closeWatermark = getCloseWatermarkForExcel();
|
|
|
- if (current_stage_id > 0) {
|
|
|
- await rptCustomObj.getCustomSelect(params);
|
|
|
- }
|
|
|
- params.isOneSheet = true;
|
|
|
- params.rpt_names = rpt_names;
|
|
|
- params.rptName = 'All';
|
|
|
- params.splitArchives = splitArchives;
|
|
|
- // 测试连续输出
|
|
|
- params.option = getExcelOutputOption();
|
|
|
- let chkNodes = zTreeOprObj.treeObj.getCheckedNodes(true);
|
|
|
- if (chkNodes.length > 0) {
|
|
|
- delete params.orientation; // 打印时有勾选的话,不需要提供方向
|
|
|
- }
|
|
|
- $.bootstrapLoading.start();
|
|
|
- CommonAjax.postXsrfEx("/tender/report_api/createExcelFiles", params, WAIT_TIME_EXPORT, true, getCookie('csrfToken_j'), function(result){
|
|
|
- $.bootstrapLoading.end();
|
|
|
- if (result) {
|
|
|
- let uuIdUrls = [];
|
|
|
- for (let uuIdObj of result.data) {
|
|
|
- let uuIdUrl = "/getFileByUUID/" + uuIdObj.uuid + "/" + stringUtil.replaceAll(uuIdObj.reportName, "#", "_") + "/xlsx";
|
|
|
- uuIdUrls.push(uuIdUrl);
|
|
|
- }
|
|
|
- downloadReport(uuIdUrls);
|
|
|
- } else {
|
|
|
- //
|
|
|
- }
|
|
|
- },
|
|
|
- function(failRst){
|
|
|
- // closeWaitingView();
|
|
|
- $.bootstrapLoading.end();
|
|
|
- console.log(failRst);
|
|
|
- },
|
|
|
- function(exceptionRst){
|
|
|
- // closeWaitingView();
|
|
|
- $.bootstrapLoading.end();
|
|
|
- console.log(exceptionRst);
|
|
|
- }
|
|
|
- );
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
downloadExcelReport: async function(pageDataArr, pageSize, rpt_names, signatureRelArr) {
|
|
|
const MAX_BRK_PAGE = 300;
|
|
|
const __sleep = (n) => {
|
|
|
@@ -1020,112 +928,7 @@ let rptControlObj = {
|
|
|
},
|
|
|
|
|
|
getExcel_New: async function (isOneBook) {
|
|
|
- let me = rptControlObj;
|
|
|
- if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0 && PAGE_SHOW['closeExportExcel'] !== 1) {
|
|
|
- let refRptTplIds = [];
|
|
|
- let rpt_names = [], splitArchives = [];
|
|
|
- rptControlObj.getTplIdsCommon(refRptTplIds, rpt_names, splitArchives);
|
|
|
- const signatureRelArr = [];
|
|
|
- if (refRptTplIds.length === 0) {
|
|
|
- if (zTreeOprObj.currentNode) {
|
|
|
- //在复杂情况下会影响到原有数据(文本签名 + 签章),为减少麻烦,还是当勾选处理
|
|
|
- refRptTplIds.push(zTreeOprObj.currentNode.refId);
|
|
|
- rpt_names.push(zTreeOprObj.currentNode.name);
|
|
|
- }
|
|
|
- }
|
|
|
- if (refRptTplIds.length > 0) {
|
|
|
- let params = rptControlObj.creatCommonExportParam(refRptTplIds);
|
|
|
- if (STAGE_ID === -150) {
|
|
|
- params.tid = params.tender_id;
|
|
|
- params.safe_stage_id = BGL_OBJ.BUSINESS_ID;
|
|
|
- }
|
|
|
- params.option = getExcelOutputOption();
|
|
|
- params.splitArchives = splitArchives;
|
|
|
-
|
|
|
- // params.getPicFlag = true; //专门针对草图项,只有此项为true,才需要把草图信息带过来,预览及打印动态加载草图 // 纠结:但这样还是解决不了效率问题,得另外想交互方式
|
|
|
- if (current_stage_id > 0) {
|
|
|
- await rptCustomObj.getCustomSelect(params);
|
|
|
- }
|
|
|
- delete params.orientation; // 打印时有勾选的话,不需要提供方向
|
|
|
- $.bootstrapLoading.start();
|
|
|
- if ((COMMON_WATER_MARK_PIC_DATA === null || COMMON_WATER_MARK_PIC_DATA === '') && CUST_CFG.closeWarterMark === false) {
|
|
|
- params.needWaterMark = true;
|
|
|
- } else {
|
|
|
- params.needWaterMark = false;
|
|
|
- }
|
|
|
- params.outputType = 'Excel';
|
|
|
- let url = '/tender/report_api/getMultiReports';
|
|
|
- if (STAGE_ID === -600) {
|
|
|
- params.sp_id = BUSINESS_ID;
|
|
|
- url = '/contract/report_api/getMultiReports';
|
|
|
- }
|
|
|
- if (STAGE_ID === -700) {
|
|
|
- params.tid = params.tender_id;
|
|
|
- params.phase_pay_id = BUSINESS_ID;
|
|
|
- url = `/tender/${params.tid}/phase/report_api/getMultiReports`;
|
|
|
- }
|
|
|
- CommonAjax.postXsrfEx(url, params, WAIT_TIME_EXPORT, true, getCookie('csrfToken_j'),
|
|
|
- function(result){
|
|
|
- $.bootstrapLoading.end();
|
|
|
- if (params.needWaterMark) COMMON_WATER_MARK_PIC_DATA = result.waterMarkStr;
|
|
|
- STAGE_AUDIT = result.stageAudit || [];
|
|
|
- STAGE_FLOW = result.stageFlow || [];
|
|
|
- LEDGER_LIST = result.ledger || [];
|
|
|
- let pageSize = rptControlObj.getCurrentPageSize();
|
|
|
- let pageDataArr = result.data;
|
|
|
- let signatureRelInfo = result.signatureRelInfo;
|
|
|
- for (let pageObj of pageDataArr) {
|
|
|
- let tmpRel = [];
|
|
|
- for (const signatureRel of signatureRelInfo) {
|
|
|
- if (signatureRel.rpt_id === pageObj.id) {
|
|
|
- tmpRel = JSON.parse(signatureRel.rel_content);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- signatureRelArr.push(tmpRel);
|
|
|
- }
|
|
|
- // 统一安排merge(除草图外)
|
|
|
- for (let idx = 0; idx < pageDataArr.length; idx++) {
|
|
|
- const pageObj = pageDataArr[idx];
|
|
|
- if (CUST_CFG.closeWarterMark) {
|
|
|
- pageObj.items.forEach(page => {
|
|
|
- page.watermark_cells = [];
|
|
|
- });
|
|
|
- }
|
|
|
- let singleSignatureRelArr = signatureRelArr[idx];
|
|
|
- if (signatureRelInfo && signatureRelInfo.length > 0) {
|
|
|
- resetStampSignature(pageObj, singleSignatureRelArr, getStageStatus() !== 3, STAGE_AUDIT, LEDGER_LIST);
|
|
|
- rptSignatureHelper.mergeSignDate(pageObj, singleSignatureRelArr, false, getStageStatus() !== 3);
|
|
|
- // rptSignatureHelper.mergeSignature(pageObj, singleSignatureRelArr); // 这里merge的意义不大
|
|
|
- rptSignatureHelper.mergeSignAudit(pageObj, singleSignatureRelArr, STAGE_AUDIT, getStageStatus() !== 3);
|
|
|
- if (PAGE_SHOW.isTextSignature) {
|
|
|
- resetTextSignature(pageObj, singleSignatureRelArr, getStageStatus() !== 3);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // if (getStageStatus() === 3) {
|
|
|
- // }
|
|
|
-
|
|
|
- if (isOneBook) {
|
|
|
- me.downloadExcelReportInOneBook(pageDataArr, pageSize, signatureRelArr, rpt_names);
|
|
|
- } else {
|
|
|
- me.downloadExcelReport(pageDataArr, pageSize, rpt_names, signatureRelArr);
|
|
|
- }
|
|
|
- },
|
|
|
- function(failRst){
|
|
|
- $.bootstrapLoading.end();
|
|
|
- console.log(failRst);
|
|
|
- },
|
|
|
- function(exceptionRst){
|
|
|
- $.bootstrapLoading.end();
|
|
|
- console.log(exceptionRst);
|
|
|
- }
|
|
|
- );
|
|
|
- } else {
|
|
|
- // 这个分支本来是为了减少请求,用户已经点过的表,又没有勾选,那么就直接导出EXCEL
|
|
|
- // 但:发现在复杂情况下会影响到原有数据(文本签名 + 签章),为减少麻烦,在前面处理,保证不会走到这分支!
|
|
|
- }
|
|
|
- }
|
|
|
+ this.getOutputCommon('Excel', isOneBook);
|
|
|
},
|
|
|
|
|
|
checkAndGetExcel: function () {
|
|
|
@@ -1141,13 +944,21 @@ let rptControlObj = {
|
|
|
getExcel: function () {
|
|
|
let me = rptControlObj;
|
|
|
if ($("#excelExportType_AllInOneBook")[0].checked) {
|
|
|
- // me.getAllInOneBook();
|
|
|
+ // me.getAllInOneBook(); // 已成历史,删除
|
|
|
rptControlObj.getExcel_New(true);
|
|
|
} else if ($("#excelExportType_IndividualBook")[0].checked) {
|
|
|
- // me.getAllIndividualExcelBook();
|
|
|
+ // me.getAllIndividualExcelBook(); // 已成历史,删除
|
|
|
rptControlObj.getExcel_New(false);
|
|
|
}
|
|
|
},
|
|
|
+ getPdf: function() {
|
|
|
+ let me = rptControlObj;
|
|
|
+ if ($("#pdfExportType_AllInOneFile")[0].checked) {
|
|
|
+ rptControlObj.getPDFPre(true);
|
|
|
+ } else if ($("#pdfExportType_IndividualFile")[0].checked) {
|
|
|
+ rptControlObj.getPDFPre(false);
|
|
|
+ }
|
|
|
+ },
|
|
|
getPdfFontCallbackLight: function(fontProperty) {
|
|
|
rptTplObj.pdfFont['SmartSimsun'].push(fontProperty);
|
|
|
if (rptTplObj.pdfFont['SmartSimsun'].length === 2) {
|
|
|
@@ -1179,22 +990,31 @@ let rptControlObj = {
|
|
|
dynamicLoadJs('https://d2.smartcost.com.cn/cach/SmartSimsun-bold.js', 'bold', me.getPdfFontCallbackLight);
|
|
|
}
|
|
|
},
|
|
|
- getPDFPre: function () {
|
|
|
+ checkAndGetPdf: function () {
|
|
|
+ if (zTreeOprObj.treeObj) {
|
|
|
+ let chkNodes = zTreeOprObj.treeObj.getCheckedNodes(true);
|
|
|
+ if (chkNodes.length > 0) {
|
|
|
+ $("#show_pdf_output_cfg").trigger("click");
|
|
|
+ } else {
|
|
|
+ rptControlObj.getPDFPre(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getPDFPre: function (isOneFile = false) {
|
|
|
let me = rptControlObj;
|
|
|
if (me.isLoading) {
|
|
|
$.bootstrapLoading.start();
|
|
|
console.log('fonts are loading...');
|
|
|
- setTimeout(me.getPDFPre, 3000); //延时3秒
|
|
|
+ setTimeout(me.getPDFPre(isOneFile), 3000); //延时3秒
|
|
|
} else {
|
|
|
$.bootstrapLoading.end(); //根据测试,需要先做一次清理,防止在极端情况下出现阻塞
|
|
|
if (rptTplObj.pdfFont['SmartSimsun'].length === 2) {
|
|
|
- me.getPDFEx();
|
|
|
+ me.getPDFEx(isOneFile);
|
|
|
} else {
|
|
|
$.bootstrapLoading.start();
|
|
|
// dynamicLoadJs('/public/jspdf/SmartSimsun-normal.js',"normal", me.getPdfFontCallback);
|
|
|
// dynamicLoadJs('/public/jspdf/SmartSimsun-normal2.js',"normal", me.getPdfFontCallback);
|
|
|
// dynamicLoadJs('/public/jspdf/SmartSimsun-bold.js',"bold", me.getPdfFontCallback);
|
|
|
-
|
|
|
// dynamicLoadJs('https://d2.smartcost.com.cn/cach/SmartSimsun-normal.js', 'normal', me.getPdfFontCallback);
|
|
|
dynamicLoadJs('https://d2.smartcost.com.cn/cach/SmartSimsun-normal2.js', 'normal', me.getPdfFontCallback);
|
|
|
dynamicLoadJs('https://d2.smartcost.com.cn/cach/SmartSimsun-bold.js', 'bold', me.getPdfFontCallback);
|
|
|
@@ -1221,34 +1041,46 @@ let rptControlObj = {
|
|
|
}
|
|
|
);
|
|
|
},
|
|
|
- getPDFEx: async function () {
|
|
|
- let me = rptControlObj;
|
|
|
- if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0 && PAGE_SHOW['closeExportPdf'] !== 1) {
|
|
|
- let refRptTplIds = [];
|
|
|
- let rpt_names = [], splitArchives = [];
|
|
|
+ getPDFEx: async function (isOneFile = false) {
|
|
|
+ this.getOutputCommon('PDF', isOneFile);
|
|
|
+ },
|
|
|
+ getOutputCommon: async function(outputType, isWholeOne = false) {
|
|
|
+ // 把导出Excel/PDF初步统一起来
|
|
|
+ const pageShowPrp = (outputType === 'Excel') ? 'closeExportExcel' : 'closeExportPdf';
|
|
|
+ const me = rptControlObj;
|
|
|
+ if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0 && PAGE_SHOW[pageShowPrp] !== 1) {
|
|
|
+ const refRptTplIds = [];
|
|
|
+ const rpt_names = [], splitArchives = [];
|
|
|
rptControlObj.getTplIdsCommon(refRptTplIds, rpt_names, splitArchives);
|
|
|
const signatureRelArr = [];
|
|
|
+ if (refRptTplIds.length === 0) {
|
|
|
+ if (zTreeOprObj.currentNode) {
|
|
|
+ //在复杂情况下会影响到原有数据(文本签名 + 签章),为减少麻烦,还是当勾选处理
|
|
|
+ refRptTplIds.push(zTreeOprObj.currentNode.refId);
|
|
|
+ rpt_names.push(zTreeOprObj.currentNode.name);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //
|
|
|
if (refRptTplIds.length > 0) {
|
|
|
let params = rptControlObj.creatCommonExportParam(refRptTplIds);
|
|
|
if (STAGE_ID === -150) {
|
|
|
params.tid = params.tender_id;
|
|
|
params.safe_stage_id = BGL_OBJ.BUSINESS_ID;
|
|
|
}
|
|
|
+ if (outputType === 'Excel') params.option = getExcelOutputOption();
|
|
|
params.splitArchives = splitArchives;
|
|
|
- // params.getPicFlag = true; //专门针对草图项,只有此项为true,才需要把草图信息带过来,预览及打印动态加载草图 // 纠结:但这样还是解决不了效率问题,得另外想交互方式
|
|
|
if (current_stage_id > 0) {
|
|
|
await rptCustomObj.getCustomSelect(params);
|
|
|
}
|
|
|
delete params.orientation; // 打印时有勾选的话,不需要提供方向
|
|
|
$.bootstrapLoading.start();
|
|
|
- if (COMMON_WATER_MARK_PIC_DATA === null || COMMON_WATER_MARK_PIC_DATA === '') {
|
|
|
+ if ((COMMON_WATER_MARK_PIC_DATA === null || COMMON_WATER_MARK_PIC_DATA === '') && CUST_CFG.closeWarterMark === false) {
|
|
|
params.needWaterMark = true;
|
|
|
} else {
|
|
|
params.needWaterMark = false;
|
|
|
}
|
|
|
- params.outputType = 'PDF';
|
|
|
+ params.outputType = outputType;
|
|
|
let url = '/tender/report_api/getMultiReports';
|
|
|
- // if (STAGE_ID === -600) url = '/contract/report_api/getMultiReports';
|
|
|
if (STAGE_ID === -600) {
|
|
|
params.sp_id = BUSINESS_ID;
|
|
|
url = '/contract/report_api/getMultiReports';
|
|
|
@@ -1260,7 +1092,6 @@ let rptControlObj = {
|
|
|
}
|
|
|
CommonAjax.postXsrfEx(url, params, WAIT_TIME_EXPORT, true, getCookie('csrfToken_j'),
|
|
|
async function(result){
|
|
|
- // closeWaitingView();
|
|
|
$.bootstrapLoading.end();
|
|
|
if (params.needWaterMark) COMMON_WATER_MARK_PIC_DATA = result.waterMarkStr;
|
|
|
STAGE_AUDIT = result.stageAudit || [];
|
|
|
@@ -1279,36 +1110,102 @@ let rptControlObj = {
|
|
|
}
|
|
|
signatureRelArr.push(tmpRel);
|
|
|
}
|
|
|
- for (let idx = 0; idx < result.data.length; idx++) {
|
|
|
- const pageData = result.data[idx];
|
|
|
+ // 统一安排merge(除草图外)
|
|
|
+ for (let idx = 0; idx < pageDataArr.length; idx++) {
|
|
|
+ const pageObj = pageDataArr[idx];
|
|
|
+ if (CUST_CFG.closeWarterMark) {
|
|
|
+ pageObj.items.forEach(page => {
|
|
|
+ page.watermark_cells = [];
|
|
|
+ });
|
|
|
+ }
|
|
|
let singleSignatureRelArr = signatureRelArr[idx];
|
|
|
- resetStampSignature(pageData, singleSignatureRelArr, getStageStatus() !== 3, STAGE_AUDIT, LEDGER_LIST);
|
|
|
- await rptSignatureHelper.resetDummySignature(pageData, null); //
|
|
|
+ if (signatureRelInfo && signatureRelInfo.length > 0) {
|
|
|
+ resetStampSignature(pageObj, singleSignatureRelArr, getStageStatus() !== 3, STAGE_AUDIT, LEDGER_LIST);
|
|
|
+ rptSignatureHelper.mergeSignDate(pageObj, singleSignatureRelArr, false, getStageStatus() !== 3); // Excel
|
|
|
+ rptSignatureHelper.mergeSignAudit(pageObj, singleSignatureRelArr, STAGE_AUDIT, getStageStatus() !== 3); // Excel
|
|
|
+ await rptSignatureHelper.resetDummySignature(pageObj, null); // PDF
|
|
|
+ if (PAGE_SHOW.isTextSignature) {
|
|
|
+ resetTextSignature(pageObj, singleSignatureRelArr, getStageStatus() !== 3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ await rptSignatureHelper.resetDummySignature(pageObj, null); //
|
|
|
+
|
|
|
if (PAGE_SHOW.isTextSignature) {
|
|
|
- resetTextSignature(pageData, singleSignatureRelArr, getStageStatus() !== 3);
|
|
|
+ resetTextSignature(pageObj, singleSignatureRelArr, getStageStatus() !== 3);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
- downloadPDFReport(result.data, pageSize, rpt_names, signatureRelArr, result.signatureRelInfo, refRptTplIds, STAGE_AUDIT);
|
|
|
+ if (outputType === 'Excel') {
|
|
|
+ if (isWholeOne) {
|
|
|
+ me.downloadExcelReportInOneBook(pageDataArr, pageSize, signatureRelArr, rpt_names);
|
|
|
+ } else {
|
|
|
+ me.downloadExcelReport(pageDataArr, pageSize, rpt_names, signatureRelArr);
|
|
|
+ }
|
|
|
+ } else if (outputType === 'PDF') {
|
|
|
+ if (isWholeOne) {
|
|
|
+ let allRptName = '';
|
|
|
+ // 重新整理报表名称:有期就 {标段名称}-{模块}-{期数},无期就{标段名称}-{模块}
|
|
|
+ switch (current_stage_id) {
|
|
|
+ case -150:
|
|
|
+ allRptName = `${TENDER_NAME}-安全计量`;
|
|
|
+ break;
|
|
|
+ case -300:
|
|
|
+ // 变更令
|
|
|
+ allRptName = `${TENDER_NAME}-变更令`;
|
|
|
+ break;
|
|
|
+ case -301:
|
|
|
+ // 变更方案
|
|
|
+ allRptName = `${TENDER_NAME}-变更方案`;
|
|
|
+ break;
|
|
|
+ case -302:
|
|
|
+ // 变更立项
|
|
|
+ allRptName = `${TENDER_NAME}-变更立项`;
|
|
|
+ break;
|
|
|
+ case -303:
|
|
|
+ // 变更申请
|
|
|
+ allRptName = `${TENDER_NAME}-变更申请`;
|
|
|
+ break;
|
|
|
+ case -400:
|
|
|
+ // 预付款
|
|
|
+ allRptName = `${TENDER_NAME}-预付款`;
|
|
|
+ break;
|
|
|
+ case -500:
|
|
|
+ // 材差
|
|
|
+ allRptName = `${TENDER_NAME}-材差`;
|
|
|
+ break;
|
|
|
+ case -600:
|
|
|
+ // 合同
|
|
|
+ allRptName = `${TENDER_NAME}-合同`;
|
|
|
+ break;
|
|
|
+ case -700:
|
|
|
+ // 计量管理
|
|
|
+ allRptName = `${TENDER_NAME}-计量管理`;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ // 计量期
|
|
|
+ if (current_stage_order > 0) {
|
|
|
+ allRptName = `${TENDER_NAME}-计量期-${current_stage_order}`;
|
|
|
+ } else {
|
|
|
+ allRptName = `${TENDER_NAME}-计量期`;
|
|
|
+ }
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ rpt_names[0] = allRptName;
|
|
|
+ }
|
|
|
+ downloadPDFReport(pageDataArr, pageSize, rpt_names, signatureRelArr, result.signatureRelInfo, refRptTplIds, STAGE_AUDIT, isWholeOne);
|
|
|
+ }
|
|
|
},
|
|
|
function(failRst){
|
|
|
- // closeWaitingView();
|
|
|
$.bootstrapLoading.end();
|
|
|
console.log(failRst);
|
|
|
},
|
|
|
function(exceptionRst){
|
|
|
- // closeWaitingView();
|
|
|
$.bootstrapLoading.end();
|
|
|
console.log(exceptionRst);
|
|
|
}
|
|
|
);
|
|
|
- } else {
|
|
|
- //这个分支是为了减少请求,用户已经点过的表,又没有勾选,那么就直接导出成PDF
|
|
|
- let pageSize = rptControlObj.getCurrentPageSize();
|
|
|
- let pageData = zTreeOprObj.currentRptPageRst;
|
|
|
- signatureRelArr.push(ROLE_REL_LIST);
|
|
|
- // closeWaitingView();
|
|
|
- $.bootstrapLoading.end();
|
|
|
- JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rpt_names[0], signatureRelArr, STAGE_AUDIT, false, zTreeOprObj._chkPrePayStatus());
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
@@ -1420,52 +1317,63 @@ let rptControlObj = {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-function downloadPDFReport(pageDataArr, pageSize, rpt_names, signatureRelArr, signatureRelInfo, refRptTplIds, STAGE_AUDIT) {
|
|
|
+function downloadPDFReport(pageDataArr, pageSize, rpt_names, signatureRelArr, signatureRelInfo, refRptTplIds, STAGE_AUDIT, isOneFile = false) {
|
|
|
const ttlDtlSignCells = [];
|
|
|
rptControlObj.currentDownloadIdx = 0;
|
|
|
- const private_download = function(newPageDataArr, new_rpt_names) {
|
|
|
- if (rptControlObj.currentDownloadIdx < newPageDataArr.length) {
|
|
|
- let singleSignatureRelArr = [];
|
|
|
- for (let rIdx = 0; rIdx < signatureRelInfo.length; rIdx++) {
|
|
|
- let rptId = refRptTplIds[rptControlObj.currentDownloadIdx];
|
|
|
- if (signatureRelInfo[rIdx].rpt_id === rptId) {
|
|
|
- singleSignatureRelArr = signatureRelArr[rIdx]; // 有些报表可能没有签名
|
|
|
- break;
|
|
|
+ const _downloadAll = () => {
|
|
|
+ const rptName = rpt_names[0];
|
|
|
+ JpcJsPDFHelper.outputAsAllPdf(pageDataArr, pageSize, rptName, signatureRelArr, signatureRelInfo, refRptTplIds, STAGE_AUDIT, false, zTreeOprObj._chkPrePayStatus()); // 精确控制签名
|
|
|
+ for (let pdIdx = 0; pdIdx < pageDataArr.length; pdIdx++) {
|
|
|
+ restoreSignCells(pageDataArr[pdIdx], ttlDtlSignCells[pdIdx], null, null, PAGE_SHOW.isTextSignature, false);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ const private_download = (newPageDataArr, new_rpt_names) => {
|
|
|
+ if (isOneFile) {
|
|
|
+ _downloadAll();
|
|
|
+ } else {
|
|
|
+ if (rptControlObj.currentDownloadIdx < newPageDataArr.length) {
|
|
|
+ let singleSignatureRelArr = [];
|
|
|
+ for (let rIdx = 0; rIdx < signatureRelInfo.length; rIdx++) {
|
|
|
+ let rptId = refRptTplIds[rptControlObj.currentDownloadIdx];
|
|
|
+ if (signatureRelInfo[rIdx].rpt_id === rptId) {
|
|
|
+ singleSignatureRelArr = signatureRelArr[rIdx]; // 有些报表可能没有签名
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- let pageData = newPageDataArr[rptControlObj.currentDownloadIdx];
|
|
|
- let rptName = new_rpt_names[rptControlObj.currentDownloadIdx];
|
|
|
- rptControlObj.currentDownloadIdx++;
|
|
|
+ let pageData = newPageDataArr[rptControlObj.currentDownloadIdx];
|
|
|
+ let rptName = new_rpt_names[rptControlObj.currentDownloadIdx];
|
|
|
+ rptControlObj.currentDownloadIdx++;
|
|
|
|
|
|
- JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rptName, singleSignatureRelArr, STAGE_AUDIT, false, zTreeOprObj._chkPrePayStatus()); // 精确控制签名
|
|
|
- if (pageData.splitArcPages) {
|
|
|
- // 新方式的splitArcPages数据有所不同(主要是为了考虑流水式表处理方便),splitArcPages记录的是每一段的起始页
|
|
|
- // 比如: [1,3,4,6],这里表示总共分4段,第一段起始页是1,总页数是第二段的起始页-第一段的起始页(即:3-1)
|
|
|
- // 最后一段的总页数是:ttlPages - 本段的起始页 + 1
|
|
|
- /*
|
|
|
- let rptNameIdx = 0;
|
|
|
- const ttlPages = pageData.items.length;
|
|
|
- const orgItems = [].concat(pageData.items);
|
|
|
- for (let pIdx = 0; pIdx < pageData.splitArcPages.length; pIdx++) {
|
|
|
- const startPage = pageData.splitArcPages[pIdx];
|
|
|
- let endPage = ttlPages;
|
|
|
- if (pIdx < pageData.splitArcPages.length - 1) {
|
|
|
- endPage = pageData.splitArcPages[pIdx + 1] - 1;
|
|
|
- }
|
|
|
- const indPages = [];
|
|
|
- for (let spIdx = startPage; spIdx <= endPage; spIdx++) {
|
|
|
- indPages.push(orgItems[spIdx - 1]);
|
|
|
+ JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rptName, singleSignatureRelArr, STAGE_AUDIT, false, zTreeOprObj._chkPrePayStatus()); // 精确控制签名
|
|
|
+ if (pageData.splitArcPages) {
|
|
|
+ // 新方式的splitArcPages数据有所不同(主要是为了考虑流水式表处理方便),splitArcPages记录的是每一段的起始页
|
|
|
+ // 比如: [1,3,4,6],这里表示总共分4段,第一段起始页是1,总页数是第二段的起始页-第一段的起始页(即:3-1)
|
|
|
+ // 最后一段的总页数是:ttlPages - 本段的起始页 + 1
|
|
|
+ /*
|
|
|
+ let rptNameIdx = 0;
|
|
|
+ const ttlPages = pageData.items.length;
|
|
|
+ const orgItems = [].concat(pageData.items);
|
|
|
+ for (let pIdx = 0; pIdx < pageData.splitArcPages.length; pIdx++) {
|
|
|
+ const startPage = pageData.splitArcPages[pIdx];
|
|
|
+ let endPage = ttlPages;
|
|
|
+ if (pIdx < pageData.splitArcPages.length - 1) {
|
|
|
+ endPage = pageData.splitArcPages[pIdx + 1] - 1;
|
|
|
+ }
|
|
|
+ const indPages = [];
|
|
|
+ for (let spIdx = startPage; spIdx <= endPage; spIdx++) {
|
|
|
+ indPages.push(orgItems[spIdx - 1]);
|
|
|
+ }
|
|
|
+ pageData.items = indPages;
|
|
|
+ JpcJsPDFHelper.outputAsPdf(pageData, pageSize, `${rptName}_${rptNameIdx}`, singleSignatureRelArr, STAGE_AUDIT);
|
|
|
+ rptNameIdx++;
|
|
|
}
|
|
|
- pageData.items = indPages;
|
|
|
- JpcJsPDFHelper.outputAsPdf(pageData, pageSize, `${rptName}_${rptNameIdx}`, singleSignatureRelArr, STAGE_AUDIT);
|
|
|
- rptNameIdx++;
|
|
|
+ pageData.items = orgItems;
|
|
|
+ //*/
|
|
|
+ // 已验证拆分ok
|
|
|
}
|
|
|
- pageData.items = orgItems;
|
|
|
- //*/
|
|
|
- // 已验证拆分ok
|
|
|
+ restoreSignCells(newPageDataArr[rptControlObj.currentDownloadIdx - 1], ttlDtlSignCells[rptControlObj.currentDownloadIdx - 1], null, null, PAGE_SHOW.isTextSignature, false);
|
|
|
+ if (rptControlObj.currentDownloadIdx < newPageDataArr.length) setTimeout(private_download(newPageDataArr, new_rpt_names), 2000);
|
|
|
}
|
|
|
- restoreSignCells(newPageDataArr[rptControlObj.currentDownloadIdx - 1], ttlDtlSignCells[rptControlObj.currentDownloadIdx - 1], null, null, PAGE_SHOW.isTextSignature, false);
|
|
|
- if (rptControlObj.currentDownloadIdx < newPageDataArr.length) setTimeout(private_download(newPageDataArr, new_rpt_names), 2000);
|
|
|
}
|
|
|
};
|
|
|
// 导出PDF真实优化代码
|