zoukankan      html  css  js  c++  java
  • layuidtree — dtree

    请先去查看官方文档、不然下面的例子你可能会看不懂

    首先上页面

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title>OA</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="${base}/util/layui/css/layui.css">
        <link rel="stylesheet" type="text/css" href="${base}/util/layui/css/dtreefont.css">
        <link rel="stylesheet" type="text/css" href="${base}/util/layui/css/dtree.css">
        <script type="text/javascript" src="${base}/util/js/jquery.min.js"></script>
        <script type="text/javascript" src="${base}/util/layui/layui.js"></script>
    </head>
    <body style="background: #f4fafe;">
    	<div class="container" style="margin: 45px;">
    		<div class="layui-row layui-col-space10">
    			<div class="layui-fluid">
    				<div class="layui-input-inline">
    					<input class="layui-input" id="searchInput" value="" placeholder="输入查询内容...">
    				</div>
    				<button class="layui-btn layui-btn-normal" id="search_btn">查询</button>
    				<button class="layui-btn layui-btn-normal" dtree-id="demoTree" dtree-menu="moveDown">展开全部</button>
    				<button class="layui-btn layui-btn-normal" dtree-id="demoTree" dtree-menu="moveUp">收缩全部</button>
    				<button class="layui-btn layui-btn-normal" id="checkbarTreea_btna">保存</button>
    				<ul id="demoTree" class="dtree" data-id="000000"></ul>
    			</div>
    		</div>
    	</div>
    </body>
    <script>
    	layui.extend({
    	    dtree: '${base}/util/layui/dtree'   // {/}的意思即代表采用自有路径,即不跟随 base 路径
    	  }).use(['dtree','layer','jquery'], function(){
    	    var dtree = layui.dtree, layer = layui.layer, $ = layui.jquery;
    	    
    	    var DemoTree = dtree.render({
    	      elem: "#demoTree",
    	      type: "all",
    	      dataStyle: "layuiStyle",
    	      dot: false,  // 隐藏小圆点
    	      //initLevel: 1,//不展开全部,默认展开
      	      skin: "layui",  // layui主题风格
    	      dataFormat: "list",  //配置data的风格为list
    	      response:{message:"msg",statusCode:1},  //修改response中返回数据的定义
    	      url: "${base}/api/apply/menu_list.action",
    	      checkbarData: "change",// 记录选中(默认), "change":记录变更, "all":记录全部, "halfChoose":"记录选中和半选(V2.5.0新增)"
    	      checkbar:true, //开启复选框
    	      done: function(data, obj){
    		    $("#search_btn").unbind("click");
    		    $("#search_btn").click(function(){
    		      var value = $("#searchInput").val();
    		      if(value){
    		        var flag = DemoTree.searchNode(value); // 内置方法查找节点
    		        if (!flag) {layer.msg("该名称节点不存在!", {icon:5});}
    		      } else {
    		        DemoTree.menubarMethod().refreshTree(); // 内置方法刷新树
    		      }
    		    });
    		  }
    	    });
    	    
    	    //dtree.on("node('demoTree')" ,function(obj){
    	    //  	layer.msg(JSON.stringify(obj.param));
    	    //});
    	    
    	    $("#checkbarTreea_btna").click(function(){
    		  var params = dtree.getCheckbarNodesParam("demoTree");
    		  log(JSON.stringify(params));
    		  $.ajax({
    	        type:'post',
    	        url : '${base}/api/apply/save_menu.action',//list格式数据
    	        data : {"params":JSON.stringify(params)},
    	        success : function(data){
    	        	//这里的resultVO 内的方法不用在意 自用的方法
    	            resultVO.checkCode(data, function (data) {
    	        		if(data){
    	        			DemoTree.menubarMethod().refreshTree(); // 内置方法刷新树
    	        			log(data);
    		        	}else{
    	        			log("凉凉");
    		        	}
    	            });
    	        },
    	        error : function(){
    	            layeropen('2','发生意外错误!');
    	        }
    	    });
    		});
    	  });
    </script>
    </html>
    

    java

    action

    	/**
    	 * 保存tree
    	 * @param request
    	 * @return
    	 */
    	@RequestMapping("/save_menu")
    	public ResultVO save_menu(HttpServletRequest request,String params) {
    		//html字符转义
    		params = StringEscapeUtils.unescapeHtml4(params);
    		List<json_menu> menus = (List<json_menu>) JSON.parseArray(params, json_menu.class);
    	    System.out.println(menus);
        	return new ResultVO(applyService.save_menu(menus));
    	}
    

    serviceImpl

    	/**铺页面*/
    	@Override
    	public List<json_menu> menu_list() {
    		String sql = "SELECT * FROM SYS_MENU where MENU_CODE <> '105000'";
    		List<json_menu> json_menus = jdbcTemplate.query(sql, new MyRowMapper());
    		System.out.println(json_menus);
    		return json_menus;
    	}
    
    	/**
    	 * 保存tree
    	 * @param request
    	 * @return
    	 */
    	@Override
    	public boolean save_menu(final List<json_menu> menus) {
    		String sql = "UPDATE SYS_MENU set IF_VIEW = ? where MENU_CODE = ? ";
    		jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
    			@Override
    			public void setValues(PreparedStatement ps, int i) throws SQLException {
    				ps.setString(1, menus.get(i).getIschecked());
    				ps.setString(2, menus.get(i).getNodeId());
    			}
    			@Override
    			public int getBatchSize() {
    				return menus.size();
    			}
    		});
    		return true;
    	}
    

    vo 用到的实体类

    package cn.fulong.web.workApproval.utils;
    
    /**
     * 根据dtree文档 建立实体类 负责json化数据
     * @author XNYLH
     *
     */
    public class json_menu {
    	private String id;
    	private String title;
    	private String checkArr;
    	private String parentId;
    	private String iconClass;
    	private String code;
    	private String message;
    
    	private String nodeId;
    	private String context;
    	private String isLeaf;
    	private String level;
    	private String spread;
    	private String dataType;
    	private String ischecked;
    	private String initchecked;
    
    	public String getId() {
    		return id;
    	}
    
    	public void setId(String id) {
    		this.id = id;
    	}
    
    	public String getTitle() {
    		return title;
    	}
    
    	public void setTitle(String title) {
    		this.title = title;
    	}
    
    	public String getCheckArr() {
    		return checkArr;
    	}
    
    	public void setCheckArr(String checkArr) {
    		this.checkArr = checkArr;
    	}
    
    	public String getParentId() {
    		return parentId;
    	}
    
    	public void setParentId(String parentId) {
    		this.parentId = parentId;
    	}
    
    	public String getIconClass() {
    		return iconClass;
    	}
    
    	public void setIconClass(String iconClass) {
    		this.iconClass = iconClass;
    	}
    
    	public String getCode() {
    		return code;
    	}
    
    	public void setCode(String code) {
    		this.code = code;
    	}
    
    	public String getMessage() {
    		return message;
    	}
    
    	public void setMessage(String message) {
    		this.message = message;
    	}
    
    	public String getNodeId() {
    		return nodeId;
    	}
    
    	public void setNodeId(String nodeId) {
    		this.nodeId = nodeId;
    	}
    
    	public String getContext() {
    		return context;
    	}
    
    	public void setContext(String context) {
    		this.context = context;
    	}
    
    	public String getIsLeaf() {
    		return isLeaf;
    	}
    
    	public void setIsLeaf(String isLeaf) {
    		this.isLeaf = isLeaf;
    	}
    
    	public String getLevel() {
    		return level;
    	}
    
    	public void setLevel(String level) {
    		this.level = level;
    	}
    
    	public String getSpread() {
    		return spread;
    	}
    
    	public void setSpread(String spread) {
    		this.spread = spread;
    	}
    
    	public String getDataType() {
    		return dataType;
    	}
    
    	public void setDataType(String dataType) {
    		this.dataType = dataType;
    	}
    
    	public String getIschecked() {
    		return ischecked;
    	}
    
    	public void setIschecked(String ischecked) {
    		this.ischecked = ischecked;
    	}
    
    	public String getInitchecked() {
    		return initchecked;
    	}
    
    	public void setInitchecked(String initchecked) {
    		this.initchecked = initchecked;
    	}
    
    	@Override
    	public String toString() {
    		return "json_menu [id=" + id + ", title=" + title + ", checkArr=" + checkArr + ", parentId=" + parentId
    				+ ", iconClass=" + iconClass + ", code=" + code + ", message=" + message + ", nodeId=" + nodeId
    				+ ", context=" + context + ", isLeaf=" + isLeaf + ", level=" + level + ", spread=" + spread
    				+ ", dataType=" + dataType + ", ischecked=" + ischecked + ", initchecked=" + initchecked + "]";
    	}
    
    	
    
    }
    

    效果图

    js以及css链接 不需要在官方下载了,包含 dtree和layui 密码 : jqki

  • 相关阅读:
    几个常用myeclipse快捷键
    5G layer
    customize the entry point of pod runtime
    关于JS Pormise的认识
    修改 /etc/pam.d/login, linux 本地账号密码无法登陆,一直返回 登陆的login界面
    Java支付宝PC网站支付功能开发(详细教程)
    支付宝PC支付功能异步通知签名验证失败解决方案
    提交代码出现 Push to origin/master was rejected 错误解决方法
    易语言连接RCON详细教程实例(演示连接Unturned服务器RCON)
    易语言调用外部DLL详细实例教程
  • 原文地址:https://www.cnblogs.com/yu-du-chen/p/12109019.html
Copyright © 2011-2022 走看看