位置: 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泛型方法的作用)

  • 联通物联卡3g却不能上网(联通物联卡3g怎么解决)

    联通物联卡3g却不能上网(联通物联卡3g怎么解决)

  • 发抖音用流量发还是wifi(抖音给流量的时候还要继续上传作品吗)

    发抖音用流量发还是wifi(抖音给流量的时候还要继续上传作品吗)

  • xps是什么(xps保温板)

    xps是什么(xps保温板)

  • 抖音号能改几次(抖音号可以修改几次?)

    抖音号能改几次(抖音号可以修改几次?)

  • oppor11s上市时间(oppor11s原价格多少钱)

    oppor11s上市时间(oppor11s原价格多少钱)

  • fx是什么(fx是什么函数)

    fx是什么(fx是什么函数)

  • 拼多多第三方店铺是什么意思(拼多多第三方店铺是什么)

    拼多多第三方店铺是什么意思(拼多多第三方店铺是什么)

  • 脸书账号被停用是什么意思(脸书账号被停用 恢复正常最快几个小时)

    脸书账号被停用是什么意思(脸书账号被停用 恢复正常最快几个小时)

  • 优酷怎么取消同步记录(取消优酷app)

    优酷怎么取消同步记录(取消优酷app)

  • 电脑怎么直接回到桌面(电脑按什么可以直接回到桌面)

    电脑怎么直接回到桌面(电脑按什么可以直接回到桌面)

  • 下载了搜狗输入法怎么启动(下载了搜狗输入法怎么用)

    下载了搜狗输入法怎么启动(下载了搜狗输入法怎么用)

  • word2007怎么添加乘号(word2007怎么添加目录)

    word2007怎么添加乘号(word2007怎么添加目录)

  • 如何改变文件顺序(怎么改变文件里的顺序)

    如何改变文件顺序(怎么改变文件里的顺序)

  • 小米8屏幕比例怎么调(小米八屏幕比例)

    小米8屏幕比例怎么调(小米八屏幕比例)

  • 微信7.0.5版本怎么不能修改提示音(微信版本7.0.0)

    微信7.0.5版本怎么不能修改提示音(微信版本7.0.0)

  • 抖音能不能投屏到电视(抖音能不能投屏到小米电视)

    抖音能不能投屏到电视(抖音能不能投屏到小米电视)

  • 全民能隐身进歌房吗(全民能隐身进歌单吗)

    全民能隐身进歌房吗(全民能隐身进歌单吗)

  • 小米8防水吗(小米8防不防水,如果防,什么级别?)

    小米8防水吗(小米8防不防水,如果防,什么级别?)

  • 华为智能眼镜功能

    华为智能眼镜功能

  • 精选照片怎么关闭(精选照片怎么关闭不显示)

    精选照片怎么关闭(精选照片怎么关闭不显示)

  • cad坐标转换(cad坐标转换快捷命令)

    cad坐标转换(cad坐标转换快捷命令)

  • mac网页怎么全屏浏览? mac全屏的四种方法(macbookair网页全屏)

    mac网页怎么全屏浏览? mac全屏的四种方法(macbookair网页全屏)

  • macOS Big Sur 11.3 开发者预览版/公测版 Beta 6正式发布

    macOS Big Sur 11.3 开发者预览版/公测版 Beta 6正式发布

  • 【蓝桥杯Web】第十四届蓝桥杯(Web 应用开发)模拟赛 2 期-职业院校组(蓝桥杯b组2020)

    【蓝桥杯Web】第十四届蓝桥杯(Web 应用开发)模拟赛 2 期-职业院校组(蓝桥杯b组2020)

  • 内存分配理解(内存分配理解是什么)

    内存分配理解(内存分配理解是什么)

  • Vue组件的通信方式有哪些?(vue组件通信方法)

    Vue组件的通信方式有哪些?(vue组件通信方法)

  • 补缴个税差额有时间规定吗
  • 旧面包车能跑长途吗
  • 暂时进出境货物和暂准进出境货物
  • 资金账簿印花税减半政策
  • 小规模纳税人进项发票怎么做账
  • 转出未交增值税最终怎么转平
  • 税盘收费吗
  • 结转增值税会计摘要
  • 小规模未达起征点的增值税怎么做账
  • 用固定资产投资怎么做账
  • 开业前的其他费用
  • 月初认证的增值税发票可以吗
  • 摊销制造费用如何结转做会计分录呢?
  • 发票对方认证不了怎么回事
  • 已经建立了某个公司
  • 企业向学校捐赠 流程
  • 弥补以前年度亏损从哪里取数
  • 税控盘登不上怎么回事
  • 会展服务可以入管理费用的哪个明细费用
  • 企业所得税以前年度亏损怎么弥补
  • 银行承兑汇票保证金是什么意思
  • 期间费用核算内容不应该包括
  • 固定资产双倍余额递减法计提折旧公式
  • 苹果macbookpro分辨率是多少
  • svhost.exe - svhost是什么进程 有什么作用
  • 不附追索权的票据包括
  • 增值税附税的计算公式
  • ecshop怎么用
  • php.ini配置文件
  • dvdram是什么意思
  • 总公司的固定资产可以划转子公司
  • 收到某公司的钱的会计分录
  • 医院的重要
  • windows7旗舰版最新版本
  • vue程序运行过程
  • pytorch f
  • php实现图片上传的方法
  • 端午安康图片
  • 房屋租赁费发票备注栏需要写什么?
  • 布兹洛夫
  • 如何使用vue
  • mysql表中数据
  • php require函数
  • php设置title
  • php目录结构
  • 织梦如何使用
  • mysql innodb存储结构
  • 玉米 收购
  • 捐赠货物的增值税可以税前扣除吗
  • 下月初可以认证上月的发票么
  • 视同销售收入是纳税调整项目吗?
  • 增值税申报表里期初未缴税额是什么意思
  • 不动产初始登记证明
  • 软件增值税即征即退税务风险
  • 半成品怎么核算成本做账
  • 用信用卡消费扣谁的手续费
  • 员工休产假不发工资违法吗
  • 知识产权服务费可以计入研发费用吗
  • 中小型企业产品定位方案
  • 来料加工企业的辅助材料自购怎开销售发票
  • 企业预付账款怎么做账
  • mysql检查表是否存在
  • SQL Server"错误 21002: [SQL-DMO]用户 * 已经存在问题解决
  • 未知文件怎么删除
  • windows7 设置
  • win10手机预览版
  • centos7如何设置固定ip
  • linux安装gdb命令
  • SMax4.exe - SMax4是什么进程
  • win7怎么删除操作中心
  • win8注销在哪里
  • js类继承的几种方式
  • unity3d碰撞体
  • 深入理解计算机系统
  • 大学生活最后的日子
  • javascript教学视频
  • 江西省发票综合服务平台
  • ca证书密码是什么
  • 税盘换电脑怎么登陆
  • 国地税怎么交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设