Browse Source

报表界面调整

TonyKang 7 years ago
parent
commit
92fe34aa5e

+ 0 - 49
modules/reports/util/pdf_base_files/rpt_pdf_consts.js

@@ -1,49 +0,0 @@
-/**
- * Created by zhang on 2017/8/14.
- */
-module.exports={
-    JV:{
-        NODE_MAIN_INFO: "主信息",
-        NODE_PAGE_INFO: "打印页面_信息",
-        NODE_MARGINS: "页边距",
-
-        NODE_FONT_COLLECTION: "font_collection",
-        NODE_STYLE_COLLECTION: "style_collection",
-        NODE_CONTROL_COLLECTION: "control_collection",
-
-        BAND_PROP_MERGE_BAND: "MergeBand",
-
-        PROP_NAME: "Name",
-        PROP_VALUE: "Value",
-        PROP_FONT: "font",
-        PROP_CONTROL: "control",
-        PROP_STYLE: "style",
-        PROP_AREA: "area",
-        PROP_ID: "ID",
-        PROP_LEFT: "Left",
-        PROP_RIGHT: "Right",
-        PROP_TOP: "Top",
-        PROP_BOTTOM: "Bottom",
-
-        IDX_LEFT: 0,
-        IDX_TOP: 1,
-        IDX_RIGHT: 2,
-        IDX_BOTTOM: 3,
-
-        CONTROL_PROPS: ["Shrink", "ShowZero", "Horizon", "Vertical", "Wrap"],
-        BORDER_STYLE_PROPS: ["LineWeight", "DashStyle", "Color"],
-        PROP_LINE_WEIGHT: "LineWeight",
-        PROP_DASH_STYLE: "DashStyle",
-        PROP_COLOR: "Color",
-        FONT_PROPS: ["Name", "FontHeight", "FontColor", "FontBold", "FontItalic", "FontUnderline", "FontStrikeOut", "FontAngle"],
-
-        OUTPUT_OFFSET: [2,1,2,3],
-        OFFSET_IDX_LEFT: 0,
-        OFFSET_IDX_RIGHT: 1,
-        OFFSET_IDX_TOP: 2,
-        OFFSET_IDX_BOTTOM: 3,
-
-        VERTICAL_ANGLE: "90",
-        ANTI_VERTICAL_ANGLE: "-90"
-    }
-}

+ 5 - 2
modules/reports/util/rpt_pdf_util.js

@@ -5,14 +5,17 @@
  * Created by zhang on 2017/8/14.
  */
 
-const prf_cons = require('./pdf_base_files/rpt_pdf_consts');
 let pdf = require('pdfkit');
 let fs = require('fs');
 let jpcCmnHelper = require('../rpt_component/helper/jpc_helper_common');
 let DPI = jpcCmnHelper.getScreenDPI()[0];
-//let JV = prf_cons.JV;
 let JV = require('../rpt_component/jpc_value_define');
 
+// hwxsb.ttf: 华文中宋
+// Smart.ttf: 宋体(常规)
+// Smart-italic.ttf: 宋体(斜体)
+//目前不支持下划线
+
 module.exports ={
     export_pdf_file:export_pdf_file
 }

+ 3 - 2
web/building_saas/report/html/rpt_content_format.html

@@ -2,7 +2,7 @@
     <div class="modal-dialog" role="document">
         <div class="modal-content">
             <div class="modal-header">
-                <h5 class="modal-title">格式</h5><h6 id="update_msg_response"></h6>
+                <h5 class="modal-title">格式</h5><h5 class="modal-title" id="update_msg_response"></h5>
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                     <span aria-hidden="true">&times;</span>
                 </button>
@@ -117,7 +117,8 @@
                 </div>
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-link float-left" data-dismiss="modal" onclick="rptControlObj.saveCustCfg()">存为默认值</button>
+                <button type="button" class="btn btn-link float-left" onclick="rptControlObj.restoreCustCFG()">恢复默认值</button>
+                <button type="button" class="btn btn-link float-left" onclick="rptControlObj.saveCustCfg()">存为默认值</button>
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="rptControlObj.confirmCfgChange()">确定</button>
             </div>

+ 1 - 1
web/building_saas/report/html/rpt_export_excel.html

@@ -38,8 +38,8 @@
                 </div>
             </div>
             <div class="modal-footer">
+                <a onclick="rptControlObj.getExcel()" class="btn btn-primary" data-dismiss="modal">确定导出</a>
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                <a onclick="rptControlObj.getExcel()" class="btn btn-primary">确定导出</a>
             </div>
         </div>
     </div>

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

@@ -29,7 +29,8 @@
                     <div class="panel">
                         <div class="panel-body">
                             <div class="btn-group" role="group" aria-label="Button group with nested dropdown" id="export_div">
-                                <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#export_excel"><i class="fa fa-file-excel-o"></i> Excel <span class="badge badge-secondary">0</span></button>
+                                <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" onclick="rptControlObj.checkAndGetExcel()"><i class="fa fa-file-excel-o"></i> Excel <span class="badge badge-secondary">0</span></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>
                             </div>
                         </div>

+ 63 - 16
web/building_saas/report/js/rpt_main.js

@@ -130,6 +130,35 @@ let zTreeOprObj = {
         document.getElementById("rpt_narrow").checked = cfg.isNarrow;
         document.getElementById("rpt_fill_zero").checked = cfg.fillZero;
     },
