JEECG treegrid初探

由于JEECG 3.4.3 online模式不支持treegrid,只好使用代码生成方式:

1、通过online或sql语句建表

2、根据表明使用代码生成

3、修改生成的entity

        1) extends IdEntity

        2) 去掉生成的id属性

        3)将level改成short类型

        4)添加父对象

        5)添加子对象

@Entity
@Table(name = "ncms_center", schema = "")
@DynamicUpdate(true)
@DynamicInsert(true)
@SuppressWarnings("serial")
public class NcmsCenterEntity extends IdEntity implements java.io.Serializable {

	/**编号*/
	private java.lang.String code;
	/**名称*/
	private java.lang.String name;
	/**等级*/
	private java.lang.Short level;
	/**显示顺序*/
	private java.lang.String sort;
	/**父节点*/
	private NcmsCenterEntity ncmsCenterEntity;
	/**子节点*/
	private List<NcmsCenterEntity> ncmsCenterEntitys = new ArrayList<NcmsCenterEntity>();
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "pid")
	@ForeignKey(name="null")//取消hibernate的外键生成
	public NcmsCenterEntity getNcmsCenterEntity() {
		return ncmsCenterEntity;
	}

	public void setNcmsCenterEntity(NcmsCenterEntity ncmsCenterEntity) {
		this.ncmsCenterEntity = ncmsCenterEntity;
	}


	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "ncmsCenterEntity")
	public List<NcmsCenterEntity> getNcmsCenterEntitys() {
		return ncmsCenterEntitys;
	}

	public void setNcmsCenterEntitys(List<NcmsCenterEntity> ncmsCenterEntitys) {
		this.ncmsCenterEntitys = ncmsCenterEntitys;
	}


	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  编号
	 */
	@Column(name ="CODE",nullable=true,length=255)
	public java.lang.String getCode(){
		return this.code;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  编号
	 */
	public void setCode(java.lang.String code){
		this.code = code;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  名称
	 */
	@Column(name ="NAME",nullable=true,length=255)
	public java.lang.String getName(){
		return this.name;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  名称
	 */
	public void setName(java.lang.String name){
		this.name = name;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  等级
	 */
	@Column(name ="LEVEL",nullable=true,precision=5,scale=0)
	public java.lang.Short getLevel(){
		return this.level;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  等级
	 */
	public void setLevel(java.lang.Short level){
		this.level = level;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  显示顺序
	 */
	@Column(name ="SORT",nullable=true,length=10)
	public java.lang.String getSort(){
		return this.sort;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  显示顺序
	 */
	public void setSort(java.lang.String sort){
		this.sort = sort;
	}

}

4、暂时去掉service和controller的annotation

5、删掉数据库表,重新启动项目生成表

6、修改controller

        1)修改datagrid或添加新的方法,使其返回treegrid

	@RequestMapping(params = "datagrid")
	@ResponseBody
	public  List<TreeGrid> datagrid(HttpServletRequest request, TreeGrid treegrid) {
		CriteriaQuery cq = new CriteriaQuery(NcmsCenterEntity.class);
		if (treegrid.getId() != null) {
			cq.eq("ncmsCenterEntity.id", treegrid.getId());
		}
		if (treegrid.getId() == null) {
			cq.eq("ncmsCenterEntity.id","0");//这个是最高级
		}
		cq.addOrder("sort", SortDirection.asc);
		cq.add();
		List<NcmsCenterEntity> ncmsCenterEntityList = systemService.getListByCriteriaQuery(cq, false);
		List<TreeGrid> treeGrids = new ArrayList<TreeGrid>();
		TreeGridModel treeGridModel = new TreeGridModel();
		treeGridModel.setIcon("");
		treeGridModel.setTextField("name");
		treeGridModel.setParentText("NcmsCenterEntity_name");
		treeGridModel.setParentId("NcmsCenterEntity_id");
		treeGridModel.setSrc("code");
		treeGridModel.setIdField("id");
		treeGridModel.setChildList("ncmsCenterEntitys");
		treeGridModel.setOrder("sort");
		treeGrids = systemService.treegrid(ncmsCenterEntityList, treeGridModel);
		return treeGrids;
	}
        2)增加下拉菜单方法

	@RequestMapping(params = "setPNcmsCenter")
	@ResponseBody
	public List<ComboTree> setPNcmsCenter(HttpServletRequest request, ComboTree comboTree) {
		CriteriaQuery cq = new CriteriaQuery(NcmsCenterEntity.class);
		if (comboTree.getId() != null) {
			cq.eq("ncmsCenterEntity.id", comboTree.getId());
		}
		if (comboTree.getId() == null) {
			cq.isNull("ncmsCenterEntity");
		}
		cq.add();
		List<NcmsCenterEntity> ncmsCenterEntityList = systemService.getListByCriteriaQuery(cq, false);
		List<ComboTree> comboTrees = new ArrayList<ComboTree>();
		ComboTreeModel comboTreeModel = new ComboTreeModel("id", "name", "ncmsCenterEntitys");
		comboTrees = systemService.ComboTree(ncmsCenterEntityList, comboTreeModel, null);
		return comboTrees;
	}

        3)修改添加方法

	@RequestMapping(params = "save")
	@ResponseBody
	public AjaxJson save(NcmsCenterEntity ncmsCenter, HttpServletRequest request) {
		AjaxJson j = new AjaxJson();
		String functionOrder = ncmsCenter.getSort();
		if(StringUtils.isEmpty(functionOrder)){
			ncmsCenter.setSort("0");
		}
		if (ncmsCenter.getNcmsCenterEntity().getId().equals("")) {
			ncmsCenter.setNcmsCenterEntity(null);
		}else{
			NcmsCenterEntity parent = systemService.getEntity(NcmsCenterEntity.class, ncmsCenter.getNcmsCenterEntity().getId());
			ncmsCenter.setLevel(Short.valueOf(parent.getLevel()+1+""));
		}
		if (StringUtil.isNotEmpty(ncmsCenter.getId())) {
			message = "新农合经办机构: " + ncmsCenter.getName() + "被更新成功";
			systemService.saveOrUpdate(ncmsCenter);
			systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
		} else {
			ncmsCenter.setSort(ncmsCenter.getSort());
			message = "新农合经办机构: " + ncmsCenter.getName() + "被添加成功";
			systemService.save(ncmsCenter);
			systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);

		}
		
		return j;
	}

        4)修改addOrUpdate方法

	@RequestMapping(params = "addorupdate")
	public ModelAndView addorupdate(NcmsCenterEntity ncmsCenter, HttpServletRequest req) {
		String functionid = req.getParameter("id");
		if (functionid != null) {
			ncmsCenter = systemService.getEntity(NcmsCenterEntity.class, functionid);
			req.setAttribute("ncmsCenter", ncmsCenter);
		}
		if(ncmsCenter.getNcmsCenterEntity()!=null && ncmsCenter.getNcmsCenterEntity().getId()!=null){
			ncmsCenter.setNcmsCenterEntity((NcmsCenterEntity)systemService.getEntity(NcmsCenterEntity.class, ncmsCenter.getNcmsCenterEntity().getId()));
			req.setAttribute("ncmsCenter", ncmsCenter);
		}
		return new ModelAndView("com/gxzx/ncms/ncmscenter/ncmsCenter");
	}

7、修改生成的页面

        1)list页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<div class="easyui-layout" fit="true">
  <div region="center" style="padding:1px;">
  <t:datagrid name="ncmsCenterList" title="新农合经办机构" actionUrl="ncmsCenterController.do?datagrid" idField="id" treegrid="true" pagination="false">
   <t:dgCol title="编号" field="id" treefield="id" hidden="false"></t:dgCol>
   <t:dgCol title="编码" field="code" treefield="src"></t:dgCol>
   <t:dgCol title="名称" field="name" treefield="text"></t:dgCol>
   <t:dgCol title="显示顺序" field="sort" treefield="order"></t:dgCol>
   <t:dgCol title="操作" field="opt" ></t:dgCol>
   <t:dgDelOpt title="删除" url="ncmsCenterController.do?del&id={id}" />
   <t:dgToolBar title="录入" icon="icon-add" url="ncmsCenterController.do?addorupdate" funname="addFun"></t:dgToolBar>
   <t:dgToolBar title="编辑" icon="icon-edit" url="ncmsCenterController.do?addorupdate" funname="update"></t:dgToolBar>
  </t:datagrid>
  </div>
 </div>
 
 <script type="text/javascript">
