首页 > 其他分享 >zTree使用记录

zTree使用记录

时间:2023-09-25 14:22:34浏览次数:32  
标签:function treeNode 记录 Level var zTree 使用 msg 节点

<link href="zTree/zTreeStyle/zTreeStyle.css" rel="stylesheet"/>
<div id="treeDemo" class="ztree"></div>
<script src="zTree/jquery.ztree.all.js" type="text/javascript"></script>
var zTreeObj;

var setting = {
    data: {
        key: {
            children: "Child_List",//变更默认的children属性名
            name: "TName"//变更默认的name属性名
        },
        simpleData: {
            enable: true,
            idKey: "TID",//自己的id,更改id的属性名
            pIdKey: "PID",//父级id,更改父级的属性名
        }
    },
    view:{
        dblClickExpand : false//关闭双击节点展开的功能,在点击事件中实现展开闭合切换
    },
    callback: {
        onClick: onOneClick,//单击事件
        // onDblClick: onTwoClick,//双击事件
        onExpand: zTreeOnExpand,//+号展开事件
    }
};
function onOneClick(e, treeId, treeNode) {
    if(treeNode.Level == 2){
        //Level==2此级可以弹窗
        $(".background").show();
        $("#TuCe").show();
        zTreeObj.expandNode(treeNode,true);//单击展开节点,此状态下之展开不闭合
        if(treeNode.Child_List == null){
            //不为null可以请求下一级数据
            vm.getzTreeData2(treeNode)
        }
    }else if(treeNode.Level >= 3){
        //Level>=3没有弹窗功能,只能请求下一级数据
        if(treeNode.Child_List == null){
            vm.getzTreeData2(treeNode)
        }
        //单击展开折叠切换节点,focus=false不设置任何焦点(防止树抖动)
        zTreeObj.expandNode(treeNode,null,null,false);
    }else{
        zTreeObj.expandNode(treeNode,null,null,false);
    }
}
function onTwoClick(e, treeId, treeNode) {
    console.log(2)
}
function zTreeOnExpand(e, treeId, treeNode){
    //点击+号,只请求数据不弹窗
    if(treeNode.Level == 2 && treeNode.Child_List == null){
        vm.getzTreeData2(treeNode)
    }else if(treeNode.Level >= 3 && treeNode.Child_List == null){
        vm.getzTreeData2(treeNode)
    }
}

var vm = new Vue({
    el:'#app',
    data:{
        zNodes:[],//首次获取的树
    },
    created(){},
    mounted(){
        this.getzTreeData()
    },
    methods:{
        //获取首次树1-2级数据
        getzTreeData(){
            var self = this
            $.ajax({
                type: 'POST',
                url: '',
                data: {},
                async: true,
                dataType: "json",
                success: function (msg) {
                    if (msg.status.code == 1) {
                        var info = msg.row_data.record;
                        //给2级的设置isParent值,否则没有+号
                        $(info).each(function(index,item){
                            $(item.Child_List).each(function(ind,it){
                                if(it.Level == 2){
                                    it.isParent = true;//设置为父节点,带+号
                                }
                            })
                        })
                        //设置静态的顶级
                        var obj = {
                            TID: 0,//自己的id
                            PID: 0,//父级的id
                            Level: 0,//Level等级
                            TName: msg.data,//本节点显示名称
                            open: true,//本节点展开
                            Child_List: info//本节点子集
                        }
                        self.zNodes.push(obj)
                        zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, self.zNodes);
                        // zTreeObj.expandAll(true);//展开 全部节点
                    }
                    else {
                        dialog("提示", msg.status.msg, 2);
                    }
                },
                error: function (a, b, c) {
                    alert(c);
                }
            });
        },
        //点击树节点获取子节点数据
        getzTreeData2(treeNode){
            var self = this
            $.ajax({
                type: 'POST',
                url: '',
                data: {},
                async: true,
                dataType: "json",
                success: function (msg) {
                    if (msg.status.code == 1) {
                        var info = msg.row_data.record;
                        var addtreeObj = $.fn.zTree.getZTreeObj("treeDemo");//获取到树
                        if(info.length != 0){
                            //将获取的都设置isParent值,否则没有+号
                            $(info).each(function(index,item){
                                if(item.Level >= 3){
                                    item.isParent = true;//设置为父节点,带+号
                                }
                            })
                            var parentZNode = addtreeObj.getNodeByParam("TID", treeNode.TID, null);//获取指定父节点
                            var newNode = addtreeObj.addNodes(parentZNode,info);//添加节点(父节点,新数据)
                        }else{
                            //如果没有子集,将当前节点设置为非父级,并且给Child_List赋值[],防止再次请求
                            treeNode.isParent = false;
                            treeNode.Child_List = [];
                            addtreeObj.updateNode(treeNode);//更新节点数据
                        }
                    }
                    else {
                        dialog("提示", msg.status.msg, 2);
                    }
                },
                error: function (a, b, c) {
                    alert(c);
                }
            }); 
        }
    }
})

 

