浅谈Layui的eleTree树式选择器使用方法


Posted in Javascript onSeptember 25, 2019

模块eleTree 介绍、下载

地址:https://fly.layui.com/extend/eleTree/

使用

JS位置 ,layui/lay/modules/eleTree.js;

CSS位置 ,layui/css/modules/eleTree/eleTree.css;

页面css引用 引用 layui/css/layui.css"和 layui/css/modules/eleTree/eleTree.css ;

页面js引用 引用 layui/layui.js ;

页面div

<div class="eleTree ele1" lay-filter="data1"></div>
<div class="eleTree ele2" lay-filter="data2"></div>
<div class="eleTree ele3" lay-filter="data3"></div>
<button class="layui-btn">获取选中数据</button>

script

<script>  
  layui.config({
   base: "layui/lay/modules/"  //eleTree.js所在目录
  }).use(['jquery','eleTree'], function(){
   var $ = layui.jquery;
   var eleTree = layui.eleTree;

   var data=[
    {
     "label": "a",
     "spread": true,
     "children": [
      {
       "label": "aa1",
       "spread": true,
       "disabled": true,
       "children": [
        {
         "label": "aaa1",
         "children": [
          {
           "label": "aaaa1",
           "checked": true
          },
          {
           "label": "bbbb1"
          }
         ]
        },
        {
         "label": "bbb1",
         "spread": true,
         "children": [
          {
           "label": "aaaa1",
           "checked": true
          }
         ]
        },
        {
         "label": "ccc1"
        }
       ]
      },
      {
       "label": "bb1",
       "children": [
        {
         "label": "aaaa1",
         "checked": true
        }
       ]
      },
      {
       "label": "cc1"
      }
     ]
    },
    {
     "label": "c",
     "children": [
      {
       "label": "aa1",
       "disabled": true
      },
      {
       "label": "bb1",
       "checked": true
      }
     ]
    }
   
   ]
   var data2=[
   {
     "label": "a",
     "spread": true,
     "children": [
      {
       "label": "aa1",
       "spread": true,
       "disabled": true
      },
      {
       "label": "bb1",
       "children": [
        {
         "label": "aaaa1",
         "checked": true
        }
       ]
      },
      {
       "label": "cc1"
      }
     ]
    },
    {
     "label": "c",
     "children": [
      {
       "label": "aa1",
       "disabled": true
      },
      {
       "label": "bb1",
       "checked": true
      }
     ]
    }
   ];
   //数据一定要在 渲染render前 render里的url 和 type 应该是用来ajax获取远程数据的,不过不好用。eleTree.js中要求比较多data.Code 等等,就没用,直接页面取得了。将data ,data1,data3 换成自己的。
   eleTree.render({
    elem: '.ele1',
    // url: "/tree",
    // type: "post",
    data: data,
    showCheckbox: true,
    contextmenuList: ["copy","add","edit","remove"],
    drag: true,
    accordion: true
   });
   
   eleTree.render({
    elem: '.ele2',
    // url: "../../data/home/tree.json",
    // type: "post",
    data: data2,
    showCheckbox: true,
    contextmenuList: ["add","remove"],
    drag: true,
    accordion: true
   });

   var data3=[
    {
     "label": "a"
    },
    {
     "label": "aa",
     "isLeaf": true
    }
   ]
   var k=1;
   eleTree.render({
    elem: '.ele3',
    // url: "/tree",
    // type: "post",
    data: data3,
    showCheckbox: true,
    contextmenuList: ["copy","add","edit","remove"],
    // drag: true,
    accordion: true,
    lazy: true,
    loadData: function(item,callback) {
     setTimeout(function() {
      k++;
      var d = [
       {
        "label": "d"
       }
      ];
      console.log(item);
      if(k>=3){
       d[0].isLeaf=true;
       return void callback(d);
      }
      callback(d);
     }, 500);
    }
   });
//各种 方法
   eleTree.on("add(data1)",function(data) {
    console.log(data);
    // 若后台修改,则重新获取后台数据,然后重载
    // eleTree.reload(".ele1", {where: {data: JSON.stringify(data.data)}})
   })
   eleTree.on("edit(data1)",function(data) {
    console.log(data);
   })
   eleTree.on("remove(data1)",function(data) {
    console.log(data);
   })
   eleTree.on("toggleSlide(data1)",function(data) {
    console.log(data);
   })
   eleTree.on("checkbox(data1)",function(data) {
    console.log(data);
   })
   eleTree.on("drag(data2)",function(data) {
    console.log(data);
   })

   $(".layui-btn").on("click",function() {
    console.log(eleTree.checkedData(".ele2"));
    //这里的 eleTree.checkedData() 取得的是数组;
    //下面是我项目中,取得数据,赋给一个textarea的过程,有去重过滤。
    //*********项目代码示例***************
  var a = eleTree.checkedData(".ele1"),
     b = a.length;
     if (0 >= b) {
      Wind.use('artDialog',function(){
      art.dialog({
       id : "alert",
       icon : "error",
       content : "请至少选择一个地区",
       ok : function() {}
      });
      });
     }else {    
       var thisCitys = eleTree.checkedData(".ele1");
   var d="";
       var new_arr=[];
      for (var f = 0; f < thisCitys.length; f++) {     
       if($.inArray(thisCitys[f]['label'],new_arr)==-1) { 
        new_arr.push(thisCitys[f]['label']); 
        }
      }
      //去重
      for(var i=0;i<new_arr.length; i++){
       d = isNull(d) ? new_arr[i] : d + ("\n" + new_arr[i])
      }
        // }
       $("#area").val(d);
     
     //*********项目代码示例 结束***************
   });
  // 数据重新加载 这里也可以做切换数据用
 $(".layui-btn2").on("click",function() {
  eleTree.reload(".ele1", {data: data3})
 })
 //*********项目代码示例***************
  $("#change").on("click",function() {
   if($("#change").attr("class")=='change_short btn btn-warning btn-sm'){
   eleTree.reload(".ele1", {data: data_short});
   $("#change").html("添加 区/县后缀");
   $("#change").attr("class","change_all btn btn-warning btn-sm");
   }else{
   eleTree.reload(".ele1", {data: data});
   $("#change").html("去掉 区/县后缀");
   $("#change").attr("class","change_short btn btn-warning btn-sm");
   }
  
 });
   //*********项目代码示例 结束***************
  });
 </script>

效果

浅谈Layui的eleTree树式选择器使用方法

以上这篇浅谈Layui的eleTree树式选择器使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 面向对象编程 function也是类
Sep 17 Javascript
Mac/Windows下如何安装Node.js
Nov 22 Javascript
javascript的事件触发器介绍的实现
Jun 05 Javascript
php结合imgareaselect实现图片裁剪
Jul 05 Javascript
探讨JavaScript中的Rest参数和参数默认值
Jul 29 Javascript
Bootstrap模态框调用功能实现方法
Sep 19 Javascript
jQuery无缝轮播图代码
Dec 22 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
Jan 12 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
Angular中sweetalert弹框的基本使用教程
Jul 22 Javascript
js中值引用和地址引用实例分析
Jun 21 Javascript
原生JS运动实现轮播图
Jan 02 Javascript
layui禁用侧边导航栏点击事件的解决方法
Sep 25 #Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 #Javascript
关于layui导航栏不展示下拉列表的解决方法
Sep 25 #Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
Sep 25 #Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
Sep 25 #Javascript
layui实现二维码弹窗、并下载到本地的方法
Sep 25 #Javascript
使用localStorage替代cookie做本地存储
Sep 25 #Javascript
You might like
社区(php&amp;&amp;mysql)五
2006/10/09 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
2013/10/25 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
python读写文件操作示例程序
2013/12/02 Python
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
Python生成器(Generator)详解
2015/04/13 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
Python 防止死锁的方法
2020/07/29 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
通用C#笔试题附答案
2016/11/26 面试题
学习礼仪心得体会
2014/09/01 职场文书
赔偿协议书范本
2014/09/12 职场文书
民间个人借款协议书
2014/09/30 职场文书
天河观后感
2015/06/11 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL
Python实现仓库管理系统
2022/05/30 Python