Explorar o código

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost

zhangweicheng %!s(int64=7) %!d(string=hai) anos
pai
achega
c05425ac2d

+ 140 - 5
modules/reports/controllers/rpt_controller.js

@@ -9,7 +9,7 @@ import JV from "../rpt_component/jpc_value_define";
 
 let Template = mongoose.model('rpt_templates');
 let rptTplDataFacade = require("../facade/rpt_tpl_data_facade");
-//let fsUtil = require("../../../public/fsUtil");
+let fsUtil = require("../../../public/fsUtil");
 
 import rptTplFacade from "../facade/rpt_template_facade";
 import demoTemplateFacade from "../facade/rpt_tpl_data_demo_facade";
@@ -71,8 +71,143 @@ function getAllPagesCommonOrg(rpt_id, pageSize, option, cb) {
         }
     );
 }
-function setupCustomizeCfg(customizeCfg, rptTpl) {
-    //
+function setupCustomizeCfg(customizeCfg, rptTpl, defProperties) {
+    let tmpObj = {};
+    //1. 字体
+    let newFonts = [];
+    for (let font of defProperties.fonts) {
+        let copyFont = {};
+        copyFont.ID = font.ID;
+        for (let fontProp of JV.FONT_PROPS) {
+            copyFont[fontProp] = font[fontProp];
+        }
+        newFonts.push(copyFont);
+        tmpObj[font.ID] = copyFont;
+    }
+    let private_setup_font = function (propStr, newFont) {
+        if (tmpObj[propStr]) {
+            tmpObj[propStr].Name = newFont.Name;
+            tmpObj[propStr].FontHeight = String(newFont.FontHeight);
+            tmpObj[propStr].FontBold = newFont.FontBold;
+            tmpObj[propStr].FontItalic = newFont.FontItalic;
+            tmpObj[propStr].FontUnderline = newFont.FontUnderline;
+        }
+    };
+    for (let custFont of customizeCfg.fonts) {
+        switch (custFont.CfgDispName) {
+            case "表标题":
+                private_setup_font("ReportTitle_Main", custFont);
+                break;
+            case "列标题":
+                private_setup_font("HeaderColumn", custFont);
+                private_setup_font("FooterColumn", custFont);
+                break;
+            case "正文内容":
+                private_setup_font("Content", custFont);
+                break;
+            case "合计":
+                private_setup_font("GrandTotal", custFont);
+                private_setup_font("SectionTotal", custFont);
+                break;
+            case "表眉/表脚":
+                private_setup_font("Header", custFont);
+                private_setup_font("Footer", custFont);
+                break;
+        }
+    }
+    // 1.1 窄体
+    if (tmpObj["Content_Narrow"]) {
+        if (customizeCfg.isNarrow) {
+            tmpObj["Content_Narrow"].Name = "Arial Narrow";
+        } else {
+            if (tmpObj["Content"]) {
+                tmpObj["Content_Narrow"].Name = tmpObj["Content"].Name;
+            } else {
+                tmpObj["Content_Narrow"].Name = "宋体";
+            }
+            tmpObj["Content_Narrow"].Name = "Arial Narrow";
+        }
+    }
+    defProperties.fonts = newFonts;
+    //2. 页边距
+    rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT] = customizeCfg.margins[JV.PROP_LEFT] / 10;
+    rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT] = customizeCfg.margins[JV.PROP_RIGHT] / 10;
+    rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_TOP] = customizeCfg.margins[JV.PROP_TOP] / 10;
+    rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_BOTTOM] = customizeCfg.margins[JV.PROP_BOTTOM] / 10;
+    //3. 边框竖线
+    if (!(customizeCfg.showVerticalLine)) {
+        let private_copy_border = function (src) {
+            let rst = {};
+            rst.Position = src.Position;
+            rst.LineWeight = src.LineWeight;
+            rst.DashStyle = src.DashStyle;
+            rst.Color = src.Color;
+            return rst;
+        };
+        let newStyles = [];
+        for (let i =0 ; i < defProperties.styles.length; i++) {
+            let style = defProperties.styles[i];
+            newStyles.push(style);
+            if (style.ID === "BORDER_ALL_AROUND") {
+                let newStyle = {};
+                newStyle.ID  = style.ID;
+                newStyle.CfgDispName = style.CfgDispName;
+                newStyle.border_style = [];
+                for (let border of style.border_style) {
+                    let newBorder = private_copy_border(border);
+                    newStyle.border_style.push(newBorder);
+                    if (border.Position === "Left" || border.Position === "Right") {
+                        newBorder.LineWeight = 0;
+                    }
+                }
+                newStyles[newStyles.length - 1] = newStyle;
+            }
+        }
+        defProperties.styles = newStyles;
+    }
+    //4. 补0
+    let private_Setup_Format = function(tabFields) {
+        for (let tabField of tabFields) {
+            if (tabField[JV.PROP_FORMAT]) {
+                tabField[JV.PROP_FORMAT] = tabField[JV.PROP_FORMAT].replace(new RegExp("#","gm"),"0");
+            }
+        }
+    };
+    if (customizeCfg.fillZero) {
+        if (rptTpl.flowTab) {
+            private_Setup_Format(rptTpl.flowTab[JV.NODE_FLOW_CONTENT][JV.PROP_FLOW_FIELDS]);
+            private_Setup_Format(rptTpl.flowTab[JV.NODE_FLOW_PAGE_SUM][JV.PROP_SUM_FIELDS]);
+            private_Setup_Format(rptTpl.flowTab[JV.NODE_FLOW_SEG_SUM][JV.PROP_SUM_FIELDS]);
+            private_Setup_Format(rptTpl.flowTab[JV.NODE_FLOW_GROUP][JV.PROP_SUM_FIELDS]);
+            for (let discrete of rptTpl.flowTab[JV.NODE_DISCRETE_INFO]) {
+                private_Setup_Format(discrete[JV.PROP_DISCRETE_FIELDS]);
+            }
+            if (rptTpl.flowTabEx) {
+                private_Setup_Format(rptTpl.flowTabEx[JV.NODE_FLOW_CONTENT][JV.PROP_FLOW_FIELDS]);
+                private_Setup_Format(rptTpl.flowTabEx[JV.NODE_FLOW_PAGE_SUM][JV.PROP_SUM_FIELDS]);
+                private_Setup_Format(rptTpl.flowTabEx[JV.NODE_FLOW_SEG_SUM][JV.PROP_SUM_FIELDS]);
+                private_Setup_Format(rptTpl.flowTabEx[JV.NODE_FLOW_GROUP][JV.PROP_SUM_FIELDS]);
+                for (let discrete of rptTpl.flowTabEx[JV.NODE_DISCRETE_INFO]) {
+                    private_Setup_Format(discrete[JV.PROP_DISCRETE_FIELDS]);
+                }
+            }
+        } else if (rptTpl.billTab) {
+            private_Setup_Format(rptTpl.billTab[JV.NODE_BILL_CONTENT][JV.PROP_BILL_FIELDS]);
+            for (let discrete of rptTpl.billTab[JV.NODE_DISCRETE_INFO]) {
+                private_Setup_Format(discrete[JV.PROP_DISCRETE_FIELDS]);
+            }
+        } else if (rptTpl.crossTab) {
+            private_Setup_Format(rptTpl.crossTab[JV.NODE_CROSS_CONTENT][JV.TAB_CROSS_FIELDS]);
+            private_Setup_Format(rptTpl.crossTab[JV.NODE_CROSS_ROW][JV.TAB_CROSS_FIELDS]);
+            private_Setup_Format(rptTpl.crossTab[JV.NODE_CROSS_COL][JV.TAB_CROSS_FIELDS]);
+            private_Setup_Format(rptTpl.crossTab[JV.NODE_CROSS_COL_SUM][JV.TAB_CROSS_FIELDS]);
+            private_Setup_Format(rptTpl.crossTab[JV.NODE_CROSS_ROW_EXT][JV.TAB_CROSS_FIELDS]);
+            private_Setup_Format(rptTpl.crossTab[JV.NODE_CROSS_ROW_SUM_EXT][JV.TAB_CROSS_FIELDS]);
+            for (let discrete of rptTpl.crossTab[JV.NODE_DISCRETE_INFO]) {
+                private_Setup_Format(discrete[JV.PROP_DISCRETE_FIELDS]);
+            }
+        }
+    }
 }
 function getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, customizeCfg, option, cb) {
     let rptTpl = null;
@@ -88,15 +223,15 @@ function getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, custo
                     let printCom = JpcEx.createNew();
                     if (pageSize) rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_PAGE_SIZE] = pageSize;
                     if (orientation) rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] = orientation;
