ztree在vue中的使用 使用封装好的vue-giant-tree

19 篇文章 0 订阅

1、安装 vue-giant-tree

npm i vue-giant-tree --save

2、在需要ztree树的页面引入

import tree from “vue-giant-tree”;

3、注册ztree

components: {   tree },

4、配置

<tree
    :setting="setting"
    :nodes="getTreeData"
    @onClick="selectTree"
     @onCreated="handleCreated"
/>

data里面写:

setting: {
        check: {
        enable: false,
      },
      view: {
                    // 开启图标显示功能
                    showIcon: true,
                    expandSpeed: 500
                    },
        data: {
          key:{
            name:"label",
          },
          simpleData: {
            //是否使用简单数据模式
            enable: true,
            //树节点id,一般是后台数据库主键
            idKey: "value",
            //父级id
            pIdKey: "parentId",
            rootPId: "0",
          },
        },
        //ztree回调函数
        callback: {
          //树选择事件
          onClick:this.selectTree, //写选择树时的方法
          onExpand: this.zTreeOnExpand, //延展树后方法
          beforeExpand: this.zTreeBeforeExpand, //延展树前方法
        },
      },
      ztreeObj:null,
      getTreeData:[],

写方法:

handleCreated(ztreeObj) {
                console.log("加载树完成");
                this.ztreeObj = ztreeObj;
                // let firstTree = ztreeObj.getNodes()[0];
                // 默认选中第一个
                // ztreeObj.selectNode(firstTree);
                // 设置节点全部展开
                // ztreeObj.expandAll(true);
                //加载完自动点击第一个,加载右边表格
                // this.setting.callback.onClick(null, firstTree.id, firstTree)
                if(this.formItem.term_code!=undefined){
                  let node=this.ztreeObj.getNodeByParam('id',this.id)
                  this.ztreeObj.selectNode(node,true);
                }//根据id进行自动滚动定位,需要在创建tree时候进行
            },
selectTree(evt, treeId, treeNode) {
	//如果要使用节点方法,比如增加节点,可以直接使用创建tree时定义的this.ztreeObj
	if(treeNode.isParent == false){
        var selectedNode = this.ztreeObj.getSelectedNodes();
             this.ztreeObj.addNodes(selectedNode[0], add);
     }
}

5、官方tree文档:

https://treejs.cn/v3/api.php

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
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%;" />

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值