Pārlūkot izejas kodu

字典和参数管理功能

git-svn-id: https://192.168.57.71/svn/jsgkj@835 931142cf-59ea-a443-aa0e-51397b428577
ld_zhouk 8 gadi atpakaļ
vecāks
revīzija
c73f78ca45

+ 98 - 0
gkaqv2/trunk/modules/web/src/main/java/com/xt/js/gkaq/web/ctl/DictCtl.java

@@ -0,0 +1,98 @@
+package com.xt.js.gkaq.web.ctl;
+
+import java.util.List;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.alibaba.fastjson.JSONArray;
+import com.xt.js.gkaq.common.BaseCtl;
+import com.xt.js.gkaq.frame.model.CodeModel;
+import com.xt.js.gkaq.frame.service.CodeService;
+import com.xt.js.gkaq.web.vo.DictVo;
+import com.yuanxd.tools.utils.WebJsonResult;
+import com.yuanxd.tools.utils.string.StringUtils;
+
+@Controller
+@RequestMapping(value = "/dict", produces = "application/json; charset=utf-8")
+public class DictCtl extends BaseCtl {
+    @Autowired
+    private CodeService codeService;
+
+    @RequestMapping("")
+    public String index(Model model) {
+        return "frame/dict";
+    }
+
+    /**
+     * 初始化页面加载数据
+     */
+    @RequestMapping("list")
+    @ResponseBody
+    public String selectList() {
+
+        List<CodeModel> list = codeService.selectInitDict();
+        JSONArray.toJSONString(list);
+        return JSONArray.toJSONString(list);
+    }
+
+    @RequestMapping("getRecord")
+    @ResponseBody
+    public DictVo getRecord(String id) {
+
+        CodeModel codeModel = codeService.findById(id);
+        DictVo dictVo = new DictVo();
+        BeanUtils.copyProperties(codeModel, dictVo);
+        return dictVo;
+    }
+
+    @RequestMapping("delRecodes")
+    @ResponseBody
+    @Transactional
+    public int delRecodes(String ids) {
+
+        int cnt = 0;
+        if (StringUtils.isNotEmpty(ids)) {
+            String[] idArr = ids.split(",");
+            for (String id : idArr) {
+                if (StringUtils.isNotEmpty(id)) {
+                    // 删除非末级关联的子集
+                    cnt += codeService.deleteByPid(id);
+                    // 删除
+                    cnt += codeService.deleteByID(id);
+                }
+            }
+        }
+        return cnt;
+    }
+
+    /**
+     * 保存
+     * 
+     * @param vo
+     * @return
+     */
+    @RequestMapping("save")
+    @ResponseBody
+    public WebJsonResult save(DictVo dictVo) {
+
+        if (StringUtils.isEmpty(dictVo.getId())) {
+            // 新增
+            CodeModel codeModel = new CodeModel();
+            BeanUtils.copyProperties(dictVo, codeModel);
+            codeService.add(codeModel);
+        } else {
+            // 更新
+            CodeModel codeModel = codeService.findById(dictVo.getId());
+            BeanUtils.copyProperties(dictVo, codeModel);
+            codeService.update(codeModel);
+        }
+        return success();
+    }
+
+}

+ 25 - 24
gkaqv2/trunk/modules/web/src/main/java/com/xt/js/gkaq/web/ctl/MenuButtonCtl.java

