Sfoglia il codice sorgente

自定义工程选择

TonyKang 4 anni fa
parent
commit
a0de1a4ec8

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

@@ -35,7 +35,6 @@
                                 <button type="button" class="btn btn-outline-primary btn-sm" id="show_excel_output_cfg" data-toggle="modal" data-target="#export_excel" style="display:none"></button>
                                 <button type="button" class="btn btn-outline-primary btn-sm" id="show_project_folder" data-toggle="modal" data-target="#cpoj" style="display:none"></button>
                                 <!--
-                                <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>

+ 4 - 0
web/building_saas/report/html/rpt_select_projects.html

@@ -32,6 +32,10 @@
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <a onclick="zTreeOprObj.requestSumAndNormalRptForPDF_Ex()" class="btn btn-primary" data-dismiss="modal">确定</a>
             </div>
+            <div class="modal-footer" id="divReqCustomSelect" style="display:none">
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+                <a onclick="zTreeOprObj.requestNormalReportAfterSelection()" class="btn btn-primary" data-dismiss="modal">确定</a>
+            </div>
         </div>
     </div>
 </div>

+ 97 - 121
web/building_saas/report/js/rpt_main.js

@@ -273,15 +273,28 @@ let zTreeOprObj = {
     onCheck: function(event, treeId, treeNode) {
         zTreeOprObj.countChkedRptTpl();
     },
+    _chkIfNeedShowPrjSelection: function(treeNode) {
+        let rst = false;
+        if (treeNode.hasOwnProperty('flags')) {
+            if (treeNode.flags.reportType && treeNode.flags.reportType !== 'NA') {
+                rst = true;
+            } else if (treeNode.flags.sumLevelType === 'custom') {
+                rst = true;
+            }
+        }
+        return rst;
+    },
     onClick: function(event,treeId,treeNode) {
         let me = zTreeOprObj;
         if (treeNode.nodeType === TPL_TYPE_TEMPLATE && treeNode.refId > 0) {
             me.currentNode = treeNode;
-            if (treeNode.hasOwnProperty('flags') && treeNode.flags.hasOwnProperty('reportType') && treeNode['flags']['reportType'] !== 'NA' && treeNode['flags']['reportType'] !== null) {
+            if (me._chkIfNeedShowPrjSelection(treeNode)) {
                 if (treeNode['flags']['reportType'] === 'billSummary') {
                     me.requestPrjFolderForBillsSummary();
                 } else if (treeNode['flags']['reportType'] === 'gljSummary') {
                     me.requestPrjFolderForGljSummary();
+                } else if (treeNode['flags']['sumLevelType'] === 'custom') {
+                    me.requestPrjFolderForNormalSummary();
                 }
             } else {
                 let params = {};
@@ -469,6 +482,7 @@ let zTreeOprObj = {
         $("#divReqCommonSummaryExcel")[0].style.display = "none";
         $("#divReqCommonSummaryMultiExcel")[0].style.display = "none";
         $("#divReqCommonSummaryPDF")[0].style.display = "none";
+        $("#divReqCustomSelect")[0].style.display = "none";
         me.requestPrjFolderCommon();
     },
     requestPrjFolderForGljSummary: function () {
@@ -478,6 +492,17 @@ let zTreeOprObj = {
         $("#divReqCommonSummaryExcel")[0].style.display = "none";
         $("#divReqCommonSummaryMultiExcel")[0].style.display = "none";
         $("#divReqCommonSummaryPDF")[0].style.display = "none";
+        $("#divReqCustomSelect")[0].style.display = "none";
+        me.requestPrjFolderCommon();
+    },
+    requestPrjFolderForNormalSummary: function () {
+        let me = zTreeOprObj;
+        $("#divReqBillSummary")[0].style.display = "none";
+        $("#divReqGljSummary")[0].style.display = "none";
+        $("#divReqCommonSummaryExcel")[0].style.display = "none";
+        $("#divReqCommonSummaryMultiExcel")[0].style.display = "none";
+        $("#divReqCommonSummaryPDF")[0].style.display = "none";
+        $("#divReqCustomSelect")[0].style.display = "";
         me.requestPrjFolderCommon();
     },
     requestBillsSummaryRpt: function () {
@@ -580,31 +605,6 @@ let zTreeOprObj = {
             );
         }
     },
-    requestSumAndNormalRptForPDF: function () {
-        let rpt_names = [], bill_rpt_names = [], glj_rpt_names = [];
-        let refRptTplIds = [], refBillSumPrjsIds = [], refGljSumPrjsIds = [];
-        let prj_ids_arr = [];
-        rptControlObj.getTplIdsCommon(refRptTplIds, refBillSumPrjsIds, refGljSumPrjsIds, rpt_names, bill_rpt_names, glj_rpt_names, prj_ids_arr);
-        let params = rptControlObj.creatCommonExportParam(refRptTplIds, refBillSumPrjsIds, refGljSumPrjsIds);
-        params.sum_rpt_names = bill_rpt_names.concat(glj_rpt_names);
-        params.rpt_names = rpt_names;
-        params.prj_ids_arr = prj_ids_arr;
-        params.isOneSheet = true;
-
-        CommonAjax.postEx("report_api/createPdfFiles", params, WAIT_TIME_EXPORT, true, function(result){
-                if (result) {
-                    let uuIdUrls = [];
-                    for (let uuIdObj of result) {
-                        let uuIdUrl =  "/report_api/getFileByUUID/" + uuIdObj.uuid + "/" + stringUtil.replaceAll(uuIdObj.reportName, "#", "_") + "/pdf";
-                        uuIdUrls.push(uuIdUrl);
-                    }
-                    downloadReport(uuIdUrls);
-                } else {
-                    //
-                }
-            }, null, null
-        );
-    },
     requestSumAndNormalRptForPDF_Ex: function () {
         let rpt_names = [], bill_rpt_names = [], glj_rpt_names = [];
         let refRptTplIds = [], refBillSumPrjsIds = [], refGljSumPrjsIds = [];
@@ -695,6 +695,21 @@ let zTreeOprObj = {
             }
         );
     },
+    requestNormalReportAfterSelection: function() {
+        let me = zTreeOprObj;
+        if (me.currentNode) {
+            let treeNode = me.currentNode;
+            let params = {};
+            let pageSize = rptControlObj.getCurrentPageSize();
+            params.pageSize = pageSize;
+            params.rpt_tpl_id = treeNode.refId;
+            params.prj_id = projectObj.project.projectInfo.ID;
+            params.custCfg = me.reportPageCfg;
+            params.prj_ids = rptControlObj._getRefPrjIdsByRptNode(treeNode);
+            me.requestNormalReport(params);
+            me.countChkedRptTpl();
+        }
+    },
     showPage: function (pageNum, canvas) {
         let me = zTreeOprObj;
         if (pageNum >= 1 && pageNum <= me.maxPages) {
@@ -782,22 +797,26 @@ let rptControlObj = {
         if (me.currentOutputType === "Excel") {
             me.getExcel();
         } else if (me.currentOutputType === "PDF") {
-            me.getPDF();
+            me.getPDFEx();
         } else {
             //other types if needed.
         }
     },
     getTplIdsCommon: function (refRptTplIds, refBillSumPrjsIds, refGljSumPrjsIds, rpt_names, bill_rpt_names, glj_rpt_names, prj_ids_arr) {
         for (let node of zTreeOprObj.checkedRptTplNodes) {
-            if (node.hasOwnProperty('flags') && node.flags.hasOwnProperty('reportType') && node['flags']['reportType'] !== 'NA' && node['flags']['reportType'] !== null) {
+            if (zTreeOprObj._chkIfNeedShowPrjSelection(node)) {
                 if (node['flags']['reportType'] === 'billSummary') {
                     refBillSumPrjsIds.push(node.refId);
                     if (bill_rpt_names) bill_rpt_names.push(node.name);
                 } else if (node['flags']['reportType'] === 'gljSummary') {
                     refGljSumPrjsIds.push(node.refId);
                     if (glj_rpt_names) glj_rpt_names.push(node.name);
+                } else if (treeNode.flags.sumLevelType === 'custom') {
+                    //当普通方式处理
+                    refRptTplIds.push(node.refId);
+                    if (rpt_names) rpt_names.push(node.name);
+                    if (prj_ids_arr) prj_ids_arr.push(rptControlObj._getRefPrjIdsByRptNode(node));
                 }
-                // if (prj_ids_arr) prj_ids_arr.push([]); // 清单汇总及工料机汇总有专门的分支处理,不需要加空数组,加了反而会造成混淆
             } else {
                 refRptTplIds.push(node.refId);
                 if (rpt_names) rpt_names.push(node.name);
@@ -820,6 +839,16 @@ let rptControlObj = {
                         if (rst.indexOf(prj.ID) < 0) rst.push(prj.ID);
                     }
                 }
+            } else if (rptNode.flags.sumLevelType === 'custom') {
+                //用户自己挑选
+                let nodes = (zTreeOprObj.prjFolderTreeObj === null)?[]:zTreeOprObj.prjFolderTreeObj.getCheckedNodes(true);
+                zTreeOprObj.selectedPrjIDs = [];
+                for (let node of nodes) {
+                    if (node.level > 0) {
+                        rst.push(node.ID);
+                    }
+                }
+        
             }
         }
         if (rst.length === 0) rst.push(projectObj.project.projectInfo.ID);
@@ -859,7 +888,8 @@ let rptControlObj = {
             let orgRptName = projectObj.project.projectInfo.name;
             let refRptTplIds = [], refBillSumPrjsIds = [], refGljSumPrjsIds = [];
             let prj_ids_arr = [];
-            rptControlObj.getTplIdsCommon(refRptTplIds, refBillSumPrjsIds, refGljSumPrjsIds, prj_ids_arr);
+            // rptControlObj.getTplIdsCommon(refRptTplIds, refBillSumPrjsIds, refGljSumPrjsIds, prj_ids_arr);
+            rptControlObj.getTplIdsCommon(refRptTplIds, refBillSumPrjsIds, refGljSumPrjsIds, null, null, null, prj_ids_arr);
             if (zTreeOprObj.selectedPrjIDs.length > 0 && (refBillSumPrjsIds.length > 0 || refGljSumPrjsIds.length > 0)) {
                 let params = rptControlObj.creatCommonExportParam(refRptTplIds, refBillSumPrjsIds, refGljSumPrjsIds);
                 params.rptName = orgRptName;
@@ -885,20 +915,19 @@ let rptControlObj = {
                     }
                 );
             } else {
-                if (refBillSumPrjsIds.length > 0 || refGljSumPrjsIds.length > 0) {
-                    $("#divReqBillSummary")[0].style.display = "none";
-                    $("#divReqGljSummary")[0].style.display = "none";
-                    $("#divReqCommonSummaryExcel")[0].style.display = "";
-                    $("#divReqCommonSummaryMultiExcel")[0].style.display = "none";
-                    $("#divReqCommonSummaryPDF")[0].style.display = "none";
+                let needSelect = false;
+                for (let treeNode of zTreeOprObj.checkedRptTplNodes) {
+                    if (zTreeOprObj._chkIfNeedShowPrjSelection(treeNode)) {
+                        needSelect = true;
+                        break;
+                    }
+                }
+                if (needSelect) {
+                    activeBranchAfterPrjSelection('divReqCommonSummaryExcel');
                     zTreeOprObj.requestPrjFolderCommon(); //先处理需要汇总的报表,走另外一个分支
                 } else if (refRptTplIds.length > 0) {
-                    let prj_ids_arr = [];
                     let params = {};
                     params.prj_id = projectObj.project.projectInfo.ID;
-                    for (let idx = 0; idx < refRptTplIds.length; idx++) {
-                        prj_ids_arr.push([projectObj.project.projectInfo.ID]);
-                    }
                     params.prj_ids_arr = prj_ids_arr;
                     params.rpt_ids = refRptTplIds;
                     params.rptName = orgRptName;
@@ -970,12 +999,15 @@ let rptControlObj = {
                     }
                 );
             } else {
-                if (refBillSumPrjsIds.length > 0 || refGljSumPrjsIds.length > 0) {
-                    $("#divReqBillSummary")[0].style.display = "none";
-                    $("#divReqGljSummary")[0].style.display = "none";
-                    $("#divReqCommonSummaryExcel")[0].style.display = "none";
-                    $("#divReqCommonSummaryMultiExcel")[0].style.display = "";
-                    $("#divReqCommonSummaryPDF")[0].style.display = "none";
+                let needSelect = false;
+                for (let treeNode of zTreeOprObj.checkedRptTplNodes) {
+                    if (zTreeOprObj._chkIfNeedShowPrjSelection(treeNode)) {
+                        needSelect = true;
+                        break;
+                    }
+                }
+                if (needSelect) {
+                    activeBranchAfterPrjSelection('divReqCommonSummaryMultiExcel');
                     zTreeOprObj.requestPrjFolderCommon(); //先处理需要汇总的报表,走另外一个分支
                 } else if (refRptTplIds.length > 0) {
                     let params = {};
@@ -1037,71 +1069,6 @@ let rptControlObj = {
             me.getAllIndividualExcelBook();
         }
     },
-    getPDF: function () {
-        let me = rptControlObj;
-        if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
-            let refRptTplIds = [], refBillSumPrjsIds = [], refGljSumPrjsIds = [];
-            let rpt_names = [], bill_rpt_names = [], glj_rpt_names = [];
-            let prj_ids_arr = [];
-            rptControlObj.getTplIdsCommon(refRptTplIds, refBillSumPrjsIds, refGljSumPrjsIds, rpt_names, bill_rpt_names, glj_rpt_names, prj_ids_arr);
-            if (zTreeOprObj.selectedPrjIDs.length > 0 && (glj_rpt_names.length > 0 || bill_rpt_names.length > 0)) {
-                let params = rptControlObj.creatCommonExportParam();
-                params.prj_id = projectObj.project.projectInfo.ID;
-                params.prj_ids_arr = prj_ids_arr;
-                params.sum_rpt_names = bill_rpt_names.concat(glj_rpt_names);
-                params.rpt_ids = refRptTplIds;
-                params.rpt_bill_tpl_ids = refBillSumPrjsIds;
-                params.rpt_glj_tpl_ids = refGljSumPrjsIds;
-                params.rpt_names = rpt_names;
-                params.isOneSheet = true;
-                params.rptName = projectObj.project.projectInfo.name;
-                CommonAjax.postEx("report_api/createPdfFiles", params, WAIT_TIME_EXPORT, true, function(result){
-                        if (result) {
-                            let uuIdUrls = [];
-                            for (let uuIdObj of result) {
-                                let uuIdUrl =  "/report_api/getFileByUUID/" + uuIdObj.uuid + "/" + stringUtil.replaceAll(uuIdObj.reportName, "#", "_") + "/pdf";
-                                uuIdUrls.push(uuIdUrl);
-                            }
-                            downloadReport(uuIdUrls);
-                        } else {
-                            //
-                        }
-                    }, null, null
-                );
-            } else {
-                if (refBillSumPrjsIds.length > 0 || refGljSumPrjsIds.length > 0) {
-                    $("#divReqBillSummary")[0].style.display = "none";
-                    $("#divReqGljSummary")[0].style.display = "none";
-                    $("#divReqCommonSummaryExcel")[0].style.display = "none";
-                    $("#divReqCommonSummaryMultiExcel")[0].style.display = "none";
-                    $("#divReqCommonSummaryPDF")[0].style.display = "";
-                    zTreeOprObj.requestPrjFolderCommon(); //先处理需要汇总的报表,走另外一个分支
-                } else if (refRptTplIds.length > 0) {
-                    let params = {};
-                    params.prj_id = projectObj.project.projectInfo.ID;
-                    params.rpt_ids = refRptTplIds;
-                    params.rpt_names = rpt_names;
-                    params.pageSize = me.getCurrentPageSize();
-                    params.orientation = ((zTreeOprObj.checkedRptTplNodes.length > 1)?null:me.getCurrentOrientation());
-                    params.custCfg = zTreeOprObj.reportPageCfg;
-                    params.option = "normal";
-                    CommonAjax.postEx("report_api/createPdfFiles", params, WAIT_TIME_EXPORT, true, function(result){
-                            if (result) {
-                                let uuIdUrls = [];
-                                for (let uuIdObj of result) {
-                                    let uuIdUrl =  "/report_api/getFileByUUID/" + uuIdObj.uuid + "/" + stringUtil.replaceAll(uuIdObj.reportName, "#", "_") + "/pdf";
-                                    uuIdUrls.push(uuIdUrl);
-                                }
-                                downloadReport(uuIdUrls);
-                            } else {
-                                //
-                            }
-                        }, null, null
-                    );
-                }
-            }
-        }
-    },
     _hidePdfIniPage: function () {
         if ($('#ini_PDF_cover').is(':visible')) {
             // $("#ini_PDF_Btn_Cancel").trigger("click");
@@ -1185,12 +1152,15 @@ let rptControlObj = {
                     }
                 );
             } else {
-                if (refBillSumPrjsIds.length > 0 || refGljSumPrjsIds.length > 0) {
-                    $("#divReqBillSummary")[0].style.display = "none";
-                    $("#divReqGljSummary")[0].style.display = "none";
-                    $("#divReqCommonSummaryExcel")[0].style.display = "none";
-                    $("#divReqCommonSummaryMultiExcel")[0].style.display = "none";
-                    $("#divReqCommonSummaryPDF")[0].style.display = "";
+                let needSelect = false;
+                for (let treeNode of zTreeOprObj.checkedRptTplNodes) {
+                    if (zTreeOprObj._chkIfNeedShowPrjSelection(treeNode)) {
+                        needSelect = true;
+                        break;
+                    }
+                }
+                if (needSelect) {
+                    activeBranchAfterPrjSelection('divReqCommonSummaryPDF');
                     zTreeOprObj.requestPrjFolderCommon(); //先处理需要汇总的报表,走另外一个分支
                 } else if (refRptTplIds.length > 0) {
                     let params = {};
@@ -1209,10 +1179,6 @@ let rptControlObj = {
                             me._hidePdfIniPage();
                             let pageSize = rptControlObj.getCurrentPageSize();
                             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();
@@ -1392,4 +1358,14 @@ function dynamicLoadCss(url) {
     link.rel = 'stylesheet';
     link.href = url;
     head.appendChild(link);
+}
+
+function activeBranchAfterPrjSelection(idStr) {
+    $("#divReqBillSummary")[0].style.display = "none";
+    $("#divReqGljSummary")[0].style.display = "none";
+    $("#divReqCommonSummaryExcel")[0].style.display = "none";
+    $("#divReqCommonSummaryMultiExcel")[0].style.display = "none";
+    $("#divReqCommonSummaryPDF")[0].style.display = "none";
+    $("#divReqCustomSelect")[0].style.display = "none";
+    $(`#${idStr}`)[0].style.display = "";
 }

+ 0 - 18
web/building_saas/report/js/rpt_print.js

@@ -19,16 +19,10 @@ let rptPrintHelper = {
             params.rpt_glj_tpl_ids = refGljSumPrjsIds;
             CommonAjax.postEx("report_api/getMultiReports", params, 10000, true,
                 function(result){
-                    //sessionStorage.currentPageData = JSON.stringify(zTreeOprObj.currentRptPageRst);
                     sessionStorage.multiRptsData = JSON.stringify(result);
                     sessionStorage.pageSize = rptControlObj.getCurrentPageSize();
                     sessionStorage.orientation = rptControlObj.getCurrentOrientation();
                     sessionStorage.scaleFactor = 1;
-                    // if (sessionStorage.pageSize === 'A3') {
-                    //     window.open('/rpt_printA3');
-                    // } else {
-                    //     window.open('/rpt_print');
-                    // }
                     window.open('/printReport/' + sessionStorage.pageSize);
                 },
                 function(failRst){
@@ -43,18 +37,6 @@ let rptPrintHelper = {
         } else {
             //不可能的branch
         }
-        // if (zTreeOprObj.currentRptPageRst) {
-        //     sessionStorage.currentPageData = JSON.stringify(zTreeOprObj.currentRptPageRst);
-        //     sessionStorage.pageSize = rptControlObj.getCurrentPageSize();
-        //     sessionStorage.orientation = rptControlObj.getCurrentOrientation();
-        //     sessionStorage.scaleFactor = 1;
-        //     window.open('/rpt_print');
-        // } else {
-        //     sessionStorage.currentPageData = null;
-        // }
-    },
-    previewSvgData: function() {
-        //
     },
     buildSvgArr: function (pagesData, actAreaArr, offsetX, offsetY) {
         let styles = pagesData[JV.NODE_STYLE_COLLECTION],