-                    if (customizeCfg) setupCustomizeCfg(customizeCfg, rptTpl);
                     let defProperties = rptUtil.getReportDefaultCache();
+                    if (customizeCfg) setupCustomizeCfg(customizeCfg, rptTpl, defProperties);
                     let dftOption = option||JV.PAGING_OPTION_NORMAL;
                     printCom.initialize(rptTpl);
                     printCom.analyzeData(rptTpl, tplData, defProperties, dftOption);
                     let maxPages = printCom.totalPages;
                     let pageRst = printCom.outputAsSimpleJSONPageArray(rptTpl, tplData, 1, maxPages, defProperties);
                     if (pageRst) {
-                        //fsUtil.writeObjToFile(pageRst, "D:/GitHome/ConstructionCost/tmp/testBuiltPageResult.jsp");
+                        fsUtil.writeObjToFile(pageRst, "D:/GitHome/ConstructionCost/tmp/testBuiltPageResult.jsp");
                         cb(null, pageRst);
                     } else {
                         cb('Have errors while on going...', null);

+ 0 - 1
modules/users/models/log_model.js

@@ -118,7 +118,6 @@ class LogModel extends BaseModel {
         if (ip === '127.0.0.1') {
             return '服务器本机访问';
         }
-
         let getData = {
             url: 'http://ip.taobao.com/service/getIpInfo.php?ip=' + ip,
             encoding: 'utf8'

+ 26 - 2
web/building_saas/main/js/models/calc_program.js

@@ -847,9 +847,8 @@ let analyzer = {
         return rst;
     },
     getCompiledExpr: function (expression, labourCoe) {   // labourCoe 是 str 类型
-        let me = analyzer;
         let rst = expression;
-        let atIDArr = me.getAtIDArr(rst);
+        let atIDArr = analyzer.getAtIDArr(rst);
         let IDArr = atIDArr.map(function (atID) {
             return atID.slice(1);
         });
@@ -863,6 +862,22 @@ let analyzer = {
         rst = rst.replace(/L/g, labourCoe);
         return rst;
     },
+    getStatement: function (expression, template) {
+        let rst = expression;
+        let atIDArr = analyzer.getAtIDArr(rst);
+        let IDArr = atIDArr.map(function (atID) {
+            return atID.slice(1);
+        });
+        for (var i = 0; i < atIDArr.length; i++) {
+            let patt = new RegExp(atIDArr[i]);
+            let val = projectObj.project.calcProgram.compiledTemplates[template.ID].compiledCalcItems[IDArr[i]].name;
+            rst = rst.replace(patt, val);
+        };
+        rst = rst.replace(/\[/g, "");
+        rst = rst.replace(/\]/g, "");
+        rst = rst.replace(/L/g, '人工系数');
+        return rst;
+    },
 
     calcItemMaxID: function(template){
         let MaxID = 0;
@@ -916,6 +931,15 @@ let analyzer = {
         if (projectObj.project.calcProgram.compiledTemplateMaps[name])
             return true
         else return false;
+    },
+    templateIsUsed: function (ID){
+        let nodes = projectObj.project.mainTree.items;
+        for (let node of nodes){
+              if (node.data && node.data.programID && node.data.programID == ID) {
+                  return true;
+              }
+        };
+        return false;
     }
 };
 

+ 5 - 0
web/building_saas/main/js/views/calc_base_view.js

@@ -192,6 +192,10 @@ let calcBaseView = {
             let calcItem = calcProgramManage.getSelectionInfo().calcItem;
             if (calcItem.dispExprUser) {
                 me.inputExpr.val(calcItem.dispExpr);
+                if (calcItem.dispExpr == '0'){
+                    me.inputExpr.focus();
+                    me.inputExpr.select();
+                }
             }
             let bnArr = Object.keys(rationCalcBases);
             let baseArr = [];
@@ -286,6 +290,7 @@ let calcBaseView = {
                         calcItem.dispExprUser = analyzer.getDispExprUser(expr, lc);
                         calcItem.expression = analyzer.getExpression(expr, template);
                         calcItem.compiledExpr = analyzer.getCompiledExpr(calcItem.expression, lc);
+                        calcItem.statement = analyzer.getStatement(calcItem.expression, template);
 
                         let data = {
                             'projectID': projectObj.project.ID(),

+ 18 - 13
web/building_saas/main/js/views/calc_program_manage.js

@@ -121,14 +121,14 @@ let calcProgramManage = {
         }
     },
     onEnterCell: function (sender, args) {
-        let t = calcProgramManage.getSelectionInfo().template;
-        let c = calcProgramManage.getSelectionInfo().calcItem;
-        let lc = analyzer.calcItemLabourCoe(c);
-        c.dispExpr = analyzer.getDispExpr(c.expression, t);
-        c.dispExprUser = analyzer.getDispExprUser(c.dispExpr, lc);
-        c.compiledExpr = analyzer.getCompiledExpr(c.expression, lc);
-        let e = `ID:${c.ID} ${c.expression} ${c.dispExpr} ${c.dispExprUser} ${c.compiledExpr} ${c.custom}`;
-        projectObj.testDisplay('', e);
+        // let t = calcProgramManage.getSelectionInfo().template;
+        // let c = calcProgramManage.getSelectionInfo().calcItem;
+        // let lc = analyzer.calcItemLabourCoe(c);
+        // c.dispExpr = analyzer.getDispExpr(c.expression, t);
+        // c.dispExprUser = analyzer.getDispExprUser(c.dispExpr, lc);
+        // c.compiledExpr = analyzer.getCompiledExpr(c.expression, lc);
+        // let e = `ID:${c.ID} ${c.expression} ${c.dispExpr} ${c.dispExprUser} ${c.compiledExpr} ${c.custom}`;
+        // projectObj.testDisplay('', e);
     },
     loadMainContextMenu: function () {
         $.contextMenu({
@@ -167,7 +167,6 @@ let calcProgramManage = {
                                 calcProgramManage.buildSheet();
                                 calcProgramManage.mainSpread.getActiveSheet().setSelection(ts.length - 1, 0, 1, 1);
                                 calcProgramManage.refreshDetailSheet();
-                                // projectObj.project.calcProgram.calcAllNodesAndSave();
                                 $.bootstrapLoading.end();
                             }
                             else $.bootstrapLoading.end();
@@ -231,9 +230,15 @@ let calcProgramManage = {
                     },
                     callback: function () {
                         $.bootstrapLoading.start();
+                        let template = calcProgramManage.getSelectionInfo().template;
+                        if (analyzer.templateIsUsed(template.ID)) {
+                            $.bootstrapLoading.end();
+                            alert(`计算模板“${template.name}”已被使用,不允许删除!`);
+                            return;
+                        }
                         let data = {
                             'projectID': projectObj.project.ID(),
-                            'ID': calcProgramManage.getSelectionInfo().template.ID
+                            'ID': template.ID
                         };
                         calcProgramManage.deleteTemplate(data, function (rst) {
                             if (rst){
@@ -243,7 +248,6 @@ let calcProgramManage = {
                                 calcProgramManage.buildSheet();
                                 calcProgramManage.mainSpread.getActiveSheet().setSelection(idx - 1, 0, 1, 1);
                                 calcProgramManage.refreshDetailSheet();
-                                // projectObj.project.calcProgram.calcAllNodesAndSave();
                                 $.bootstrapLoading.end();
                             }
                             else $.bootstrapLoading.end();
@@ -269,7 +273,7 @@ let calcProgramManage = {
 
                         let newItem = {};
                         newItem.ID = analyzer.calcItemMaxID(template) + 1;
-                        newItem.name = '新建';
+                        // newItem.name = '新建';
                         newItem.memo = '自定义';
                         newItem.custom = true;
                         newItem.expression = '0';
@@ -284,7 +288,7 @@ let calcProgramManage = {
                                 projectObj.project.calcProgram.compileTemplate(template);
                                 calcProgramManage.refreshDetailSheet();
                                 calcProgramManage.detailSpread.getActiveSheet().setSelection(idx + 1, 0, 1, 1);
-                                // projectObj.project.calcProgram.calcAllNodesAndSave();
+                                projectObj.project.calcProgram.calcAllNodesAndSave();
                                 $.bootstrapLoading.end();
                             }
                         });
@@ -314,6 +318,7 @@ let calcProgramManage = {
                                 if (rst){
                                     projectObj.project.calcProgram.compileTemplate(template);
                                     calcProgramManage.refreshDetailSheet();
+                                    projectObj.project.calcProgram.calcAllNodesAndSave();
                                     $.bootstrapLoading.end();
                                 }
                             });

+ 2 - 2
web/building_saas/pm/html/project-management.html

@@ -62,7 +62,7 @@
                         </div>
                     </div>
                     <ul class="nav nav-pills flex-column">
-                        <li class="nav-item">
+                        <li class="nav-item" data-toggle="tooltip" data-placement="right" data-original-title="全部">
                             <a class="nav-link active" href="#pm_all" role="tab" id="tab_pm_all" data-toggle="tab" data-placement="right" data-original-title="全部"><i class="fa fa-bars"></i></a>
                         </li>
                         <li class="nav-item">
@@ -77,7 +77,7 @@
                         <li class="nav-item">
                             <a class="nav-link" href="#"  data-toggle="tooltip" data-placement="right" data-original-title="归档"><i class="fa fa-book"></i></a>
                         </li>
-                        <li class="nav-item">
+                        <li class="nav-item" data-toggle="tooltip" data-placement="right" data-original-title="回收站">
                             <a class="nav-link" href="#pm_gc" id="tab_pm_gc" data-toggle="tab" data-placement="right" data-original-title="回收站"><i class="fa fa-trash"></i></a>
                         </li>
                     </ul>

+ 14 - 19
web/building_saas/pm/js/pm_newMain.js

@@ -526,16 +526,19 @@ const projTreeObj = {
             GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, arguments);
         };
         TreeNodeCellType.prototype.getHitInfo = function (x, y, cellStyle, cellRect, context) {
-            return {
-                x: x,
-                y: y,
-                row: context.row,
-                col: context.col,
-                cellStyle: cellStyle,
-                cellRect: cellRect,
-                sheetArea: context.sheetArea,
-                isReservedLocation: true
-            };
+            let info = {x: x, y: y, row: context.row, col: context.col, cellStyle: cellStyle, cellRect: cellRect, sheetArea: context.sheetArea};
+            let node = tree.items[info.row];
+            let offset = -1;
+            let centerX = info.cellRect.x + offset + node.depth() * indent + node.depth() * levelIndent + indent / 2;
+            let text = context.sheet.getText(info.row, info.col);
+            let value = context.sheet.getValue(info.row, info.col);
+            let acStyle = context.sheet.getActualStyle(info.row, info.col),
+                zoom = context.sheet.zoom();
+            let textLength = this.getAutoFitWidth(value, text, acStyle, zoom, {sheet: context.sheet, row: info.row, col: info.col, sheetArea: GC.Spread.Sheets.SheetArea.viewport});
+            if(info.x > centerX + halfBoxLength && info.x < centerX + halfBoxLength + imgWidth + indent/2+3 + textLength){
+                info.isReservedLocation = true;
+            }
+            return info;
         };
         TreeNodeCellType.prototype.processMouseDown = function (hitinfo) {
             let offset = -1;
@@ -605,15 +608,7 @@ const projTreeObj = {
             let canvasId = div.id + "vp_vp";
             let canvas = $(`#${canvasId}`)[0];
             //改变鼠标图案
-            let node = tree.items[hitInfo.row];
-            let offset = -1;
-            let centerX = hitInfo.cellRect.x + offset + node.depth() * indent + node.depth() * levelIndent + indent / 2;
-            let text = hitInfo.sheet.getText(hitInfo.row, hitInfo.col);
-            let value = hitInfo.sheet.getValue(hitInfo.row, hitInfo.col);
-            let acStyle = hitInfo.sheet.getActualStyle(hitInfo.row, hitInfo.col),
-                zoom = hitInfo.sheet.zoom();
-            let textLength = this.getAutoFitWidth(value, text, acStyle, zoom, {sheet: hitInfo.sheet, row: hitInfo.row, col: hitInfo.col, sheetArea: GC.Spread.Sheets.SheetArea.viewport});
-            if (sheet && hitInfo.x > centerX + halfBoxLength && hitInfo.x < centerX + halfBoxLength + imgWidth + indent/2+3 + textLength) {
+            if (sheet && hitInfo.isReservedLocation) {
                 canvas.style.cursor='pointer';
                 return true;
             }else{

+ 23 - 23
web/building_saas/report/html/rpt_content_format.html

@@ -26,18 +26,18 @@
                 </div>
                 <div class="row mb-1">
                     <div class="col-3">
-                        表栏
+                        表栏
                     </div>
                     <div class="col-3">
-                        <input class="form-control input-sm" id="fontName_column" value="宋体" onchange="rptControlObj.changeFontMain('表栏头', 'Name', this)" onkeyup="rptControlObj.changeFontMain('表栏头', 'Name', this)">
+                        <input class="form-control input-sm" id="fontName_column" value="宋体" onchange="rptControlObj.changeFontMain('列标题', 'Name', this)" onkeyup="rptControlObj.changeFontMain('列标题', 'Name', this)">
                     </div>
                     <div class="col-3">
-                        <input class="form-control input-sm" id="fontHeight_column" type="number" value="10" step="1" min="6" max="66" onchange="rptControlObj.changeFontMain('表栏头', 'FontHeight', this)" onkeyup="rptControlObj.changeFontMain('表栏头', 'FontHeight', this)">
+                        <input class="form-control input-sm" id="fontHeight_column" type="number" value="10" step="1" min="6" max="66" onchange="rptControlObj.changeFontMain('列标题', 'FontHeight', this)" onkeyup="rptControlObj.changeFontMain('列标题', 'FontHeight', this)">
                     </div>
                     <div class="col-3">
-                        <a id="font_bold_column" class="btn btn-sm btn-outline-secondary active" title="加粗" onclick="rptControlObj.changeFontAdhoc('表栏头', 'FontBold', this)"><i class="fa fa-bold"></i></a>
-                        <a id="font_italic_column" class="btn btn-sm btn-outline-secondary" title="斜体" onclick="rptControlObj.changeFontAdhoc('表栏头', 'FontItalic', this)"><i class="fa fa-italic"></i></a>
-                        <a id="font_underline_column" class="btn btn-sm btn-outline-secondary" title="下划线" onclick="rptControlObj.changeFontAdhoc('表栏头', 'FontUnderline', this)"><i class="fa fa-underline"></i></a>
+                        <a id="font_bold_column" class="btn btn-sm btn-outline-secondary active" title="加粗" onclick="rptControlObj.changeFontAdhoc('列标题', 'FontBold', this)"><i class="fa fa-bold"></i></a>
+                        <a id="font_italic_column" class="btn btn-sm btn-outline-secondary" title="斜体" onclick="rptControlObj.changeFontAdhoc('列标题', 'FontItalic', this)"><i class="fa fa-italic"></i></a>
+                        <a id="font_underline_column" class="btn btn-sm btn-outline-secondary" title="下划线" onclick="rptControlObj.changeFontAdhoc('列标题', 'FontUnderline', this)"><i class="fa fa-underline"></i></a>
                     </div>
                 </div>
                 <div class="row mb-1">
@@ -45,15 +45,15 @@
                         表正文
                     </div>
                     <div class="col-3">
-                        <input class="form-control input-sm" id="fontName_content" value="宋体" onchange="rptControlObj.changeFontMain('正文', 'Name', this)" onkeyup="rptControlObj.changeFontMain('正文', 'Name', this)">
+                        <input class="form-control input-sm" id="fontName_content" value="宋体" onchange="rptControlObj.changeFontMain('正文内容', 'Name', this)" onkeyup="rptControlObj.changeFontMain('正文内容', 'Name', this)">
                     </div>
                     <div class="col-3">
-                        <input class="form-control input-sm" id="fontHeight_content" type="number" value="10" step="1" min="6" max="66" onchange="rptControlObj.changeFontMain('正文', 'FontHeight', this)" onkeyup="rptControlObj.changeFontMain('正文', 'FontHeight', this)">
+                        <input class="form-control input-sm" id="fontHeight_content" type="number" value="10" step="1" min="6" max="66" onchange="rptControlObj.changeFontMain('正文内容', 'FontHeight', this)" onkeyup="rptControlObj.changeFontMain('正文内容', 'FontHeight', this)">
                     </div>
                     <div class="col-3">
-                        <a id="font_bold_content" class="btn btn-sm btn-outline-secondary" title="加粗" onclick="rptControlObj.changeFontAdhoc('正文', 'FontBold', this)"><i class="fa fa-bold"></i></a>
-                        <a id="font_italic_content" class="btn btn-sm btn-outline-secondary active" title="斜体" onclick="rptControlObj.changeFontAdhoc('正文', 'FontItalic', this)"><i class="fa fa-italic"></i></a>
-                        <a id="font_underline_content" class="btn btn-sm btn-outline-secondary" title="下划线" onclick="rptControlObj.changeFontAdhoc('正文', 'FontUnderline', this)"><i class="fa fa-underline"></i></a>
+                        <a id="font_bold_content" class="btn btn-sm btn-outline-secondary" title="加粗" onclick="rptControlObj.changeFontAdhoc('正文内容', 'FontBold', this)"><i class="fa fa-bold"></i></a>
+                        <a id="font_italic_content" class="btn btn-sm btn-outline-secondary active" title="斜体" onclick="rptControlObj.changeFontAdhoc('正文内容', 'FontItalic', this)"><i class="fa fa-italic"></i></a>
+                        <a id="font_underline_content" class="btn btn-sm btn-outline-secondary" title="下划线" onclick="rptControlObj.changeFontAdhoc('正文内容', 'FontUnderline', this)"><i class="fa fa-underline"></i></a>
                     </div>
                 </div>
                 <div class="row mb-1">
@@ -61,15 +61,15 @@
                         表合计
                     </div>
                     <div class="col-3">
-                        <input class="form-control input-sm" id="fontName_summary" value="宋体" onchange="rptControlObj.changeFontMain('合计', 'Name', this)" onkeyup="rptControlObj.changeFontMain('合计', 'Name', this)">
+                        <input class="form-control input-sm" id="fontName_summary" value="宋体" onchange="rptControlObj.changeFontMain('合计', 'Name', this)" onkeyup="rptControlObj.changeFontMain('合计', 'Name', this)">
                     </div>
                     <div class="col-3">
-                        <input class="form-control input-sm" id="fontHeight_summary" type="number" value="10" step="1" min="6" max="66" onchange="rptControlObj.changeFontMain('合计', 'FontHeight', this)" onkeyup="rptControlObj.changeFontMain('合计', 'FontHeight', this)">
+                        <input class="form-control input-sm" id="fontHeight_summary" type="number" value="10" step="1" min="6" max="66" onchange="rptControlObj.changeFontMain('合计', 'FontHeight', this)" onkeyup="rptControlObj.changeFontMain('合计', 'FontHeight', this)">
                     </div>
                     <div class="col-3">
-                        <a id="font_bold_summary" class="btn btn-sm btn-outline-secondary" title="加粗" onclick="rptControlObj.changeFontAdhoc('合计', 'FontBold', this)"><i class="fa fa-bold"></i></a>
-                        <a id="font_italic_summary" class="btn btn-sm btn-outline-secondary" title="斜体" onclick="rptControlObj.changeFontAdhoc('合计', 'FontItalic', this)"><i class="fa fa-italic"></i></a>
-                        <a id="font_underline_summary" class="btn btn-sm btn-outline-secondary active" title="下划线" onclick="rptControlObj.changeFontAdhoc('合计', 'FontUnderline', this)"><i class="fa fa-underline"></i></a>
+                        <a id="font_bold_summary" class="btn btn-sm btn-outline-secondary" title="加粗" onclick="rptControlObj.changeFontAdhoc('合计', 'FontBold', this)"><i class="fa fa-bold"></i></a>
+                        <a id="font_italic_summary" class="btn btn-sm btn-outline-secondary" title="斜体" onclick="rptControlObj.changeFontAdhoc('合计', 'FontItalic', this)"><i class="fa fa-italic"></i></a>
+                        <a id="font_underline_summary" class="btn btn-sm btn-outline-secondary active" title="下划线" onclick="rptControlObj.changeFontAdhoc('合计', 'FontUnderline', this)"><i class="fa fa-underline"></i></a>
                     </div>
                 </div>
                 <div class="row mb-1">
@@ -77,15 +77,15 @@
                         表眉表脚
                     </div>
                     <div class="col-3">
-                        <input class="form-control input-sm" id="fontName_header_footer" value="宋体" onchange="rptControlObj.changeFontMain('表眉表脚', 'Name', this)" onkeyup="rptControlObj.changeFontMain('表眉表脚', 'Name', this)">
+                        <input class="form-control input-sm" id="fontName_header_footer" value="宋体" onchange="rptControlObj.changeFontMain('表眉/表脚', 'Name', this)" onkeyup="rptControlObj.changeFontMain('表眉/表脚', 'Name', this)">
                     </div>
                     <div class="col-3">
-                        <input class="form-control input-sm" id="fontHeight_header_footer" type="number" value="10" step="1" min="6" max="66" onchange="rptControlObj.changeFontMain('表眉表脚', 'FontHeight', this)" onkeyup="rptControlObj.changeFontMain('表眉表脚', 'FontHeight', this)">
+                        <input class="form-control input-sm" id="fontHeight_header_footer" type="number" value="10" step="1" min="6" max="66" onchange="rptControlObj.changeFontMain('表眉/表脚', 'FontHeight', this)" onkeyup="rptControlObj.changeFontMain('表眉/表脚', 'FontHeight', this)">
                     </div>
                     <div class="col-3">
-                        <a id="font_bold_header_footer" class="btn btn-sm btn-outline-secondary" title="加粗" onclick="rptControlObj.changeFontAdhoc('表眉表脚', 'FontBold', this)"><i class="fa fa-bold"></i></a>
-                        <a id="font_italic_header_footer" class="btn btn-sm btn-outline-secondary" title="斜体" onclick="rptControlObj.changeFontAdhoc('表眉表脚', 'FontItalic', this)"><i class="fa fa-italic"></i></a>
-                        <a id="font_underline_header_footer" class="btn btn-sm btn-outline-secondary" title="下划线" onclick="rptControlObj.changeFontAdhoc('表眉表脚', 'FontUnderline', this)"><i class="fa fa-underline"></i></a>
+                        <a id="font_bold_header_footer" class="btn btn-sm btn-outline-secondary" title="加粗" onclick="rptControlObj.changeFontAdhoc('表眉/表脚', 'FontBold', this)"><i class="fa fa-bold"></i></a>
+                        <a id="font_italic_header_footer" class="btn btn-sm btn-outline-secondary" title="斜体" onclick="rptControlObj.changeFontAdhoc('表眉/表脚', 'FontItalic', this)"><i class="fa fa-italic"></i></a>
+                        <a id="font_underline_header_footer" class="btn btn-sm btn-outline-secondary" title="下划线" onclick="rptControlObj.changeFontAdhoc('表眉/表脚', 'FontUnderline', this)"><i class="fa fa-underline"></i></a>
                     </div>
                 </div>
                 <div class="row mb-1"></div>
@@ -117,9 +117,9 @@
                 </div>
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-link float-left" data-dismiss="modal">恢复默认值</button>
+                <button type="button" class="btn btn-link float-left" data-dismiss="modal" onclick="rptControlObj.saveCustCfg()">存为默认值</button>
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                <a href="" class="btn btn-primary">确定</a>
+                <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="rptControlObj.confirmCfgChange()">确定</button>
             </div>
         </div>
     </div>

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

@@ -30,7 +30,7 @@
             <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-secondary" data-dismiss="modal">取消</button>
-                <a href="" class="btn btn-primary">确定</a>
+                <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="rptControlObj.confirmCfgChange()">确定</button>
             </div>
         </div>
     </div>

+ 15 - 0
web/building_saas/report/js/rpt_main.js

@@ -108,6 +108,7 @@ let zTreeOprObj = {
             params.pageSize = pageSize;
             params.rpt_tpl_id = treeNode.refId;
             params.prj_id = projectInfoObj.projectInfo.ID;
+            params.custCfg = me.reportPageCfg;
             me.currentNode = treeNode;
             me.requestReport(params);
         }
@@ -330,5 +331,19 @@ let rptControlObj = {
                 alert("Save successfully!");
             }, null, null
         );
+    },
+    confirmCfgChange: function() {
+        // let me = zTreeOprObj;
+        let treeNode = zTreeOprObj.currentNode;
+        if (treeNode.nodeType === TPL_TYPE_TEMPLATE && treeNode.refId > 0) {
+            let params = {};
+            let pageSize = rptControlObj.getCurrentPageSize();
+            params.pageSize = pageSize;
+            params.rpt_tpl_id = treeNode.refId;
+            params.prj_id = projectInfoObj.projectInfo.ID;
+            params.custCfg = zTreeOprObj.reportPageCfg;
+            zTreeOprObj.requestReport(params);
+        }
+
     }
 };