$(function() {
	var li_east = 0;
});
function addFun(title,url, id) {
	var rowData = $('#'+id).datagrid('getSelected');
	alert(rowData.id);
	if (rowData) {
		url += '&ncmsCenterEntity.id='+rowData.id;
	}
	add(title,url,'ncmsCenterList');
}
</script>

        2)form页面

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<!DOCTYPE html>
<html>
 <head>
  <title>新农合经办机构</title>
  <t:base type="jquery,easyui,tools,DatePicker"></t:base>
  <script type="text/javascript">
		
	$(function() {
		$('#cc').combotree({
			url : 'ncmsCenterController.do?setPNcmsCenter',
			panelHeight:'auto',
			onClick: function(node){
				$("#ncmsCenterEntityId").val(node.id);
			}
		});
		
		if($('#level').val()=='1'){
			$('#pfun').show();
		}else{
			$('#pfun').hide();
		}
		
		
		$('#level').change(function(){
			if($(this).val()=='1'){
				$('#pfun').show();
				var t = $('#cc').combotree('tree');
				var nodes = t.tree('getRoots');
				if(nodes.length>0){
					$('#cc').combotree('setValue', nodes[0].id);
					$("#ncmsCenterEntityId").val(nodes[0].id);
				}
			}else{
				var t = $('#cc').combotree('tree');
				var node = t.tree('getSelected');
				if(node){
					$('#cc').combotree('setValue', null);
				}
				$('#pfun').hide();
			}
		});
	});
