소스 검색

Merge branch 'dev' of http://192.168.1.41:3000/maixinrong/Calculation into dev

MaiXinRong 4 년 전
부모
커밋
a3ce59d2e5
1개의 변경된 파일50개의 추가작업 그리고 7개의 파일을 삭제
  1. 50 7
      app/public/report/js/rpt_main.js

+ 50 - 7
app/public/report/js/rpt_main.js

@@ -888,8 +888,44 @@ let rptControlObj = {
 
 function downloadPDFReport(pageDataArr, pageSize, rpt_names, signatureRelArr, signatureRelInfo, refRptTplIds, STAGE_AUDIT) {
     rptControlObj.currentDownloadIdx = 0;
-    const private_download = function() {
-        if (rptControlObj.currentDownloadIdx < pageDataArr.length) {
+    const _resetPageDataByBreaks = function(breakAmt, newRptNames) {
+        let rst = [];
+        for (let pi = 0; pi < pageDataArr.length; pi++) {
+            let pageItem = pageDataArr[pi];
+            let currentRptName = rpt_names[pi];
+            if (pageItem.items.length > breakAmt) {
+                let pa = Math.floor(pageItem.items.length / breakAmt);
+                if (pageItem.items.length % breakAmt > 0) {
+                    pa++;
+                }
+                for (let idx = 0; idx < pa; idx++) {
+                    let newPageDataObj = {items: []};
+                    // newPageDataObj[JV.NODE_PAGE_INFO] = JSON.parse(JSON.stringify(pageItem[JV.NODE_PAGE_INFO]));
+                    newPageDataObj[JV.NODE_PAGE_INFO] = pageItem[JV.NODE_PAGE_INFO];
+                    // newPageDataObj[JV.BAND_PROP_MERGE_BAND] = JSON.parse(JSON.stringify(pageItem[JV.BAND_PROP_MERGE_BAND]));
+                    newPageDataObj[JV.BAND_PROP_MERGE_BAND] = pageItem[JV.BAND_PROP_MERGE_BAND];
+
+                    newPageDataObj[JV.NODE_FONT_COLLECTION] = pageItem[JV.NODE_FONT_COLLECTION];
+                    newPageDataObj[JV.NODE_STYLE_COLLECTION] = pageItem[JV.NODE_STYLE_COLLECTION];
+                    newPageDataObj[JV.NODE_CONTROL_COLLECTION] = pageItem[JV.NODE_CONTROL_COLLECTION];
+
+                    for ( let dIdx = idx * breakAmt; dIdx < (Math.min( (idx + 1) * breakAmt, pageItem.items.length)); dIdx++) {
+                        // newPageDataObj.items.push(JSON.parse(JSON.stringify( pageItem.items[dIdx] )));
+                        newPageDataObj.items.push(pageItem.items[dIdx]);
+                    }
+                    rst.push(newPageDataObj);
+                    newRptNames.push(currentRptName + '_' + (idx + 1));
+                }
+            } else {
+                rst.push(pageItem);
+                newRptNames.push(currentRptName);
+            }
+        }
+        return rst;
+    };
+
+    const private_download = function(newPageDataArr, new_rpt_rames) {
+        if (rptControlObj.currentDownloadIdx < newPageDataArr.length) {
             let singleSignatureRelArr = [];
             for (let rIdx = 0; rIdx < signatureRelInfo.length; rIdx++) {
                 // for (const rptId of refRptTplIds) {
@@ -908,14 +944,21 @@ function downloadPDFReport(pageDataArr, pageSize, rpt_names, signatureRelArr, si
                 //     break;
                 // }
             }
-            let pageData = pageDataArr[rptControlObj.currentDownloadIdx];
-            let rptName = rpt_names[rptControlObj.currentDownloadIdx];
+            let pageData = newPageDataArr[rptControlObj.currentDownloadIdx];
+            let rptName = new_rpt_rames[rptControlObj.currentDownloadIdx];
             rptControlObj.currentDownloadIdx++;
             JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rptName, singleSignatureRelArr, STAGE_AUDIT); // 精确控制签名
-            if (rptControlObj.currentDownloadIdx < pageDataArr.length) setTimeout(private_download, 2000);
+            if (rptControlObj.currentDownloadIdx < newPageDataArr.length) setTimeout(private_download(newPageDataArr, new_rpt_rames), 2000);
         }
-    }
-    private_download();
+    };
+    /*
+    // 这里控制导出PDF的页码数量(如果有设置的话)
+    let newRptNames = []; //这个为导出PDF控制分页用
+    let newPageDataRst = _resetPageDataByBreaks(10, newRptNames);
+    private_download(newPageDataRst, newRptNames);
+    /*/
+    private_download(pageDataArr, rpt_names);
+    //*/
 }
 
 function downloadReport(urls) {