|
@@ -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);
|