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