下拉树

导包(记不清哪些反正在这个里面)

<link rel="stylesheet" type="text/css" media="all" href="${basePath}resource/ztree/ztree/css/zTreeStyle.css" />
<link rel="stylesheet" type="text/css" media="all" href="${basePath}resource/ztree/core/treeSelect.css" />
<script src="${basePath}resource/ztree/ztree/js/jquery.ztree.all.min.js"></script>
<script src="${basePath}resource/ztree/core/treeSelect.js"></script>
<link rel="stylesheet" href="${basePath}resource/treeselect/assets/layui/css/layui.css">
    <script src="${basePath}resource/treeselect/assets/layui/layui.js"></script>

主要代码

<div id="orgOut"  style="width: 130px;margin-top: -16px;" ></div>
这里是下拉树赋值地方

## js部分
var num;
	   var datas;
	  $.ajax({
			url : "${basePath}/queryVehicleMovementOrganization",//路径
			type : "POST",
			dataType:"json",
			success : function(data) {
			 	datas=eval('(' + data + ')');
				$(function() {
					  var zTree= $("#orgOut").treeSelect({
					   data: datas,
					   inputId: "departOut",//随便取什么名字,这相当于你后台获取值的名字
					   zTreeOnClick: function(event, treeId, treeNode) {
						   childerNodeId.length=0;
					    $("#departOut").val(treeNode.name);	
					    $("#departOut").attr("readOnly","readOnly");    //我自己设置只读,可以不要
					    num=treeNode.id;//节点id
					    childerNodeId.push(num);
					    findAllChilderNodesIdById(num);
				   }
					  })

					  });
			} 
		});
			 
			 //记录字节点ID的集合对象
			     var childerNodeId = new Array();//这个要传到后台
			     // 根据ID查找当前节点下的所有子节点ID
			     // * nodeId:要查找的节点ID
			     function findAllChilderNodesIdById(nodeId) {
			      for(var i = 0; i < datas.length; i++) {
			       var id = datas[i].id;
			       var pId = datas[i].pId;
			       if(pId == nodeId) { //找到一个子节点记录起来继续递归下一个
			        this.childerNodeId.push(id);
			        this.findAllChilderNodesIdById(id);
			       }
			      }
			     }

后台控制层

这个是代码是你放在你接收条件查询的里面

接收那边传过来的集合对象
String childerNodeId = request.getParameter("childerNodeIds");
StringBuilder orgOut = new StringBuilder(); //这个取名字最好和div里面的id一样
if(childerNodeId != "" && !childerNodeId.equals(null)){
				String[] arr = childerNodeId.split(","); // 用,分割
				for (int i = 0; i < arr.length; i++) //这个FOR循环就是加单引号
				{
					arr[i] = "'" + arr[i]+"'"+",";
					orgOut.append(arr[i]);
				}
				//去掉最后一个字符
				orgOut.deleteCharAt(orgOut.length()-1);
			}
			System.out.println(orgOut.toString());//这个就是你的查询条件toString一下就可以用了

这个代码是下拉树获取数据的方法

/**
	 * 查询组织全部信息
	 * @param request
	 * @return Object
	 */
	@RequestMapping("/queryVehicleMovementOrganization")
	@ResponseBody
	public Object selectGrg(HttpServletRequest request){
		List<Map<String, Object>> list=vehicleMovementService.queryVehicleMovementOrganization(request);
		StringBuilder str=new StringBuilder();
		//拼接格式
		str.append("[");
		for (Map<String, Object> map : list) {
			str.append("{");
			str.append("'name':"+"'"+map.get("NAME")+"'"+",");//对应数据库名字大写
			str.append("'pId':"+map.get("PARENT_ID")+",");
			str.append("'id':"+map.get("ID")+",");
			str.append("'type':"+"'1'");
			str.append("},");
		}
		str.append("]");
		System.out.println("hhhh"+str.toString());
		return JSON.toJSONString(str.toString());
	}

业务层Service

这是我自己写的获取数据,不同的需要自己改

/**
	 * 查询调动信息
	 * @param request
	 * @return List集合中的对象是一个Map对象
	 */
	public List<Map<String, Object>> queryVehicleMovementOrganization(HttpServletRequest request) {	
		UserInfoPojo user = (UserInfoPojo) request.getSession().getAttribute("RealUser");// 当前操作人
		String sql = " select a.id,a.parent_id,a.name"
				+ " from jf_dept a "
				+" start WITH a.id =(select t.dept_id from jf_dept_user t "
				+ " where t.user_id = '"+user.getId()+"' )"
				+ " connect by prior a.id = a.parent_id";
		List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
		return list;
	}

注意
如果没报错数据出不来可以是页面挤了,你调一下页面大小或者间距

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值