前端请求:javascript
前端用分页表格用的是 qui-QUI grid前端
var grid = null;
function initComplete() {
grid = $("#dataBasic")
.quiGrid(
{
columns : [
{
display : '所属组织',
name : 'orgData.name',
align : 'left',
width : "10%",
type : "orgFields"
},
{
display : '设备负责人',
name : 'masterName',
align : 'left',
width : "10%",
type : "orgFields"
},
{
display : '终端IP',
name : 'ip',
align : 'left',
width : "10%"
},
{
display : 'MAC地址',
name : 'mac',
align : 'left',
width : "10%"
},
{
display : '硬盘序列号',
name : 'hardDisk',
align : 'left',
width : "10%"
},
{
display : 'CPU序列号',
name : 'cpu',
align : 'left',
width : "10%"
},
{
display : '主机名',
name : 'hostName',
align : 'left',
width : "10%"
},
{
display : '审核状态',
isAllowHide : false,
align : 'center',
width : "10%",
render : function(rowdata, rowindex, value, column) {
var value = rowdata.stasus;
if (value == '0')
return '审核中';
else if (value == '1')
return '经过';
else if (value == '2')
return '未经过';
}
},
{
display : '状态',
isAllowHide : false,
align : 'center',
width : "10%",
render : function(rowdata, rowindex, value, column) {
var value = rowdata.type;
if (value == '1')
return '<font color="green">在线</fon>';
else if (value == '2')
return '离线';
else if (value == '3')
return '<font color="red">告警</fon>';
}
},
{
display : '操做',
isAllowHide : false,
align : 'center',
width : "10%",
render : function(rowdata, rowindex, value, column) {
var value = rowdata.type;
var id = "'" + rowdata.id + "'";
var str = '<div class="padding_top4 padding_left5"><span class="img_edit hand" title="修改" onclick="onEdit('
+ id + ')"></span>';
if (rowdata.stasus == 0)
str += '<span class="img_delete hand" title="删除" onclick="onDelete('
+ id + ')"></span>';
str += '</div>';
return str;
}
} ],
url : '${basePath}terwarning/terminal/showlist.json',
sortOrder : 'desc',
rownumbers : true,
checkbox : false,
height : '100%',
width : "100%",
pageSize : 10,
pageSizeOptions : [ 10, 15, 20, 30, 40, 50 ],
percentWidthMode : true,
toolbar : {
position : "left",
items : [ {
text : '新增',
click : addUnit,
iconClass : 'icon_add'
}, {
text : 'EXCEL新增',
click : excelAdd,
iconClass : 'icon_add'
}, {
text : 'EXCEL模板下载',
click : excelDownload,
iconClass : 'icon_btn_down'
} ]
}
});
复制代码
WEB层:java
/** * 数据列表 * * @param pagerModel * @param conData * @return * @throws Exception */
@RequestMapping("showlist.json")
public ResponseEntity<String> showlist(TerminalData conData, HttpServletRequest request, PagerModel pagerModel) throws Exception {
LoginUserData loginUserData = CommonUtil.getCurrentUserData(request);
conData.setOrgData(loginUserData.getUserData().getOrgData());
pagerModel.setPageType(true);
pagerModel = terminalService.queryList(conData, pagerModel);
return PrintUtil.printResponseEntity(pagerModel);
}
复制代码
Dao层:web
public PagerModel queryList(TerminalData conData, PagerModel pagerModel) throws Exception {
List<Object> params = new ArrayList<Object>();
String hql = "from TerminalData u where 1=1 and u.delflag='F' ";
if (conData != null) {
if (conData.getOrgData()!=null&&conData.getOrgData().getKeyId() != null && !conData.getOrgData().getKeyId().equals("")) {
hql += " and u.orgData.keyId = ? ";
params.add(conData.getOrgData().getKeyId());
}
if (conData.getMasterName() != null && !conData.getMasterName().equals("")) {
hql += " and u.masterName = ? ";
params.add(conData.getMasterName());
}
if (conData.getIp() != null && !conData.getIp().equals("")) {
hql += " and u.ip = ? ";
params.add(conData.getIp());
}
if (conData.getMac() != null && !conData.getMac().equals("")) {
hql += " and u.mac = ? ";
params.add(conData.getMac());
}
if (conData.getType() != null && !conData.getType().equals("")) {
hql += " and u.type = ? ";
params.add(conData.getType());
}
if (conData.getHostName() != null
&& !conData.getHostName().equals("")) {
hql += " and u.hostName = ? ";
params.add(conData.getHostName());
}
if (conData.getHardDisk() != null
&& !conData.getHardDisk().equals("")) {
hql += " and u.hardDisk = ? ";
params.add(conData.getHardDisk());
}
if (conData.getCpu() != null && !conData.getCpu().equals("")) {
hql += " and u.cpu = ? ";
params.add(conData.getCpu());
}
if (conData.getStasus() != null && conData.getStasus()>=0) {
hql += " and u.stasus = ? ";
params.add(conData.getStasus());
}
}
if (pagerModel.getSort() != null && !"".equals(pagerModel.getSort())) {
hql += " order by u." + pagerModel.getSort() + " "
+ pagerModel.getDirection();
}
return baseDao.searchPaginated(hql, params, pagerModel);
}
复制代码
2.树组件交互:json
前端:bash
<!--数据表格start-->
<script src="${basePath}libs/js/table/quiGrid.js" type="text/javascript"></script>
<!--数据表格end-->
<script type="text/javascript">
var grid;
function initComplete(){
grid = $("#orggrid").quiGrid({
columns: [
{ display: '部门名', name: 'name', id:'deptId', width: "30%", align: 'left' },
{ display: '代码', name: 'infoMap.code',width: "20%", type: 'int', align: 'left' },
{ display: '备注', name: 'infoMap.memo', width: "35%", align: 'left' },
{ display: '操做', isAllowHide: false, align: 'left',width: "15%",
render: function (rowdata, rowindex, value, column){
var str = '';
if(rowdata.infoMap.keyId == 0) {
<c:choose>
<c:when test="${canManager eq true}">
str = '<div class="padding_top4 padding_left5">'
+ '<span class="img_add hand" title="添加子部门" onclick="onAdd(' + rowdata.infoMap.keyId + ')"></span>'
+ '</div>';
</c:when>
<c:otherwise>
str = '';
</c:otherwise>
</c:choose>
}else {
<c:choose>
<c:when test="${canManager eq true}">
str = '<div class="padding_top4 padding_left5">'
+ '<span class="img_add hand" title="添加子部门" onclick="onAdd(' + rowdata.infoMap.keyId + ')"></span>'
+ '<span class="img_edit hand" title="修改" onclick="onEdit(' + rowdata.infoMap.keyId + ')"></span>'
+ '<span class="img_delete hand" title="删除" onclick="onDelete(' + rowdata.infoMap.keyId+ ')"></span>'
+ '</div>';
</c:when>
<c:otherwise>
str = '';
</c:otherwise>
</c:choose>
}
return str;
}
}
],
height: '100%',
width:"100%",
usePager: false,
url:'${basePath}/right/org/orgList.json',
toolbar:{
items:[
{text: '新增', click: function(){addRootNode()}, iconClass: 'icon_add'},
{ line : true }
]
},
tree: { columnId: 'deptId' }
});
}
//新增
function addRootNode(){
quiDialog.open({
URL:"${basePath}/right/org/addSubOrg.save?keyId=0",
Title:"修改",Width:500,Height:220});
}
//添加子部门
function onAdd(keyId){
quiDialog.open({
URL:"${basePath}/right/org/addSubOrg.save?keyId=" + keyId,
Title:"修改",Width:500,Height:220});
}
//修改
function onEdit(keyId){
quiDialog.open({
URL:"${basePath}/right/org/updateOrg.save?keyId=" + keyId,
Title:"修改",Width:500,Height:220});
}
//删除
function onDelete(keyId){
quiDialog.confirm("肯定要删除该记录吗?",function(){
//删除记录
$.post("${basePath}right/org/deleteOrg.delete",
{"keyId":keyId},
function(result){
handleResult(result);
},"json");
});
}
//删除后的提示
function handleResult(result){
if(result.operFlag=='S'){
quiDialog.alert(result.message,function(){
grid.loadData();
});
}else{
quiDialog.alert(result.message);
}
}
//刷新表格数据并重置排序和页数
function refresh(isUpdate){
if(!isUpdate){
//重置排序
grid.options.sortName='keyId';
grid.options.sortOrder="asc";
//页号重置为1
grid.setNewPage(1);
}
grid.loadData();
}
</script>
复制代码
web层:架构
@RequestMapping("orgList.json")
@ResponseBody
public Map<String,Object> queryOrgListJson(ConditionData conData) throws Exception{
Map<String,Object> results = new Hashtable<String, Object>();
//获取全部组织架构信息
List<OrgData> orgDataList = orgService.queryOrgList(conData);
results.put("rows", orgService.queryOrgTreeList(orgDataList));
return results;
}
复制代码
Dao层:app
/**
* 说明:查询组织架构信息列表
* 操做表:t_org
* @param conData
* @throws Exception
*/
public List<OrgData> queryOrgList(ConditionData conData) throws Exception{
List<Object> params = new ArrayList<Object>();
String hql = "from OrgData o where 1=1 ";
if(conData!=null && conData.getEnableFlag()!=null && "F".equals(conData.getEnableFlag())){
} else {
hql += " and o.enableFlag='T' ";
}
if(conData!=null && conData.getKeyId()!=null &&conData.getKeyId()>0){
hql +=" and o.keyId=? ";
params.add(conData.getKeyId());
}
if(conData!=null && conData.getName()!=null && !"".equals(conData.getName())){
hql += " and o.name like ? ";
params.add("%"+conData.getName()+"%");
}
if(conData!=null && conData.getCode()!=null && !"".equals(conData.getCode())){
hql += " and o.code=? ";
params.add(conData.getCode());
}
return (ArrayList<OrgData>)baseDao.getJpaTemplate().find(hql,params.toArray());
}
复制代码
service 层树数据生成:ide
/** * 根据组织架构集合生成组织架构数 * @return * @throws Exception */
public List<TreeNode> queryOrgTreeList(List<OrgData> orgDataList) throws Exception{
List<TreeNode> treeNodeList = new ArrayList<TreeNode>();
for(OrgData orgData:orgDataList){
TreeNode treeNode = new TreeNode();
if(orgData.getPid()!=null){
treeNode.setParentId(String.valueOf(orgData.getPid()));
treeNode.setId(String.valueOf(orgData.getKeyId()));
treeNode.setName(orgData.getName());
treeNode.setInfoMap(BeanToMapUtil.convertBean(orgData));
treeNodeList.add(treeNode);
}
}
return TreeUtil.generateTree(treeNodeList);
}
复制代码