浅谈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的数据类型检测
Jul 10 Javascript
邮箱下拉自动填充选择示例代码附图
Apr 03 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
Jun 09 Javascript
浅析jQuery EasyUI中的tree使用指南
Dec 18 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
Javascript非构造函数的继承
Apr 27 Javascript
javascript创建对象的几种模式介绍
May 06 Javascript
微信小程序 教程之小程序配置
Oct 17 Javascript
基于React实现表单数据的添加和删除详解
Mar 14 Javascript
layui实现form表单同时提交数据和文件的代码
Oct 25 Javascript
详解Vue的watch中的immediate与watch是什么意思
Dec 30 Javascript
详解Vue中的自定义指令
Dec 07 Vue.js
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
mysql 全文搜索 技巧
2007/04/27 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
关于IIS php调用com组件的权限问题
2012/01/11 PHP
php 批量替换html标签的实例代码
2013/11/26 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
PHP中的类型约束介绍
2015/05/11 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
javascript中的new使用
2010/03/20 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
javascript中 try catch用法
2015/08/16 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
使用Python处理BAM的方法
2018/09/28 Python
详解【python】str与json类型转换
2019/04/29 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
Farah官方网站:男士服装及配件
2019/11/01 全球购物
MySQL面试题
2014/01/12 面试题
JAVA招聘远程笔试题
2015/07/23 面试题
会计主管岗位职责
2014/01/03 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
初二数学教学反思
2016/02/17 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技