Browse Source

分类拖拽bug修复

laiguoran 5 years ago
parent
commit
89164d24b7

+ 19 - 5
app/public/js/tender_list.js

@@ -41,6 +41,7 @@ const levelTreeSetting = {
     callback: {
         beforeDrop: beforeDropNode,
         onDrop: onDropNode,
+
     }
 };
 const levelNodes =[];
@@ -54,12 +55,24 @@ function createTree() {
     $.fn.zTree.init($("#treeLevel"), levelTreeSetting, levelNodes);
 }
 function beforeDropNode(treeId, treeNodes, targetNode, moveType, isCopy) {
-    if (targetNode.lid !== 1) {
+    if (targetNode !== null && targetNode.lid !== 1) {
         const parent = targetNode.getParentNode();
         if (parent && parent.lid === 1) {
             return false;
         }
     }
+    for (var i=0,l=treeNodes.length; i<l; i++) {
+        if (treeNodes[i].drag === false) {
+            return false;
+        }
+        if (!targetNode && treeNodes[i].dropRoot === false) {
+            return false;
+        }
+        if(treeNodes[i].isParent === true && targetNode.lid !== 1){
+            return false;
+        }
+    }
+    return true;
 }
 function onDropNode(event, treeId, treeNodes, targetNode, moveType) {
     const zTree = $.fn.zTree.getZTreeObj(treeId);
@@ -78,9 +91,9 @@ function onDropNode(event, treeId, treeNodes, targetNode, moveType) {
     }
     resetFixNode(1);
     resetFixNode(2);
-    if (targetNode.lid === 1 && treeNodes[0].children && treeNodes[0].children.length !== 0) {
+    if (targetNode !== null && targetNode.lid === 1 && treeNodes[0].children && treeNodes[0].children.length !== 0) {
         moveChildren(treeNodes[0].children, zTree.getNodeByParam('lid', 1));
-    } else if (targetNode.lid !== 1) {
+    } else if (targetNode !== null && targetNode.lid !== 1) {
         if (targetNode.children.length >= 2) {
             for (const c of targetNode.children) {
                 if (c.lid !== treeNodes[0].lid) {
@@ -120,13 +133,14 @@ function sortCategory() {
 function initCategoryLevelNode() {
     levelNodes.splice(0, levelNodes.length);
     levelNodes.push(
-        { lid:1, lpId:0, name:"可用类别", open:true, isParent: true},
-        { lid:2, lpId:0, name:"已用类别", open:true, isParent: true}
+        { lid:1, lpId:0, name:"可用类别", open:true, isParent: true, drag: false},
+        { lid:2, lpId:0, name:"已用类别", open:true, isParent: true, drag: false}
     );
     for (const c of category) {
         const cate = JSON.parse(JSON.stringify(c));
         cate.lid = levelNodes.length + 1;
         cate.open = true;
+        cate.dropRoot = false;
         if (!cate.level) {
             cate.lpId = 1;
             levelNodes.push(cate);

+ 17 - 5
app/public/js/tender_list_info.js

@@ -54,12 +54,23 @@ function createTree() {
     $.fn.zTree.init($("#treeLevel"), levelTreeSetting, levelNodes);
 }
 function beforeDropNode(treeId, treeNodes, targetNode, moveType, isCopy) {
-    if (targetNode.lid !== 1) {
+    if (targetNode !== null && targetNode.lid !== 1) {
         const parent = targetNode.getParentNode();
         if (parent && parent.lid === 1) {
             return false;
         }
     }
+    for (var i=0,l=treeNodes.length; i<l; i++) {
+        if (treeNodes[i].drag === false) {
+            return false;
+        }
+        if (!targetNode && treeNodes[i].dropRoot === false) {
+            return false;
+        }
+        if(treeNodes[i].isParent === true && targetNode.lid !== 1){
+            return false;
+        }
+    }
 }
 function onDropNode(event, treeId, treeNodes, targetNode, moveType) {
     const zTree = $.fn.zTree.getZTreeObj(treeId);
@@ -78,9 +89,9 @@ function onDropNode(event, treeId, treeNodes, targetNode, moveType) {
     }
     resetFixNode(1);
     resetFixNode(2);
-    if (targetNode.lid === 1 && treeNodes[0].children && treeNodes[0].children.length !== 0) {
+    if (targetNode !== null && targetNode.lid === 1 && treeNodes[0].children && treeNodes[0].children.length !== 0) {
         moveChildren(treeNodes[0].children, zTree.getNodeByParam('lid', 1));
-    } else if (targetNode.lid !== 1) {
+    } else if (targetNode !== null && targetNode.lid !== 1) {
         if (targetNode.children.length >= 2) {
             for (const c of targetNode.children) {
                 if (c.lid !== treeNodes[0].lid) {
@@ -120,13 +131,14 @@ function sortCategory() {
 function initCategoryLevelNode() {
     levelNodes.splice(0, levelNodes.length);
     levelNodes.push(
-        { lid:1, lpId:0, name:"可用类别", open:true, isParent: true},
-        { lid:2, lpId:0, name:"已用类别", open:true, isParent: true}
+        { lid:1, lpId:0, name:"可用类别", open:true, isParent: true, drag: false},
+        { lid:2, lpId:0, name:"已用类别", open:true, isParent: true, drag: false}
     );
     for (const c of category) {
         const cate = JSON.parse(JSON.stringify(c));
         cate.lid = levelNodes.length + 1;
         cate.open = true;
+        cate.dropRoot = false;
         if (!cate.level) {
             cate.lpId = 1;
             levelNodes.push(cate);

+ 18 - 5
app/public/js/tender_list_manage.js

@@ -54,12 +54,24 @@ function createTree() {
     $.fn.zTree.init($("#treeLevel"), levelTreeSetting, levelNodes);
 }
 function beforeDropNode(treeId, treeNodes, targetNode, moveType, isCopy) {
-    if (targetNode.lid !== 1) {
+    if (targetNode !== null && targetNode.lid !== 1) {
         const parent = targetNode.getParentNode();
         if (parent && parent.lid === 1) {
             return false;
         }
     }
+    for (var i=0,l=treeNodes.length; i<l; i++) {
+        if (treeNodes[i].drag === false) {
+            return false;
+        }
+        if (!targetNode && treeNodes[i].dropRoot === false) {
+            return false;
+        }
+        if(treeNodes[i].isParent === true && targetNode.lid !== 1){
+            return false;
+        }
+    }
+    return true;
 }
 function onDropNode(event, treeId, treeNodes, targetNode, moveType) {
     const zTree = $.fn.zTree.getZTreeObj(treeId);
@@ -78,9 +90,9 @@ function onDropNode(event, treeId, treeNodes, targetNode, moveType) {
     }
     resetFixNode(1);
     resetFixNode(2);
-    if (targetNode.lid === 1 && treeNodes[0].children && treeNodes[0].children.length !== 0) {
+    if (targetNode !== null && targetNode.lid === 1 && treeNodes[0].children && treeNodes[0].children.length !== 0) {
         moveChildren(treeNodes[0].children, zTree.getNodeByParam('lid', 1));
-    } else if (targetNode.lid !== 1) {
+    } else if (targetNode !== null && targetNode.lid !== 1) {
         if (targetNode.children.length >= 2) {
             for (const c of targetNode.children) {
                 if (c.lid !== treeNodes[0].lid) {
@@ -120,13 +132,14 @@ function sortCategory() {
 function initCategoryLevelNode() {
     levelNodes.splice(0, levelNodes.length);
     levelNodes.push(
-        { lid:1, lpId:0, name:"可用类别", open:true, isParent: true},
-        { lid:2, lpId:0, name:"已用类别", open:true, isParent: true}
+        { lid:1, lpId:0, name:"可用类别", open:true, isParent: true, drag: false},
+        { lid:2, lpId:0, name:"已用类别", open:true, isParent: true, drag: false}
     );
     for (const c of category) {
         const cate = JSON.parse(JSON.stringify(c));
         cate.lid = levelNodes.length + 1;
         cate.open = true;
+        cate.dropRoot = false;
         if (!cate.level) {
             cate.lpId = 1;
             levelNodes.push(cate);

+ 18 - 5
app/public/js/tender_list_progress.js

@@ -54,12 +54,24 @@ function createTree() {
     $.fn.zTree.init($("#treeLevel"), levelTreeSetting, levelNodes);
 }
 function beforeDropNode(treeId, treeNodes, targetNode, moveType, isCopy) {
-    if (targetNode.lid !== 1) {
+    if (targetNode !== null && targetNode.lid !== 1) {
         const parent = targetNode.getParentNode();
         if (parent && parent.lid === 1) {
             return false;
         }
     }
+    for (var i=0,l=treeNodes.length; i<l; i++) {
+        if (treeNodes[i].drag === false) {
+            return false;
+        }
+        if (!targetNode && treeNodes[i].dropRoot === false) {
+            return false;
+        }
+        if(treeNodes[i].isParent === true && targetNode.lid !== 1){
+            return false;
+        }
+    }
+    return true;
 }
 function onDropNode(event, treeId, treeNodes, targetNode, moveType) {
     const zTree = $.fn.zTree.getZTreeObj(treeId);
@@ -78,9 +90,9 @@ function onDropNode(event, treeId, treeNodes, targetNode, moveType) {
     }
     resetFixNode(1);
     resetFixNode(2);
-    if (targetNode.lid === 1 && treeNodes[0].children && treeNodes[0].children.length !== 0) {
+    if (targetNode !== null && targetNode.lid === 1 && treeNodes[0].children && treeNodes[0].children.length !== 0) {
         moveChildren(treeNodes[0].children, zTree.getNodeByParam('lid', 1));
-    } else if (targetNode.lid !== 1) {
+    } else if (targetNode !== null && targetNode.lid !== 1) {
         if (targetNode.children.length >= 2) {
             for (const c of targetNode.children) {
                 if (c.lid !== treeNodes[0].lid) {
@@ -120,13 +132,14 @@ function sortCategory() {
 function initCategoryLevelNode() {
     levelNodes.splice(0, levelNodes.length);
     levelNodes.push(
-        { lid:1, lpId:0, name:"可用类别", open:true, isParent: true},
-        { lid:2, lpId:0, name:"已用类别", open:true, isParent: true}
+        { lid:1, lpId:0, name:"可用类别", open:true, isParent: true, drag: false},
+        { lid:2, lpId:0, name:"已用类别", open:true, isParent: true, drag: false}
     );
     for (const c of category) {
         const cate = JSON.parse(JSON.stringify(c));
         cate.lid = levelNodes.length + 1;
         cate.open = true;
+        cate.dropRoot = false;
         if (!cate.level) {
             cate.lpId = 1;
             levelNodes.push(cate);