Sfoglia il codice sorgente

用户管理功能添加组织树

git-svn-id: https://192.168.57.71/svn/jsgkj@972 931142cf-59ea-a443-aa0e-51397b428577
ld_zhouk 8 anni fa
parent
commit
5825ed0c58

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

@@ -15,6 +15,7 @@ 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.ComboBoxDto;
+import com.xt.js.gkaq.frame.model.OrgModel;
 import com.xt.js.gkaq.frame.model.OrgModelDto;
 import com.xt.js.gkaq.frame.service.OrgService;
 import com.xt.js.gkaq.web.vo.OrgVo;
@@ -143,4 +144,12 @@ public class OrgCtl extends BaseCtl {
         return JSONArray.toJSONString(list);
     }
 
+    @RequestMapping("tree")
+    @ResponseBody
+    public String initOrgTree() {
+
+        List<OrgModel> list = orgService.initOrgTree();
+        return JSONArray.toJSONString(list);
+    }
+
 }

+ 7 - 3
gkaqv2/trunk/modules/web/src/main/java/com/xt/js/gkaq/web/ctl/UserCtl.java

@@ -4,6 +4,7 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.List;
 
+import org.apache.shiro.crypto.hash.Sha256Hash;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -14,7 +15,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.xt.js.gkaq.common.BaseCtl;
 import com.xt.js.gkaq.common.GlobalData;
-import com.xt.js.gkaq.frame.model.OrgModelDto;
 import com.xt.js.gkaq.frame.model.UserGroupModel;
 import com.xt.js.gkaq.frame.model.UserInfoModel;
 import com.xt.js.gkaq.frame.model.UserModel;