@@ -28,17 +28,18 @@ public class MenuButtonCtl extends BaseCtl {
     @ResponseBody
     public ButtonVo getRecord(String id) {
 
-    	ButtonModel btnModel = buttonService.findById(id);
-    	ButtonVo btnVo = new ButtonVo();
-    	btnVo.setBtnId(btnModel.getId());
-    	btnVo.setBtnCode(btnModel.getCode());
-    	btnVo.setBtnName(btnModel.getName());
-    	btnVo.setBtnSortno(btnModel.getSortno());
+        ButtonModel btnModel = buttonService.findById(id);
+        ButtonVo btnVo = new ButtonVo();
+        btnVo.setBtnId(btnModel.getId());
+        btnVo.setBtnCode(btnModel.getCode());
+        btnVo.setBtnName(btnModel.getName());
+        btnVo.setBtnSortno(btnModel.getSortno());
         return btnVo;
     }
 
     /**
      * ±£´æ
+     * 
      * @param vo
      * @return
      */
@@ -46,24 +47,24 @@ public class MenuButtonCtl extends BaseCtl {
     @ResponseBody
     public WebJsonResult save(ButtonVo btnVo) {
 
-    	if(StringUtils.isEmpty(btnVo.getBtnId())) {
-        	// ÐÂÔö
-    		ButtonModel btnModel = new ButtonModel();
-    		btnModel.setCode(btnVo.getBtnCode());
-    		btnModel.setName(btnVo.getBtnName());
-    		btnModel.setSortno(btnVo.getBtnSortno());
-    		btnModel.setMenu(btnVo.getMenuId());
-    		
-    		buttonService.add(btnModel);
-    	} else {
-    		// ¸üÐÂ
-    		ButtonModel btnModel = buttonService.findById(btnVo.getBtnId());
-    		btnModel.setCode(btnVo.getBtnCode());
-    		btnModel.setName(btnVo.getBtnName());
-    		btnModel.setSortno(btnVo.getBtnSortno());
-    		btnModel.setMenu(btnVo.getMenuId());
-    		buttonService.update(btnModel);
-    	}
+        if (StringUtils.isEmpty(btnVo.getBtnId())) {
+            // ÐÂÔö
+            ButtonModel btnModel = new ButtonModel();
+            btnModel.setCode(btnVo.getBtnCode());
+            btnModel.setName(btnVo.getBtnName());
+            btnModel.setSortno(btnVo.getBtnSortno());
+            btnModel.setMenu(btnVo.getMenuId());
+
+            buttonService.add(btnModel);
+        } else {
+            // ¸üÐÂ
+            ButtonModel btnModel = buttonService.findById(btnVo.getBtnId());
+            btnModel.setCode(btnVo.getBtnCode());
+            btnModel.setName(btnVo.getBtnName());
+            btnModel.setSortno(btnVo.getBtnSortno());
+            btnModel.setMenu(btnVo.getMenuId());
+            buttonService.update(btnModel);
+        }
         return success();
     }
 

+ 38 - 37
gkaqv2/trunk/modules/web/src/main/java/com/xt/js/gkaq/web/ctl/MenuCtl.java

@@ -32,54 +32,55 @@ public class MenuCtl extends BaseCtl {
         return "frame/menu";
     }
 
-	/**
-	 * 初始化页面加载数据
-	 */
+    /**
+     * 初始化页面加载数据
+     */
     @RequestMapping("list")
     @ResponseBody
-	public String selectList() {
+    public String selectList() {
 
-		List<MenuModel> list = menuService.selectInitMenu();
-		JSONArray.toJSONString(list);
-		return JSONArray.toJSONString(list);
-	}
+        List<MenuModel> list = menuService.selectInitMenu();
+        JSONArray.toJSONString(list);
+        return JSONArray.toJSONString(list);
+    }
 
     @RequestMapping("getRecord")
     @ResponseBody
     public MenuVo getRecord(String id) {
 
-    	MenuModel menuModel = menuService.findById(id);
-    	MenuVo menuVo = new MenuVo();
-    	BeanUtils.copyProperties(menuModel, menuVo);
+        MenuModel menuModel = menuService.findById(id);
+        MenuVo menuVo = new MenuVo();
+        BeanUtils.copyProperties(menuModel, menuVo);
         return menuVo;
     }
 
     @RequestMapping("delRecodes")
     @ResponseBody
     @Transactional
-	public int delRecodes(String ids) {
+    public int delRecodes(String ids) {
 
-    	int cnt = 0;
-		if (StringUtils.isNotEmpty(ids)) {
-			String[] idArr = ids.split(",");
-			for (String id : idArr) {
-				if (StringUtils.isNotEmpty(id)) {
-					// 删除按钮
-					cnt += buttonService.deleteByID(id);
-					// 删除末级菜单关联的按钮
-					cnt += buttonService.deleteByMenu(id);
-					// 删除非末级菜单关联的子菜单
-					cnt += menuService.deleteByPid(id);
-					// 删除菜单
-					cnt += menuService.deleteByID(id);
-				}
-			}
-		}
-		return cnt;
-	}
+        int cnt = 0;
+        if (StringUtils.isNotEmpty(ids)) {
+            String[] idArr = ids.split(",");
+            for (String id : idArr) {
+                if (StringUtils.isNotEmpty(id)) {
+                    // 删除按钮
+                    cnt += buttonService.deleteByID(id);
+                    // 删除末级菜单关联的按钮
+                    cnt += buttonService.deleteByMenu(id);
+                    // 删除非末级菜单关联的子菜单
+                    cnt += menuService.deleteByPid(id);
+                    // 删除菜单
+                    cnt += menuService.deleteByID(id);
+                }
+            }
+        }
+        return cnt;
+    }
 
     /**
      * 保存
+     * 
      * @param vo
      * @return
      */
@@ -87,17 +88,17 @@ public class MenuCtl extends BaseCtl {
     @ResponseBody
     public WebJsonResult save(MenuVo menuVo) {
 
-    	if(StringUtils.isEmpty(menuVo.getId())) {
-        	// 新增
+        if (StringUtils.isEmpty(menuVo.getId())) {
+            // 新增
             MenuModel menuModel = new MenuModel();
             BeanUtils.copyProperties(menuVo, menuModel);
             menuService.add(menuModel);
-    	} else {
-    		// 更新
-    		MenuModel menuModel = menuService.findById(menuVo.getId());
-    		BeanUtils.copyProperties(menuVo, menuModel, new String[] {"remark"});
+        } else {
+            // 更新
+            MenuModel menuModel = menuService.findById(menuVo.getId());
+            BeanUtils.copyProperties(menuVo, menuModel, new String[] { "remark" });
             menuService.update(menuModel);
-    	}
+        }
         return success();
     }
 

+ 103 - 0
gkaqv2/trunk/modules/web/src/main/java/com/xt/js/gkaq/web/ctl/ParamCtl.java

@@ -0,0 +1,103 @@
+package com.xt.js.gkaq.web.ctl;
+
+import java.util.List;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.xt.js.gkaq.common.BaseCtl;
+import com.xt.js.gkaq.frame.model.ParamModel;
+import com.xt.js.gkaq.frame.service.ParamService;
+import com.xt.js.gkaq.web.vo.ParamVo;
+import com.yuanxd.tools.pagehelper.PageHelper;
+import com.yuanxd.tools.pagehelper.PageInfo;
+import com.yuanxd.tools.utils.WebJsonResult;
+import com.yuanxd.tools.utils.string.StringUtils;
+
+@Controller
+@RequestMapping(value = "/param")
+public class ParamCtl extends BaseCtl {
+    @Autowired
+    private ParamService paramService;
+
+    @RequestMapping("")
+    public String index(Model model) {
+        return "frame/param";
+    }
+
+    /**
+     * 初始化页面加载数据
+     */
+    @RequestMapping("list")
+    @ResponseBody
+    public PageInfo<ParamModel> getPageInfo(ParamVo vo) {
+        // 初始化参数
+        if (null == vo.getPage() || vo.getPage() < 1) {
+            vo.setPage(1);
+        }
+        if (null == vo.getRows() || vo.getRows() < 1) {
+            vo.setRows(1);
+        }
+        PageHelper.startPage(vo.getPage(), vo.getRows());
+
+        ParamModel model = new ParamModel();
+        BeanUtils.copyProperties(vo, model);
+        List<ParamModel> list = paramService.selectAllByCond(model);
+        PageInfo<ParamModel> pageResult = new PageInfo<>(list);
+        return pageResult;
+    }
+
+    @RequestMapping("getRecord")
+    @ResponseBody
+    public ParamModel getRecord(String id) {
+
+        ParamModel paramModel = paramService.findById(id);
+        return paramModel;
+    }
+
+    @RequestMapping("delRecodes")
+    @ResponseBody
+    @Transactional
+    public int delRecodes(String ids) {
+
+        int cnt = 0;
+        if (StringUtils.isNotEmpty(ids)) {
+            String[] idArr = ids.split(",");
+            for (String id : idArr) {
+                if (StringUtils.isNotEmpty(id)) {
+                    cnt += paramService.deleteByID(id);
+                }
+            }
+        }
+        return cnt;
+    }
+
+    /**
+     * 保存
+     * 
+     * @param vo
+     * @return
+     */
+    @RequestMapping("save")
+    @ResponseBody
+    public WebJsonResult save(ParamVo vo) {
+
+        if (StringUtils.isEmpty(vo.getId())) {
+            // 新增
+            ParamModel model = new ParamModel();
+            BeanUtils.copyProperties(vo, model);
+            paramService.add(model);
+        } else {
+            // 更新
+            ParamModel model = paramService.findById(vo.getId());
+            BeanUtils.copyProperties(vo, model);
+            paramService.update(model);
+        }
+        return success();
+    }
+}

+ 107 - 0
gkaqv2/trunk/modules/web/src/main/java/com/xt/js/gkaq/web/vo/DictVo.java

@@ -0,0 +1,107 @@
+package com.xt.js.gkaq.web.vo;
+
+import com.xt.js.gkaq.common.BaseVo;
+
+public class DictVo extends BaseVo {
+
+    private String id;
+
+    private String pid;
+    
+    private String ptext;
+    
+    private String pcode;
+
+    private String text;
+
+    private String code;
+
+    private String val;
+
+    private String leaf;
+
+    private String remark;
+
+    private Long sortno;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getPid() {
+        return pid;
+    }
+
+    public void setPid(String pid) {
+        this.pid = pid;
+    }
+
+    public String getPtext() {
+        return ptext;
+    }
+
+    public void setPtext(String ptext) {
+        this.ptext = ptext;
+    }
+
+    public String getPcode() {
+        return pcode;
+    }
+
+    public void setPcode(String pcode) {
+        this.pcode = pcode;
+    }
+
+    public String getText() {
+        return text;
+    }
+
+    public void setText(String text) {
+        this.text = text;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getVal() {
+        return val;
+    }
+
+    public void setVal(String val) {
+        this.val = val;
+    }
+
+    public String getLeaf() {
+        return leaf;
+    }
+
+    public void setLeaf(String leaf) {
+        this.leaf = leaf;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Long getSortno() {
+        return sortno;
+    }
+
+    public void setSortno(Long sortno) {
+        this.sortno = sortno;
+    }
+
+}

+ 57 - 0
gkaqv2/trunk/modules/web/src/main/java/com/xt/js/gkaq/web/vo/ParamVo.java

@@ -0,0 +1,57 @@
+package com.xt.js.gkaq.web.vo;
+
+import com.xt.js.gkaq.common.BaseVo;
+
+public class ParamVo extends BaseVo {
+
+    private String id;
+
+    private String key;
+    
+    private String value;
+    
+    private String clazz;
+
+    private String disp;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getClazz() {
+        return clazz;
+    }
+
+    public void setClazz(String clazz) {
+        this.clazz = clazz;
+    }
+
+    public String getDisp() {
+        return disp;
+    }
+
+    public void setDisp(String disp) {
+        this.disp = disp;
+    }
+
+}

+ 141 - 0
gkaqv2/trunk/modules/web/src/main/webapp/WEB-INF/view/frame/dict.jsp

@@ -0,0 +1,141 @@
+<%@ page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
+<!DOCTYPE html>
+<html>
+<head>
+<title>字典管理</title>
+
+<%@ include file="../layouts/header.jsp"%>
+<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/static/js/common/zTree_v3/css/zTreeStyle/zTreeStyle.css" />
+<script type="text/javascript" src="<%=request.getContextPath()%>/static/js/common/zTree_v3/js/jquery.ztree.all-3.5.min.js"></script>
+<script src="<%=base%>/static/js/frame/dict.js"></script>
+</head>
+<body class="p_body">
+	<div class="easyui-layout" data-options="fit:true">
+		<!-- 头部 -->
+		<div id="regionNorth" data-options="region:'north'" class="regionNorthStyle">
+			<%@ include file="../layouts/navbar.jsp"%>
+		</div>
+		<!-- 左边部分 -->
+		<div id="regionWest" data-options="region:'west'" class="regionWestStyle">
+			<%@ include file="../layouts/sidebar.jsp"%>
+		</div>
+		<!-- 底部 -->
+		<div id="regionFooter" data-options="region:'south'" class="regionFooterStyle">
+			<%@ include file="../layouts/footer.jsp"%>
+		</div>
+		<!-- 内容部分 -->
+		<div id="regionCenter" data-options="region:'center'" class="regionCenterStyle">
+			<div class="p_all">
+				<div class="p_block">
+					<div class="p_headdiv">
+						<div class="p_headblock">
+							<div class="p_headleft">字典管理</div>
+						</div>
+					</div>
+					<div class="p_buttondiv">
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/add.png" onclick="addInfo()" title="新增" />
+						</div>
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/delete.png" onclick="delInfo()" title="删除" />
+						</div>
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/edit.png" onclick="editInfo()" title="修改" />
+						</div>
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/reload.png" onclick="refresh()" title="刷新" />
+						</div>
+					</div>
+					<div class="page-content"
+						style="margin-left: 20px; height: 400px; width: 92%; overflow-x: auto; overflow-y: scroll;">
+						<!--字典树-->
+						<div id="dictTree" class="ztree"></div>
+					</div>
+				</div>
+			</div>
+
+			<div class="modal fade" id="editWin" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+				<div class="modal-dialog">
+					<div class="modal-content">
+						<div class="modal-header">
+							<button type="button" class="close" data-dismiss="modal">
+								<span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+							</button>
+							<h6 class="modal-title" id="myModalLabel"></h6>
+						</div>
+						<!-- form 表单信息 -->
+						<div class="modal-body">
+							<form class="form-horizontal" id="editForm" method="post" onsubmit="return false;">
+								<input type="hidden" id="id" name="id">
+                                <input type="hidden" id="pid" name="pid">
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="ptext">上级名称</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="ptext" name="ptext" type="text" readonly="readonly" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="pcode">上级编码</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="pcode" name="pcode" type="text" readonly="readonly" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="text">名称</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="text" name="text" type="text" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="code">编码</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="code" name="code" type="text" />
+									</div>
+								</div>
+                                <div class="form-group">
+                                    <label class="col-sm-2 control-label" for="val">编码值</label>
+                                    <div class="col-sm-9">
+                                        <input class="form-control" id="val" name="val" type="text" />
+                                    </div>
+                                </div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="leaf">是否末级</label>
+									<div class="col-sm-9">
+										<select class="form-control" id="leaf" name="leaf">
+                                            <option value="Y">是</option>
+											<option value="N">否</option>
+										</select>
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="sortno">序号</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="sortno" name="sortno" type="text" />
+									</div>
+								</div>
+                                <div class="form-group">
+                                    <label class="col-sm-2 control-label" for="remark">备注</label>
+                                    <div class="col-sm-9">
+                                        <input class="form-control" id="remark" name="remark" type="text" />
+                                    </div>
+                                </div>
+								<div class="row">
+									<div class="center-block" style="width: 160px;">
+										<button class="btn btn-success btn-round btn-sm" onclick="save()">
+											<i class="glyphicon glyphicon-ok"></i> 保存
+										</button>
+										<button class="btn btn-grey btn-round btn-sm" onclick="closeWin()">
+											<i class="glyphicon glyphicon-remove"></i> 关闭
+										</button>
+									</div>
+								</div>
+							</form>
+						</div>
+						<!-- form 表单信息 -->
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</body>
+</html>

+ 157 - 160
gkaqv2/trunk/modules/web/src/main/webapp/WEB-INF/view/frame/menu.jsp

@@ -10,184 +10,181 @@
 <script src="<%=base%>/static/js/frame/menu.js"></script>
 </head>
 <body class="p_body">
-<div class="easyui-layout" data-options="fit:true">
-<!-- 头部 -->
-<div id="regionNorth" data-options="region:'north'" class="regionNorthStyle">
-	<%@ include file="../layouts/navbar.jsp"%>
-</div>
-<!-- 左边部分 -->
-<div id="regionWest" data-options="region:'west'" class="regionWestStyle">
-	<%@ include file="../layouts/sidebar.jsp"%>
-</div>
-<!-- 底部 -->
-<div id="regionFooter" data-options="region:'south'" class="regionFooterStyle">
-	<%@ include file="../layouts/footer.jsp"%>
-</div>
-<!-- 内容部分 -->
-<div id="regionCenter" data-options="region:'center'" class="regionCenterStyle">
-	<div class="p_all">
-	<div class="p_block">
-		<div class="p_headdiv">
-			<div class="p_headblock">
-				<div class="p_headleft">菜单管理</div>
-			</div>
+	<div class="easyui-layout" data-options="fit:true">
+		<!-- 头部 -->
+		<div id="regionNorth" data-options="region:'north'" class="regionNorthStyle">
+			<%@ include file="../layouts/navbar.jsp"%>
 		</div>
-		<div class="p_buttondiv">
-			<div class="p_buttonbg">
-				<img class="p_buttonimg" src="<%=base%>/static/images/list/add.png" 
-					onclick="addInfo()" title="新增"/>
-			</div>
-			<div class="p_buttonbg">
-				<img class="p_buttonimg" src="<%=base%>/static/images/list/delete.png" 
-					onclick="delInfo()" title="删除"/>
-			</div>
-			<div class="p_buttonbg">
-				<img class="p_buttonimg" src="<%=base%>/static/images/list/edit.png" 
-					onclick="editInfo()" title="修改"/>
-			</div>
-			<div class="p_buttonbg">
-				<img class="p_buttonimg" src="<%=base%>/static/images/list/reload.png" 
-					onclick="refresh()" title="刷新"/>
-			</div>
+		<!-- 左边部分 -->
+		<div id="regionWest" data-options="region:'west'" class="regionWestStyle">
+			<%@ include file="../layouts/sidebar.jsp"%>
 		</div>
-		<div class="page-content" style="margin-left: 20px; height : 400px; width: 92%; overflow-x: auto; overflow-y: scroll;">
-			<!--菜单树-->
-			<div id="menuTree" class="ztree"></div>
+		<!-- 底部 -->
+		<div id="regionFooter" data-options="region:'south'" class="regionFooterStyle">
+			<%@ include file="../layouts/footer.jsp"%>
 		</div>
-	</div>
-	</div>
-
-	<div class="modal fade" id="editWin" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
-		<div class="modal-dialog">
-			<div class="modal-content">
-				<div class="modal-header">
-					<button type="button" class="close" data-dismiss="modal">
-						<span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
-					</button>
-					<h6 class="modal-title" id="myModalLabel"></h6>
-				</div>
-				<!-- form 表单信息 -->
-				<div class="modal-body">
-					<form class="form-horizontal" id="editForm" method="post" onsubmit="return false;">
-						<input type="hidden" id="id" name="id">
-						<input type="hidden" id="pid" name="pid">
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="pname">上级名称</label>
-							<div class="col-sm-9">
-								<input class="form-control" id="pname" name="pname" type="text" readonly="readonly" />
-							</div>
-						</div>
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="pcode">上级编码</label>
-							<div class="col-sm-9">
-								<input class="form-control" id="pcode" name="pcode" type="text" readonly="readonly" />
-							</div>
+		<!-- 内容部分 -->
+		<div id="regionCenter" data-options="region:'center'" class="regionCenterStyle">
+			<div class="p_all">
+				<div class="p_block">
+					<div class="p_headdiv">
+						<div class="p_headblock">
+							<div class="p_headleft">菜单管理</div>
 						</div>
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="name">名称</label>
-							<div class="col-sm-9">
-								<input class="form-control" id="name" name="name" type="text" />
-							</div>
+					</div>
+					<div class="p_buttondiv">
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/add.png" onclick="addInfo()" title="新增" />
 						</div>
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="code">编码</label>
-							<div class="col-sm-9">
-								<input class="form-control" id="code" name="code" type="text" />
-							</div>
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/delete.png" onclick="delInfo()" title="删除" />
 						</div>
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="leaf">类型</label>
-							<div class="col-sm-9">
-								<select class="form-control" id="leaf" name="leaf">
-									<option value="N">目录</option>
-									<option value="Y">页面</option>
-								</select>
-							</div>
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/edit.png" onclick="editInfo()" title="修改" />
 						</div>
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="url">路径</label>
-							<div class="col-sm-9">
-								<input class="form-control" id="url" name="url" type="text" />
-							</div>
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/reload.png" onclick="refresh()" title="刷新" />
 						</div>
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="sortno">序号</label>
-							<div class="col-sm-9">
-								<input class="form-control" id="sortno" name="sortno" type="text" />
-							</div>
-						</div>
-						<div class="row">
-						   <div class="center-block" style="width:160px;">
-						      	<button class="btn btn-success btn-round btn-sm" onclick="save()">
-									<i class="glyphicon glyphicon-ok"></i> 保存
-								</button>
-								<button class="btn btn-grey btn-round btn-sm" onclick="closeWin()">
-									<i class="glyphicon glyphicon-remove"></i> 关闭
-								</button>
-						   </div>
-						</div>
-					</form>
+					</div>
+					<div class="page-content"
+						style="margin-left: 20px; height: 400px; width: 92%; overflow-x: auto; overflow-y: scroll;">
+						<!--菜单树-->
+						<div id="menuTree" class="ztree"></div>
+					</div>
 				</div>
-				<!-- form 表单信息 -->
 			</div>
-		</div>
-	</div>
 
-	<div class="modal fade" id="editBtnWin" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
-		<div class="modal-dialog">
-			<div class="modal-content">
-				<div class="modal-header">
-					<button type="button" class="close" data-dismiss="modal">
-						<span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
-					</button>
-					<h6 class="modal-title" id="myModalLabel"></h6>
-				</div>
-				<!-- form 表单信息 -->
-				<div class="modal-body">
-					<form class="form-horizontal" id="editBtnForm" method="post" onsubmit="return false;">
-						<input type="hidden" id="btnId" name="btnId">
-						<input type="hidden" id="menuId" name="menuId">
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="menuName">菜单名称</label>
-							<div class="col-sm-9">
-								<input class="form-control" id="menuName" name="menuName" type="text" readonly="readonly" />
-							</div>
+			<div class="modal fade" id="editWin" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+				<div class="modal-dialog">
+					<div class="modal-content">
+						<div class="modal-header">
+							<button type="button" class="close" data-dismiss="modal">
+								<span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+							</button>
+							<h6 class="modal-title" id="myModalLabel"></h6>
 						</div>
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="btnName">名称</label>
-							<div class="col-sm-9">
-								<input class="form-control" id="btnName" name="btnName" type="text" />
-							</div>
+						<!-- form 表单信息 -->
+						<div class="modal-body">
+							<form class="form-horizontal" id="editForm" method="post" onsubmit="return false;">
+								<input type="hidden" id="id" name="id">
+                                <input type="hidden" id="pid" name="pid">
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="pname">上级名称</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="pname" name="pname" type="text" readonly="readonly" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="pcode">上级编码</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="pcode" name="pcode" type="text" readonly="readonly" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="name">名称</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="name" name="name" type="text" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="code">编码</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="code" name="code" type="text" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="leaf">类型</label>
+									<div class="col-sm-9">
+										<select class="form-control" id="leaf" name="leaf">
+											<option value="N">目录</option>
+											<option value="Y">页面</option>
+										</select>
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="url">路径</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="url" name="url" type="text" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="sortno">序号</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="sortno" name="sortno" type="text" />
+									</div>
+								</div>
+								<div class="row">
+									<div class="center-block" style="width: 160px;">
+										<button class="btn btn-success btn-round btn-sm" onclick="save()">
+											<i class="glyphicon glyphicon-ok"></i> 保存
+										</button>
+										<button class="btn btn-grey btn-round btn-sm" onclick="closeWin()">
+											<i class="glyphicon glyphicon-remove"></i> 关闭
+										</button>
+									</div>
+								</div>
+							</form>
 						</div>
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="btnCode">编码</label>
-							<div class="col-sm-9">
-								<input class="form-control" id="btnCode" name="btnCode" type="text" />
-							</div>
-						</div>
-						<div class="form-group">
-							<label class="col-sm-2 control-label" for="btnSortno">序号</label>
-							<div class="col-sm-9">
-								<input class="form-control" id="btnSortno" name="btnSortno" type="text" />
-							</div>
+						<!-- form 表单信息 -->
+					</div>
+				</div>
+			</div>
+
+			<div class="modal fade" id="editBtnWin" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+				<div class="modal-dialog">
+					<div class="modal-content">
+						<div class="modal-header">
+							<button type="button" class="close" data-dismiss="modal">
+								<span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+							</button>
+							<h6 class="modal-title" id="myModalLabel"></h6>
 						</div>
-						<div class="row">
-						   <div class="center-block" style="width:160px;">
-						      	<button class="btn btn-success btn-round btn-sm" onclick="btnSave()">
-									<i class="glyphicon glyphicon-ok"></i> 保存
-								</button>
-								<button class="btn btn-grey btn-round btn-sm" onclick="closeBtnWin()">
-									<i class="glyphicon glyphicon-remove"></i> 关闭
-								</button>
-						   </div>
+						<!-- form 表单信息 -->
+						<div class="modal-body">
+							<form class="form-horizontal" id="editBtnForm" method="post" onsubmit="return false;">
+								<input type="hidden" id="btnId" name="btnId">
+                                <input type="hidden" id="menuId" name="menuId">
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="menuName">菜单名称</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="menuName" name="menuName" type="text" readonly="readonly" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="btnName">名称</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="btnName" name="btnName" type="text" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="btnCode">编码</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="btnCode" name="btnCode" type="text" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="btnSortno">序号</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="btnSortno" name="btnSortno" type="text" />
+									</div>
+								</div>
+								<div class="row">
+									<div class="center-block" style="width: 160px;">
+										<button class="btn btn-success btn-round btn-sm" onclick="btnSave()">
+											<i class="glyphicon glyphicon-ok"></i> 保存
+										</button>
+										<button class="btn btn-grey btn-round btn-sm" onclick="closeBtnWin()">
+											<i class="glyphicon glyphicon-remove"></i> 关闭
+										</button>
+									</div>
+								</div>
+							</form>
 						</div>
-					</form>
+						<!-- form 表单信息 -->
+					</div>
 				</div>
-				<!-- form 表单信息 -->
 			</div>
 		</div>
 	</div>
-</div>
-</div>
 </body>
 </html>

+ 124 - 0
gkaqv2/trunk/modules/web/src/main/webapp/WEB-INF/view/frame/param.jsp

@@ -0,0 +1,124 @@
+<%@ page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
+<!DOCTYPE html>
+<html>
+<head>
+<title>参数管理</title>
+
+<%@ include file="../layouts/header.jsp"%>
+<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/static/js/common/zTree_v3/css/zTreeStyle/zTreeStyle.css" />
+<script type="text/javascript" src="<%=request.getContextPath()%>/static/js/common/zTree_v3/js/jquery.ztree.all-3.5.min.js"></script>
+<script src="<%=base%>/static/js/frame/param.js"></script>
+</head>
+<body class="p_body">
+	<div class="easyui-layout" data-options="fit:true">
+		<!-- 头部 -->
+		<div id="regionNorth" data-options="region:'north'" class="regionNorthStyle">
+			<%@ include file="../layouts/navbar.jsp"%>
+		</div>
+		<!-- 左边部分 -->
+		<div id="regionWest" data-options="region:'west'" class="regionWestStyle">
+			<%@ include file="../layouts/sidebar.jsp"%>
+		</div>
+		<!-- 底部 -->
+		<div id="regionFooter" data-options="region:'south'" class="regionFooterStyle">
+			<%@ include file="../layouts/footer.jsp"%>
+		</div>
+		<!-- 内容部分 -->
+		<div id="regionCenter" data-options="region:'center'" class="regionCenterStyle">
+			<div class="p_all">
+				<div class="p_block">
+					<div class="p_headdiv">
+						<div class="p_headblock">
+							<div class="p_headleft">参数管理</div>
+						</div>
+					</div>
+					<div class="p_buttondiv">
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/add.png" onclick="addInfo()" title="新增" />
+						</div>
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/delete.png" onclick="delInfo()" title="删除" />
+						</div>
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/edit.png" onclick="editInfo()" title="修改" />
+						</div>
+						<div class="p_buttonbg">
+							<img class="p_buttonimg" src="<%=base%>/static/images/list/search.png" onclick="showSearch()" title="查询" />
+						</div>
+					</div>
+                    <div class="p_searchdiv">
+                        <table class="tabsearch">
+                            <tr class="trsearch">
+                                <td class="tdname">参数主键</td>
+                                <td class="tdcontent"><input type="text" id="srh_key" name="srh_key" class="p_txt"></td>
+                                <td class="tdname"><img class="p_searchbtn"
+                                    src="<%=base%>/static/images/list/btn_query.png" title="查询" onclick="searchRecord()" />
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+                    <div class="page-content">
+                        <!--列表部分-->
+                        <table id="grid-table"></table>
+                        <div id="grid-pager"></div>
+                    </div>
+                </div>
+			</div>
+
+			<div class="modal fade" id="editWin" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+				<div class="modal-dialog">
+					<div class="modal-content">
+						<div class="modal-header">
+							<button type="button" class="close" data-dismiss="modal">
+								<span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
+							</button>
+							<h6 class="modal-title" id="myModalLabel"></h6>
+						</div>
+						<!-- form 表单信息 -->
+						<div class="modal-body">
+							<form class="form-horizontal" id="editForm" method="post" onsubmit="return false;">
+								<input type="hidden" id="id" name="id">
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="key">参数主键</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="key" name="key" type="text" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="value">参数值</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="value" name="value" type="text" />
+									</div>
+								</div>
+                                <div class="form-group">
+                                    <label class="col-sm-2 control-label" for="clazz">所属类</label>
+                                    <div class="col-sm-9">
+                                        <input class="form-control" id="clazz" name="clazz" type="text" />
+                                    </div>
+                                </div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="disp">属性描述</label>
+									<div class="col-sm-9">
+										<input class="form-control" id="disp" name="disp" type="text" />
+									</div>
+								</div>
+								<div class="row">
+									<div class="center-block" style="width: 160px;">
+										<button class="btn btn-success btn-round btn-sm" onclick="save()">
+											<i class="glyphicon glyphicon-ok"></i> 保存
+										</button>
+										<button class="btn btn-grey btn-round btn-sm" onclick="closeWin()">
+											<i class="glyphicon glyphicon-remove"></i> 关闭
+										</button>
+									</div>
+								</div>
+							</form>
+						</div>
+						<!-- form 表单信息 -->
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</body>
+</html>

+ 3 - 1
gkaqv2/trunk/modules/web/src/main/webapp/WEB-INF/view/layouts/sidebar.jsp

@@ -2,4 +2,6 @@
     pageEncoding="GBK"%>
 [系统管理]<br>
 &emsp;&emsp;<a href="#" onclick="linkUrl('user')">用户管理</a><br>
-&emsp;&emsp;<a href="#" onclick="linkUrl('menu')">菜单管理</a><br>
+&emsp;&emsp;<a href="#" onclick="linkUrl('menu')">菜单管理</a><br>
+&emsp;&emsp;<a href="#" onclick="linkUrl('dict')">字典管理</a><br>
+&emsp;&emsp;<a href="#" onclick="linkUrl('param')">参数管理</a><br>

+ 188 - 0
gkaqv2/trunk/modules/web/src/main/webapp/static/js/frame/dict.js

@@ -0,0 +1,188 @@
+var dictTree;
+// zTree的参数配置,setting主要是设置一些tree的属性,是本地数据源,还是远程,动画效果,是否含有复选框等等
+var setting = {
+    // 复选框
+    check : {
+        enable : true,
+        chkboxType : {
+            "Y" : "",
+            "N" : ""
+        }
+    },
+    async : {
+        enable : true,
+        type : 'post',
+        url : basePath + "/dict/list"
+    },
+    data : {
+        // 简单的数据源
+        simpleData : {
+            enable : true,
+            idKey : "id",
+            pIdKey : "pid",
+            rootPId : 0
+        },
+        key: {
+            name: "text"
+        }
+    }
+};
+
+$(document).ready(function() {
+    // 初始化zTree对象
+    dictTree = $.fn.zTree.init($("#dictTree"), setting);
+});
+
+/**
+ * 新增
+ */
+function addInfo() {
+    // 获取勾选节点
+    var nodes = dictTree.getCheckedNodes(true);
+    if (nodes.length > 1) {
+        layer.alert("请选择一条记录!");
+        return;
+    } else if (nodes.length == 1) {
+        var node = nodes[0];
+        if (node.leaf == 'Y') { // 末级节点
+            layer.alert("只能在非末级编码下新增!");
+            return;
+        } else { // 非末级节点
+            // 清空表单信息
+            comClearFormData("#editForm");
+            $("#pid").val(node.id);
+            $("#ptext").val(node.text);
+            $("#pcode").val(node.code);
+            // 弹出模态框
+            showModelDialog("editWin", "新增");
+        }
+    } else { // 根级节点
+        // 清空表单信息
+        comClearFormData("#editForm");
+        // 弹出模态框
+        showModelDialog("editWin", "新增");
+    }
+};
+
+/**
+ * 编辑
+ */
+function editInfo() {
+    // 获取勾选节点
+    var nodes = dictTree.getCheckedNodes(true);
+    if (nodes.length != 1) {
+        layer.alert("请选择一条记录!");
+        return;
+    } else {
+        var node = nodes[0];
+        var pnode = node.getParentNode();
+        $.ajax({
+            type : 'POST',
+            dataType : "json",
+            data : {
+                "id" : node.id
+            },
+            url : basePath + '/dict/getRecord',
+            success : function(data) {
+                if (!isNull(pnode)) {
+                    $("#pid").val(pnode.id);
+                    $("#pcode").val(pnode.code);
+                    $("#ptext").val(pnode.text);
+                }
+                $("#id").val(data.id);
+                $("#text").val(data.text);
+                $("#code").val(data.code);
+                $("#val").val(data.val);
+                $("#leaf").val(data.leaf);
+                $("#sortno").val(data.sortno);
+                $("#remark").val(data.remark);
+                showModelDialog("editWin", "编辑");
+            },
+            error : function(XMLHttpRequest, textStatus, errorThrown) {
+                layer.alert("error:" + errorThrown);
+            }
+        });
+    }
+};
+
+/**
+ * 删除
+ */
+function delInfo() {
+    // 获取选择节点
+    var nodes = dictTree.getCheckedNodes(true);
+    if (nodes.length > 0) {
+        var chkIds = "";
+        var chkNames = "";
+        for (var i = 0; i < nodes.length; i++) {
+            if (i != 0) {
+                chkIds += ",";
+                chkNames += ",";
+            }
+            chkIds += nodes[i].id;
+            chkNames += nodes[i].text;
+        }
+        layer.confirm('删除所选记录及其下级记录:<br>' + chkNames, {
+            icon : 3,
+            title : '提示'
+        }, function(index) {
+            $.ajax({
+                type : 'POST',
+                dataType : "json",
+                data : {
+                    "ids" : chkIds
+                },
+                url : basePath + '/dict/delRecodes',
+                success : function(data) {
+                    layer.close(index);
+                    dictTree.reAsyncChildNodes(null, "refresh");
+                },
+                error : function(XMLHttpRequest, textStatus, errorThrown) {
+                    layer.close(index);
+                    layer.alert("error:" + errorThrown);
+                }
+            });
+        });
+    } else {
+        layer.alert("请选择记录");
+    }
+};
+
+/**
+ * 刷新
+ */
+function refresh() {
+    dictTree.reAsyncChildNodes(null, "refresh");
+};
+
+/**
+ * 保存数据
+ */
+function save() {
+    $.ajax({
+        type : "post",
+        url : basePath + '/dict/save',
+        dataType : 'json',
+        data : $('#editForm').serialize(), // 表单序列化,获取数据
+        success : function(data) {
+            // 成功删除后刷新页面
+            if (data && data.success == true) {
+                layer.alert("数据已成功保存!");
+                closeWin();
+                dictTree.reAsyncChildNodes(null, "refresh");
+            } else {
+                layer.alert("数据保存失败!");
+            }
+        }, // 操作成功后的操作!data是后台传过来的值
+        error : function(XMLHttpRequest, textStatus, errorThrown) {
+            layer.alert("error:" + errorThrown);
+        }
+    });
+}
+
+/**
+ * 关闭窗口
+ */
+function closeWin() {
+    hideModelDialog("editWin");
+}

+ 191 - 185
gkaqv2/trunk/modules/web/src/main/webapp/static/js/frame/menu.js

@@ -1,242 +1,248 @@
 var menuTree;
 // zTree的参数配置,setting主要是设置一些tree的属性,是本地数据源,还是远程,动画效果,是否含有复选框等等
 var setting = {
-	// 复选框
-	check : {
-		enable : true,
-		chkboxType: { "Y": "", "N": "" }
-	},
-	async : {
-		enable : true,
-		type : 'post',
-		url : basePath + "/menu/list"
-	},
-	data : {
-		// 简单的数据源
-		simpleData : {
-			enable : true,
-			idKey : "id",
-			pIdKey : "pid",
-			rootPId : 0 // 根节点
-		}
-	},
-	callback : {
-		// onCheck : onCheck
-	}
+    // 复选框
+    check : {
+        enable : true,
+        chkboxType : {
+            "Y" : "",
+            "N" : ""
+        }
+    },
+    async : {
+        enable : true,
+        type : 'post',
+        url : basePath + "/menu/list"
+    },
+    data : {
+        // 简单的数据源
+        simpleData : {
+            enable : true,
+            idKey : "id",
+            pIdKey : "pid",
+            rootPId : 0
+        // 根节点
+        }
+    }
 };
 
-function onCheck(e, treeId, treeNode) {
-	alert("onCheck");
-}
-
 $(document).ready(function() {
-	// 初始化zTree对象
-	menuTree = $.fn.zTree.init($("#menuTree"), setting);
+    // 初始化zTree对象
+    menuTree = $.fn.zTree.init($("#menuTree"), setting);
 });
 
 /**
  * 新增菜单
  */
 function addInfo() {
-	// 获取勾选节点
-	var nodes = menuTree.getCheckedNodes(true);
-	if (nodes.length > 1) {
-		layer.alert("请选择一条记录!");
-		return;
-	} else if (nodes.length == 1) {
-		var node = nodes[0];
-		if (node.leaf == 'B') { // 按钮节点
-			layer.alert("只能在菜单下新增!");
-			return;
-		} else if (node.leaf == 'Y') { // 末级菜单节点
-			// 清空按钮表单信息
-			comClearFormData("#editBtnForm");
-			$("#menuId").val(node.id);
-			$("#menuName").val(node.name);
-			// 弹出按钮模态框
-			showModelDialog("editBtnWin", "新增");
-		} else { // 非末级菜单节点
-			// 清空菜单表单信息
-			comClearFormData("#editForm");
-			$("#pid").val(node.id);
-			$("#pname").val(node.name);
-			$("#pcode").val(node.code);
-			// 弹出菜单模态框
-			showModelDialog("editWin", "新增");
-		}
-	} else { // 根级菜单节点
-		// 清空菜单表单信息
-		comClearFormData("#editForm");
-		// 弹出菜单模态框
-		showModelDialog("editWin", "新增");
-	}
+    // 获取勾选节点
+    var nodes = menuTree.getCheckedNodes(true);
+    if (nodes.length > 1) {
+        layer.alert("请选择一条记录!");
+        return;
+    } else if (nodes.length == 1) {
+        var node = nodes[0];
+        if (node.leaf == 'B') { // 按钮节点
+            layer.alert("只能在菜单下新增!");
+            return;
+        } else if (node.leaf == 'Y') { // 末级菜单节点
+            // 清空按钮表单信息
+            comClearFormData("#editBtnForm");
+            $("#menuId").val(node.id);
+            $("#menuName").val(node.name);
+            // 弹出按钮模态框
+            showModelDialog("editBtnWin", "新增");
+        } else { // 非末级菜单节点
+            // 清空菜单表单信息
+            comClearFormData("#editForm");
+            $("#pid").val(node.id);
+            $("#pname").val(node.name);
+            $("#pcode").val(node.code);
+            // 弹出菜单模态框
+            showModelDialog("editWin", "新增");
+        }
+    } else { // 根级菜单节点
+        // 清空菜单表单信息
+        comClearFormData("#editForm");
+        // 弹出菜单模态框
+        showModelDialog("editWin", "新增");
+    }
 };
 
 /**
  * 编辑菜单
  */
 function editInfo() {
-	// 获取勾选节点
-	var nodes = menuTree.getCheckedNodes(true);
-	if (nodes.length != 1) {
-		layer.alert("请选择一条记录!");
-		return;
-	} else {
-		var node = nodes[0];
-		if (node.leaf == 'B') { // 按钮节点
-			var pnode = node.getParentNode();
-		    $.ajax({
-				type : 'POST',
-				dataType : "json",
-				data : {"id" : node.id},
-				url : basePath + '/btn/getRecord',
-				success : function(data) {
-					$("#menuId").val(pnode.id);
-					$("#menuName").val(pnode.name);
-					$("#btnId").val(data.btnId);
-					$("#btnName").val(data.btnName);
-					$("#btnCode").val(data.btnCode);
-					$("#btnSortno").val(data.btnSortno);
-					showModelDialog("editBtnWin", "编辑");
-				},
-				error: function (XMLHttpRequest, textStatus, errorThrown) {
-					layer.alert("error:" + errorThrown);
-		        }
-			});
-		} else { // 菜单节点
-			var pnode = node.getParentNode();
-		    $.ajax({
-				type : 'POST',
-				dataType : "json",
-				data : {"id" : node.id},
-				url : basePath + '/menu/getRecord',
-				success : function(data) {
-					if (!isNull(pnode)) {
-						$("#pid").val(pnode.id);
-						$("#pcode").val(pnode.code);
-						$("#pname").val(pnode.name);
-					}
-					$("#id").val(data.id);
-					$("#name").val(data.name);
-					$("#code").val(data.code);
-					$("#leaf").val(data.leaf);
-					$("#url").val(data.url);
-					$("#sortno").val(data.sortno);
-					showModelDialog("editWin", "编辑");
-				},
-				error: function (XMLHttpRequest, textStatus, errorThrown) {
-					layer.alert("error:" + errorThrown);
-		        }
-			});
-		}
-	}
+    // 获取勾选节点
+    var nodes = menuTree.getCheckedNodes(true);
+    if (nodes.length != 1) {
+        layer.alert("请选择一条记录!");
+        return;
+    } else {
+        var node = nodes[0];
+        if (node.leaf == 'B') { // 按钮节点
+            var pnode = node.getParentNode();
+            $.ajax({
+                type : 'POST',
+                dataType : "json",
+                data : {
+                    "id" : node.id
+                },
+                url : basePath + '/btn/getRecord',
+                success : function(data) {
+                    $("#menuId").val(pnode.id);
+                    $("#menuName").val(pnode.name);
+                    $("#btnId").val(data.btnId);
+                    $("#btnName").val(data.btnName);
+                    $("#btnCode").val(data.btnCode);
+                    $("#btnSortno").val(data.btnSortno);
+                    showModelDialog("editBtnWin", "编辑");
+                },
+                error : function(XMLHttpRequest, textStatus, errorThrown) {
+                    layer.alert("error:" + errorThrown);
+                }
+            });
+        } else { // 菜单节点
+            var pnode = node.getParentNode();
+            $.ajax({
+                type : 'POST',
+                dataType : "json",
+                data : {
+                    "id" : node.id
+                },
+                url : basePath + '/menu/getRecord',
+                success : function(data) {
+                    if (!isNull(pnode)) {
+                        $("#pid").val(pnode.id);
+                        $("#pcode").val(pnode.code);
+                        $("#pname").val(pnode.name);
+                    }
+                    $("#id").val(data.id);
+                    $("#name").val(data.name);
+                    $("#code").val(data.code);
+                    $("#leaf").val(data.leaf);
+                    $("#url").val(data.url);
+                    $("#sortno").val(data.sortno);
+                    showModelDialog("editWin", "编辑");
+                },
+                error : function(XMLHttpRequest, textStatus, errorThrown) {
+                    layer.alert("error:" + errorThrown);
+                }
+            });
+        }
+    }
 };
 
 /**
  * 删除菜单及其子菜单
  */
 function delInfo() {
-	// 获取选择节点
-	var nodes = menuTree.getCheckedNodes(true);
-	if(nodes.length > 0) {
-		var chkIds = "";
-		var chkNames = "";
-		for (var i = 0; i < nodes.length; i++) {
-			if (i != 0) {
-				chkIds += ",";
-				chkNames += ",";
-			}
-			chkIds += nodes[i].id;
-			chkNames += nodes[i].name;
-		}
-		layer.confirm('删除所选记录及其下级记录:<br>' + chkNames, {icon: 3, title:'提示'}, function(index){
-			$.ajax({
-				type : 'POST',
-				dataType : "json",
-				data : {"ids" : chkIds},
-				url : basePath + '/menu/delRecodes',
-				success : function(data) {
-					layer.close(index);
-					menuTree.reAsyncChildNodes(null, "refresh");
-				},
-				error: function (XMLHttpRequest, textStatus, errorThrown) {
-					layer.close(index);
-					layer.alert("error:" + errorThrown);
-		        }
-			});
-		});
-	} else {
-		layer.alert("请选择记录");
-	}
+    // 获取选择节点
+    var nodes = menuTree.getCheckedNodes(true);
+    if (nodes.length > 0) {
+        var chkIds = "";
+        var chkNames = "";
+        for (var i = 0; i < nodes.length; i++) {
+            if (i != 0) {
+                chkIds += ",";
+                chkNames += ",";
+            }
+            chkIds += nodes[i].id;
+            chkNames += nodes[i].name;
+        }
+        layer.confirm('删除所选记录及其下级记录:<br>' + chkNames, {
+            icon : 3,
+            title : '提示'
+        }, function(index) {
+            $.ajax({
+                type : 'POST',
+                dataType : "json",
+                data : {
+                    "ids" : chkIds
+                },
+                url : basePath + '/menu/delRecodes',
+                success : function(data) {
+                    layer.close(index);
+                    menuTree.reAsyncChildNodes(null, "refresh");
+                },
+                error : function(XMLHttpRequest, textStatus, errorThrown) {
+                    layer.close(index);
+                    layer.alert("error:" + errorThrown);
+                }
+            });
+        });
+    } else {
+        layer.alert("请选择记录");
+    }
 };
 
 /**
  * 刷新菜单
  */
 function refresh() {
-	menuTree.reAsyncChildNodes(null, "refresh");
+    menuTree.reAsyncChildNodes(null, "refresh");
 };
 
 /**
  * 保存数据
  */
 function save() {
-	$.ajax({
-		type : "post",
-		url : basePath + '/menu/save',
-		dataType:'json',
-		data : $('#editForm').serialize(), //表单序列化,获取数据
-		success : function(data) {
-			// 成功删除后刷新页面
-			if (data && data.success == true) {
-				layer.alert("数据已成功保存!");
-				closeWin();
-				menuTree.reAsyncChildNodes(null, "refresh");
-			} else {
-				layer.alert("数据保存失败!");
-			}
-		}, //操作成功后的操作!data是后台传过来的值 
-		error: function (XMLHttpRequest, textStatus, errorThrown) {
-			layer.alert("error:" + errorThrown);
+    $.ajax({
+        type : "post",
+        url : basePath + '/menu/save',
+        dataType : 'json',
+        data : $('#editForm').serialize(), // 表单序列化,获取数据
+        success : function(data) {
+            // 成功删除后刷新页面
+            if (data && data.success == true) {
+                layer.alert("数据已成功保存!");
+                closeWin();
+                menuTree.reAsyncChildNodes(null, "refresh");
+            } else {
+                layer.alert("数据保存失败!");
+            }
+        }, // 操作成功后的操作!data是后台传过来的值
+        error : function(XMLHttpRequest, textStatus, errorThrown) {
+            layer.alert("error:" + errorThrown);
         }
-	});
+    });
 }
 
 /**
  * 关闭窗口
  */
 function closeWin() {
-	hideModelDialog("editWin");
+    hideModelDialog("editWin");
 }
 
 /**
  * 保存按钮数据
  */
 function btnSave() {
-	$.ajax({
-		type : "post",
-		url : basePath + '/btn/save',
-		dataType:'json',
-		data : $('#editBtnForm').serialize(), //表单序列化,获取数据
-		success : function(data) {
-			// 成功删除后刷新页面
-			if (data && data.success == true) {
-				layer.alert("数据已成功保存!");
-				closeBtnWin();
-				menuTree.reAsyncChildNodes(null, "refresh");
-			} else {
-				layer.alert("数据保存失败!");
-			}
-		}, //操作成功后的操作!data是后台传过来的值 
-		error: function (XMLHttpRequest, textStatus, errorThrown) {
-			layer.alert("error:" + errorThrown);
+    $.ajax({
+        type : "post",
+        url : basePath + '/btn/save',
+        dataType : 'json',
+        data : $('#editBtnForm').serialize(), // 表单序列化,获取数据
+        success : function(data) {
+            // 成功删除后刷新页面
+            if (data && data.success == true) {
+                layer.alert("数据已成功保存!");
+                closeBtnWin();
+                menuTree.reAsyncChildNodes(null, "refresh");
+            } else {
+                layer.alert("数据保存失败!");
+            }
+        }, // 操作成功后的操作!data是后台传过来的值
+        error : function(XMLHttpRequest, textStatus, errorThrown) {
+            layer.alert("error:" + errorThrown);
         }
-	});
+    });
 }
 
 /**
  * 关闭按钮窗口
  */
 function closeBtnWin() {
-	hideModelDialog("editBtnWin");
+    hideModelDialog("editBtnWin");
 }

+ 200 - 0
gkaqv2/trunk/modules/web/src/main/webapp/static/js/frame/param.js

@@ -0,0 +1,200 @@
+var grid_selector = "#grid-table";
+var pager_selector = "#grid-pager";
+
+$(document).ready(function() {
+    initGrid();
+});
+
+/**
+ * 初始化Grid
+ */
+function initGrid() {
+    resizePageGrid(grid_selector);
+    // 数据表格初始化
+    $(grid_selector).jqGrid({
+        url : basePath + '/param/list',
+        mtype : "POST", // 提交方式
+        datatype : "json",
+        height : "auto",
+        colNames : [
+                '唯一标识', '参数主键', '参数值', '所属类', '属性描述'
+        ],
+        colModel : [
+                {
+                    name : 'id',
+                    index : 'id',
+                    key : true,
+                    hidden : true,
+                    sortable : false
+                }, {
+                    name : 'key',
+                    index : 'key',
+                    sortable : false
+                }, {
+                    name : 'value',
+                    index : 'value',
+                    sortable : false
+                }, {
+                    name : 'clazz',
+                    index : 'clazz',
+                    sortable : false
+                }, {
+                    name : 'disp',
+                    index : 'disp',
+                    sortable : false
+                }
+        ],
+        rowNum : _rowNum, // 每页显示记录数
+        rowList : _rowList, // 用于改变显示行数的下拉列表框的元素数组。
+        pager : pager_selector, // 定义翻页用的导航栏
+        rownumbers : true,
+        altRows : true, // 设置为交替行表格,默认为false
+        multiselect : true, // 可以多选
+        loadComplete : function() {
+            var table = this;
+            setTimeout(function() {
+                updatePagerIcons(table);
+                enableTooltips(table);
+            }, 0);
+        },
+        prmNames : {
+            oper : "oper",
+            page : "page",
+            rows : "rows",
+            sort : "sidx",
+            order : "sord"
+        },
+        jsonReader : {
+            root : "list", // json中代表实际模型数据的入口
+            page : "page", // json中代表当前页码的数据
+            total : "pages", // json中代表页码总数的数据
+            records : "total", // json中代表数据行总数的数据
+            repeatitems : false // 如果设为false,则jqGrid在解析json时,会根据name来搜索对应的数据元素
+        },
+        gridComplete : function() {
+            comGridComplete("grid-table", "editRecord");
+        },
+        onPaging : function() {
+            comGridPage("grid-table");
+        }
+    });
+    // 调整jqgrid
+    ajustJqGrid(grid_selector, pager_selector);
+};
+
+/**
+ * 新增
+ */
+function addInfo() {
+    // 清空表单信息
+    comClearFormData("#editForm");
+    // 弹出模态框
+    showModelDialog("editWin", "新增");
+};
+
+/**
+ * 编辑
+ */
+function editInfo() {
+    // 获取选择行
+    var ids = getMultiData(grid_selector);
+    if (isNull(ids) || ids.indexOf(",") != -1) {
+        layer.alert("请选择且只选择一条记录");
+    } else {
+        $.ajax({
+            type : 'POST',
+            dataType : "json",
+            data : {
+                "id" : ids
+            },
+            url : basePath + '/param/getRecord',
+            success : function(data) {
+                $("#id").val(data.id);
+                $("#key").val(data.key);
+                $("#value").val(data.value);
+                $("#clazz").val(data.clazz);
+                $("#disp").val(data.disp);
+                showModelDialog("editWin", "编辑");
+            },
+            error : function(XMLHttpRequest, textStatus, errorThrown) {
+                layer.alert("error:" + errorThrown);
+            }
+        });
+    }
+};
+
+/**
+ * 删除
+ */
+function delInfo() {
+    // 获取选择行
+    var ids = getMultiData(grid_selector);
+    if (!isNull(ids)) {
+        layer.confirm('确定删除吗?', {
+            icon : 3,
+            title : '提示'
+        }, function(index) {
+            $.ajax({
+                type : 'POST',
+                dataType : "json",
+                data : {
+                    "ids" : ids
+                },
+                url : basePath + '/param/delRecodes',
+                success : function(data) {
+                    layer.close(index);
+                    searchRecord();
+                },
+                error : function(XMLHttpRequest, textStatus, errorThrown) {
+                    layer.close(index);
+                    layer.alert("error:" + errorThrown);
+                }
+            });
+        });
+    } else {
+        layer.alert("请选择记录");
+    }
+};
+
+/**
+ * 查询
+ */
+function searchRecord() {
+    var srh_key = $("#srh_key").val();
+    $(grid_selector).jqGrid('setGridParam', {
+        url : basePath + "/param/list?key=" + srh_key,
+        page : 1
+    }).trigger("reloadGrid");
+};
+
+/**
+ * 保存数据
+ */
+function save() {
+    $.ajax({
+        type : "post",
+        url : basePath + '/param/save',
+        dataType : 'json',
+        data : $('#editForm').serialize(), // 表单序列化,获取数据
+        success : function(data) {
+            // 成功删除后刷新页面
+            if (data && data.success == true) {
+                layer.alert("数据已成功保存!");
+                closeWin();
+                searchRecord();
+            } else {
+                layer.alert("数据保存失败!");
+            }
+        }, // 操作成功后的操作!data是后台传过来的值
+        error : function(XMLHttpRequest, textStatus, errorThrown) {
+            layer.alert("error:" + errorThrown);
+        }
+    });
+}
+
+/**
+ * 关闭窗口
+ */
+function closeWin() {
+    hideModelDialog("editWin");
+}