首页 > 其他分享 >ztree初始化时选中(ruoyi版)

ztree初始化时选中(ruoyi版)

时间:2023-04-20 17:13:42浏览次数:38  
标签:初始化 tree ruoyi init ztree selectNode var nodes options

ruoyi版本:4.6.0

问题描述

将后台传入的参数放到$.tree中,当ztree的Node中checked为true时,Node默认为选中,目前前台调用代码

var url = ctx + "获得List<Ztree>的URL";
var options = {
    url: url,
    expandLevel: 2,
    beforeClick:function (treeId, treeNode, clickFlag){
    	// 节点之前的事件回调函数,并且根据返回值确定是否允许单击操作,如果返回 false,zTree 将不会选中节点,也无法触发 onClick 事件回调函数
    },
    onClick : function (event, treeId, treeNode){
    	// 用于捕获节点被点击的事件回调函数
    },
    callBack: function(){
    	// init方法调用后触发的回调函数
    }
};
$.tree.init(options);

解决方案

前置条件
  • List 返回的值中checked为true

  • 改代码目前适用于ruoyi 4.6.0版本

解决代码
  • 修改ry-ui.js中的$.tree.init方法,init方法中有通过option中url获得后台数值的代码

    // 树插件封装处理的init方法,4.6.0版本的1439行
    $.get(options.url, function(data) {
        if(typeof(options.beforeLoad) === "function"){
        	options.beforeLoad(data);
        }
        var treeId = $("#treeId").val();
        tree = $.fn.zTree.init($("#" + options.id), setting, data);
        $._tree = tree;
        // 添加的了一个selectNode,用于存放属性为checked为true的Node
        // 该处也可以改为Array,这样子是不是就是多选,如果配置中不支持,那就不行
        var selectNode = null;
        for (var i = 0; i < options.expandLevel; i++) {
        	// 获得该级别下面的所有Node
            var nodes = tree.getNodesByParam("level", i);
            // 遍历nodes,
            for (var j = 0; j < nodes.length; j++) {
                // 1. 判断nodes[j]存在(一般肯定是存在的,这里可能多此一举)
            	// 2. 判断nodes[j]的checked属性
                if(nodes[j] && nodes[j].checked){
                	// 都符合,则将该Node赋值给selectNode,如果selectNode为Array则就是selectNode.push()
                	selectNode = nodes[j];
                }
                // ruoyi自带代码,之前尝试过第四个意思是focus,改为true时并不能选择
                // 在if (!node || !node.isParent) return null;就返回了
            	tree.expandNode(nodes[j], true, false, false);
            }
        }
        var node = tree.getNodesByParam("id", treeId, null)[0];
        $.tree.selectByIdName(treeId, node);
        // 如果selectNode有值,表述Node中有checked为true的
        // tree.selectNode确实有这个方法(估计也是多此一举)
        if(selectNode && tree.selectNode){
        	// 调用ztree的selectNode
        	tree.selectNode(selectNode);
        }
        if(typeof(options.callBack) === "function"){
        	options.callBack(tree);
        }
    });
    

    最后效果

标签:初始化,tree,ruoyi,init,ztree,selectNode,var,nodes,options
From: https://www.cnblogs.com/wanghun315/p/17337499.html

相关文章

  • 深度学习基础入门篇[六]:模型调优,学习率设置(Warm Up、loss自适应衰减等),batch size调优
    深度学习基础入门篇[六]:模型调优,学习率设置(WarmUp、loss自适应衰减等),batchsize调优技巧,基于方差放缩初始化方法。1.学习率学习率是训练神经网络的重要超参数之一,它代表在每一次迭代中梯度向损失函数最优解移动的步长,通常用$\eta$表示。它的大小决定网络学习速度的快慢。在网络......
  • Kubuesphere部署Ruoyi(三):持久化存储配置
    按照如下教程配置NFS先服务器:https://kubesphere.io/zh/docs/v3.3/reference/storage-system-installation/nfs-server/后客户端:https://kubesphere.io/zh/docs/v3.3/installing-on-linux/persistent-storage-configurations/install-nfs-client/按照链接操作以后,在客户端上......
  • 1、Git初始化、环境配置、文件创建提交到版本库、比较文件变动
    Git初始化、环境配置、文件创建提交到版本库、比较文件变动1.git基本信息查看git版本[root@ubuntu2004~]#git--versiongitversion2.25.1创建项目根[root@ubuntu2004~]#mkdirdeploy-demoapp[root@ubuntu2004~]#cddeploy-demoapp/初始化Git仓库,生成.git目录结构[ro......
  • Centos7 初始化
    1、禁用selinuxsetenforce0sed-i's/SELINUX=permissive/SELINUX=disabled/'/etc/sysconfig/selinuxsed-i"s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config2、安装工具yuminstall-ywgetlrzsztreenet-toolsbash-completionpsm......
  • Kubuesphere部署Ruoyi(二):部署kubesphere
    先决条件:更换DNS更换apt的镜像源Ubuntu下永久性修改DNSvi/etc/systemd/resolved.confDNS字段取消注释,并修改DNS为223.5.5.5223.5.5.5是一个IP地址,是AlibabaCloud提供的免费DNS服务器的IP地址。修改后保存。systemctlrestartsystemd-resolved清华镜像源https://m......
  • MySQL8初始化报错 --Data Dictionary initialization failed
     我使用的命令是:/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/  --user=mysql  拷少参数了还找半天,,,,,,,, [root@node02bin]#./mysqld--initialize-insecure--defaults-file=/etc/my.cnf--basedir=/usr/lo......
  • Java:ArrayList初始化赋值
    测试环境$java-versionjavaversion"1.8.0_251"Java(TM)SERuntimeEnvironment(build1.8.0_251-b08)JavaHotSpot(TM)64-BitServerVM(build25.251-b08,mixedmode)方式一:常规方式List<Integer>list=newArrayList<>();list.add(1);list......
  • GPIO初始化,及中断代码演示
    1#defineLED2572#defineLED1563#defineKEY2554#defineKEY15456#defineGPIO_DEVICE_IDXPAR_XGPIOPS_0_DEVICE_ID7XGpioPsGpio;89voidGpio_Init(void){10XGpioPs_Config*ConfigPtr;1112......
  • TS初始化Demo
    初始化Demo需要的文件 初始化tsconfig.json文件tsc--init 初始化package.json文件npminit 使用rollup打包,packge.json文件中加入依赖{"scripts":{"test":"echo\"Error:notestspecified\"&&exit1","build&quo......
  • 初始化ArrayList的方式
    本片文章用于归纳java中初始化一个ArrayList的几种方式add方法添加最基础的方式就是我们在new一个ArrayList之后使用add方法添加元素/***第一种方式,通过add方法*@return*/publicList<String>initOne(){List<String>list=newArrayL......