官方地址:https://fly.layui.com/extend/treeSelect/

下面介绍一下这个插件的使用方法

1.html页面

  1. <div class="layui-input-block">
  2. <input name="pid" value="" type="text" id="tree" lay-filter="tree" class="layui-input">
  3. </div>

2.js引入插件(引入多个插件的方法)

  1. layui.config({
  2. base: '__ROOT__/static/' //公共的文件夹
  3. ,version: new Date().getTime()
  4. }).extend({ //需要引入的插件
  5. treetable: 'plugs/treetable-lay/treetable',
  6. treeSelect: 'treeSelect', //这是此文章需要的插件
  7. authtree: 'authtree'
  8. });

3.写入js方法

  1. treeSelect.render({
  2. // 选择器
  3. elem: '#tree',
  4. // 数据
  5. data: "{:url('systemmenu/getAllRule')}", //写成自己的接口(切记这里的数据一定是json格式)
  6. // 异步加载方式:get/post,默认get
  7. type: 'get',
  8. // 占位符
  9. placeholder: '修改默认提示信息',
  10. // 是否开启搜索功能:true/false,默认false
  11. search: true,
  12. // 一些可定制的样式
  13. style: {
  14. folder: {
  15. enable: true
  16. },
  17. line: {
  18. enable: true
  19. }
  20. },
  21. // 点击回调(可以获取到点击时候的值)
  22. click: function(d){
  23. $('#tree').val(d.current.id);
  24. },
  25. // 加载完成后的回调函数
  26. success: function (d) {
  27. //选中节点,根据id筛选
  28. treeSelect.checkNode('tree',$("#tree").val());
  29.  
  30. //获取zTree对象,可以调用zTree方法
  31. var treeObj = treeSelect.zTree('tree');
  32.  
  33. }
  34. });

4.PHP接口(这里根据自己的需求写好接口处理成树形接口,返回方式必须是json格式)

  1. public function getAllRule(){
  2. $list = $this->modelSystemMenuModel->field(['id', 'pid', 'name'])->order('sort desc,id desc')
  3. ->select()
  4. ->toArray();
  5. $list = list_to_tree($list);
  6. array_unshift($list, ['id' => 0, 'pid' => -1, 'name' => '顶级菜单']);
  7.  
  8. return json($list);
  9. }
  1. function list_to_tree($list, $pk = 'id', $pid = 'pid', $child = 'children', $root = 0) {
  2. // 创建Tree
  3. $tree = array();
  4.  
  5. if (is_array($list)) {
  6. // 创建基于主键的数组引用
  7. $refer = array();
  8. foreach ($list as $key => $data) {
  9. $refer[$data[$pk]] = & $list[$key];
  10. }
  11. foreach ($list as $key => $data) {
  12. // 判断是否存在parent
  13. $parentId = $data[$pid];
  14. if ($root == $parentId) {
  15. $tree[] = & $list[$key];
  16. } else {
  17. if (isset($refer[$parentId])) {
  18. $parent = & $refer[$parentId];
  19. $parent[$child][] = & $list[$key];
  20. }
  21. }
  22. }
  23. }
  24. return $tree;
  25. }

下面就是完成后的显示样子

作者:dream

layui treeSelect的更多相关文章

  1. Layui treeSelect 回写与对应选中

    今天遇到个问题就是Layui treeSelect 的回写与特定选中,网络上居然没啥资料,有的也是不全的,于是花了点时间处理好了,这里写一下,方便以后有遇到的朋友借鉴. 一.父页面 二.Form编辑框 ...

  2. 小白开学Asp.Net Core 《九》

    小白开学Asp.Net Core <九> — — 前端篇(不务正业) 在<小白开学Asp.Net Core 三>中使用了X-admin 2.x 和 Layui将管理后端的界面重 ...

  3. layui 集成第三方和自定义组件到模块规范

    1.新建一个layui.extend.js文件,页面调用时这个文件放到layui.js后面. 2.基础的配置卸载config中,扩展的组件写入extend,组件的路径是相对于config下base的路 ...

  4. layui常用方法

    很好用的一个ui组件,弹出,分页等 http://layer.layui.com/ 1 带叉叉的弹窗 layer.open({ type: , title: false, //不显示标题 conten ...

  5. 开源网站.NETMVC+ Layui+SqlSugar+RestSharp

    SugarSite一个前端支持移动端的企业网站,目前只支持了简单功能,后续还会加上论坛等. 源码GIT地址: https://github.com/sunkaixuan/SugarSite 技术介绍 ...

  6. 分页组件 - layui.laypage

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 日期时间组件 - layui.laydate

    全部参数 一.核心方法:laydate(options); options是一个对象,它包含了以下key: '默认值' { elem: '#id', //需显示日期的元素选择器 event: 'cli ...

  8. 关于layui

    之前用layer用了很长时间,感觉很好用,最近看到了layui的发布很想尝试尝试. 加入了挺多的功能,比如编辑器,上传,form表单等等.

  9. 日期控件,layui

    <link rel="stylesheet" href="<%=path%>/layui/css/layui.css" type=" ...

随机推荐

  1. Android 监听软键盘搜索键

    现在很多的Android应用都有了数据搜索功能,在以往的设计上,会使用搜索框+搜索按钮来实现搜索功能: 现在呢,越来越流行的是,去除搜索按钮,直接监听软键盘搜索键,当用户输入完搜索关键字后,直接点击软 ...

  2. POJ2663 Tri Tiling

    思路: 设a[i]为N=i时的方法数.i为奇数的时候肯定为0. 如果i为偶数,a[i]可以看成a[i-2]加上两个单位组成的,此时多出来的2单位有3种方法. 也可以看成a[i-4]加上四个单位组成的, ...

  3. day5_python之hashlib模块

    用来校验文本内容hash:一种算法 ,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法三个特点:1.内容相同则h ...

  4. iptables 伪装(Masquerading)

    「偽装」是一种特殊的SNAT操作:将来自其它电脑的包的来源位址改成自己的位址:请注意,由於入替的来源位址是自动決定的(执行SNAT的主机的IP位址).所以,如果它改变了,仍在持续中的旧连線将会失效.「 ...

  5. SuperSocket性能数据采集的应用程序接口的改动

    性能数据采集的应用程序接口作了修改,两个虚方法已经被更改: protected virtual void UpdateServerSummary(ServerSummary serverSummary ...

  6. H3C 帧中继与水平分割(续)

  7. java StringBuffer 与 StringBuilder

    String是不可变类,一旦String对象被创建,包含在对象中的字符序列是不可变的,直到对象被销毁: StringBuffer 与 StringBuilder对象则是可变的! 举例说明这两个的好处: ...

  8. 【t013】无聊的军官

    Time Limit: 1 second Memory Limit: 32 MB [问题描述] 每个学年的开始,高一新生们都要进行传统的军训.今年有一个军训教官十分奇怪,他为了测试学员们的反应能力,每 ...

  9. H5 拖拽元素

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. http header详解,HTTP头、请求头、响应头、实体头

    Content-Language,Content-Length,Content-Type,Content-Encoding,mime分析 Accept 指定客户端能够接收的内容类型 Accept:te ...