标签:function,treeNode,记录,Level,var,zTree,使用,msg,节点
From: https://www.cnblogs.com/liufeiran/p/17727846.html

相关文章

  • Winform中使用System.Windows.Forms.Timer多次启动停止计时器时绑定事件会重复多次执
    场景C#中实现计时器功能(定时任务和计时多长时间后执行某方法):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106274074以上关于定时器的使用。在实现点击按钮启动定时器,点击停止按钮停止定时器时发现,重复多次后会导致定时器方法累计重复执行。联想到如下情况......
  • 关于swagger-ui简单使用
    swagger-ui为了将我们的更好展示,类似接口文档,方便前端同事做开发pom依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.6.1</version></depen......
  • 文心一言——试用记录
    问题:你是一名专业的原画师,请画一幅坐在咖啡厅的少女给我当头像。     加入“性感”二字,生成失败:    保持关键词:咖啡厅、少年,生成的图片基本一样:请画一幅坐在咖啡厅的少女给我当头像     ==============================......
  • Jedis使用指南
    简介JedisClient是Redis官网推荐的一个面向java客户端,库文件实现了对各类API进行封装调用。Jedis源码工程地址:https://github.com/xetorthio/jedis使用想要使用Jedis必须加载jar包或者添加maven依赖,jar包可以自己上网下载,我的是Maven项目,所以在pom.xml中增加如下语句:<dependency>......
  • 使用Intellij Idea打包java为可执行jar包
    自己在实际工作中的需要,使用Idea打包项目为可执行的jar包,网上找了好多文章但总是不成功,多次尝试后终于跑通,所以记录下来,希望可以帮助各位步骤:1.选中Java项目工程名称,在菜单中选择 File->projectstructure... (快捷键Ctrl+Alt+Shift+S)。2.在弹出的窗口中左侧选中"Artifact......
  • IntelliJ Idea编译报错:请使用 -source 7 或更高版本以启用 diamond 运算符
    最近在使用IntelliJIdea遇到了挫折,分享出来给大家,问题由来是我导入了外部的java文件,结果就报错了错误的句子也提示出来了:KafkaConsumer<String,String>kafkaConsumer=newKafkaConsumer<>(props);网上搜了各种解决方法都不行,崩溃的节奏啊,终于皇天不负有心人,让我同事解决了,希......
  • 支撑位和阻力位在Renko和烛台图如何使用?FPmarkets澳福3秒回答
    很多投资者都知道,Renko图表和普通日本烛台都会采用相同的交易信号,即支撑位和阻力位。那么支撑位和阻力位在Renko和烛台图如何使用?FPmarkets澳福3秒回答。这些信号在任何时间框架上都会出现,且在蜡烛图交易中颇受欢迎。对于Renko图表而言,确定关键支撑位和阻力位同样重要吗?我们以GPB......
  • skywalking 安装部署与使用
    springcloud3篇文章0订阅订阅专栏1、下载SkyWalkingapm和agent下载地址:https://skywalking.apache.org/downloads/https://archive.apache.org/dist/skywalking/8.8.0/wgethttps://archive.apache.org/dist/skywalking/9.1.0/apache-skywalking-apm-9.1.0.tar.gztarxfap......
  • C#中使用Newtonsoft.Charp实现Json对象序列化与反序列化
    场景C#中使用Newtonsoft.Json实现对Json字符串的解析:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/105795048上面讲的对JSON字符串进行解析,实际就是JSON对象的反序列化。在与第三方进行交互时常需要封装对象,存储各种属性消息,然后将对象序列化为json字符串并进......
  • python 使用selenium 获取js渲染后的页面信息
    一、介绍二、代码三、问题 一、介绍现在的网站以及页面,一般都是js动态渲染,抓到的信息就与实际不符,所以需要加载js的工具,这里使用的就是seleniumSelenium是一个用于自动化测试的工具,可以模拟浏览器的行为来执行各种操作。在爬虫中,我们可以使用Selenium对网页进行......