</script>
 </head>
 <body style="overflow-y: hidden" scroll="no">
 <t:formvalid formid="formobj" layout="div" dialog="true" refresh="true" action="ncmsCenterController.do?save">
	<input name="id" type="hidden" value="${ncmsCenter.id}">
	<fieldset class="step">
	<div class="form"><label class="Validform_label"> 名称: </label> <input name="name" class="inputxt" value="${ncmsCenter.name}" datatype="s2-15"> <span
		class="Validform_checktip">名称范围2~15位字符,且不为空</span></div>
	<div class="form"><label class="Validform_label"> 等级: </label> <select name="level" id="level" datatype="*">
		<option value="0" <c:if test="${ncmsCenter.level eq 0}">selected="selected"</c:if>>一级</option>
		<option value="1" <c:if test="${ncmsCenter.level>0}"> selected="selected"</c:if>>下级</option>
	</select> <span class="Validform_checktip"></span></div>
	<div class="form" id="pfun"><label class="Validform_label"> 父节点: </label> <input id="cc"
		<c:if test="${ncmsCenter.ncmsCenterEntity.level eq 0}">
					value="${ncmsCenter.ncmsCenterEntity.id}"</c:if>
		<c:if test="${ncmsCenter.ncmsCenterEntity.level > 0}">
					value="${ncmsCenter.ncmsCenterEntity.name}"</c:if>> <input id="ncmsCenterEntityId" name="ncmsCenterEntity.id" style="display: none;"
		value="${ncmsCenter.ncmsCenterEntity.id}"></div>
	<div class="form" id="funorder"><label class="Validform_label"> 编号: </label> <input name="code" class="inputxt" value="${ncmsCenter.code}" datatype="*1-2"></div>
	<div class="form" id="funorder"><label class="Validform_label"> 显示顺序: </label> <input name="sort" class="inputxt" value="${ncmsCenter.sort}" datatype="n1-3"></div>
	</fieldset>
</t:formvalid>
 </body>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值