JEECG treegrid初探

来源:互联网 发布:淘宝怎么买电棍 编辑:程序博客网 时间:2024/06/05 03:12

由于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")@ResponseBodypublic  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")@ResponseBodypublic 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")@ResponseBodypublic 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"> <spanclass="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>


0 0
原创粉丝点击