Browse Source

广东公路报表相关,工程量清单指标相关,审核对比表相关

lishihao 1 year ago
parent
commit
7d66bf2998

+ 1 - 0
web/maintain/report/html/rpt_tpl_dtl_pre_hdl_change_quantities_bills.html

@@ -7,6 +7,7 @@
             <option value="onlyBill">清单排序合并</option>
             <option value="all">同项目节下排序合并</option>
             <option value="onlyChapt">只有章节汇总数据</option>
+            <option value="auditComparison">审核对比合并排序</option>
         </select>
     </div>
 </div>

+ 35 - 34
web/maintain/report/js/rpt_tpl_field_location.js

@@ -10,7 +10,7 @@ let fieldLocationOprObj = {
     iniSpreadJs: function (columnParentNode, contentParentNode) {
         let me = this;
         if (me.columnWorkBook === null) {
-            me.columnWorkBook = new GC.Spread.Sheets.Workbook($('#rptTplColumnWorkbook')[0], {sheetCount: 1});
+            me.columnWorkBook = new GC.Spread.Sheets.Workbook($('#rptTplColumnWorkbook')[0], { sheetCount: 1 });
             // me.columnWorkBook.setHei
             me.columnWorkBook.options.tabStripVisible = false;
             // me.columnWorkBook.options.scrollbarMaxAlign = true;
@@ -30,7 +30,7 @@ let fieldLocationOprObj = {
     },
     restoreColumn: function () {
         let me = this;
-        let rptTpl = (zTreeOprObj.currentNode)?zTreeOprObj.currentNode.rptTpl:null;
+        let rptTpl = (zTreeOprObj.currentNode) ? zTreeOprObj.currentNode.rptTpl : null;
         me.setupColumn(rptTpl, me.columnParentNode, me.contentParentNode);
     },
     setupColumn: function (rptTpl, columnParentNode, contentParentNode) {
@@ -42,9 +42,8 @@ let fieldLocationOprObj = {
             sheet.suspendPaint();
             sheet.clearSelection();
             sheet.setRowCount(0);
-            let spans =sheet.getSpans();
-            for(let i = 0; i < spans.length; i++)
-            {
+            let spans = sheet.getSpans();
+            for (let i = 0; i < spans.length; i++) {
                 sheet.removeSpan(spans[i].row, spans[i].col, GC.Spread.Sheets.SheetArea.viewport);
             }
             // sheet.setRowCount(1);
@@ -53,10 +52,10 @@ let fieldLocationOprObj = {
             let bandW = 700;
             let pIdx = JV.PAGES_SIZE_STR.indexOf(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_PAGE_SIZE]);
             if (pIdx >= 0) {
-                bandW = Math.round(JV.PAGES_SIZE[pIdx][0] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) /2.54*96 );
+                bandW = Math.round(JV.PAGES_SIZE[pIdx][0] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) / 2.54 * 96);
                 if (rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] === JV.ORIENTATION_LANDSCAPE ||
                     rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] === JV.ORIENTATION_LANDSCAPE_CHN) {
-                    bandW = Math.round(JV.PAGES_SIZE[pIdx][1] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) /2.54*96 );
+                    bandW = Math.round(JV.PAGES_SIZE[pIdx][1] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) / 2.54 * 96);
                 }
             }
             if (columnParentNode.items && columnParentNode.items.length > 0) {
@@ -84,10 +83,10 @@ let fieldLocationOprObj = {
                 for (let jCol = 0; jCol < sheet.getColumnCount(); jCol++) {
                     sheet.getCell(iSelectedRow, jCol).cellType(cellType);
                 }
-                xPos.sort(function(x1, x2){
+                xPos.sort(function (x1, x2) {
                     return (x1 - x2);
                 });
-                yPos.sort(function(y1, y2){
+                yPos.sort(function (y1, y2) {
                     return (y1 - y2);
                 });
                 for (let contentItemNode of contentParentNode.items) {
@@ -151,7 +150,7 @@ let fieldLocationOprObj = {
         let me = fieldLocationOprObj,
             sheet = me.columnWorkBook.getActiveSheet(),
             selectedRanges = sheet.getSelections()
-        ;
+            ;
         let rc = sheet.getRowCount();
         if (rc > 2) {
             if (selectedRanges.length > 0) {
@@ -184,7 +183,7 @@ let fieldLocationOprObj = {
         let me = fieldLocationOprObj,
             sheet = me.columnWorkBook.getActiveSheet(),
             selectedRanges = sheet.getSelections()
-        ;
+            ;
         let cc = sheet.getColumnCount();
         if (cc > 1) {
             if (selectedRanges.length > 0) {
@@ -215,8 +214,7 @@ let fieldLocationOprObj = {
         let spans = sheet.getSpans();
         if (selectedRanges.length > 0 && spans.length > 0) {
             let selectedSpans = [];
-            for(let i = 0; i < spans.length; i++)
-            {
+            for (let i = 0; i < spans.length; i++) {
                 for (let j = 0; j < selectedRanges.length; j++) {
                     if (spans[i].row >= selectedRanges[j].row && spans[i].col >= selectedRanges[j].col &&
                         spans[i].row < selectedRanges[j].row + selectedRanges[j].rowCount && spans[i].col < selectedRanges[j].col + selectedRanges[j].colCount) {
@@ -230,14 +228,14 @@ let fieldLocationOprObj = {
         }
     },
     fitTheWidth: function (factor) {
-        let me = this, rptTpl = (zTreeOprObj.currentNode)?zTreeOprObj.currentNode.rptTpl:null;
+        let me = this, rptTpl = (zTreeOprObj.currentNode) ? zTreeOprObj.currentNode.rptTpl : null;
         let pIdx = JV.PAGES_SIZE_STR.indexOf(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_PAGE_SIZE]);
         let bandW = 700;
         if (pIdx >= 0) {
-            bandW = Math.round(JV.PAGES_SIZE[pIdx][0] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) /2.54*96 );
+            bandW = Math.round(JV.PAGES_SIZE[pIdx][0] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) / 2.54 * 96);
             if (rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] === JV.ORIENTATION_LANDSCAPE ||
                 rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] === JV.ORIENTATION_LANDSCAPE_CHN) {
-                bandW = Math.round(JV.PAGES_SIZE[pIdx][1] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) /2.54*96 );
+                bandW = Math.round(JV.PAGES_SIZE[pIdx][1] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) / 2.54 * 96);
             }
         }
         bandW *= factor;
@@ -255,10 +253,10 @@ let fieldLocationOprObj = {
         let me = fieldLocationOprObj,
             sheet = me.columnWorkBook.getActiveSheet(),
             fieldRowIdx = sheet.getRowCount() - 1
-        ;
+            ;
         //sheet.getSelectio
         let selectedRanges = sheet.getSelections();
-        for(let i = 0; i < selectedRanges.length; i++){
+        for (let i = 0; i < selectedRanges.length; i++) {
             if (selectedRanges[i].row === fieldRowIdx) {
                 let ctrl = me.columnFieldCtrls[selectedRanges[i].col]
                 ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHRINK]] = 'F';
@@ -352,7 +350,7 @@ let fieldLocationOprObj = {
         }
     },
     private_create_dft_ctrl: function () {
-        return {"Shrink" : "T", "ShowZero" : "T", "Horizon": "left", "Vertical": "bottom", "Wrap": "F", "isNarrow": false, "isAutoHeight": false };
+        return { "Shrink": "T", "ShowZero": "T", "Horizon": "left", "Vertical": "bottom", "Wrap": "F", "isNarrow": false, "isAutoHeight": false };
     },
     private_merge_ctrl: function (rptTpl, srcIdx, fieldNode, directCtrl) {
         let me = this, ctrl = null;
@@ -405,23 +403,24 @@ let fieldLocationOprObj = {
             $("#eleIsAutoHeightEx")[0].removeAttribute("disabled");
         } else {
             $("#fieldControlDiv")[0].style.cursor = "not-allowed";
-            $("#hOptionLeft")[0].disabled = "disabled" ;
-            $("#hOptionCenter")[0].disabled = "disabled" ;
-            $("#hOptionRight")[0].disabled = "disabled" ;
-            $("#vOptionUp")[0].disabled = "disabled" ;
-            $("#vOptionCenter")[0].disabled = "disabled" ;
-            $("#vOptionDown")[0].disabled = "disabled" ;
-            $("#eleShrinkEx")[0].disabled = "disabled" ;
-            $("#eleShowZeroEx")[0].disabled = "disabled" ;
-            $("#eleAutoWrapEx")[0].disabled = "disabled" ;
-            $("#eleIsNarrowEx")[0].disabled = "disabled" ;
-            $("#eleIsAutoHeightEx")[0].disabled = "disabled" ;
+            $("#hOptionLeft")[0].disabled = "disabled";
+            $("#hOptionCenter")[0].disabled = "disabled";
+            $("#hOptionRight")[0].disabled = "disabled";
+            $("#vOptionUp")[0].disabled = "disabled";
+            $("#vOptionCenter")[0].disabled = "disabled";
+            $("#vOptionDown")[0].disabled = "disabled";
+            $("#eleShrinkEx")[0].disabled = "disabled";
+            $("#eleShowZeroEx")[0].disabled = "disabled";
+            $("#eleAutoWrapEx")[0].disabled = "disabled";
+            $("#eleIsNarrowEx")[0].disabled = "disabled";
+            $("#eleIsAutoHeightEx")[0].disabled = "disabled";
         }
     },
     private_create_content_node: function (colWidthArr, cellValue, colIdx, rptTpl) {
         let me = this;
-        let rst = {"Name": cellValue, "Title": '', "FieldID": -1, "font": "Content", "control": "Column", "style" : "Default_Normal", "isAutoHeight" : false,
-            "area" : {"Left" : 0, "Right" : 100, "Top" : 0, "Bottom" : 100, "H_CalculationType" : "percentage", "V_CalculationType" : "percentage"}
+        let rst = {
+            "Name": cellValue, "Title": '', "FieldID": -1, "font": "Content", "control": "Column", "style": "Default_Normal", "isAutoHeight": false,
+            "area": { "Left": 0, "Right": 100, "Top": 0, "Bottom": 100, "H_CalculationType": "percentage", "V_CalculationType": "percentage" }
         };
         //1. 设置FieldID
         let hasChkField = false;
@@ -429,6 +428,7 @@ let fieldLocationOprObj = {
             for (let field of rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]) {
                 if (field[JV.PROP_NAME] === cellValue) {
                     rst.FieldID = field[JV.PROP_ID];
+                    rst.Name = field.Name + "(" + field[JV.PROP_ID] + ")";
                     rst["Title"] = "ID: " + field[JV.PROP_ID];
                     hasChkField = true;
                     break;
@@ -439,6 +439,7 @@ let fieldLocationOprObj = {
             for (let field of rptTpl[JV.NODE_NO_MAPPING_FIELDS]) {
                 if (field[JV.PROP_NAME] === cellValue) {
                     rst.FieldID = field[JV.PROP_ID];
+                    rst.Name = field.Name + "(" + field[JV.PROP_ID] + ")";
                     rst["Title"] = "ID: " + field[JV.PROP_ID];
                     hasChkField = true;
                     break;
@@ -490,7 +491,7 @@ let fieldLocationOprObj = {
 
     applyColumnBack: function () {
         let me = this;
-        let rptTpl = (zTreeOprObj.currentNode)?zTreeOprObj.currentNode.rptTpl:null;
+        let rptTpl = (zTreeOprObj.currentNode) ? zTreeOprObj.currentNode.rptTpl : null;
         if (rptTpl && me.columnParentNode && me.contentParentNode && confirm(`请确认提交应用!`)) {
             let sheet = me.columnWorkBook.getActiveSheet();
             if (sheet.getRowCount() > 1 && sheet.getColumnCount() > 0) {
@@ -513,7 +514,7 @@ let fieldLocationOprObj = {
                 //1. 重新生成节点
                 let contentNodes = [];
                 let contenRowIdx = sheet.getRowCount() - 1;
-                let rptTpl = (zTreeOprObj.currentNode)?zTreeOprObj.currentNode.rptTpl:null;
+                let rptTpl = (zTreeOprObj.currentNode) ? zTreeOprObj.currentNode.rptTpl : null;
                 for (let iCol = 0; iCol < sheet.getColumnCount(); iCol++) {
                     let cellValue = sheet.getValue(contenRowIdx, iCol);
                     if (!(stringUtil.isEmptyString(cellValue))) {

+ 50 - 49
web/maintain/report/js/rpt_tpl_field_map.js

@@ -7,10 +7,10 @@
 'use strict'
 
 let fieldMapTreeOprObj = {
-    treeObj : null,
+    treeObj: null,
     currentNode: null,
     dataTypeDef: ['string', 'int32', 'int64', 'double', 'currency', 'date', 'image', 'object'],
-    iniTree: function(rptTpl) {
+    iniTree: function (rptTpl) {
         var me = this;
         let fieldMapList = me.buildTreeData(rptTpl);
         me.treeObj = $.fn.zTree.init($("#field_map_tree_reversed"), fieldMapSetting, fieldMapList);
@@ -27,21 +27,22 @@ let fieldMapTreeOprObj = {
                 if (field[JV.PROP_IS_ID]) {
                     field.checked = true;
                 }
+                field.Name = field.Name + "(" + field[JV.PROP_ID] + ")";
                 field.Title = "ID: " + field[JV.PROP_ID];
                 parent.items.push(field);
             }
         }
 
         if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS]) {
-            rst.push({Name: JV.NODE_DISCRETE_FIELDS, items: [], isParent: true});
+            rst.push({ Name: JV.NODE_DISCRETE_FIELDS, items: [], isParent: true });
             private_setSubFields(rst[rst.length - 1], rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS])
         }
         if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS]) {
-            rst.push({Name: JV.NODE_MASTER_FIELDS, items: [], isParent: true});
+            rst.push({ Name: JV.NODE_MASTER_FIELDS, items: [], isParent: true });
             private_setSubFields(rst[rst.length - 1], rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS])
         }
         if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]) {
-            rst.push({Name: JV.NODE_DETAIL_FIELDS, items: [], isParent: true});
+            rst.push({ Name: JV.NODE_DETAIL_FIELDS, items: [], isParent: true });
             private_setSubFields(rst[rst.length - 1], rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS])
         }
 
@@ -52,7 +53,7 @@ let fieldMapTreeOprObj = {
         if (me.treeObj) {
             let nodes = me.treeObj.getNodes();
             for (let node of nodes) {
-                let item = {Name: node.Name, items: [], isParent: true, Title: ""};
+                let item = { Name: node.Name, items: [], isParent: true, Title: "" };
                 if (node.items) {
                     for (let subNode of node.items) {
                         let subItem = me.createMapFieldByNode(subNode);
@@ -64,7 +65,7 @@ let fieldMapTreeOprObj = {
         }
         return rst;
     },
-    onClick: function (event,treeId,treeNode) {
+    onClick: function (event, treeId, treeNode) {
         let me = fieldMapTreeOprObj;
         me.currentNode = treeNode;
         //then refresh the field map tab properties
@@ -91,13 +92,13 @@ let fieldMapTreeOprObj = {
         // }
         //映射指标
     },
-    onBeforeRemove: function(treeId, treeNode){
+    onBeforeRemove: function (treeId, treeNode) {
         if (treeNode.level === 0) {
             return false;
         }
         return true;
     },
-    beforeRename: function(treeId, treeNode, newName, isCancel) {
+    beforeRename: function (treeId, treeNode, newName, isCancel) {
         if (isCancel) {
             return true;
         }
@@ -106,7 +107,7 @@ let fieldMapTreeOprObj = {
         }
         return true;
     },
-    onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
+    onBeforeDrop: function (treeId, treeNodes, targetNode, moveType) {
         let rst = true;
         if (treeId === 'selectable_field_tree_reversed' || targetNode.level === 0 || moveType === 'inner') {
             rst = false;
@@ -189,27 +190,27 @@ let fieldMapTreeOprObj = {
 };
 
 let selectableFiledTreeOprObj = {
-    treeObj : null,
+    treeObj: null,
     currentNode: null,
-    iniTree: function() {
+    iniTree: function () {
         let me = this, params = {};
         params.userId = userID;
-        CommonAjax.postEx("report_tpl_api/getMappingFields", params, 20000, true, function(result){
-                let showRst = [];
-                for (let item of result) {
-                    me.decorateMappingFieldList(item);
-                    if (item.items.length > 0) {
-                        showRst.push(item);
-                    }
-                }
-                me.treeObj = $.fn.zTree.init($("#selectable_field_tree_reversed"), selectableFieldSetting, showRst);
-                let nodes = me.treeObj.getNodes();
-                for (let node of nodes) {
-                    me.treeObj.expandNode(node, true, false);
+        CommonAjax.postEx("report_tpl_api/getMappingFields", params, 20000, true, function (result) {
+            let showRst = [];
+            for (let item of result) {
+                me.decorateMappingFieldList(item);
+                if (item.items.length > 0) {
+                    showRst.push(item);
                 }
-                // me.treeObj.expandAll(true);
-                showRst = null;
-            }, null, null
+            }
+            me.treeObj = $.fn.zTree.init($("#selectable_field_tree_reversed"), selectableFieldSetting, showRst);
+            let nodes = me.treeObj.getNodes();
+            for (let node of nodes) {
+                me.treeObj.expandNode(node, true, false);
+            }
+            // me.treeObj.expandAll(true);
+            showRst = null;
+        }, null, null
         );
     },
     decorateMappingFieldList: function (rawMappingField) {
@@ -222,7 +223,7 @@ let selectableFiledTreeOprObj = {
             rawMappingField.Title = "ID: " + rawMappingField[JV.PROP_ID];
         }
     },
-    onClick: function (event,treeId,treeNode) {
+    onClick: function (event, treeId, treeNode) {
         let me = fieldMapTreeOprObj;
         me.currentNode = treeNode;
     },
@@ -236,10 +237,10 @@ let selectableFiledTreeOprObj = {
         }
         return rst;
     },
-    onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
+    onBeforeDrop: function (treeId, treeNodes, targetNode, moveType) {
         let rst = true;
         if (treeId === 'field_map_tree_reversed') {
-            if ( (targetNode.level === 0 && moveType !== 'inner') || (targetNode.level > 0 && moveType === 'inner')) {
+            if ((targetNode.level === 0 && moveType !== 'inner') || (targetNode.level > 0 && moveType === 'inner')) {
                 rst = false;
             }
         } else {
@@ -250,29 +251,29 @@ let selectableFiledTreeOprObj = {
     addDiyDom: function (treeId, treeNode) {
         if (treeNode.level > 0) {
             let aObj = $("#" + treeNode.tId + "_a");
-            if ($("#diyBtn_"+treeNode.ID).length>0) return;
+            if ($("#diyBtn_" + treeNode.ID).length > 0) return;
             let editStr = "<span>&nbsp(" + treeNode.DataType + ")</span>";
             aObj.append(editStr);
-            let btn = $("#diyBtn_"+treeNode.ID);
-            if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);});
+            let btn = $("#diyBtn_" + treeNode.ID);
+            if (btn) btn.bind("click", function () { alert("diy Button for " + treeNode.name); });
         }
     }
 };
 
 let discreteFieldParamTreeOprObj = {
-    treeObj : null,
+    treeObj: null,
     currentNode: null,
-    local_idx : 12000,
-    iniTree: function(rptTpl) {
+    local_idx: 12000,
+    iniTree: function (rptTpl) {
         var me = this;
         let fieldMapList = me.buildTreeData(rptTpl);
         me.treeObj = $.fn.zTree.init($("#tpl_discrete_fields_params_reversed"), discreteFieldParamSetting, fieldMapList);
         me.treeObj.expandAll(true);
     },
-    buildTreeData: function(rptTpl){
+    buildTreeData: function (rptTpl) {
         let me = this, rst = [];
-        let disFieldNode = {Name: JV.NODE_NO_MAPPING_FIELDS, items: [], isParent: true, Title: ""};
-        let disParamNode = {Name: JV.NODE_DISCRETE_PARAMS, items: [], isParent: true, Title: ""};
+        let disFieldNode = { Name: JV.NODE_NO_MAPPING_FIELDS, items: [], isParent: true, Title: "" };
+        let disParamNode = { Name: JV.NODE_DISCRETE_PARAMS, items: [], isParent: true, Title: "" };
         rst.push(disFieldNode);
         rst.push(disParamNode);
         if (rptTpl[JV.NODE_NO_MAPPING_FIELDS] && rptTpl[JV.NODE_NO_MAPPING_FIELDS].length > 0) {
@@ -302,18 +303,18 @@ let discreteFieldParamTreeOprObj = {
         }
         return rst;
     },
-    getAndModifyLocalIdx: function() {
+    getAndModifyLocalIdx: function () {
         let me = discreteFieldParamTreeOprObj, rst = me.local_idx;
         me.local_idx++;
         return rst;
     },
-    addHoverDom: function(treeId, treeNode) {
+    addHoverDom: function (treeId, treeNode) {
         let me = discreteFieldParamTreeOprObj, sObj = $("#" + treeNode.tId + "_span");
-        if (treeNode.level > 0 || $("#addBtn_"+treeNode.tId).length > 0) return;
+        if (treeNode.level > 0 || $("#addBtn_" + treeNode.tId).length > 0) return;
         let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子节点' onfocus='this.blur();'></span>";
         sObj.after(addStr);
-        let btn = $("#addBtn_"+treeNode.tId);
-        if (btn) btn.bind("click", function(){
+        let btn = $("#addBtn_" + treeNode.tId);
+        if (btn) btn.bind("click", function () {
             if (treeNode[JV.PROP_NAME] === JV.NODE_NO_MAPPING_FIELDS) {
                 let field = me.private_setup_dummy_discrete_field_node();
                 let newNodes = [field];
@@ -343,17 +344,17 @@ let discreteFieldParamTreeOprObj = {
         rst.Title = "ID: " + rst[JV.PROP_ID];
         return rst;
     },
-    removeHoverDom: function(treeId, treeNode) {
-        $("#addBtn_"+treeNode.tId).unbind().remove();
+    removeHoverDom: function (treeId, treeNode) {
+        $("#addBtn_" + treeNode.tId).unbind().remove();
     },
-    onBeforeRemove: function(treeId, treeNode){
+    onBeforeRemove: function (treeId, treeNode) {
         let rst = true;
         if (treeNode.isParent) {
             rst = false;
         }
         return rst;
     },
-    beforeRename: function(treeId, treeNode, newName, isCancel) {
+    beforeRename: function (treeId, treeNode, newName, isCancel) {
         let rst = true;
         if (treeNode.isParent && !isCancel) {
             rst = false;
@@ -370,7 +371,7 @@ let discreteFieldParamTreeOprObj = {
         }
         return rst;
     },
-    onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
+    onBeforeDrop: function (treeId, treeNodes, targetNode, moveType) {
         // let rst = false;
         // if (targetNode.tId && targetNode.tId.indexOf("tpl_data_info_reversed") >= 0 && (!(targetNode.isParent && moveType !== 'inner')) ) {
         //     if (targetNode.level === 0) {

+ 27 - 25
web/maintain/report/js/rpt_tpl_vis_sum.js

@@ -11,7 +11,7 @@ let virtualSummaryOprObj = {
             me.summaryWorkBook.destroy();
             me.summaryWorkBook = null;
         }
-        me.summaryWorkBook = new GC.Spread.Sheets.Workbook($('#rptTplSummaryWorkbook')[0], {sheetCount: 1});
+        me.summaryWorkBook = new GC.Spread.Sheets.Workbook($('#rptTplSummaryWorkbook')[0], { sheetCount: 1 });
         me.summaryWorkBook.options.tabStripVisible = false;
         me.summaryWorkBook.options.allowCopyPasteExcelStyle = false;
         me.summaryWorkBook.options.allowUserDragDrop = false;
@@ -24,7 +24,7 @@ let virtualSummaryOprObj = {
     },
     restoreSummary: function () {
         let me = this;
-        let rptTpl = (zTreeOprObj.currentNode)?zTreeOprObj.currentNode.rptTpl:null;
+        let rptTpl = (zTreeOprObj.currentNode) ? zTreeOprObj.currentNode.rptTpl : null;
         me.private_setup_control_options(false);
         me.setupSummary(rptTpl, me.summaryParentNode);
     },
@@ -46,17 +46,17 @@ let virtualSummaryOprObj = {
             if (columnParentNode) {
                 let yColumnPos = [], xPos = [], ySummaryPos = [0]
                     // , xSummaryPos = [0]
-                ;
+                    ;
                 let sheet = me.summaryWorkBook.getActiveSheet();
                 let columnBand = visualCommonOprObj.getBandEx(columnParentNode[JV.PROP_BAND_NAME], rptTpl);
                 let bandH = Math.round(parseFloat(columnBand[JV.BAND_PROP_HEIGHT]) / 2.54 * 96);
                 let bandW = 700;
                 let pIdx = JV.PAGES_SIZE_STR.indexOf(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_PAGE_SIZE]);
                 if (pIdx >= 0) {
-                    bandW = Math.round(JV.PAGES_SIZE[pIdx][0] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) /2.54*96 );
+                    bandW = Math.round(JV.PAGES_SIZE[pIdx][0] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) / 2.54 * 96);
                     if (rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] === JV.ORIENTATION_LANDSCAPE ||
                         rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] === JV.ORIENTATION_LANDSCAPE_CHN) {
-                        bandW = Math.round(JV.PAGES_SIZE[pIdx][1] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) /2.54*96 );
+                        bandW = Math.round(JV.PAGES_SIZE[pIdx][1] * 96 - (parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]) + parseFloat(rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT])) / 2.54 * 96);
                     }
                 }
                 //1. 设置column位置(让用户知道位置,后期无需用户再调)
@@ -72,10 +72,10 @@ let virtualSummaryOprObj = {
                 sheet.setColumnCount(xPos.length - 1, GC.Spread.Sheets.SheetArea.viewport);
                 // sheet.clear();
 
-                xPos.sort(function(x1, x2){
+                xPos.sort(function (x1, x2) {
                     return (x1 - x2);
                 });
-                yColumnPos.sort(function(y1, y2){
+                yColumnPos.sort(function (y1, y2) {
                     return (y1 - y2);
                 });
                 for (let idx = 1; idx < xPos.length; idx++) {
@@ -127,7 +127,7 @@ let virtualSummaryOprObj = {
         let me = this,
             sheet = me.summaryWorkBook.getActiveSheet(),
             selectedRanges = sheet.getSelections()
-        ;
+            ;
         sheet.suspendPaint();
         if (selectedRanges.length > 0) {
             sheet.deleteRows(selectedRanges[0].row, 1);
@@ -207,8 +207,7 @@ let virtualSummaryOprObj = {
         if (selectedRanges.length > 0 && spans.length > 0) {
             sheet.suspendPaint();
             let selectedSpans = [];
-            for(let i = 0; i < spans.length; i++)
-            {
+            for (let i = 0; i < spans.length; i++) {
                 for (let j = 0; j < selectedRanges.length; j++) {
                     if (spans[i].row >= selectedRanges[j].row && spans[i].col >= selectedRanges[j].col &&
                         spans[i].row <= selectedRanges[j].row + selectedRanges[j].rowCount && spans[i].col <= selectedRanges[j].col + selectedRanges[j].colCount) {
@@ -243,8 +242,8 @@ let virtualSummaryOprObj = {
             let hA = GC.Spread.Sheets.HorizontalAlign.left, vA = GC.Spread.Sheets.VerticalAlign.top;
             if ($(`#hOptionCenterSum`)[0].checked) hA = GC.Spread.Sheets.HorizontalAlign.center;
             if ($(`#hOptionRightSum`)[0].checked) hA = GC.Spread.Sheets.HorizontalAlign.right;
-            if ($(`#vOptionCenterSum`)[0].checked ) vA = GC.Spread.Sheets.VerticalAlign.center;
-            if ($(`#vOptionDownSum`)[0].checked ) vA = GC.Spread.Sheets.VerticalAlign.bottom;
+            if ($(`#vOptionCenterSum`)[0].checked) vA = GC.Spread.Sheets.VerticalAlign.center;
+            if ($(`#vOptionDownSum`)[0].checked) vA = GC.Spread.Sheets.VerticalAlign.bottom;
             cell.hAlign(hA);
             cell.vAlign(vA);
             if ($(`#eleIsNarrowSumEx`)[0].checked) {
@@ -258,9 +257,9 @@ let virtualSummaryOprObj = {
     changeCtrl: function (dom) {
         let me = virtualSummaryOprObj,
             sheet = me.summaryWorkBook.getActiveSheet()
-        ;
+            ;
         let selectedRanges = sheet.getSelections();
-        for(let i = 0; i < selectedRanges.length; i++){
+        for (let i = 0; i < selectedRanges.length; i++) {
             //         let ctrl = me.columnFieldCtrls[selectedRanges[i].col]
             //         ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHRINK]] = 'F';
             //         ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHOW_ZERO]] = 'F';
@@ -314,21 +313,22 @@ let virtualSummaryOprObj = {
             $("#eleIsNarrowSumEx")[0].removeAttribute("disabled");
         } else {
             $("#sumFieldControlDiv")[0].style.cursor = "not-allowed";
-            $("#hOptionLeftSum")[0].disabled = "disabled" ;
-            $("#hOptionCenterSum")[0].disabled = "disabled" ;
-            $("#hOptionRightSum")[0].disabled = "disabled" ;
-            $("#vOptionUpSum")[0].disabled = "disabled" ;
-            $("#vOptionCenterSum")[0].disabled = "disabled" ;
-            $("#vOptionDownSum")[0].disabled = "disabled" ;
-            $("#rdIsText")[0].disabled = "disabled" ;
-            $("#rdIsField")[0].disabled = "disabled" ;
+            $("#hOptionLeftSum")[0].disabled = "disabled";
+            $("#hOptionCenterSum")[0].disabled = "disabled";
+            $("#hOptionRightSum")[0].disabled = "disabled";
+            $("#vOptionUpSum")[0].disabled = "disabled";
+            $("#vOptionCenterSum")[0].disabled = "disabled";
+            $("#vOptionDownSum")[0].disabled = "disabled";
+            $("#rdIsText")[0].disabled = "disabled";
+            $("#rdIsField")[0].disabled = "disabled";
             $("#eleIsNarrowSumEx")[0].disabled = "disabled";
         }
     },
     private_create_field_node: function (sheet, colWidthArr, rowHeightArr, text, rptTpl) {
         let cellValue = text[`text`].toString().slice(1, -1);
-        let rst = {"Name": cellValue, "Title": '', "FieldID": -1, "font": "GrandTotal", "control": "Column_Right", "style" : "Default_Normal", "isAutoHeight" : false,
-            "area" : {"Left" : 0, "Right" : 100, "Top" : 0, "Bottom" : 100, "H_CalculationType" : "percentage", "V_CalculationType" : "percentage"}
+        let rst = {
+            "Name": cellValue, "Title": '', "FieldID": -1, "font": "GrandTotal", "control": "Column_Right", "style": "Default_Normal", "isAutoHeight": false,
+            "area": { "Left": 0, "Right": 100, "Top": 0, "Bottom": 100, "H_CalculationType": "percentage", "V_CalculationType": "percentage" }
         };
         //1. 设置FieldID
         let hasChkField = false;
@@ -336,6 +336,7 @@ let virtualSummaryOprObj = {
             for (let field of rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]) {
                 if (field[JV.PROP_NAME] === cellValue) {
                     rst.FieldID = field[JV.PROP_ID];
+                    field.Name = field.Name + "(" + field[JV.PROP_ID] + ")";
                     rst["Title"] = "ID: " + field[JV.PROP_ID];
                     hasChkField = true;
                     break;
@@ -346,6 +347,7 @@ let virtualSummaryOprObj = {
             for (let field of rptTpl[JV.NODE_NO_MAPPING_FIELDS]) {
                 if (field[JV.PROP_NAME] === cellValue) {
                     rst.FieldID = field[JV.PROP_ID];
+                    field.Name = field.Name + "(" + field[JV.PROP_ID] + ")";
                     rst["Title"] = "ID: " + field[JV.PROP_ID];
                     hasChkField = true;
                     break;
@@ -364,7 +366,7 @@ let virtualSummaryOprObj = {
 
     applySummaryBack: function () {
         let me = this;
-        let rptTpl = (zTreeOprObj.currentNode)?zTreeOprObj.currentNode.rptTpl:null;
+        let rptTpl = (zTreeOprObj.currentNode) ? zTreeOprObj.currentNode.rptTpl : null;
         if (rptTpl && me.summaryParentNode) {
             let sheet = me.summaryWorkBook.getActiveSheet();
             let rAmt = sheet.getRowCount(), pixH = [0];