jeecg中树形显示的用法
1.GoodsController中显示的方法如下:
@RequestMapping(params = "goodsgrid")
@ResponseBody
public Object goodsgrid(GoodEntity good,HttpServletRequest request, HttpServletResponse response, TreeGrid treegrid) {
CriteriaQuery cq = new CriteriaQuery(GoodEntity.class);
if("yes".equals(request.getParameter("isSearch"))){
treegrid.setId(null);
good.setId(null);
}
if(null != good.getGoodsName()){
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, good);
}
if (treegrid.getId() != null) {
int c = Integer.parseInt(treegrid.getId());
cq.eq("ggood.id", c);
}
if (treegrid.getId() == null) {
cq.isNull("ggood");
}
cq.add();
List<TreeGrid> goodsList=null;
goodsList =systemService.getListByCriteriaQuery(cq, false);
if(goodsList.size()==0&&good.getGoodsName()!=null){
cq = new CriteriaQuery(GoodEntity.class);
GoodEntity pargood = new GoodEntity();
good.setGgood(pargood);
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, good);
goodsList =systemService.getListByCriteriaQuery(cq, false);
}
List<TreeGrid> treeGrids = new ArrayList<TreeGrid>();
TreeGridModel treeGridModel = new TreeGridModel();
treeGridModel.setTextField("goodsCode");
treeGridModel.setParentText("ggood_goodsName");
treeGridModel.setParentId("ggood_id");
treeGridModel.setSrc("goodsDetail");
treeGridModel.setIdField("id");
treeGridModel.setChildList("goods");
Map<String,Object> fieldMap = new HashMap<String, Object>();
fieldMap.put("goodsName", "goodsName");
fieldMap.put("addTime", "addTime");
treeGridModel.setFieldMap(fieldMap);
treeGrids = systemService.treegrid(goodsList, treeGridModel);
JSONArray jsonArray = new JSONArray();
for (TreeGrid treeGrid : treeGrids) {
jsonArray.add(JSON.parse(treeGrid.toJson()));
}
System.out.println(jsonArray);
return jsonArray;
}
父物料下显示子物料的方法
@RequestMapping(params = "setPFunction")
@ResponseBody
public List<ComboTree> setPFunction(HttpServletRequest request, ComboTree comboTree) {
CriteriaQuery cq = new CriteriaQuery(GoodEntity.class);
if(null != request.getParameter("selfId")){
cq.notEq("id", request.getParameter("selfId"));
}
if (comboTree.getId() != null) {
// String fname= jdbcTemplate.queryForObject("select goods_name from t_item where goods_id=?",String.class,comboTree.getId()) ;
cq.eq("ggood.id", comboTree.getId());
}
if (comboTree.getId() == null) {
cq.isNull("ggood");
}
cq.add();
List<GoodEntity> goodsList = systemService.getListByCriteriaQuery(cq, false);
List<ComboTree> comboTrees = new ArrayList<ComboTree>();
ComboTreeModel comboTreeModel = new ComboTreeModel("id", "goodsName", "goods");
comboTrees = systemService.ComboTree(goodsList, comboTreeModel, null, true);
return comboTrees;
}
2.该商品对应的实体类的方法GoodEntity:
@Entity
@Table(name = "wsc_goods", schema = "")
@DynamicUpdate(true)
@DynamicInsert(true)
@SuppressWarnings("serial")
public class GoodEntity implements java.io.Serializable {
/**上级类目*/
private GoodEntity ggood;
/**下级类目*/
private List<GoodEntity> goods = new ArrayList<GoodEntity>();
/**商品代码*/
private java.lang.Integer id;
/**商品名称*/
private java.lang.String goodsName;
/**商品图片*/
private java.lang.String goodsImg;
/**goodsSpe*/
private java.lang.String goodsSpe;
/**商品单价*/
private java.math.BigDecimal goodsPrice;
/**商品详情*/
private java.lang.String goodsDetail;
/**goodsNum*/
private java.lang.Integer goodsNum;
/**添加时间*/
private java.util.Date addTime;
/**ctgId*/
private java.lang.Integer ctgId;
/**isRecommend*/
private java.lang.Integer isRecommend;
/**订单状态*/
private java.lang.Integer status;
/**类型*/
private java.lang.Integer type;
/**物料代码*/
private java.lang.String goodsCode;
/**商品规格*/
private java.lang.String goodsModel;
/**单位*/
private java.lang.String goodsUnit;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parentid")
public GoodEntity getGgood() {
return ggood;
}
public void setGgood(GoodEntity ggood) {
this.ggood = ggood;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "ggood")
public List<GoodEntity> getGoods() {
return goods;
}
public void setGoods(List<GoodEntity> goods) {
this.goods = goods;
}
@Column(name ="add_time",nullable=true,length=50)
public java.util.Date getAddTime() {
return addTime;
}
public void setAddTime(java.util.Date addTime) {
this.addTime = addTime;
}
/**
*方法: 取得java.lang.String
*@return: java.lang.String 商品代码
*/
/**
*方法: 取得java.lang.String
*@return: java.lang.String 商品名称
*/
@Column(name ="GOODS_NAME",nullable=true,length=50)
public java.lang.String getGoodsName(){
return this.goodsName;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name ="GOODS_ID",nullable=true,length=255)
public java.lang.Integer getId() {
return id;
}
public void setId(java.lang.Integer id) {
this.id = id;
}
/**
*方法: 设置java.lang.String
*@param: java.lang.String 商品名称
*/
public void setGoodsName(java.lang.String goodsName){
this.goodsName = goodsName;
}
/**
*方法: 取得java.lang.String
*@return: java.lang.String 商品图片
*/
@Column(name ="GOODS_IMG",nullable=true,length=255)
public java.lang.String getGoodsImg(){
return this.goodsImg;
}
/**
*方法: 设置java.lang.String
*@param: java.lang.String 商品图片
*/
public void setGoodsImg(java.lang.String goodsImg){
this.goodsImg = goodsImg;
}
/**
*方法: 取得java.lang.String
*@return: java.lang.String goodsSpe
*/
@Column(name ="GOODS_SPE",nullable=true,length=255)
public java.lang.String getGoodsSpe(){
return this.goodsSpe;
}
/**
*方法: 设置java.lang.String
*@param: java.lang.String goodsSpe
*/
public void setGoodsSpe(java.lang.String goodsSpe){
this.goodsSpe = goodsSpe;
}
/**
*方法: 取得java.lang.String
*@return: java.lang.String 商品单价
*/
@Column(name ="GOODS_PRICE",nullable=true,length=255)
public java.math.BigDecimal getGoodsPrice(){
return this.goodsPrice;
}
/**
*方法: 设置java.lang.String
*@param: java.lang.String 商品单价
*/
public void setGoodsPrice(java.math.BigDecimal goodsPrice){
this.goodsPrice = goodsPrice;
}
/**
*方法: 取得java.lang.String
*@return: java.lang.String goodsNum
*/
@Column(name ="GOODS_NUM",nullable=true,length=255)
public java.lang.Integer getGoodsNum(){
return this.goodsNum;
}
/**
*方法: 设置java.lang.String
*@param: java.lang.String goodsNum
*/
public void setGoodsNum(java.lang.Integer goodsNum){
this.goodsNum = goodsNum;
}
/**
*方法: 取得java.lang.Integer
*@return: java.lang.Integer 订单状态
*/
@Column(name ="STATUS",nullable=true)
public java.lang.Integer getStatus(){
return this.status;
}
/**
*方法: 设置java.lang.Integer
*@param: java.lang.Integer 订单状态
*/
public void setStatus(java.lang.Integer status){
this.status = status;
}
@Column(name ="goods_detail",nullable=true)
public java.lang.String getGoodsDetail() {
return goodsDetail;
}
public void setGoodsDetail(java.lang.String goodsDetail) {
this.goodsDetail = goodsDetail;
}
@Column(name ="ctg_id",nullable=true)
public java.lang.Integer getCtgId() {
return ctgId;
}
public void setCtgId(java.lang.Integer ctgId) {
this.ctgId = ctgId;
}
@Column(name ="is_recommend",nullable=true)
public java.lang.Integer getIsRecommend() {
return isRecommend;
}
public void setIsRecommend(java.lang.Integer isRecommend) {
this.isRecommend = isRecommend;
}
@Column(name ="type",nullable=true)
public java.lang.Integer getType() {
return type;
}
public void setType(java.lang.Integer type) {
this.type = type;
}
@Column(name ="goods_code",nullable=true,length=255)
public java.lang.String getGoodsCode() {
return goodsCode;
}
public void setGoodsCode(java.lang.String goodsCode) {
this.goodsCode = goodsCode;
}
@Column(name ="goods_model",nullable=true,length=255)
public java.lang.String getGoodsModel() {
return goodsModel;
}
public void setGoodsModel(java.lang.String goodsModel) {
this.goodsModel = goodsModel;
}
@Column(name ="goods_unit",nullable=true,length=255)
public java.lang.String getGoodsUnit() {
return goodsUnit;
}
public void setGoodsUnit(java.lang.String goodsUnit) {
this.goodsUnit = goodsUnit;
}
}
要注意的是id和parentid的1对多的关系。
3.前端jsp页面的显示页面 goodsList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<t:base type="jquery,easyui,tools,DatePicker"></t:base>
<div id="main_depart_list" class="easyui-layout" fit="true">
<div region="center" style="padding: 1px;">
<t:datagrid name="goodsList" title="商品列表"
actionUrl="goodsController.do?goodsgrid"
treegrid="true" idField="id" pagination="false">
<t:dgCol title="common.id" field="id" treefield="id" hidden="true"></t:dgCol>
<t:dgCol title="商品xsxs" field="goodsDetail" treefield="src" width="120"></t:dgCol>
<t:dgCol title="商品单价" field="goodsPrice" treefield="fieldMap.goodsPrice" width="120"></t:dgCol>
<t:dgCol title="商品详情" field="goodsDetail" treefield="fieldMap.goodsDetail" width="120"></t:dgCol>
<t:dgCol title="物料代码" field="goodsCode" treefield="fieldMap.goodsCode" width="120"></t:dgCol>
<t:dgCol title="货号" field="goodsSpe" treefield="fieldMap.goodsSpe" width="120"></t:dgCol>
<t:dgCol title="单位" field="goodsUnit" treefield="fieldMap.goodsUnit" width="120"></t:dgCol>
<t:dgCol title="商品规格" field="goodsModel" treefield="fieldMap.goodsModel" width="120"></t:dgCol>
<%-- <fmt:formatDate pattern="yyyy-MM-dd hh:mm:ss" value="${myDate}" type="both"/> --%>
<%-- <t:dgCol title="添加时间" field="addTime" treefield="fieldMap.addTime" width="120"></t:dgCol> --%>
<t:dgCol title="操作" field="opt" width="100"></t:dgCol>
<t:dgDelOpt url="goodsController.do?del&id={id}" title="删除"></t:dgDelOpt>
</t:datagrid>
<div id="departListtb" style="padding: 3px; height: 25px">
<div style="float: left;">
<a href="#" class="easyui-linkbutton" plain="true" icon="icon-add" onclick="addOrg()">录入</a>
<a href="#" class="easyui-linkbutton" plain="true" icon="icon-edit" onclick="update('编辑','goodsController.do?update','goodsList')">编辑</a>
</div>
</div>
</div>
</div>
<script type="text/javascript">
<!--
$(function() {
var li_east = 0;
});
function addOrg() {
//alert("1122");
var id = "";
var rowsData = $('#goodsList').datagrid('getSelections');
if (rowsData.length == 1) {
id = rowsData[0].id;
}
var url = "goodsController.do?add&id=" + id;
add('录入', url, "goodsList");
}
//-->
</script>
4.添加商品的jsp页面goods.jsp
<%@ 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"></t:base>
<script type="text/javascript">
$(function() {
$('#cc').combotree({
url : 'goodsController.do?setPFunction&selfId=${good.id}',
width: 155,
onSelect : function(node) {
// alert(node.text);
// changeOrgType();
}
});
})
/* function changeOrgType() { // 处理组织类型,不显示公司选择项
var orgTypeSelect = $("#orgType");
var optionNum = orgTypeSelect.get(0).options.length;
if(optionNum == 1) {
$("#orgType option:first").remove();
var bumen = '<option value="2" <c:if test="${orgType=='2'}">selected="selected"</c:if>><t:mutiLang langKey="common.goodment"/></option>';
var gangwei = '<option value="3" <c:if test="${orgType=='3'}">selected="selected"</c:if>><t:mutiLang langKey="common.position"/></option>';
orgTypeSelect.append(bumen).append(gangwei);
}
} */
</script>
</head>
<body style="overflow-y: hidden" scroll="no">
<t:formvalid formid="formobj" layout="div" dialog="true" action="goodsController.do?save">
<input id="id" name="id" type="hidden" value="${good.id }">
<fieldset class="step">
<div class="form">
<div class="form">
<label class="Validform_label"> 商品名称: </label>
<input name="goodsName" class="inputxt" value="${good.goodsName }">
<span class="Validform_checktip"></span>
</div>
<div class="form">
<label class="Validform_label"> 上级类目: </label>
<input id="cc" name="ggood.id" value="${good.ggood.id}">
</div>
<div class="form">
<label class="Validform_label"> 商品单价: </label>
<input name="goodsPrice" class="inputxt" value="${good.goodsPrice }">
</div>
<div class="form">
<label class="Validform_label"> 商品详情: </label>
<input name="goodsDetail" class="inputxt" value="${good.goodsDetail }">
</div>
<div class="form">
<label class="Validform_label"> 物料代码: </label>
<input name="goodsCode" class="inputxt" value="${good.goodsCode }">
</div>
<div class="form">
<label class="Validform_label"> 货号: </label>
<input name="goodsSpe" class="inputxt" value="${good.goodsSpe }">
</div>
<div class="form">
<label class="Validform_label"> 单位: </label>
<input name="goodsUnit" class="inputxt" value="${good.goodsUnit }">
</div>
<div class="form">
<label class="Validform_label"> 规格: </label>
<input name="goodsModel" class="inputxt" value="${good.goodsModel }">
</div>
<div class="form">
<label class="Validform_label"> 添加时间: </label>
<c:choose>
<c:when test="${empty good.id}">
<%-- <input name="addTime" class="inputxt" value="${addTime }"> --%>
<input class="Wdate" onClick="WdatePicker()" style="width: 150px" id="addTime" name="addTime" ignore="ignore"
value="<fmt:formatDate value='${addTime}' type="date" pattern="yyyy-MM-dd"/>">
</c:when>
<c:otherwise>
<input class="Wdate" onClick="WdatePicker()" style="width: 150px" id="addTime" name="addTime" ignore="ignore"
value="<fmt:formatDate value='${good.addTime}' type="date" pattern="yyyy-MM-dd"/>">
</c:otherwise>
</c:choose>
</fieldset>
</t:formvalid>
</body>
</html>
jeecg中树形显示的用法的更多相关文章
- WPF:使用Json.NET在TreeView中树形显示JSON数据
原文 WPF:使用Json.NET在TreeView中树形显示JSON数据 据 读者可以参考这个开源的可以树形显示XML和JSON的工具: Mgen Object 603:XML/JSON树形显示小工 ...
- ztree树形图自定义图标在jeecg框架中不显示
有时候工作遇到问题,就会硬着头皮去解决,今天给大家说一个ztree树形图自定义图标在jeecg框架中不显示的解决方法 对于这个问题,官方观法说法是在节点元素中加入icon的字段,然后后跟图标的url, ...
- 改造一下jeecg中的部门树
假装有需求 关于 jeecg 提供的部门树,相信很多小伙伴都已经用过了,今天假装有那么一个需求 "部门树弹窗选择默认展开下级部门",带着这个需求再次去探索一下吧. 一.改造之前的部 ...
- [转帖]Linux杂谈: 树形显示多级目录--tree
Linux杂谈: 树形显示多级目录--tree https://www.cnblogs.com/tp1226/p/8456539.html tree -L 最近写博客的时候偶尔会需要将文件目录结构直观 ...
- ecshop中foreach的详细用法归纳
ec模版中foreach的常见用法. foreach 语法: 假如后台:$smarty->assign('test',$test); {foreach from=$test item=list ...
- JS里设定延时:js中SetInterval与setTimeout用法
js中SetInterval与setTimeout用法 JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操 ...
- XCODE UITextField 中的属性和用法
XCODE UITextField 中的属性和用法 一些基本的用法 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedR ...
- .NET中的Timer类型用法详解
这篇文章主要介绍了.NET中的Timer类型用法,较为详细的分析了Timer类型在各种环境下的用法,需要的朋友可以参考下 在.NET FrameWork中有多个Timer,那么怎么根据实际情况进行 ...
- Linux中yum和apt-get用法及区别
Linux中yum和apt-get用法及区别 一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat.Centos.Fedora等 2.Debian系列:Debi ...
随机推荐
- Ubuntu下压缩解压文件
一般来说ubuntu 下带有tar 命令,可以用来解压和压缩之用.但是我们经常要与win下用户打交道,所以要安装一些解压工具如:rar zip 等命令. 如果要需要用到zip工具那么可以: sudo ...
- hystrix -hystrixCommand配置介绍
public @interface HystrixCommand { // HystrixCommand 命令所属的组的名称:默认注解方法类的名称 String groupKey() default ...
- QUnit 学习笔记 使用说明(一)
一.单元测试前言 什么是单元测试? 如果是新接触单元测试的童鞋,简要的解释:就是一个JS函数/功能/模块的测试. 单元测试的工具:这里介绍QUnit Qunit原本是jqury家的,不过现在已经独立了 ...
- java.util.Collection List与其子类 Set与其子类
package com.Collection; import java.util.ArrayList; import java.util.Collection; import java.util.It ...
- Ubuntu12.04 中文输入法设置
1.ibus输入法 Ubuntu系统安装后已经自带了ibus输入法,在英语环境下默认不启动. 配置ibus自动启动可 以在ubuntu系统菜单上选择System(系统)--- Preferences( ...
- node中的一些诡异bug
这种bug一般是监听的端口号被占用了导致的,换个端口号!!!!
- Shell 从日志文件中选择时间段内的日志输出到另一个文件
Shell 从日志文件中选择时间段内的日志输出到另一个文件 情况是这样的,某系统的日志全部写在一个日志文件内,所以这个文件非常大,非常长,每次查阅的时候非常的不方便.所以,相关人员希望能够查询某个时间 ...
- dhcp snooping、ARP防护、
应用场景 无线客户端流动性很大和不确定,比如在外来人员比较多的地方:广场.大厅.会议室和接待室等等.使用该方案可以有效地避免因为无线端出现私设IP地址导致地址冲突或者客户端中ARP病毒发起ARP攻击的 ...
- linux uname和dpkg命令
uname -a:查看系统一些参数 dpkg -i:安装下载好的.deb包裹
- Struts标签库详解,非常好的Struts标签详解
Struts提供了五个标签库,即:HTML.Bean.Logic.Template和Nested. HTML 标签: 用来创建能够和Struts 框架和其他相应的HTML 标签交互的H ...