Przeglądaj źródła

导出PDF绕过一次10个限制

TonyKang 5 lat temu
rodzic
commit
78f61eb4ad
1 zmienionych plików z 26 dodań i 6 usunięć
  1. 26 6
      web/building_saas/report/js/rpt_main.js

+ 26 - 6
web/building_saas/report/js/rpt_main.js

@@ -1075,10 +1075,15 @@ let rptControlObj = {
                         $.bootstrapLoading.end();
                         me._hidePdfIniPage();
                         let pageSize = rptControlObj.getCurrentPageSize();
+                        let rstRptNames = [];
                         for (let idx = 0; idx < result.length; idx++) {
-                            let pageData = result[idx];
-                            JpcJsPDFHelper.outputAsPdf(pageData, pageSize, result[idx][JV.NODE_PAGE_INFO][JV.NODE_MAIN_INFO_RPT_NAME]);
+                            rstRptNames.push(result[idx][JV.NODE_PAGE_INFO][JV.NODE_MAIN_INFO_RPT_NAME]);
                         }
+                        downloadPDFReport(result, pageSize, rstRptNames);
+                        // for (let idx = 0; idx < result.length; idx++) {
+                        //     let pageData = result[idx];
+                        //     JpcJsPDFHelper.outputAsPdf(pageData, pageSize, result[idx][JV.NODE_PAGE_INFO][JV.NODE_MAIN_INFO_RPT_NAME]);
+                        // }
                     },
                     function(failRst){
                         $.bootstrapLoading.end();
@@ -1114,10 +1119,11 @@ let rptControlObj = {
                                 $.bootstrapLoading.end();
                                 me._hidePdfIniPage();
                                 let pageSize = rptControlObj.getCurrentPageSize();
-                                for (let idx = 0; idx < result.length; idx++) {
-                                    let pageData = result[idx];
-                                    JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rpt_names[idx]);
-                                }
+                                downloadPDFReport(result, pageSize, rpt_names);
+                                // for (let idx = 0; idx < result.length; idx++) {
+                                //     let pageData = result[idx];
+                                //     JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rpt_names[idx]);
+                                // }
                             },
                             function(failRst){
                                 $.bootstrapLoading.end();
@@ -1241,6 +1247,20 @@ let rptControlObj = {
     }
 };
 
+function downloadPDFReport(pageDataArr, pageSize, rpt_names) {
+    rptControlObj.currentDownloadIdx = 0;
+    const private_download = function() {
+        if (rptControlObj.currentDownloadIdx < pageDataArr.length) {
+            let pageData = pageDataArr[rptControlObj.currentDownloadIdx];
+            let rptName = rpt_names[rptControlObj.currentDownloadIdx];
+            rptControlObj.currentDownloadIdx++;
+            JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rptName);
+            if (rptControlObj.currentDownloadIdx < pageDataArr.length) setTimeout(private_download, 1000);
+        }
+    }
+    private_download();
+}
+
 function downloadReport(urls) {
     //考虑到多个报表下载,一些浏览器(如chrome)不允许一下子下载多个文件,得缓缓处理,统一在这处理
     rptControlObj.currentDownloadUrl = null;