位置: IT常识 - 正文

LayUI下拉树TreeSelect的使用解读(layui树形下拉框)

编辑:rootadmin
这篇文章主要介绍了LayUI下拉树TreeSelect的使用解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教 目录

推荐整理分享LayUI下拉树TreeSelect的使用解读(layui树形下拉框),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:layui下拉树表格,layui下拉框数据库,layui 树形下拉列表,下拉框树形结构,layui下拉树表格,layui下拉树表格,下拉框树形结构,layui 树形下拉列表,内容如对您有帮助,希望把文章链接给更多的朋友!

显示效果图JS渲染样式代码后台响应加载下拉树数据方法(有详细注释)Dept实体类代码JSON数据格式JSON数据

树形结构在实际开发中是很长用的一种结构。最近写了一个LayUI的小案例,其中用到了TreeSelect,这里整理一下。

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

显示效果图LayUI下拉树TreeSelect的使用解读(layui树形下拉框)

因为TreeSelect不是LayUI官方开发的,而是第三方基于LayUI开发的,所以需要先用Layui引入一下文件。

之后页面只需要引入LayUI的CSS和JS就可以了。

页面给一个标签,用于显示TreeSelect下拉树选中的内容值,获取选中值时,直接获取标签值,就是选中的内容值。

<input type="text" name="parentId" id="tree2" lay-filter="tree2" class="layui-input" />JS渲染样式代码<script type="text/javascript">layui.use(["treeSelect", "form", "tree"], function () {var form = layui.form;var tree = layui.tree;var treeSelect = layui.treeSelect;treeSelect.render({// 选择器elem: '#tree',// 异步获取下拉树需要显示的数据data: 'dept/treeSelect',// 异步加载方式:get/post,默认gettype: 'post',// 占位符placeholder: '上级菜单',// 是否开启搜索功能:true/false,默认falsesearch: true,// 一些可定制的样式style: {folder: {enable: true},line: {enable: true}},// 点击节点回调click: function(d){//console.log(d);},// 加载完成后的回调函数success: function (d) {//console.log(d);// 选中节点,根据id筛选,一般修改时会有默认选中状态,可以在这里设置//treeSelect.checkNode('tree', 2);//console.log($('#tree').val());// 获取zTree对象,可以调用zTree方法//var treeObj = treeSelect.zTree('tree');// console.log(treeObj);// 刷新树结构//treeSelect.refresh('tree');}});});</script>后台响应加载下拉树数据方法(有详细注释)@RequestMapping(value="/treeSelect")@ResponseBody//这里写的,新增和修改数据请求都是同一个方法,如果是修改会传递一个修改对象的idpublic Object treeSelect(Integer id) {Sort sort = Sort.by("idx"); //排序Specification<Dept> spec = buildSpec1(); //查询条件,查询父节点为null的元素List<Dept> list = deptService.findAll(spec,sort); //查询,Dept为实体类return buildTree(list, id); //转换为treeSelect指定的JSON数据格式方法}private Object buildTree(List<Dept> list, Integer id) {List<HashMap<String, Object>> result=new ArrayList<>();for (Dept dept : list) {if(dept.getId() != id) { //判断如果是修改的话,修改的节点及下级节点不显示,也就不加载HashMap<String, Object> node=new HashMap<>();node.put("id", dept.getId()); //节点idnode.put("name",dept.getName()); //节点数据名称node.put("open", false); //是否展开node.put("checked", false); //是否选中,前台也可以设置是否选中if(dept.getChildren().size() != 0) { //如果下级节点不为空,node.put("children",buildTree(dept.getChildren(), id)); //递归加载下级节点}result.add(node);}}return result;}public Specification<Dept> buildSpec1() {Specification<Dept> specification = new Specification<Dept>() {private static final long serialVersionUID = 1L;@Overridepublic Predicate toPredicate(Root<Dept> root, CriteriaQuery<?> query, CriteriaBuilder cb) {HashSet<Predicate> rules=new HashSet<>();Predicate parent = cb.isNull(root.get("parent")); //查询父节点为null的元素rules.add(parent);return cb.and(rules.toArray(new Predicate[rules.size()]));}};return specification;}Dept实体类代码import com.fasterxml.jackson.annotation.JsonIgnore;import org.springframework.data.annotation.CreatedBy;import javax.persistence.*;import java.util.ArrayList;import java.util.List;@Entitypublic class Dept {private Integer id;private String name; //部门名称private String deptName; //部门负责人private String phone; //电话号private String number; //编号private double idx; //排序@JsonIgnoreprivate Dept parent;@JsonIgnoreprivate List<Dept> children = new ArrayList<>();@Id@GeneratedValuepublic Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDeptName() {return deptName;}public void setDeptName(String deptName) {this.deptName = deptName;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public double getIdx() {return idx;}public void setIdx(double idx) {this.idx = idx;}@ManyToOne@CreatedBypublic Dept getParent() {return parent;}public void setParent(Dept parent) {this.parent = parent;}@OneToMany(cascade=CascadeType.ALL,mappedBy="parent")@OrderBy(value="idx")public List<Dept> getChildren() {return children;}public void setChildren(List<Dept> children) {this.children = children;}public Dept(Integer id, String name, String deptName, String phone, String number, double idx, Dept parent, List<Dept> children) {this.id = id;this.name = name;this.deptName = deptName;this.phone = phone;this.number = number;this.idx = idx;this.parent = parent;this.children = children;}public Dept(Integer id) {this.id = id;}public Dept() {}}

这里后台持久层是使用的Spring-Data-Jpa,如果你是用的其他持久层框架,只要返回的JSON数据格式一样就可以了。

JSON数据格式

JSON数据[{"children": [//下级节点{"children": [{"name": "测试","checked": false,"id": 30,"open": false}, {"name": "开发","checked": false,"id": 31,"open": false}, {"children": [{"name": "测试节点","checked": false,"id": 36,"open": false}],"name": "测试","checked": false,"id": 32,"open": false}],"name": "技术部","checked": false,"id": 2,"open": false}, {"name": "财务部","checked": false,"id": 19,"open": false}],"name": "某某公司",//节点内容"checked": false,//是否选中"id": 1,//id"open": false//是否展开}, {"name": "测试","checked": false,"id": 33,"open": false}]

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

本文链接地址:https://www.jiuchutong.com/zhishi/304576.html 转载请保留说明!

上一篇:python中Array和DataFrame如何相互转换(python,array)

下一篇:java泛型方法是什么(java泛型方法的作用)

  • 亿连手机互联怎样投屏(亿连手机互联怎么样)

    亿连手机互联怎样投屏(亿连手机互联怎么样)

  • 浪潮软件和浪潮信息有什么区别(浪潮软件和浪潮信息哪个好)

    浪潮软件和浪潮信息有什么区别(浪潮软件和浪潮信息哪个好)

  • 华为开机键坏了怎么开机(华为开机键坏了怎么点亮屏幕)

    华为开机键坏了怎么开机(华为开机键坏了怎么点亮屏幕)

  • 微信账号评估什么意思(微信号价值在线评估)

    微信账号评估什么意思(微信号价值在线评估)

  • 微星主板用安装主板驱动吗(微星主板安装ubuntu)

    微星主板用安装主板驱动吗(微星主板安装ubuntu)

  • 华为可以应用分身吗(华为可以应用分身淘宝吗)

    华为可以应用分身吗(华为可以应用分身淘宝吗)

  • art-aloox是华为什么型号

    art-aloox是华为什么型号

  • 路由器wps按钮在哪(路由器wps按钮在哪里设置)

    路由器wps按钮在哪(路由器wps按钮在哪里设置)

  • 苹果手机下滑半个屏幕(苹果手机下滑半屏怎么关)

    苹果手机下滑半个屏幕(苹果手机下滑半屏怎么关)

  • 头条被永久封禁怎么办(头条被永久封禁重新注册)

    头条被永久封禁怎么办(头条被永久封禁重新注册)

  • word怎么调行数(word调整行)

    word怎么调行数(word调整行)

  • zp/a是什么版本的苹果(zp/a是什么版本的苹果手机)

    zp/a是什么版本的苹果(zp/a是什么版本的苹果手机)

  • 微信忙线中是拉黑了吗(微信忙线中是对方挂断了吗)

    微信忙线中是拉黑了吗(微信忙线中是对方挂断了吗)

  • word怎么加自定义花边(word怎么加自定义封面页)

    word怎么加自定义花边(word怎么加自定义封面页)

  • word下标怎么打(word下标怎么打出来)

    word下标怎么打(word下标怎么打出来)

  • 苹果xr双卡双待缺点(苹果XR双卡双待信号好吗)

    苹果xr双卡双待缺点(苹果XR双卡双待信号好吗)

  • 手机上字体怎么换字体(手机上字体怎么加粗)

    手机上字体怎么换字体(手机上字体怎么加粗)

  • 快手如何看发布年月日(快手如何发布视频才有收益)

    快手如何看发布年月日(快手如何发布视频才有收益)

  • 金立m7如何删除故事锁屏(金立手机软件怎么删除)

    金立m7如何删除故事锁屏(金立手机软件怎么删除)

  • 小米9pro是双音响吗(小米9单声道音频怎么设置)

    小米9pro是双音响吗(小米9单声道音频怎么设置)

  • 显示器可以插音响吗(显示器插音响有电流声)

    显示器可以插音响吗(显示器插音响有电流声)

  • ipad商店登录不上(ipad商店登录不上去)

    ipad商店登录不上(ipad商店登录不上去)

  • 手机双频wifi什么意思(手机双频双模块wifi)

    手机双频wifi什么意思(手机双频双模块wifi)

  • 小爱同学对话记录怎么删除(小爱同学对话记录没了)

    小爱同学对话记录怎么删除(小爱同学对话记录没了)

  • 蚂蚁森林怎么捐赠能量(蚂蚁森林怎么捐能量)

    蚂蚁森林怎么捐赠能量(蚂蚁森林怎么捐能量)

  • iphone测距仪准吗(iphone测距仪能测多远)

    iphone测距仪准吗(iphone测距仪能测多远)

  • 手机删掉的文件怎么恢复(手机删掉的文件在哪里找)

    手机删掉的文件怎么恢复(手机删掉的文件在哪里找)

  • FIPS.EXE是什么进程 有什么作用 FIPS进程查询(file*fp什么意思)

    FIPS.EXE是什么进程 有什么作用 FIPS进程查询(file*fp什么意思)

  • 民营医院增值税优惠政策有哪些
  • 房地产企业怎么认定
  • 外债利息支付需要按照天计算吗?
  • 员工垫资报销记账
  • 出纳取备用金需要交税吗
  • 免税的开成有税率的怎么办
  • 税控设备维护费会计分录
  • 会议费怎么做会计分录
  • 资产证券化会计准则
  • 出售股票公允价值变动在借方
  • 加油站冲值加油怎么操作
  • 保证金转租金的会计处理
  • 普通发票可以改明细吗
  • 滞纳金用留抵增值税交怎么处理
  • 转让部分股份流程
  • 第一季度盈利第二季度亏损全年盈利
  • 房地产开发企业预收款预缴增值税
  • 房产税申报后多久缴纳税款
  • 上月未申报纳税补申报怎么做不会有罚款吗?
  • 果蔬免征增值税有哪些
  • 无形资产和固定资产计提折旧的时间
  • 发票遗失登报费用账务处理
  • 收到增值税发票怎么记账
  • 代缴社保缴费基数是怎么算的
  • 外籍人员工资个税
  • 监证方什么意思
  • win11压缩文件
  • 积分全部换购商品是什么
  • 计提企业所得税费用会计分录
  • 贸易公司出口是什么意思
  • 银行手续费填在汇算清缴的哪个表
  • qcwlicon.exe - qcwlicon是什么进程 有何作用
  • 广告公司发生的费用要计入主营业务成本吗
  • php中strcmp
  • 本月购买原材料怎么入账
  • 所得税季报填报说明
  • 每月分配利润如何做账
  • php中file
  • php和aspnet哪个好
  • 出现质量问题赔偿标准
  • 公允价值变动损益和投资收益区别
  • php关闭报错
  • 广告费列支
  • 一只什么海鸥填空
  • php主要用于
  • 数据库系统课程学什么
  • c#开发入门及项目实战
  • 代缴社保可以领住房补贴吗
  • swatch of
  • 材料盘盈分录
  • JavaScript の querySelector 使用说明
  • 可行性研究合同印花税
  • mongodb mongoose
  • 固定资产折旧范围口诀
  • 出租车发票可以改时间吗
  • 增值税无票收入税率变了
  • 金融商品转让和贷款服务
  • 金税盘抵扣税款分录怎么做
  • 事故赔偿金分配
  • 营改增租金收入税率
  • 企业购买房产缴纳房产税
  • 报销差旅费属于付款凭证还是收款凭证
  • 资产评估资产如何入帐
  • 老板个人借款要纳税吗
  • mysqld关闭
  • xp win10 打印机
  • ubuntu系统怎么设置不锁屏
  • win7访问共享文件
  • ubuntu20录屏
  • win7 64位旗舰版电脑如何取消网页自动保存密码?win7取消自动保存网页密码的方法
  • w10系统音量图标不能用了
  • node.js教学
  • CalledFromWrongThreadException: Only the original thread that created a view
  • shell监控文件
  • javascriptcsdn
  • Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
  • unity ngui
  • python编写登录程序
  • 全国低保查询系统网站
  • 甘肃职称申报评审入口官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设