前端請求: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);
}
複製代碼