Przeglądaj źródła

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

MaiXinRong 8 lat temu
rodzic
commit
498d7f094a

+ 0 - 2
modules/reports/models/tpl_tree_node.js

@@ -43,8 +43,6 @@ RplTplTreeDAO.prototype.getTplTreeNodes = function(grpType, userId, tplType, cal
 RplTplTreeDAO.prototype.updateTreeNodes = function(nodes, callback) {
     var functions = [];
     for (var i=0; i < nodes.length; i++) {
-        //var md = new rationChapterTreeModel(nodes[i]);
-        //md.isNew = false;
         functions.push((function(doc) {
             return function(cb) {
                 TreeNodeModel.update({ID: doc.ID}, doc, cb);

+ 19 - 0
public/web/sheet_creater.js

@@ -25,6 +25,7 @@ sheetObj = {
         sheet.addRows(sheet.getRowCount(), 1);      // 扩展1行,用于直接输入以新增记录。
         sheet.bindColumns(colDef);
         me.setColAlign(colDef);
+        me.lockCols(colDef);
         me.setRowHeight(datas, 25);
 
         me.spread.resumePaint();
@@ -59,6 +60,24 @@ sheetObj = {
 
     },
 
+    lockCols: function(colDef){
+        var me = this;
+        var sheet = me.spread.getSheet(0);
+        sheet.options.isProtected = true;
+        sheet.options.isProtected = true;
+        sheet.getRange(-1, 0, -1, colDef.length, GC.Spread.Sheets.SheetArea.viewport).locked(false);
+
+        for (var col = 0; col < colDef.length; col++) {
+            if (colDef[col].readOnly == undefined) {
+                var ro = false
+            }else{
+                var ro = colDef[col].readOnly;
+            };
+
+            sheet.getRange(-1, col, -1, 1, GC.Spread.Sheets.SheetArea.viewport).locked(ro);
+        };
+    },
+
     setRowHeight: function(datas, hValue){
         var me = this;
         var sheet = me.spread.getSheet(0);

+ 2 - 2
web/maintain/ration_repository/fuzhu.html

@@ -36,8 +36,8 @@
                   </li>
 
                   <li class="nav-item">
-                  <input type="button" id="btnAddRow" value="Add Row" />
-                  <input type="button" id="btnDeleteRow" value="Delete Row" />
+                  <!--<input type="button" id="btnAddRow" value="Add Row" />-->
+                  <!--<input type="button" id="btnDeleteRow" value="Delete Row" />-->
                   </li>
               </ul>
         </nav>

+ 48 - 49
web/maintain/ration_repository/js/coe.js

@@ -12,10 +12,6 @@ var pageObj = {
             $(this).attr('href', "/rationRepository/lmm" + "?repository=" + getQueryString("repository"))
         });
 
-        $("#btnAddRow").click(function(){
-                coeList.addMainRow();
-        });
-
         var libID = getQueryString("repository");
         var libName = storageUtil.getSessionCache("RationGrp","repositoryID_" + libID);
         if (libName) {
@@ -36,7 +32,7 @@ var coeList = {
     tempID: -999999,       // 本地新增一条数据给的默认ID,用作标记,服务端返回新ID后替换该ID
 
     colDefMain: [
-        {name: "ID", displayName: "编号", size: 100, hAlign: "center"},
+        {name: "ID", displayName: "编号", size: 60, hAlign: "center", readOnly: true},
         {name: "name", displayName: "名称", size: 280},
         {name: "content", displayName: "内容", size: 250}
     ],
@@ -66,21 +62,10 @@ var coeList = {
 
         me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onMainEnterCell);
         me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onMainCellChanged);
-        me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.RowChanged, me.onMainRowChanged);
 
         me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onDetailCellChanged);
     },
 
-    addMainRow: function () {
-        var me = this;
-        var sheet = me.mainSpread.getSheet(0);
-        var sels = sheet.getSelections();
-        var row = sels[0].row;
-        if (sels.length > 0) {
-            sheet.addRows(row, 1);
-        };
-    },
-
     getDatas: function () {
         var me = this;
 
@@ -103,7 +88,7 @@ var coeList = {
         })
     },
 
-    getLibID: function(libName){
+    /*getLibID: function(libName){
         var me = this;
         $.ajax({
             type:"POST",
@@ -122,7 +107,7 @@ var coeList = {
                 alert('内部程序错误!');
             }
         })
-    },
+    },*/
 
     onMainEnterCell: function(sender, args) {
         var me = coeList;
@@ -132,75 +117,89 @@ var coeList = {
         var dSheet = me.detailSpread.getSheet(0);
         var dData = me.datas[row].coes;
         if (dData == undefined){
-            dSheet.setDataSource(null);
+            dSheet.setDataSource([]);
+            dSheet.setRowCount(0);
         }else{
             dSheet.setDataSource(dData);
-            var lastData = dData[dData.length - 1];
-            if (lastData.coeType !== undefined){
+            me.showNullRow(dSheet);
+
+/*            var lastData = dData[dData.length - 1];
+            if (!$.isEmptyObject(lastData)){
                 dSheet.addRows(dSheet.getRowCount(), 1);
-            };
+            };*/
         };
         me.detailSpread.resumePaint();
     },
 
     onMainCellChanged: function(sender, args) {
-        alert('onMainCellChanged');
+        if (args.propertyName !== "value"){return;};
         var me = coeList;
         var row = args.sheet.getActiveRowIndex();
         var obj = me.datas[row];
-        me.save([],[],[obj]);
-    },
-
-    onMainRowChanged: function (event, data) {
-        var me = coeList;
-        var row = data.row, count = data.count, propName = data.propertyName;
-        if (row === undefined || count === undefined || propName === undefined) {
-            return;
-        };
 
-        if (propName === "addRows") {
-            var sheet = me.mainSpread.getSheet(0);
-            var obj = {};
+        if (obj.ID == undefined){           // 空行录入,即新增
             obj.libID = me.libID;
             obj.ID = me.tempID;
-            obj.name = "新建名称";
-            obj.content = "新建内容";
-            obj.coes = [{coeType:"全部", operator:"*"}];
+            obj.coes = [{coeType:"全部", operator:"*", amount: "0"}];
             me.datas[row] = obj;
 
+            me.save([obj],[],[]);
+
             me.detailSpread.suspendPaint();
             me.detailSpread.getSheet(0).setDataSource(me.datas[row].coes);
             me.detailSpread.resumePaint();
-
-            me.save([obj],[],[]);
+            var sheet = me.mainSpread.getSheet(0);
+            //sheet.addRows(sheet.getRowCount(), 1);
+            me.showNullRow(sheet);
         }
-        else if (propName === "deleteRows") {
-            //me.save([],[obj],[]);
+        else{                               // 正常修改
+            me.save([],[],[obj]);
         };
     },
 
     onDetailCellChanged: function(sender, args) {
-        //alert('onDetailCellChanged');
+        if (args.propertyName !== "value"){return;};
+
         var me = coeList;
-        var row = args.sheet.getActiveRowIndex();
         var mainRow = me.mainSpread.getSheet(0).getActiveRowIndex();
-        var curType = args.sheet.getValue(row,0);
-        if (!(curType == '单个')){
+        var detailRow = args.sheet.getActiveRowIndex();
+        var detailDatas = me.datas[mainRow].coes;
+        var curDetailData = detailDatas[detailRow];
+        var curType = curDetailData.coeType;
+        if (curType !== '单个'){
+            me.detailSpread.suspendPaint();
+            curDetailData.gljID = null;
+            me.detailSpread.resumePaint();
+        };
+
+/*        var curType = args.sheet.getValue(detailRow, 0);
+        if (curType !== '单个'){
             me.detailSpread.suspendEvent();
-            args.sheet.setValue(row, 1, null);
+            args.sheet.setValue(detailRow, 1, null);
             me.detailSpread.resumeEvent();
             //args.sheet.getCell(row, 1).backColor("red");
         }
         else{
             //args.sheet.getCell(row, 1).backColor("Blue");
-        };
+        };*/
+
         var obj = me.datas[mainRow];
         me.save([],[],[obj]);
+
+        me.showNullRow(args.sheet);
+    },
+
+    showNullRow: function(sheet){
+        var datas = sheet.getDataSource();
+        var lastData = datas[datas.length - 1];
+        if (!$.isEmptyObject(lastData)){
+            sheet.addRows(sheet.getRowCount(), 1);
+        };
     },
 
     save: function(addArr, deleteArr, updateArr) {
+        alert('触发了save');
         var me = coeList;
-        //alert('触发了save');
         $.ajax({
             type:"POST",
             url:"api/saveCoeList",

+ 66 - 8
web/maintain/report/js/rpt_tpl_main.js

@@ -10,16 +10,38 @@ var rptTplObj = {
 
 var zTreeOprObj = {
     treeObj: null,
+    currentNode: null,
     getReportTemplateTree: function(grpType) {
         var me = zTreeOprObj, params = {};
         params.grpType = grpType;
         params.userId = userID;
         params.tplType = RT.TplType.ALL;
         CommonAjax.postEx("report_tpl_api/getRptTplTree", params, 20000, function(result){
-                zTreeHelper.createTree(result, setting, "rptTplTree", me);
-            }, null, null
+            zTreeHelper.createTree(result, setting, "rptTplTree", me);
+            me.refreshNodes();
+        }, null, null
         );
     },
+    refreshNodes: function() {
+        var me = this;
+        private_setupIsParent = function(node){
+            if (node.nodeType == RT.NodeType.NODE) {
+                node.isParent = true;
+            } else {
+                node.isParent = false;
+            }
+            if (node.items && node.items.length) {
+                for (var i = 0; i < node.items.length; i++) {
+                    private_setupIsParent(node.items[i]);
+                }
+            }
+        };
+        var topNodes = me.treeObj.getNodes();
+        for (var i = 0; i < topNodes.length; i++) {
+            private_setupIsParent(topNodes[i]);
+        }
+        me.treeObj.refresh();
+    },
     addRootNode: function() {
         var me = this, rawNode = me.createIniRootNode(), lastNodeId = -1;
         if (me.treeObj) {
@@ -30,7 +52,7 @@ var zTreeOprObj = {
             me.addNewNode(rawNode, lastNodeId, function(rst){
                 var newNodes = [], isSilent = false;
                 rawNode.ID = rst.ID;
-                rawNode.isParent = false;
+                rawNode.isParent = true;
                 rawNode.items = [];
                 newNodes.push(rawNode);
                 if (me.treeObj) {
@@ -54,7 +76,31 @@ var zTreeOprObj = {
         }
     },
     addTplNode: function (){
-        //
+        var me = this;
+        if (me.currentNode) {
+            var rawNode = me.createIniRootNode(), lastNodeId = -1;
+            rawNode.nodeType = RT.NodeType.TEMPLATE;
+            rawNode.ParentID = me.currentNode.ID;
+            rawNode.name = "新增报表模板";
+            if (me.treeObj) {
+                var nodes = me.currentNode.items;
+                if (nodes.length > 0) {
+                    lastNodeId = nodes[nodes.length - 1].ID;
+                }
+                me.addNewNode(rawNode, lastNodeId, function(rst){
+                    var newNodes = [], isSilent = false;
+                    rawNode.ID = rst.ID;
+                    rawNode.isParent = false;
+                    rawNode.items = [];
+                    newNodes.push(rawNode);
+                    if (me.treeObj) {
+                        me.treeObj.addNodes(me.currentNode, -1, newNodes, isSilent);
+                    } else {
+                        me.treeObj = $.fn.zTree.init($("#rptTplTree"), setting, newNodes);
+                    }
+                }, null);
+            }
+        }
     },
     addNewNode: function(rawNode, lastNodeId, callback, failcallback) {
         var params = {};
@@ -96,21 +142,28 @@ var zTreeOprObj = {
         sObj.after(addStr);
         var btn = $("#addBtn_"+treeNode.tId);
         if (btn) btn.bind("click", function(){
-            var rawNode = me.createIniRootNode(), lastNodeId = -1;
+            var rawNode = me.createIniRootNode(), lastNodeId = -1, insertIdx = -1;
             rawNode.ParentID = treeNode.ID;
             rawNode.name = "新增子节点";
             if (treeNode.items.length > 0) {
                 lastNodeId = treeNode.items[treeNode.items.length - 1].ID;
+                for (var i = treeNode.items.length - 1; i >= 0; i--) {
+                    if (treeNode.items[i].nodeType == RT.NodeType.NODE) {
+                        lastNodeId = treeNode.items[i].ID;
+                        rawNode.NextSiblingID = treeNode.items[i].NextSiblingID;
+                        insertIdx = i + 1;
+                    }
+                }
             }
             zTreeOprObj.addNewNode(rawNode, lastNodeId, function(rst){
                 var newNodes = [], isSilent = false;
                 rawNode.ID = rst.ID;
-                rawNode.isParent = false;
+                rawNode.isParent = true;
                 rawNode.items = [];
                 newNodes.push(rawNode);
                 treeNode.isParent = true;
                 if (me.treeObj) {
-                    me.treeObj.addNodes(treeNode, -1, newNodes, isSilent);
+                    me.treeObj.addNodes(treeNode, insertIdx, newNodes, isSilent);
                 } else {
                     me.treeObj = $.fn.zTree.init($("#rptTplTree"), setting, newNodes);
                 }
@@ -175,6 +228,11 @@ var zTreeOprObj = {
         me.updateNodes(nodes);
     },
     onClick: function(event,treeId,treeNode) {
-        var sectionID = treeNode.ID;
+        var me = zTreeOprObj;
+        if (treeNode.nodeType == RT.NodeType.NODE) {
+            me.currentNode = treeNode;
+        } else if (treeNode.nodeType == RT.NodeType.TEMPLATE) {
+            me.currentNode = null;
+        }
     }
 }

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

@@ -40,6 +40,7 @@
                 <div class="main-side col-lg-3 p-0">
                     <div class="tab-bar">
                         <a onclick="zTreeOprObj.addRootNode()" class="btn btn-secondary btn-sm">增加根节点</a>
+                        <a onclick="zTreeOprObj.addTplNode()" class="btn btn-secondary btn-sm">增加模板节点</a>
                     </div>
                     <div class="tab-content">
                         <ul id="rptTplTree" class="ztree"></ul>