+    extractRptCfg: function (cfg) {
+        cfg.margins.Left = $("#elementMargin_Left").get(0).value;
+        cfg.margins.Right = $("#elementMargin_Right").get(0).value;
+        cfg.margins.Top = $("#elementMargin_Top").get(0).value;
+        cfg.margins.Bottom = $("#elementMargin_Bottom").get(0).value;
+
+        for (let font of cfg.fonts) {
+            let fontPropSuffix = "title";
+            if (font.CfgDispName === "表标题") {
+                fontPropSuffix = "title";
+            } else if (font.CfgDispName === "列标题") {
+                fontPropSuffix = "column";
+            } else if (font.CfgDispName === "正文内容") {
+                fontPropSuffix = "content";
+            } else if (font.CfgDispName === "合计") {
+                fontPropSuffix = "summary";
+            } else if (font.CfgDispName === "表眉/表脚") {
+                fontPropSuffix = "header_footer";
+            }
+            font.Name = document.getElementById("fontName_" + fontPropSuffix).value;
+            font.FontHeight = document.getElementById("fontHeight_" + fontPropSuffix).value;
+            font.FontBold = (document.getElementById("font_bold_" + fontPropSuffix).className === "btn btn-sm btn-outline-secondary active")?"T":"F";
+            font.FontItalic = (document.getElementById("font_italic_" + fontPropSuffix).className === "btn btn-sm btn-outline-secondary active")?"T":"F";
+            font.FontUnderline = (document.getElementById("font_underline_" + fontPropSuffix).className === "btn btn-sm btn-outline-secondary active")?"T":"F";
+        }
+        cfg.showVerticalLine = document.getElementById("rpt_vertical_line").checked;
+        cfg.isNarrow = document.getElementById("rpt_narrow").checked;
+        cfg.fillZero = document.getElementById("rpt_fill_zero").checked;
+    },
     refreshNodes: function() {
         let me = this;
         let private_setupIsParent = function(node){
@@ -320,16 +349,38 @@ let rptControlObj = {
         }
     },
     getAllInOneBook: function () {
-        let me = rptControlObj;
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
-            let orgRptName = zTreeOprObj.checkedRptTplNodes[0].name;
+            let orgRptName = projectInfoObj.projectInfo.name;
             let refRptTplIds = [];
             for (let node of zTreeOprObj.checkedRptTplNodes) {
                 refRptTplIds.push(node.refId);
             }
-            let url =  "/report_api/getExcelInOneBook/" + projectInfoObj.projectInfo.ID + "/" + refRptTplIds.join(",") + "/" +
-                me.getCurrentPageSize() + "/" + orgRptName + "/" + 'normal';
-            window.location = url;
+            window.location = "/report_api/getExcelInOneBook/" + projectInfoObj.projectInfo.ID + "/" + refRptTplIds.join(",") + "/" +
+                rptControlObj.getCurrentPageSize() + "/" + orgRptName + "/" + 'normal';
+        }
+    },
+    getAllIndividualExcelBook: function () {
+        let me = rptControlObj;
+        if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
+            let urls = [];
+            let orientation = ((zTreeOprObj.checkedRptTplNodes.length > 1)?null:me.getCurrentOrientation());
+            for (let tplNode of zTreeOprObj.checkedRptTplNodes) {
+                let orgRptName = tplNode.name;
+                let url =  "/report_api/getExcel/" + projectInfoObj.projectInfo.ID + "/" + tplNode.refId + "/" +
+                    me.getCurrentPageSize() + "/" + orientation + "/" + orgRptName + "/" + true + "/" + 'normal';
+                urls.push(url);
+            }
+            downloadReport(urls);
+        }
+    },
+    checkAndGetExcel: function () {
+        if (zTreeOprObj.treeObj) {
+            let chkNodes = zTreeOprObj.treeObj.getCheckedNodes(true);
+            if (chkNodes.length > 0) {
+                $("#show_excel_output_cfg").trigger("click");
+            } else {
+                rptControlObj.getAllIndividualExcelBook();
+            }
         }
     },
     getExcel: function () {
@@ -337,17 +388,7 @@ let rptControlObj = {
         if ($("#excelExportType_AllInOneBook").get(0).checked) {
             me.getAllInOneBook();
         } else if ($("#excelExportType_IndividualBook").get(0).checked) {
-            if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
-                let urls = [];
-                let orientation = ((zTreeOprObj.checkedRptTplNodes.length > 1)?null:me.getCurrentOrientation());
-                for (let tplNode of zTreeOprObj.checkedRptTplNodes) {
-                    let orgRptName = tplNode.name;
-                    let url =  "/report_api/getExcel/" + projectInfoObj.projectInfo.ID + "/" + tplNode.refId + "/" +
-                        me.getCurrentPageSize() + "/" + orientation + "/" + orgRptName + "/" + true + "/" + 'normal';
-                    urls.push(url);
-                }
-                downloadReport(urls);
-            }
+            me.getAllIndividualExcelBook();
         }
     },
     getPDF: function() {
@@ -433,6 +474,12 @@ let rptControlObj = {
             }
         }
     },
+    restoreCustCFG: function () {
+        let me = this;
+        zTreeOprObj.renderRptCfg(zTreeOprObj.defReportPageCfg);
+        zTreeOprObj.extractRptCfg(zTreeOprObj.reportPageCfg);
+        me.saveCustCfg();
+    },
     saveCustCfg: function() {
         let params = {};
         params.custCfg = zTreeOprObj.reportPageCfg;