@@ -66,6 +66,9 @@ public class UserCtl extends BaseCtl {
         if (StringUtils.isNotEmpty(vo.getLoginName())) {
             model.setLoginName("%" + vo.getLoginName() + "%");
         }
+        if (StringUtils.isNotEmpty(vo.getOrgid())) {
+            model.setOrgid(vo.getOrgid());
+        }
 		List<UserModel> list = userService.findAllByCond(model);
 		PageInfo<UserModel> pageResult = new PageInfo<>(list);
 		return pageResult;
@@ -94,8 +97,9 @@ public class UserCtl extends BaseCtl {
         if(StringUtils.isEmpty(vo.getId())) {
             UserModel model = new UserModel();
             BeanUtils.copyProperties(vo, model);
-            // µÇ¼ÃÜÂë TODO
-            model.setLoginPassword("1234");
+            // µÇ¼ÃÜÂë:123456
+            String pwd = new Sha256Hash("123456").toHex();
+            model.setLoginPassword(pwd);
             userService.add(model);
             UserInfoModel userInfoModel = new UserInfoModel();
             BeanUtils.copyProperties(vo, userInfoModel);

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

@@ -4,7 +4,6 @@
 &emsp;&emsp;<a href="#" onclick="linkUrl('user')">用户管理</a><br>
 &emsp;&emsp;<a href="#" onclick="linkUrl('menu')">菜单管理</a><br>
 &emsp;&emsp;<a href="#" onclick="linkUrl('jyr')">经营人管理</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('xzqh')">行政区划管理</a><br>
 &emsp;&emsp;<a href="#" onclick="linkUrl('param')">参数管理</a><br>

+ 14 - 4
gkaqv2/trunk/modules/web/src/main/webapp/WEB-INF/view/user/main.jsp

@@ -7,12 +7,14 @@
 <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/static/js/common/bootstrap-select/css/bootstrap-select.min.css" />
 <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/static/js/common/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" />
 <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/static/js/common/bootstrap-validator/css/bootstrapValidator.min.css" />
+<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/bootstrap-select/js/bootstrap-select.min.js"></script>
 <script type="text/javascript" src="<%=request.getContextPath()%>/static/js/common/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script>
 <script type="text/javascript" src="<%=request.getContextPath()%>/static/js/common/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
 <script type="text/javascript" src="<%=request.getContextPath()%>/static/js/common/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"></script>
 <script type="text/javascript" src="<%=request.getContextPath()%>/static/js/common/bootstrap-validator/js/bootstrapValidator.min.js"></script>
 <script type="text/javascript" src="<%=request.getContextPath()%>/static/js/common/bootstrap-validator/js/language/zh_CN.js"></script>
+<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/user/index.js"></script>
 </head>
 <body class="p_body">
@@ -55,10 +57,18 @@
                             </tr>
                         </table>
                     </div>
-                    <div class="page-content">
-                        <!--列表部分-->
-                        <table id="grid-table"></table>
-                        <div id="grid-pager"></div>
+                    <div class="container page-content">
+                        <div class="row clearfix">
+                            <div class="col-md-3 column page-content-tree">
+                                <!-- 组织树 -->
+                                <div id="orgTree" class="ztree"></div>
+                            </div>
+                            <div class="col-md-9 column page-content-grid">
+                                <!-- 列表部分 -->
+                                <table id="grid-table"></table>
+                                <div id="grid-pager"></div>
+                            </div>
+                        </div>
                     </div>
                 </div>
             </div>

+ 12 - 0
gkaqv2/trunk/modules/web/src/main/webapp/static/css/common/basic.css

@@ -95,12 +95,24 @@ body {
 .sidebar + .main-content {
   margin-left: 190px;
 }
+.page-content-tree {
+  margin: 0;
+  padding: 0px 0px 0px;
+  height: 400px;
+  overflow-x: auto;
+  overflow-y: scroll;
+}
+.page-content-grid {
+  margin: 0;
+  padding-left: 0px;
+}
 .page-content {
   background-color: #ffffff;
   position: relative;
   margin: 0;
   padding: 0px 0px 0px;
   border:1px solid #939393;
+  width: 1280px;
 }
 .page-header {
   margin: 0 0 12px;

+ 19 - 0
gkaqv2/trunk/modules/web/src/main/webapp/static/js/common/common.js

@@ -203,6 +203,25 @@ function resizePageGrid(grid_selector) {
 	});
 }
 
+function resizeTreePageGrid(grid_selector) {
+    $(window).on('resize.jqGrid', function() {
+        $(grid_selector).jqGrid('setGridWidth', $(".page-content-grid").width());
+    });
+    //resize on sidebar collapse/expand
+    var parent_column = $(grid_selector).closest('[class*="col-"]');
+    $(document).on(
+        'settings.ace.jqGrid',
+        function(ev, event_name, collapsed) {
+            if (event_name === 'sidebar_collapsed'
+                || event_name === 'main_container_fixed') {
+            setTimeout(function() {
+                $(grid_selector).jqGrid('setGridWidth',
+                        parent_column.width());
+            }, 0);
+        }
+    });
+}
+
 function ajustJqGrid(grid_selector, pager_selector) {
 	$(window).triggerHandler('resize.jqGrid');//trigger window resize to make the grid get the correct size
 	// 隐藏水平垂直滚动条

+ 37 - 3
gkaqv2/trunk/modules/web/src/main/webapp/static/js/user/index.js

@@ -1,5 +1,31 @@
 var grid_selector = "#grid-table";
 var pager_selector = "#grid-pager";
+var orgTree;
+//zTree的参数配置,setting主要是设置一些tree的属性,是本地数据源,还是远程,动画效果,是否含有复选框等等
+var setting = {
+ async : {
+     enable : true,
+     type : 'post',
+     url : basePath + "/org/tree"
+ },
+ data : {
+     // 简单的数据源
+     simpleData : {
+         enable : true,
+         idKey : "id",
+         pIdKey : "pid",
+         rootPId : 0
+     // 根节点
+     }
+ },
+ callback : {
+     onClick : orgTreeOnClick
+ }
+};
+
+function orgTreeOnClick(event, treeId, treeNode) {
+    searchRecord(treeNode.id);
+};
 
 jQuery(function($) {
     $('#myForm').bootstrapValidator({
@@ -60,6 +86,8 @@ jQuery(function($) {
     $('#myModal').on('hide.bs.modal', function() {
         $('#myForm').bootstrapValidator('resetForm', false);
     });
+    // 初始化zTree对象
+    orgTree = $.fn.zTree.init($("#orgTree"), setting);
 });
 
 /**
@@ -67,7 +95,7 @@ jQuery(function($) {
  */
 function initGrid() {
     // resize to fit page size
-    resizePageGrid(grid_selector);
+    resizeTreePageGrid(grid_selector);
     // 数据表格初始化
     jQuery(grid_selector).jqGrid({
         url : basePath + '/user/list',
@@ -189,7 +217,9 @@ function editInfo() {
             success : function(data) {
                 $("#id").val(data.id);
                 $("#realName").val(data.realName);
+                $("#realName").attr('readonly', 'readonly');
                 $("#loginName").val(data.loginName);
+                $("#loginName").attr('readonly', 'readonly');
                 $("#orgid").selectpicker('val', data.orgid);
                 changeSzd();
                 $("#groupid").selectpicker('val', data.groupid);
@@ -273,11 +303,15 @@ function delInfo() {
 /**
  * 查询信息
  */
-function searchRecord() {
+function searchRecord(orgId) {
     var realName = encodeURI(encodeURI($("#srh_realName").val()));
     var loginName = $("#srh_loginName").val();
+    var orgIdStr = "";
+    if (!isNull(orgId)) {
+        orgIdStr = "&orgid=" + orgId;
+    }
     $(grid_selector).jqGrid('setGridParam', {
-        url : basePath + "/user/list?realName=" + realName + "&loginName=" + loginName,
+        url : basePath + "/user/list?realName=" + realName + "&loginName=" + loginName + orgIdStr,
         page : 1
     }).trigger("reloadGrid");
 };