layui treeSelect
官方地址:https://fly.layui.com/extend/treeSelect/
下面介绍一下这个插件的使用方法
1.html页面
<div class="layui-input-block">
<input name="pid" value="" type="text" id="tree" lay-filter="tree" class="layui-input">
</div>
2.js引入插件(引入多个插件的方法)
layui.config({
base: '__ROOT__/static/' //公共的文件夹
,version: new Date().getTime()
}).extend({ //需要引入的插件
treetable: 'plugs/treetable-lay/treetable',
treeSelect: 'treeSelect', //这是此文章需要的插件
authtree: 'authtree'
});
3.写入js方法
treeSelect.render({
// 选择器
elem: '#tree',
// 数据
data: "{:url('systemmenu/getAllRule')}", //写成自己的接口(切记这里的数据一定是json格式)
// 异步加载方式:get/post,默认get
type: 'get',
// 占位符
placeholder: '修改默认提示信息',
// 是否开启搜索功能:true/false,默认false
search: true,
// 一些可定制的样式
style: {
folder: {
enable: true
},
line: {
enable: true
}
},
// 点击回调(可以获取到点击时候的值)
click: function(d){
$('#tree').val(d.current.id);
},
// 加载完成后的回调函数
success: function (d) {
//选中节点,根据id筛选
treeSelect.checkNode('tree',$("#tree").val());
//获取zTree对象,可以调用zTree方法
var treeObj = treeSelect.zTree('tree');
}
});
4.PHP接口(这里根据自己的需求写好接口处理成树形接口,返回方式必须是json格式)
public function getAllRule(){
$list = $this->modelSystemMenuModel->field(['id', 'pid', 'name'])->order('sort desc,id desc')
->select()
->toArray();
$list = list_to_tree($list);
array_unshift($list, ['id' => 0, 'pid' => -1, 'name' => '顶级菜单']);
return json($list);
}
function list_to_tree($list, $pk = 'id', $pid = 'pid', $child = 'children', $root = 0) {
// 创建Tree
$tree = array();
if (is_array($list)) {
// 创建基于主键的数组引用
$refer = array();
foreach ($list as $key => $data) {
$refer[$data[$pk]] = & $list[$key];
}
foreach ($list as $key => $data) {
// 判断是否存在parent
$parentId = $data[$pid];
if ($root == $parentId) {
$tree[] = & $list[$key];
} else {
if (isset($refer[$parentId])) {
$parent = & $refer[$parentId];
$parent[$child][] = & $list[$key];
}
}
}
}
return $tree;
}
下面就是完成后的显示样子

作者:dream
layui treeSelect的更多相关文章
- Layui treeSelect 回写与对应选中
今天遇到个问题就是Layui treeSelect 的回写与特定选中,网络上居然没啥资料,有的也是不全的,于是花了点时间处理好了,这里写一下,方便以后有遇到的朋友借鉴. 一.父页面 二.Form编辑框 ...
- 小白开学Asp.Net Core 《九》
小白开学Asp.Net Core <九> — — 前端篇(不务正业) 在<小白开学Asp.Net Core 三>中使用了X-admin 2.x 和 Layui将管理后端的界面重 ...
- layui 集成第三方和自定义组件到模块规范
1.新建一个layui.extend.js文件,页面调用时这个文件放到layui.js后面. 2.基础的配置卸载config中,扩展的组件写入extend,组件的路径是相对于config下base的路 ...
- layui常用方法
很好用的一个ui组件,弹出,分页等 http://layer.layui.com/ 1 带叉叉的弹窗 layer.open({ type: , title: false, //不显示标题 conten ...
- 开源网站.NETMVC+ Layui+SqlSugar+RestSharp
SugarSite一个前端支持移动端的企业网站,目前只支持了简单功能,后续还会加上论坛等. 源码GIT地址: https://github.com/sunkaixuan/SugarSite 技术介绍 ...
- 分页组件 - layui.laypage
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 日期时间组件 - layui.laydate
全部参数 一.核心方法:laydate(options); options是一个对象,它包含了以下key: '默认值' { elem: '#id', //需显示日期的元素选择器 event: 'cli ...
- 关于layui
之前用layer用了很长时间,感觉很好用,最近看到了layui的发布很想尝试尝试. 加入了挺多的功能,比如编辑器,上传,form表单等等.
- 日期控件,layui
<link rel="stylesheet" href="<%=path%>/layui/css/layui.css" type=" ...
随机推荐
- iOS iOS8注册通知
http://blog.csdn.net/apple_app/article/details/39228221 极光推送 action设置 http://docs.jpush.cn/display/d ...
- Git 进阶:10大技巧让你迅速提升
1.Git自动补全 假使你使用命令行工具运行Git命令,那么每次手动输入各种命令是一件很令人厌烦的事情. 命令: cd ~ curl https://raw.github.com/git/git/ma ...
- 行为面试法(STAR)
从过去的行为预测未来,是一种提问技巧. 情景 : Situation 当时怎么了 当时你所在团队主要销售任务是什么目标 : Task 你要干什么 当时你的销售业绩是多少行动 : Action 你都干了 ...
- 11-1 css属性选择器
一 基础选择器 标签选择器:选择的标签的‘共性’,而不是特性 div{}.ul{}.ol{}.form{} 类选择器:.box{} id选择器:#box{} 只能选择器的特性,主要是为了js *通配符 ...
- 如何学习Python的一些总结
https://mp.weixin.qq.com/s/w0NoDiYfvtTy8N3BVoIVpw 为什么选择Python 经常会有同学问我为什么选择Python.我很喜欢这门语言,因为它的简洁灵活, ...
- 使用属性position:fixed的时候如何才能让div居中
css: .aa{ position: fixed; top: 200px; left: 0px; right: 0px; width: 200px; height: 200px; margin-le ...
- xUtils框架的介绍(二)
xUtils中有四大组件可以供我们使用,分别是ViewUtils.HttpUtils.BitmapUtils以及DbUtils.如果你没能先读一下我的上一篇文章,那么请你移步过去先整体了解一下,再回过 ...
- tomcat access日志
每次看access log都会记不住pattern里的各个标识代表的什么意思,记录下,备忘! tomcat的access log是由实现了org.apache.catalina.AccessLog接口 ...
- Codeforces Round #184 (Div. 2)
A. Strange Addition (目前的做法好像做烦了) 统计数的\(mask\),表示个.十.百位上是否是0,共8种数. 枚举8种数组成的所有情况\(2^8\),记录最大数量. B. Con ...
- pip安装python包时报字符编码错
比如安装scikit-learn时报错: django ascii’ codec can’t encode character 原因是用户目录或用户名存在中文,ascii不能解码,解决办法是在Pyth ...