花了一个多星期,终于完成了这个完整的功能,今天周五是时候总结下加深理解了。
项目要实现的功能:
将树形目录发布到发布库,
若是根目录,没有发布,连同自己和下面所有的子目录们全部发布;
不是根目录,判断父目录是否已经发布,未发布,连同自己全部发布;已发布,追加
转化为节点就是:将节点复制另一个已知根节点(发布库)之下,复制之前先判断下,按正常人的思维加就行了
逻辑就不说了,我现在都记不清了到底有多少逻辑在里面,涉及到各种判断,递归拼接属性值的,在此只记录下用的非常多的几个属性和方法,假设当前节点叫Node,json代表标准的json格式数据
一、节点treeNode操作
1、获取子节点
node.children
这是属性不是方法,返回节点的子节点数据集合Array(JSON),判断直接用if(node.children)
项目要实现的功能:
将树形目录发布到发布库,
若是根目录,没有发布,连同自己和下面所有的子目录们全部发布;
不是根目录,判断父目录是否已经发布,未发布,连同自己全部发布;已发布,追加
转化为节点就是:将节点复制另一个已知根节点(发布库)之下,复制之前先判断下,按正常人的思维加就行了
逻辑就不说了,我现在都记不清了到底有多少逻辑在里面,涉及到各种判断,递归拼接属性值的,在此只记录下用的非常多的几个属性和方法,假设当前节点叫Node,json代表标准的json格式数据
一、节点treeNode操作
1、获取子节点
node.children
这是属性不是方法,返回节点的子节点数据集合Array(JSON),判断直接用if(node.children)
2、获取父节点
Node.getParentNode();
返回父节点对象,根节点的话返回null
3、是否是父节点
Node.isParent
就是有咩有儿子
4、节点在哪一级
Node.level,0可以判断根节点,后面依次+1
5、节点名
Node.name
二、zTree的方法
1、获取复选框被勾选的节点
zTree.getCheckedNodes(checked)
返回Array(JSON)
2、获取被选中的节点
zTree.getSelectedNodes()
注意和1的区别,返回Array(JSON)
3、根据匹配的属性和值对,在指定节点下搜索
zTree.getNodesByParamFuzzy(key,value,Node)
比如我要找发布库这个节点就是
var fbkNode = zTree.getNodesByParamFuzzy("name", "发布库", null)
我又要在发布库节点下找框架集这个节点
var kjjNode = zTree.getNodesByParamFuzzy("name", "框架集", fbkNode[0])
注意返回的都是节点数据集合
4、获取节点及其所有子节点,子节点的子节点的子节点
zTree.transformToArray(Node)
返回包括本节点在内的所有子节点的集合,非常方便
Node.getParentNode();
返回父节点对象,根节点的话返回null
3、是否是父节点
Node.isParent
就是有咩有儿子
4、节点在哪一级
Node.level,0可以判断根节点,后面依次+1
5、节点名
Node.name
二、zTree的方法
1、获取复选框被勾选的节点
zTree.getCheckedNodes(checked)
返回Array(JSON)
2、获取被选中的节点
zTree.getSelectedNodes()
注意和1的区别,返回Array(JSON)
3、根据匹配的属性和值对,在指定节点下搜索
zTree.getNodesByParamFuzzy(key,value,Node)
比如我要找发布库这个节点就是
var fbkNode = zTree.getNodesByParamFuzzy("name", "发布库", null)
我又要在发布库节点下找框架集这个节点
var kjjNode = zTree.getNodesByParamFuzzy("name", "框架集", fbkNode[0])
注意返回的都是节点数据集合
4、获取节点及其所有子节点,子节点的子节点的子节点
zTree.transformToArray(Node)
返回包括本节点在内的所有子节点的集合,非常方便