Browse Source

定额树上移下移降级升级,debug

zhongzewei 7 years ago
parent
commit
1e427c2f5e

+ 13 - 3
web/maintain/ration_repository/dinge.html

@@ -48,7 +48,7 @@
                 <div class="row">
                   <div class="main-side col-lg-3 p-0" style="width: 100%; height: 100%; overflow: auto">
                       <div class="tab-bar">
-                          <a onclick="zTreeOprObj.addRootNode()" class="btn btn-secondary btn-sm">增加根节点</a>
+                          <a id="addRootA" onclick="zTreeOprObj.addRootNode()" class="btn btn-secondary btn-sm">增加根节点</a>
                       </div>
                     <div class="tab-content">
                       <ul id="rationChapterTree" class="ztree"></ul>
@@ -518,6 +518,13 @@
                 },
                 edit: {
                     enable: true,
+                    drag: {
+                        isCopy: false,
+                        isMove: true,
+                        inner: true,
+                        prev: true,
+                        next: true
+                    },
                     editNameSelectAll: true,
                     showRemoveBtn: true,
                     showRenameBtn: true,
@@ -527,7 +534,7 @@
                 data: {
                     keep: {
                         parent:true,
-                        leaf:true
+                        leaf:false
                     },
                     key: {
                         children: "items"
@@ -544,7 +551,10 @@
                     beforeRename: zTreeOprObj.beforeRename,
                     beforeRemove: zTreeOprObj.onBeforeRemove,
                     onRemove: zTreeOprObj.onRemove,
-                    onRename: zTreeOprObj.onRename
+                    onRename: zTreeOprObj.onRename,
+                    beforeDrop: zTreeOprObj.beforeDrop,
+                    onDrop: zTreeOprObj.onDrop,
+
                 }
             };
             $(document).ready(function(){

+ 6 - 2
web/maintain/ration_repository/js/ration.js

@@ -72,8 +72,12 @@ var rationOprObj = {
         if(!(args.sheetArea === GC.Spread.Sheets.SheetArea.colHeader || args.sheetArea === GC.Spread.Sheets.SheetArea.corner)){
             var cacheSection = me.getCache();
             if (cacheSection && args.row < cacheSection.length) {
-                rationGLJOprObj.getGljItems(cacheSection[args.row]);
-                rationCoeOprObj.getCoeItems(cacheSection[args.row]);
+                rationGLJOprObj.getGljItems(cacheSection[args.row], function () {
+                    me.workBook.focus(true);
+                });
+                rationCoeOprObj.getCoeItems(cacheSection[args.row], function () {
+                    me.workBook.focus(true);
+                });
                 rationAssistOprObj.getAssItems(cacheSection[args.row]);
             }
         };

+ 2 - 1
web/maintain/ration_repository/js/ration_coe.js

@@ -163,7 +163,7 @@ var rationCoeOprObj = {
         };
     },
 
-    getCoeItems: function(ration) {
+    getCoeItems: function(ration, callback) {
         var me = this;
         me.curRation = ration;
 
@@ -198,6 +198,7 @@ var rationCoeOprObj = {
                         me.showCoeItems(ration.ID);
                     }
                     sheetCommonObj.lockCells(me.sheet, me.setting);
+                    callback();
                 },
                 error:function(err){
                     alert(err);

+ 2 - 1
web/maintain/ration_repository/js/ration_glj.js

@@ -429,7 +429,7 @@ var rationGLJOprObj = {
         rst.gljType = repGlj.gljType;
         return rst;
     },
-    getGljItems: function(rationItem) {
+    getGljItems: function(rationItem, callback) {
         var me = this, rationID = rationItem.ID, rationGljList = rationItem.rationGljList;
         me.currentRationItem = rationItem;
         if (me.cache["_GLJ_" + rationID]) {
@@ -476,6 +476,7 @@ var rationGLJOprObj = {
                         me.showGljItems(rationID);
                     }
                     sheetCommonObj.lockCells(me.sheet, me.setting);
+                    callback();
                 },
                 error:function(err){
                     alert(err);

+ 124 - 3
web/maintain/ration_repository/js/section_tree.js

@@ -43,6 +43,8 @@ var zTreeOprObj = {
         })
     },
     addRootNode: function() {
+        $('#addRootA').css("opacity", "0.2");
+        $('#addRootA').addClass("disabled");
         var me = zTreeOprObj, rawNode = {ParentID: -1, NextSiblingID: -1, name: "新增节点"}, lastNodeId = -1;
         if (me.treeObj) {
             var rootNodes = me.treeObj.getNodes();
@@ -52,13 +54,18 @@ var zTreeOprObj = {
         }
         me.addNewNode(rawNode, lastNodeId, function(err, rst){
             if (!(err)) {
+                if(rootNodes.length > 0){
+                    rootNodes[rootNodes.length - 1].NextSiblingID = rst.data.ID;
+                }
                 var newNodes = [], isSilent = false;
-                newNodes.push({ rationRepId: rst.data.rationRepId, ID: rst.data.ID, ParentID:-1, NextSiblingID:-1, name:"新增节点",isParent:false, items:[]});
+                newNodes.push({ rationRepId: rst.data.rationRepId, Previous_ID: lastNodeId, ID: rst.data.ID, ParentID:-1, NextSiblingID:-1, name:"新增节点",isParent:false, items:[]});
                 if (me.treeObj) {
                     me.treeObj.addNodes(null, -1, newNodes, isSilent);
                 } else {
                     me.treeObj = $.fn.zTree.init($("#rationChapterTree"), setting, newNodes);
                 }
+                $('#addRootA').css("opacity", "");
+                $('#addRootA').removeClass("disabled");
             }
         });
     },
@@ -132,7 +139,114 @@ var zTreeOprObj = {
             //me.treeObj.updateNode(pNode, false); //这方法有后遗症,多次操作后会造成节点新增子节点时,父节点icon显示不正确
         }
     },
-    updateNodes: function(nodes){
+    beforeDrop: function (treeId, treeNodes, targetNode, moveType) {
+        let me = zTreeOprObj;
+        if(moveType){
+             me.treeObj.setting.edit.enable = false;
+            let treeNode = treeNodes[0], updateNodes = [];
+            //升级
+            if(treeNode.level !== targetNode.level && moveType === 'prev'){
+                if(treeNode.Previous_ID !== -1){
+                    treeNode.getPreNode().NextSiblingID = treeNode.NextSiblingID;
+                    updateNodes.push(treeNode.getPreNode());
+                }
+                if(treeNode.NextSiblingID !== -1){
+                    treeNode.getNextNode().Previous_ID = treeNode.Previous_ID;
+                }
+                if(targetNode.Previous_ID !== -1){
+                    targetNode.getPreNode().NextSiblingID = treeNode.ID;
+                    updateNodes.push(targetNode.getPreNode());
+                }
+                treeNode.ParentID = targetNode.getParentNode() ? targetNode.getParentNode().ID : -1;
+                treeNode.NextSiblingID = targetNode.ID;
+                treeNode.Previous_ID = targetNode.Previous_ID;
+                targetNode.Previous_ID = treeNode.ID;
+                updateNodes.push(treeNode);
+                //updateNodes.push(targetNode);
+            }
+            //升级
+            else if(treeNode.level !== targetNode.level && moveType === 'next'){
+                if(treeNode.Previous_ID !== -1){
+                    treeNode.getPreNode().NextSiblingID = treeNode.NextSiblingID;
+                    updateNodes.push(treeNode.getPreNode());
+                }
+                if(treeNode.NextSiblingID !== -1){
+                    treeNode.getNextNode().Previous_ID = treeNode.Previous_ID;
+                }
+                if(targetNode.NextSiblingID !== -1){
+                    targetNode.getNextNode().Previous_ID = treeNode.ID;
+                }
+                treeNode.NextSiblingID = targetNode.NextSiblingID;
+                treeNode.Previous_ID = targetNode.ID;
+                treeNode.ParentID = targetNode.getParentNode() ? targetNode.getParentNode().ID : -1;
+                targetNode.NextSiblingID = treeNode.ID;
+                updateNodes.push(treeNode);
+                updateNodes.push(targetNode);
+            }
+            //上移
+            else if(treeNode.level === targetNode.level && moveType === 'prev'){
+                    console.log(1);
+                    if(targetNode.Previous_ID !== -1){
+                        let targetPrev = me.treeObj.getNodeByParam('ID', targetNode.Previous_ID,  null);
+                        targetPrev.NextSiblingID = treeNode.ID;
+                        updateNodes.push(targetPrev);
+                    }
+                    targetNode.NextSiblingID = treeNode.NextSiblingID;
+                    treeNode.NextSiblingID = targetNode.ID;
+                    treeNode.Previous_ID = targetNode.Previous_ID;
+                    targetNode.Previous_ID = treeNode.ID;
+
+                    updateNodes.push(treeNode);
+                    updateNodes.push(targetNode);
+            }
+            //下移
+            else if(treeNode.level === targetNode.level && moveType === 'next'){
+                if(treeNode.Previous_ID !== -1){
+                    let treeNodePrev = me.treeObj.getNodeByParam('ID', treeNode.Previous_ID, null);
+                    treeNodePrev.NextSiblingID = targetNode.ID;
+                    updateNodes.push(treeNodePrev);
+                }
+                treeNode.Previous_ID = targetNode.ID;
+                treeNode.NextSiblingID = targetNode.NextSiblingID;
+                targetNode.Previous_ID = treeNode.Previous_ID;
+                targetNode.NextSiblingID = treeNode.ID;
+                updateNodes.push(treeNode);
+                updateNodes.push(targetNode);
+            }
+            //
+            else if(moveType === 'inner'){
+                if( treeNode.Previous_ID !== -1){
+                    treeNode.getPreNode().NextSiblingID = treeNode.NextSiblingID;
+                    updateNodes.push(treeNode.getPreNode());
+                }
+                if(treeNode.NextSiblingID !== -1){
+                    treeNode.getNextNode().Previous_ID = treeNode.Previous_ID;
+                }
+                if(targetNode.items.length > 0){
+                    targetNode.items[targetNode.items.length -1].NextSiblingID = treeNode.ID;
+                    treeNode.Previous_ID = targetNode.items[targetNode.items.length -1].ID;
+                    updateNodes.push(targetNode.items[targetNode.items.length -1]);
+                }
+                else{
+                    treeNode.Previous_ID = -1;
+                }
+                treeNode.ParentID = targetNode.ID;
+                treeNode.NextSiblingID = -1;
+                updateNodes.push(treeNode);
+
+            }
+            if(updateNodes.length > 0){
+                me.updateNodes(updateNodes, function () {
+                    me.treeObj.setting.edit.enable= true;
+                });
+            }
+        }
+    },
+
+    onDrop: function (event, treeId, treeNodes, targetNode, moveType) {
+
+    },
+    updateNodes: function(nodes, callback){
         if (nodes && nodes.length > 0) {
             var reqData = []
             for (var i = 0; i < nodes.length; i++) {
@@ -146,6 +260,7 @@ var zTreeOprObj = {
                 else node.__v = 0;
                 reqData.push(node);
             }
+            console.log(reqData);
             $.ajax({
                 type:"POST",
                 url:"api/updateNodes",
@@ -154,6 +269,9 @@ var zTreeOprObj = {
                 cache:false,
                 timeout:5000,
                 success:function(result,textStatus,status){
+                    if(callback){
+                        callback();
+                    }
                     console.log(status + ' : ' + result);
                 },
                 error:function(){
@@ -185,8 +303,9 @@ var zTreeOprObj = {
                         if (lastNode) {
                             lastNode.NextSiblingID = rst.ID;
                         }
-                        newNodes.push({ rationRepId: rst.data.rationRepId, ID: rst.data.ID, ParentID: rst.data.ParentID, NextSiblingID:-1, name:"新增子节点",isParent:false, items:[]});
+                        newNodes.push({ rationRepId: rst.data.rationRepId, ID: rst.data.ID, Previous_ID: lastNodeId, ParentID: rst.data.ParentID, NextSiblingID:-1, name:"新增子节点",isParent:false, items:[]});
                         treeNode.isParent = true;
+                        console.log(newNodes);
                         if (me.treeObj) {
                             me.treeObj.addNodes(treeNode, -1, newNodes, isSilent);
                         } else {
@@ -203,6 +322,8 @@ var zTreeOprObj = {
         $("#addBtn_"+treeNode.tId).unbind().remove();
     },
     onClick: function(event,treeId,treeNode) {
+        console.log(`treeNode`);
+        console.log(treeNode);
         var sectionID = treeNode.ID;
         if (!(treeNode.items) || treeNode.items.length == 0) {
             rationOprObj.getRationItems(sectionID);