Explorar el Código

导出PDF绕过一次10个限制

TonyKang hace 5 años
padre
commit
b2ead44dd9
Se han modificado 1 ficheros con 19 adiciones y 4 borrados
  1. 19 4
      web/building_saas/report/js/rpt_main.js

+ 19 - 4
web/building_saas/report/js/rpt_main.js

@@ -564,10 +564,11 @@ let rptControlObj = {
                         // $("#ini_PDF_cover").remove();
                     }
                     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();
@@ -700,6 +701,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;