소스 검색

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

zhongzewei 7 년 전
부모
커밋
75b3e4d934

+ 28 - 4
modules/reports/controllers/rpt_tpl_controller.js

@@ -24,7 +24,8 @@ let callback = function(req, res, err, message, data){
 let mExport = {
     getCustomerCfg(req, res) {
         let params = JSON.parse(req.body.params),
-            userId = params.userId
+            userId = params.userId,
+            me = this;
         ;
         if (req.session.sessionUser && req.session.sessionUser.id) userId = req.session.sessionUser.id;
         let userIds = [];
@@ -37,14 +38,26 @@ let mExport = {
                 //success
                 let rst = null;
                 if (custCfg.length > 0) {
+                    rst = [];
+                    rst.push(null);
                     for (let itemCfg of custCfg) {
-                        rst = itemCfg;
+                        // rst = itemCfg;
                         let doc = (itemCfg._doc)?itemCfg._doc:itemCfg;
+                        let dest = {};
+                        copyRptCfg(doc, dest);
                         if (doc.userId !== "-100") {
-                            break;
+                            rst.push(dest);
+                        } else {
+                            rst[0] = dest;
                         }
                     }
                 }
+                if (rst !== null && rst.length === 1) {
+                    //copy dft config
+                    let userDest = {};
+                    copyRptCfg(rst[0], userDest);
+                    rst.push(userDest);
+                }
                 callback(req,res, false, "", rst);
             } else {
                 //failed
@@ -69,7 +82,6 @@ let mExport = {
             }
         })
     },
-
     getDftTemplates(req, res) {
         let filter = {"userId": "-100", "$or": [{"isDeleted": null}, {"isDeleted": false} ]};
         TreeNodeModel.find(filter, '-_id', function(err, data){
@@ -381,4 +393,16 @@ let mExport = {
     }
 };
 
+function copyRptCfg(src, dest) {
+    dest.margins = {Left: src.margins.Left, Right: src.margins.Right, Top: src.margins.Top, Bottom: src.margins.Bottom};
+    dest.showVerticalLine = src.showVerticalLine;
+    dest.isNarrow = src.isNarrow;
+    dest.fillZero = src.fillZero;
+    dest.fonts = [];
+    for (let font of src.fonts) {
+        dest.fonts.push({"ID": font["ID"], "CfgDispName": font["CfgDispName"], "Name": font["Name"], "FontHeight": font["FontHeight"], "FontColor": font["FontColor"],
+            "FontBold": font["FontBold"], "FontItalic": font["FontItalic"], "FontUnderline": font["FontUnderline"], "FontStrikeOut": font["FontStrikeOut"], "FontAngle": font["FontAngle"]});
+    }
+}
+
 export default mExport;

+ 23 - 4
web/building_saas/main/js/views/glj_view.js

@@ -1235,6 +1235,16 @@ var gljOprObj = {
             hasCom = this.hasComposition(node.data);
         }
         return hasCom|| node.data.isEstimate == 1;
+    },
+    locateZTree: function(ID) {
+        let zTree = $.fn.zTree.getZTreeObj("gljTree");
+        let node = null;
+        if (ID) node = zTree.getNodesByParam('ID', ID, null)[0]
+        if (!node) node = zTree.getNodeByTId('gljTree_1');
+        zTree.selectNode(node);
+        gljOprObj.gljCurTypeId = ID;
+        gljOprObj.filterLibGLJSheetData();
+        gljOprObj.showLibGLJSheetData();
     }
 
 }
@@ -1249,7 +1259,7 @@ $(function () {
             gljOprObj.gljLibSheet.name('glj_lib');
         }
         gljOprObj.gljLibSheetData = gljOprObj.AllRecode;
-        let selections = [],selectMap = {};
+        let gljClass = 0, selectMap = {};
         if ($('#actionType').val() == 'add' || $('#actionType').val() == 'insert') {//插入,添加
             gljOprObj.GLJSelection = [];
         } else if($('#actionType').val() =='m_replace' || $('#actionType').val() == 'replace'){//替换、批量替换
@@ -1273,17 +1283,20 @@ $(function () {
             let item_key = gljOprObj.getIndex(item, gljLibKeyArray);
             if(selectMap[item_key]){
                 item.select = 1 ;
+                gljClass = item.gljClass;
             }
         }
-        gljOprObj.showLibGLJSheetData();
+
         //替换,焦点定位至当前选中人材机
         if($('#actionType').val() =='m_replace' || $('#actionType').val() == 'replace'){
+            gljOprObj.locateZTree(gljClass);
             let selected = gljOprObj.sheetData[gljContextMenu.selectedRow];
             let index = _.findIndex(gljOprObj.gljLibSheetData, {code: selected.code});
             gljOprObj.gljLibSheet.showRow(index, GC.Spread.Sheets.VerticalPosition.center);
             gljOprObj.gljLibSheet.setActiveCell(index, 0);
             gljOprObj.gljLibSpresd.focus(true);
         }
+        else gljOprObj.showLibGLJSheetData();
     });
 
     $('#glj_tree_div').on('hidden.bs.modal', function () {
@@ -1302,16 +1315,21 @@ $(function () {
             gljOprObj.showLibGLJSheetData();
         }
     })
-    //工料机搜索
+/*    //工料机搜索
     $('#gljSearchKeyword').change(function () {
         gljOprObj.filterLibGLJSheetData();
         gljOprObj.showLibGLJSheetData();
     });
-    $('#gljSearchKeyword').bind('keypress', function (e) {
+     $('#gljSearchKeyword').bind('keypress', function (e) {
         if(e.keyCode === 13){
+            alert('2');
             $(this).blur();
             return false;
         }
+    });*/
+    $('#gljSearchKeyword').bind('keyup', function (e) {
+        gljOprObj.filterLibGLJSheetData();
+        gljOprObj.showLibGLJSheetData();
     });
 
     $('#glj_selected_conf').click(function () {
@@ -1443,3 +1461,4 @@ function compareRationGLJ(a, b) {
     }
     return false;
 }
+

+ 1 - 1
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>
+                <h5 class="modal-title">格式</h5><h6 id="update_msg_response"></h6>
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                     <span aria-hidden="true">&times;</span>
                 </button>

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

@@ -29,6 +29,7 @@ let zTreeOprObj = {
     checkedRptTplNodes: null,
     currentRptPageRst: null,
     reportPageCfg: null,
+    defReportPageCfg: null,
     currentPage: 1,
     maxPages: 0,
     countChkedRptTpl: function () {
@@ -90,40 +91,45 @@ let zTreeOprObj = {
         params.engineerId = projectInfoObj.projectInfo.property.engineering;
         CommonAjax.postEx("report_tpl_api/getCustomizeCfg", params, 20000, true, function(result){
                 if (result) {
-                    me.reportPageCfg = result;
-                    $("#elementMargin_Left").get(0).value = result.margins.Left;
-                    $("#elementMargin_Right").get(0).value = result.margins.Right;
-                    $("#elementMargin_Top").get(0).value = result.margins.Top;
-                    $("#elementMargin_Bottom").get(0).value = result.margins.Bottom;
-
-                    for (let font of result.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";
-                        }
-                        document.getElementById("fontName_" + fontPropSuffix).value = font.Name;
-                        document.getElementById("fontHeight_" + fontPropSuffix).value = font.FontHeight;
-                        document.getElementById("font_bold_" + fontPropSuffix).className = (font.FontBold === "T")?"btn btn-sm btn-outline-secondary active":"btn btn-sm btn-outline-secondary";
-                        document.getElementById("font_italic_" + fontPropSuffix).className = (font.FontItalic === "T")?"btn btn-sm btn-outline-secondary active":"btn btn-sm btn-outline-secondary";
-                        document.getElementById("font_underline_" + fontPropSuffix).className = (font.FontUnderline === "T")?"btn btn-sm btn-outline-secondary active":"btn btn-sm btn-outline-secondary";
-                    }
-                    document.getElementById("rpt_vertical_line").checked = result.showVerticalLine;
-                    document.getElementById("rpt_narrow").checked = result.isNarrow;
-                    document.getElementById("rpt_fill_zero").checked = result.fillZero;
+                    me.defReportPageCfg = result[0];
+                    me.reportPageCfg = result[1];
+                    me.renderRptCfg(result[1]);
                 } else {
                     me.reportPageCfg = null;
+                    me.defReportPageCfg = null;
                 }
             }, null, null
         );
     },
+    renderRptCfg: function (cfg) {
+        $("#elementMargin_Left").get(0).value = cfg.margins.Left;
+        $("#elementMargin_Right").get(0).value = cfg.margins.Right;
+        $("#elementMargin_Top").get(0).value = cfg.margins.Top;
+        $("#elementMargin_Bottom").get(0).value = cfg.margins.Bottom;
+
+        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";
+            }
+            document.getElementById("fontName_" + fontPropSuffix).value = font.Name;
+            document.getElementById("fontHeight_" + fontPropSuffix).value = font.FontHeight;
+            document.getElementById("font_bold_" + fontPropSuffix).className = (font.FontBold === "T")?"btn btn-sm btn-outline-secondary active":"btn btn-sm btn-outline-secondary";
+            document.getElementById("font_italic_" + fontPropSuffix).className = (font.FontItalic === "T")?"btn btn-sm btn-outline-secondary active":"btn btn-sm btn-outline-secondary";
+            document.getElementById("font_underline_" + fontPropSuffix).className = (font.FontUnderline === "T")?"btn btn-sm btn-outline-secondary active":"btn btn-sm btn-outline-secondary";
+        }
+        document.getElementById("rpt_vertical_line").checked = cfg.showVerticalLine;
+        document.getElementById("rpt_narrow").checked = cfg.isNarrow;
+        document.getElementById("rpt_fill_zero").checked = cfg.fillZero;
+    },
     refreshNodes: function() {
         let me = this;
         let private_setupIsParent = function(node){
@@ -431,8 +437,19 @@ let rptControlObj = {
         let params = {};
         params.custCfg = zTreeOprObj.reportPageCfg;
         CommonAjax.postEx("report_tpl_api/saveCustomerCfg", params, 20000, true, function(result){
-                alert("Save successfully!");
-            }, null, null
+                // alert("Save successfully!");
+                $("#update_msg_response")[0].style.color = "green";
+                $("#update_msg_response")[0].innerHTML = " (保存成功!)";
+                setTimeout(function(){
+                    $("#update_msg_response")[0].innerHTML = "";
+                }, 1000);
+            }, function (failRst) {
+                $("#update_msg_response")[0].style.color = "red";
+                $("#update_msg_response")[0].innerHTML = " (保存失败!)";
+                setTimeout(function(){
+                    $("#update_msg_response")[0].innerHTML = "";
+                }, 1000);
+            }, null
         );
     },
     confirmCfgChange: function() {