zTree插件

最近在利用zTree插件做树型结构,从数据库获得数据进行树型展示,以及树型节点数据保存到数据库.然后用了两个递归,进行折腾.

不过因为数据库思想设计的不同,也请大家只是借鉴一下,不喜勿喷哦!


function subNodes(treeObj, arr, typeName) {
  $.each(treeObj, function(index, val){
    var is_parent = val.isParent ? 1 : 0
    var pid = val.pId ? val.pId : 0
    var goal ={sysname:val.name, pid:pid, count_id:val.id, is_parent:is_parent, level:val.level, user_type: val.user_type, type_id: getId(typeName)}
    arr.push(goal)
    if(val.children){
      subNodes(val.children, arr, typeName)
    }
  })
  return arr
}

subNodes方法是把树型结构的节点数据存到数据库里,treeObj是整个数据集合,arr是声明的空数组,typeName是名称,要不要无所谓.


 function loadNodes(simpleNodes, count_id) {
  var tree = []
  var temp
  for(var i = 0; i < simpleNodes.length; i++){
    if(simpleNodes[i].pid == count_id){
      var obj = simpleNodes[i]
      obj.name = simpleNodes[i].sysname
      temp = loadNodes(simpleNodes, simpleNodes[i].count_id, tree)
      if(temp.length > 0){
        obj.children = temp
      }
      tree.push(obj)
    }
  }
  return tree
}

loadNodes方法是把数据库的数据重新整合到页面进行展示,simpleNodes是数据库循环的二位数组,count_id是最小的pid,因为在树型里面必须要有一个最小的pid,或者多个最小的pid,一个树有一个根节点或者多个根节点.


可以看原博主:http://blog.csdn.net/qq_39536971/article/details/79128587

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ZTree是一个基于jQuery的树形结构件,可以用于显示树形菜单、目录结构等。在Vue项目中使用ZTree,需要先安装ZTree件,然后在Vue组件中引入和使用。 步骤如下: 1. 在Vue项目中安装ZTree件: ``` npm install jquery ztree --save ``` 2. 在Vue组件中引入jQuery和ZTree件: ```javascript import $ from 'jquery' import 'ztree/js/jquery.ztree.all.min.js' import 'ztree/css/metroStyle/metroStyle.css' ``` 其中,`jquery.ztree.all.min.js`是ZTree的核心文件,`metroStyle.css`是一款ZTree的皮肤。 3. 在Vue组件中定义一个div元素,用于显示ZTree: ```html <template> <div id="tree"></div> </template> ``` 4. 在Vue组件的`mounted`钩子函数中,初始化ZTree,并将数据渲染到树形菜单中: ```javascript mounted() { // 初始化ZTree let setting = { view: { selectedMulti: false }, data: { simpleData: { enable: true } }, callback: { onClick: this.onClick } } let zNodes = [ { id:1, pId:0, name:"父节点 1", open:true}, { id:11, pId:1, name:"子节点 1-1"}, { id:12, pId:1, name:"子节点 1-2"}, { id:13, pId:1, name:"子节点 1-3"}, { id:2, pId:0, name:"父节点 2", open:true}, { id:21, pId:2, name:"子节点 2-1"}, { id:22, pId:2, name:"子节点 2-2"}, { id:23, pId:2, name:"子节点 2-3"}, { id:3, pId:0, name:"父节点 3", open:true}, { id:31, pId:3, name:"子节点 3-1"}, { id:32, pId:3, name:"子节点 3-2"}, { id:33, pId:3, name:"子节点 3-3"} ] $.fn.zTree.init($("#tree"), setting, zNodes) }, methods: { // 点击节点事件 onClick(event, treeId, treeNode) { console.log(treeNode.name) } } ``` 其中,`zNodes`变量是一个数组,用于存储树形菜单的数据。`setting`变量是一个对象,用于配置ZTree的属性,例如是否允许多选、数据格式等。`$.fn.zTree.init`方法用于初始化ZTree,其中`$("#tree")`表示树形菜单的容器元素,`setting`表示ZTree的配置,`zNodes`表示树形菜单的数据。 5. 最终效果如下图所示: <img src="https://i.loli.net/2022/01/08/aJZ9zVX8q3WOhlY.png" alt="ztree-demo.png" style="zoom:50%;" />

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值