TonyKang пре 5 година
родитељ
комит
b8a3cb9ef8

+ 3 - 0
web/building_saas/report/html/rpt_main.html

@@ -37,6 +37,7 @@
                                 <!--
                                 <button type="button" class="btn btn-outline-primary btn-sm" onclick="rptControlObj.getPDF()"><i class="fa fa-file-pdf-o"></i> PDF <span class="badge badge-secondary">0</span></button>
                                 -->
+                                <button type="button" class="" id="ini_PDF_Btn" style="display: none" data-toggle="modal" data-target="#ini_PDF_cover"><i class="fa fa-file-pdf-o"></i></button>
                                 <button type="button" class="btn btn-outline-primary btn-sm" onclick="rptControlObj.getPDFPre()"><i class="fa fa-file-pdf-o"></i> PDF <span class="badge badge-secondary">0</span></button>
                             </div>
                         </div>
@@ -114,6 +115,8 @@
 <%include ./rpt_export_excel.html %>
 <!--弹出-->
 <%include ./rpt_select_projects.html %>
+<!--弹出PDF初始化-->
+<%include ./rpt_pdf_js_initialize.html %>
 <script>
     const SCREEN_DPI = [];
     function getScreenDPI() {

+ 13 - 0
web/building_saas/report/html/rpt_pdf_js_initialize.html

@@ -0,0 +1,13 @@
+<div class="modal fade" id="ini_PDF_cover" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">初始化PDF导出</h5>
+            </div>
+            <div class="modal-body">
+                <h5>正在初始化PDF导出,请稍后...<i class="fa fa-spinner fa-pulse fa-fw"></i></h5>
+                <button class="btn btn-secondary" type="button" id="ini_PDF_Btn_Cancel" style="display: none" data-dismiss="modal"></button>
+            </div>
+        </div>
+    </div>
+</div>

+ 30 - 1
web/building_saas/report/js/rpt_main.js

@@ -1011,12 +1011,13 @@ let rptControlObj = {
     },
     getPDFPre: function () {
         let me = rptControlObj;
-        $.bootstrapLoading.start();
         if (rptTplObj.pdfFont['SmartSimsun'].length === 2) {
+            $.bootstrapLoading.start();
             me.getPDFEx();
         } else {
             // dynamicLoadJs('/lib/jspdf/SmartSimsun-normal.js', 'normal', me.getPdfFontCallback);
             // dynamicLoadJs('/lib/jspdf/SmartSimsun-bold.js', 'bold', me.getPdfFontCallback);
+            $("#ini_PDF_Btn").trigger("click");
             dynamicLoadJs('https://d2.smartcost.com.cn/cach/SmartSimsun-normal.js', 'normal', me.getPdfFontCallback);
             dynamicLoadJs('https://d2.smartcost.com.cn/cach/SmartSimsun-bold.js', 'bold', me.getPdfFontCallback);
         }
@@ -1040,6 +1041,10 @@ let rptControlObj = {
                 CommonAjax.postEx("report_api/getMultiReports", params, 30000, true,
                     function(result){
                         $.bootstrapLoading.end();
+                        if ($('#ini_PDF_cover').is(':visible')) {
+                            $("#ini_PDF_Btn_Cancel").trigger("click");
+                            // $("#ini_PDF_cover").remove();
+                        }
                         let pageSize = rptControlObj.getCurrentPageSize();
                         for (let idx = 0; idx < result.length; idx++) {
                             let pageData = result[idx];
@@ -1048,10 +1053,18 @@ let rptControlObj = {
                     },
                     function(failRst){
                         $.bootstrapLoading.end();
+                        if ($('#ini_PDF_cover').is(':visible')) {
+                            $("#ini_PDF_Btn_Cancel").trigger("click");
+                            // $("#ini_PDF_cover").remove();
+                        }
                         console.log(failRst);
                     },
                     function(exceptionRst){
                         $.bootstrapLoading.end();
+                        if ($('#ini_PDF_cover').is(':visible')) {
+                            $("#ini_PDF_Btn_Cancel").trigger("click");
+                            // $("#ini_PDF_cover").remove();
+                        }
                         console.log(exceptionRst);
                     }
                 );
@@ -1076,6 +1089,10 @@ let rptControlObj = {
                         CommonAjax.postEx("report_api/getMultiReports", params, 30000, true,
                             function(result){
                                 $.bootstrapLoading.end();
+                                if ($('#ini_PDF_cover').is(':visible')) {
+                                    $("#ini_PDF_Btn_Cancel").trigger("click");
+                                    // $("#ini_PDF_cover").remove();
+                                }
                                 let pageSize = rptControlObj.getCurrentPageSize();
                                 for (let idx = 0; idx < result.length; idx++) {
                                     let pageData = result[idx];
@@ -1084,10 +1101,18 @@ let rptControlObj = {
                             },
                             function(failRst){
                                 $.bootstrapLoading.end();
+                                if ($('#ini_PDF_cover').is(':visible')) {
+                                    $("#ini_PDF_Btn_Cancel").trigger("click");
+                                    // $("#ini_PDF_cover").remove();
+                                }
                                 console.log(failRst);
                             },
                             function(exceptionRst){
                                 $.bootstrapLoading.end();
+                                if ($('#ini_PDF_cover').is(':visible')) {
+                                    $("#ini_PDF_Btn_Cancel").trigger("click");
+                                    // $("#ini_PDF_cover").remove();
+                                }
                                 console.log(exceptionRst);
                             }
                         );
@@ -1096,6 +1121,10 @@ let rptControlObj = {
                         let pageSize = rptControlObj.getCurrentPageSize();
                         let pageData = zTreeOprObj.currentRptPageRst;
                         $.bootstrapLoading.end();
+                        if ($('#ini_PDF_cover').is(':visible')) {
+                            $("#ini_PDF_Btn_Cancel").trigger("click");
+                            // $("#ini_PDF_cover").remove();
+                        }
                         JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rpt_names[0]);
                     }
                 }