1、前端jsp
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<script type="text/javascript">
$(function() {
//初始化,首次加载
$('#goodsTree').tree({
url:'${pageContext.request.contextPath}/admin/goodsTypeController/tree.do?id=NULL',
parentField : 'pid',
lines : true,
onClick: function (node) {
clickTree(node);
},
onBeforeExpand:function(row){
//处理tree的显示
//动态设置展开查询的url
var url = '${pageContext.request.contextPath}/admin/goodsTypeController/tree.do';
$("#goodsTree").tree("options").url = url;
return true;
}
});
//加载商品信息的datagrid,初始化
$('#goods_datagrid').datagrid({
//url : '${pageContext.request.contextPath}/admin/goodsController/datagrid.do?typeId=abc',
fit : true,
rownumbers : true,
fitColumns : true,
showFooter : true,
border : false,
pagination : true,
idField : 'id',
pageSize : 10,
pageList : [10],
sortName : 'name',
sortOrder : 'asc',
checkOnSelect : true,
selectOnCheck : true,
nowrap : false,
frozenColumns : [ [ {
field : 'id',
title : '编号',
width : 150,
checkbox : true
}, {
field : 'typeId',
title : '商品类别',width : 60,
hidden : true
}, {
field : 'code',
title : '商品编码',width : 100,
}, {
field : 'typeName',
title : '类别名称',width : 200
}, {
field : 'name',
title : '商品名称',width : 100
}, {
field : 'pinyin',
title : '拼音',width : 80,hidden : true
}, {
field : 'shortname',
title : '商品简称',width : 60,hidden : true
}, {
field : 'barcode',
title : '条形码',width : 80,hidden : true
}, {
field : 'unit',
title : '单位',width : 40
}, {
field : 'format',
title : '规格',width : 80,hidden : true
}, {
field : 'nature',
title : '商品性质',width : 80,hidden : true
}, {
field : 'pp',
title : '商品品牌',width : 80
}, {
field : 'gys',
title : '供应商',width : 80,hidden:true
}, {
field : 'cbj',
title : '成本价',width : 80
}, {
field : 'buydate',
title : '购买时间',width : 80,
hidden : true
}, {
field : 'remark',
title : '备注',width : 80,
hidden : true
} ] ],
toolbar : [ {
text : '全 部',
iconCls : 'icon-relo',
handler : function() {
clickTree(null);
}
} ]
});
});
function clickTree(node) {
var urlstr = '';
if(node.id==null){
urlstr = '${pageContext.request.contextPath}/admin/goodsController/datagrid.do';
}else{
urlstr = '${pageContext.request.contextPath}/admin/goodsController/datagrid.do?typeId='+node.id;
}
$('#goods_datagrid').datagrid({ url: urlstr });
$('#goods_datagrid').datagrid('uncheckAll').datagrid('unselectAll').datagrid('clearSelections');
}
</script>
<div class="easyui-layout" data-options="fit:true" style="width:100%;height:100%;padding:5px;">
<div title="类别结构树" style="width:150px;padding:10px" data-options="region:'west',split:true">
<ul id="goodsTree"></ul>
</div>
<div data-options="region:'center',split:true">
<div id="goods_datagrid" ></div>
</div>
</div>
2、controller
@RequestMapping("/tree")
@ResponseBody
public List<GoodsTypePage> tree(@RequestParam("id") String id) {
if(null==id || "".equals(id)){
id="NULL";
}
return goodsTypeService.treeNode(id);
}
3、service
@Override
public List<GoodsTypePage> treeNode(String id) {
List<GoodsTypePage> nl = new ArrayList<GoodsTypePage>();
String hql = null;
if(id.equals("NULL")){
hql = "from GoodsType t where t.tgoodstype.id is NULL order by t.seq";
}else{
hql = "from GoodsType t where t.tgoodstype.id = '" +id+"' order by t.seq";
}
List<GoodsType> goodsTypeList = goodsTypeDao.find(hql);
if (goodsTypeList != null && goodsTypeList.size() > 0) {
for (GoodsType goodsType : goodsTypeList) {
GoodsTypePage goodsTypePage = new GoodsTypePage();
BeanUtils.copyProperties(goodsType, goodsTypePage);
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put("class", "type");
goodsTypePage.setAttributes(attributes);
goodsTypePage.setState("closed");
nl.add(goodsTypePage);
}
}
return nl;
}