IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Layui 树形复选框获取值赋值,复选树形菜单 -> 正文阅读

[JavaScript知识库]Layui 树形复选框获取值赋值,复选树形菜单

Layui 树形复选框赋值取值

效果图标
在这里插入图片描述

实现

前端
html

	<!-- 授权菜单 -->
	<form class="layui-form" id="role_menu_form"  action="" lay-filter="role_menu_form" style="padding:10px;display: none;">
		<fieldset class="layui-elem-field layui-field-title" style="color:#89b586;">
		  <legend>授权菜单</legend>
		</fieldset>
		<input type="text" name="rid" class="layui-input" style="display: none">
		<div class="layui-form-item">
			<div id="menu_tree" class="demo-tree"></div>
		</div>
		<br>
		<div class="layui-form-item" style="text-align: center;">
			<a class="layui-btn lay-submit-btn" lay-submit="" lay-filter="roleMenuForm">立即提交</a>
			<a class="layui-btn layui-btn-primary lay-close-btn">关闭</a>
		</div>
	</form>

关键:<div id="menu_tree" class="demo-tree"></div>

js-展示

tree.render({
	elem: '#menu_tree'
	,data: res.data // 这里的res.data是接口返回的数据
	,showCheckbox: true  //是否显示复选框
	,id: 'menu'
});

js-提交

	// 提交角色菜单
	form.on('submit(roleMenuForm)', function(data) {
		var rid = data.field.rid;
		var checkData = tree.getChecked('menu');
	    var mids = [];
	    getTreeValue(checkData, mids);// 获取树形选中值
	    getAjax(interUrl.saveRoleMenu, {mids: mids.join(","), rid: rid}, 'post', function (res) {
	        if (res.success) {
	            layer.closeAll();
	        }
	        showTips(res.msg);// 自定义提示
	    })
	    return false;
	})
	
/**
 * 获取树形选中的值-----------------------------------------------------------
 */
function getTreeValue(list, mids){
	$(list).each(function (i, o) {
    	mids.push(o.id);
    	getTreeValue(o.children, mids);
    });
}

后端
java

	@Override
	public Result<?> selectRoleMenuTree(Integer rid) {
		List<MenuDtoResp> mList = mdao.selectRoleMenu(rid);
		List<Map<String,Object>> list = new ArrayList<>();
		for(MenuDtoResp m : mList) {
			if(m.getParentId() == 0) {
				Map<String,Object> map = new HashMap<>();
				map.put("id", m.getMid());
				map.put("title", m.getMname());
				map.put("spread", true);
				List<Map<String,Object>> children = getMenuChildren(mList, m.getMid());
				if(children.size() < 1) { // 这是是没有子级的时候才判断是否选中,否则有子级的会子级全选
					map.put("checked", m.getRmstate() > 0 ? true :false);
				}
				map.put("children", children);
				list.add(map);
			}
		}
		return Result.success(list);
	}

	public List<Map<String,Object>> getMenuChildren(List<MenuDtoResp> mList, Integer pid){
		List<Map<String,Object>> list = new ArrayList<>();
		for(MenuDtoResp m : mList) {
			if(m.getParentId().equals(pid)) {
				Map<String,Object> map = new HashMap<>();
				map.put("id", m.getMid());
				map.put("title", m.getMname());
				map.put("checked", m.getRmstate() > 0 ? true :false);
				map.put("spread", true);
				map.put("children", getMenuChildren(mList, m.getMid()));
				list.add(map);
			}
		}
		return list;
	}
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:18:34  更:2021-10-18 17:19:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/14 1:59:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码