添加角色维护权限判断 和功能分配 权限功能
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java
index 9ccc7c9..21f1977 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java
@@ -23,4 +23,12 @@
     TRole findByRoleCodeAndRoleIdNot(String roleCode, String roleId);
 
     TRole findByRoleName(String roleName);
+
+    Page<TRole> findAllByGradeNotAndRoleNameContaining(int grade,String roleName,Pageable pageable);
+
+    Page<TRole> findAllByGradeAndRoleNameContaining(int grade,String roleName,Pageable pageable);
+
+    Page<TRole> findAllByGradeNot(int grade,Pageable pageable);
+
+    Page<TRole> findAllByGrade(int grade,Pageable pageable);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java
index d1f2d37..d4abd47 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java
@@ -18,12 +18,21 @@
 
     List<TRoleFunction> findByRoleId(String roleId);
 
-    @Query(value = " select f.id||'' as id ,f.parentid||'' as pid,f.name,case when rf.id is null then 0 else 1 end as checked,case when f.parentid=-1 then 1 else 0 end as open from tb_function f " +
+    @Query(value = "select tt.id,tt.pid,tt.name,tt.checked,tt.open from ( " +
+            "select f.id||'' as id ,f.parentid||'' as pid,f.name,case when rf.id is null then 0 else 1 end as checked,case when f.parentid=-1 then 1 else 0 end as open,f.ordernum as ordernum  from tb_function f " +
             " left join tb_role_function rf on rf.functionid = f.id and rf.roleid=?1  " +
             " union all " +
-            " select r.id||'_res' as id,r.function_id||'' as pid,r.name,case when p.id is null then 0 else 1 end as checked,0 as open from tb_resource  r " +
-            " left join tb_permission p on p.resid = r.id and p.roleid=?1 " , nativeQuery = true)
+            " select r.id||'_res' as id,r.function_id||'' as pid,r.name,case when p.id is null then 0 else 1 end as checked,0 as open,999 as ordernum from tb_resource  r " +
+            " left join tb_permission p on p.resid = r.id and p.roleid=?1 ) tt order by ordernum " , nativeQuery = true)
     List<NodeData> findByRoleIdNative(String roleId);
 
+    @Query(value = "select tt.id,tt.pid,tt.name,tt.checked,tt.open from ( " +
+            " select f.id||'' as id ,f.parentid||'' as pid,f.name,case when rf.id is null then 0 else 1 end as checked,case when f.parentid=-1 then 1 else 0 end as open,f.ordernum as ordernum  from tb_function f " +
+            " left join tb_role_function rf on rf.functionid = f.id and rf.roleid=?1 where f.grade>?2 " +
+            " union all " +
+            " select r.id||'_res' as id,r.function_id||'' as pid,r.name,case when p.id is null then 0 else 1 end as checked,0 as open,999 as ordernum from tb_resource  r " +
+            " left join tb_permission p on p.resid = r.id and p.roleid=?1 ) tt order by ordernum " , nativeQuery = true)
+    List<NodeData> findByRoleIdAndGradeNative(String roleId,int grade);
+
     void deleteByRoleId(String roleId);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
index 2f3b83c..fcbcf38 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
@@ -35,6 +35,9 @@
   @Column(name="LASTSAVED", length = 14)
   private String lastsaved;
 
+  @Column(name = "GRADE",length = 3)
+  private Integer grade;
+
   public Integer getId() {
     return id;
   }
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java
index a936e97..a81fe29 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java
@@ -774,7 +774,7 @@
         return null;

     }

 

-    @Transactional

+    @Transactional(readOnly = true)

     @Override

     public List<TDoorcardlstInfo> getOperatorCardListMap( String allocatStartDate, String allocatEndDate, String devname, String custname, String cardno, String syncflag, String operflag, String buildingid, String regionid, String operRegionid) {

         try {

@@ -926,7 +926,7 @@
         return null;

     }

 

-    @Transactional

+    @Transactional(readOnly = true)

     @Override

     public List<TDoorcardlstInfo> getBuildingOperCardListMap(String allocatStartDate, String allocatEndDate, String devname, String custname, String cardno, String syncflag, String operflag, String buildingid, String operid) {

         try {

diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java b/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java
index 3efac1b..fc0ee59 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java
@@ -1,6 +1,7 @@
 package com.supwisdom.dlpay.system.controller;
 
 import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.framework.domain.TOperator;
 import com.supwisdom.dlpay.framework.domain.TRole;
 import com.supwisdom.dlpay.framework.util.PageResult;
 import com.supwisdom.dlpay.framework.util.WebConstant;
@@ -11,6 +12,7 @@
 import com.supwisdom.dlpay.system.service.SystemService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
@@ -35,7 +37,8 @@
     @ResponseBody
     public PageResult<TRole> getDataList(@RequestParam("page") Integer pageNo,
                                          @RequestParam("limit") Integer pageSize,
-                                         @RequestParam(value = "searchkey", required = false) String searchKey) {
+                                         @RequestParam(value = "searchkey", required = false) String searchKey,
+                                         @AuthenticationPrincipal TOperator operUser) {
         try {
             if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
             if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
@@ -43,7 +46,7 @@
             searchBean.setPageNo(pageNo);
             searchBean.setFunctioname(searchKey);
             searchBean.setPageSize(pageSize);
-            return roleService.getRolesByKey(searchBean);
+            return roleService.getRolesByKey(searchBean,operUser.getOpertype());
         } catch (Exception e) {
             e.printStackTrace();
             return new PageResult<>(99, "系统查询错误");
@@ -82,8 +85,8 @@
 
     @GetMapping("/role/func")
     @ResponseBody
-    public JsonResult func(@RequestParam String roleId) {
-        List<ZTreeNode> nodes = roleService.findByRoleIdNative(roleId);
+    public JsonResult func(@RequestParam String roleId,@AuthenticationPrincipal TOperator operUser) {
+        List<ZTreeNode> nodes = roleService.findByRoleIdNative(roleId,operUser.getOpertype());
         JsonResult result = JsonResult.ok();
         result.put("node", nodes);
         return result;
diff --git a/src/main/java/com/supwisdom/dlpay/system/dao/impl/ManagerDaoImpl.java b/src/main/java/com/supwisdom/dlpay/system/dao/impl/ManagerDaoImpl.java
index 3a40774..eeba7c6 100644
--- a/src/main/java/com/supwisdom/dlpay/system/dao/impl/ManagerDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/impl/ManagerDaoImpl.java
@@ -200,7 +200,7 @@
     @Transactional

     @Override

     public TRole getOperRoleById(String operid) {

-        String sql = "select a.roleid,a.createtime,a.editflag,a.lastsaved,a.rolecode,a.roledesc,a.rolename " +

+        String sql = "select a.roleid,a.createtime,a.editflag,a.lastsaved,a.rolecode,a.roledesc,a.rolename,a.grade  " +

                 " from Tb_Role a left join tb_oper_role b on a.roleid = b.roleid where b.operid=?1 ";

         Query query = entityManager.createNativeQuery(sql, TRole.class);

         query.setParameter(1, operid);

diff --git a/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java b/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java
index 6acfe7d..ef1a3d1 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java
@@ -27,7 +27,7 @@
     TRoleFunction findRoleFunctionByRoleIdAndFunctionId(String roleid, Integer functionid);
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
-    PageResult<TRole> getRolesByKey(FunctionSearchBean param);
+    PageResult<TRole> getRolesByKey(FunctionSearchBean param,String operType);
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     JsonResult saveRole(TRole role);
@@ -42,7 +42,7 @@
     JsonResult saveRoleFuncId(String roleId, String funcs);
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
-    List<ZTreeNode> findByRoleIdNative(String roleId);
+    List<ZTreeNode> findByRoleIdNative(String roleId,String operType);
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     JsonResult deleteRole(String roleid);
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
index c96485c..03af7fb 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
@@ -67,13 +67,25 @@
     }
 
     @Override
-    public PageResult<TRole> getRolesByKey(FunctionSearchBean param) {
+    public PageResult<TRole> getRolesByKey(FunctionSearchBean param,String operType) {
         Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()
                 , Sort.by("createtime"));
-        if (!StringUtil.isEmpty(param.getFunctioname())) {
-            return new PageResult<>(roleDao.findAllByRoleNameContaining(param.getFunctioname(), pageable));
+        if (operType.equals("P") || operType.equals("S")) {
+            if (!StringUtil.isEmpty(param.getFunctioname())) {
+                return new PageResult<>(roleDao.findAllByRoleNameContaining(param.getFunctioname(), pageable));
+            }
+            return new PageResult<>(roleDao.findAll(pageable));
+        }else if (operType.equals("H")){
+            if (!StringUtil.isEmpty(param.getFunctioname())) {
+                return new PageResult<>(roleDao.findAllByGradeNotAndRoleNameContaining(1,param.getFunctioname(), pageable));
+            }
+            return new PageResult<>(roleDao.findAllByGradeNot(1,pageable));
+        }else {
+            if (!StringUtil.isEmpty(param.getFunctioname())) {
+                return new PageResult<>(roleDao.findAllByGradeAndRoleNameContaining(3,param.getFunctioname(), pageable));
+            }
+            return new PageResult<>(roleDao.findAllByGrade(3,pageable));
         }
-        return new PageResult<>(roleDao.findAll(pageable));
     }
 
     @Override
@@ -135,6 +147,7 @@
                 permission.setRoleId(roleId);
                 permissionDao.save(permission);
             } else {
+                if ("-1".equals(func)) continue; //全选排除
                 TRoleFunction roleFunction = new TRoleFunction();
                 roleFunction.setFunctionId(Integer.valueOf(func));
                 roleFunction.setRoleId(roleId);
@@ -145,18 +158,34 @@
     }
 
     @Override
-    public List<ZTreeNode> findByRoleIdNative(String roleId) {
-        List<NodeData> nodeData = roleFunctionDao.findByRoleIdNative(roleId);
+    public List<ZTreeNode> findByRoleIdNative(String roleId,String operType) {
+        List<NodeData> nodeData = null;
+        if (operType.equals("P") || operType.equals("S")) {
+            nodeData  = roleFunctionDao.findByRoleIdNative(roleId);
+        }else if (operType.equals("H")){
+            nodeData = roleFunctionDao.findByRoleIdAndGradeNative(roleId, 1);//区域管理员取等级大于1的
+        }else if (operType.equals("L")){
+            nodeData = roleFunctionDao.findByRoleIdAndGradeNative(roleId, 2);//楼栋管理员取等级大于2的
+        }
         List<ZTreeNode> ret = new ArrayList<>();
+        boolean allChecked = true;
         for (NodeData data : nodeData) {
             ZTreeNode zTreeNode = new ZTreeNode();
             zTreeNode.setpId(data.getPid());
             zTreeNode.setId(data.getId());
             zTreeNode.setName(data.getName());
-            zTreeNode.setChecked(data.getChecked() == 0 ? false : true);
-            zTreeNode.setOpen(data.getOpen() == 0 ? false : true);
+            zTreeNode.setChecked(data.getChecked() != 0);
+            if (allChecked && !zTreeNode.isChecked()) allChecked = false;
+            zTreeNode.setOpen(data.getOpen() != 0);
             ret.add(zTreeNode);
         }
+        ZTreeNode root = new ZTreeNode();
+        root.setId("-1");
+        root.setpId("-99");
+        root.setName("选择全部功能");
+        root.setChecked(allChecked);
+        root.setOpen(true);
+        ret.add(root);
         return ret;
     }
 
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 4859272..4d0024e 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -68,29 +68,33 @@
 -- ----------------------------

 -- Records of tb_function

 -- ----------------------------

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (1, NULL, 0, NULL, 'layui-icon-home', '#', '主页', 1, -1);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (2, NULL, 1, NULL, 'layui-icon-home', '/home/console', '控制台', 2, 1);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (3, NULL, 0, NULL, 'layui-icon-set', '#', '系统中心', 10, -1);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (5, NULL, 1, NULL, 'layui-icon-set', '/role/index', '角色管理', 12, 3);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (7, NULL, 1, NULL, 'layui-icon-engine', '/ncmgr/devindex', '设备管理', 21, 6);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (8, NULL, 1, NULL, 'layui-icon-engine', '/ncmgr/timeindex', '时间段管理', 22, 6);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (9, NULL, 1, NULL, 'layui-icon-engine', '/ncmgr/timegrpindex', '时间组管理', 23, 6);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (10, NULL, 1, NULL, 'layui-icon-engine', '/ncmgr/weektimeindex', '时间周管理', 24, 6);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (11, NULL, 1, NULL, 'layui-icon-engine', '/ncmgr/devweek', '设备时间周管理', 25, 6);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (12, NULL, 0, NULL, 'layui-icon-app', '#', '集控中心', 30, -1);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (13, NULL, 1, NULL, 'layui-icon-app', '/system/dictionary', '数据字典管理', 31, 12);

-/*INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (14, NULL, 1, NULL, 'layui-icon-app', '/system/queue', '任务调度管理', 32, 12);*/

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (6, NULL, 0, NULL, 'layui-icon-engine', '#', '门控中心', 20, -1);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (15, NULL, 0, NULL, 'layui-icon-username', '#', '人员中心', 40, -1);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (18, NULL, 0, NULL, 'layui-icon-chart-screen', '#', '数据中心', 50, -1);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (20, NULL, 1, NULL, 'layui-icon-chart-screen', '/query/tdoorstream', '流水信息查询', 52, 18);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (19, NULL, 1, NULL, 'layui-icon-chart-screen', '/doorlistMgr/searchDoorlist', '设备名单查询', 51, 18);

-/*INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (16, NULL, 1, NULL, 'layui-icon-username', '/doorlistMgr/downDoorList', '下发门禁名单', 41, 15);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (17, NULL, 1, NULL, 'layui-icon-username', '/doorlistMgr/deleteDoorList', '删除门禁名单', 42, 15);*/

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (21, NULL, 1, NULL, 'layui-icon-username', '/function/index', '功能管理', 13, 3);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (22, NULL, 1, NULL, 'layui-icon-app', '/system/regionindex', '区域管理', 33, 12);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (23, NULL, 1, NULL, 'layui-icon-app', '/system/buildingindex', '楼栋管理', 34, 12);

-INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (24, NULL, 1, NULL, 'layui-icon-set', '/operator/operatorindex', '操作员维护', 13, 3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (1, NULL, 0, NULL, 'layui-icon-home', '#', '主页', 1, -1,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (2, NULL, 1, NULL, 'layui-icon-home', '/home/console', '控制台', 2, 1,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (3, NULL, 0, NULL, 'layui-icon-set', '#', '系统中心', 10, -1,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (4, NULL, 1, NULL, 'layui-icon-set', '/role/index', '角色管理', 11, 3,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (5, NULL, 1, NULL, 'layui-icon-set', '/operator/operatorindex', '操作员管理', 12, 3,2);

+/*INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (6, NULL, 1, NULL, 'layui-icon-username', '/function/index', '功能管理', 13, 3,1);*/

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (7, NULL, 1, NULL, 'layui-icon-app', '/system/regionindex', '区域管理', 14, 3,2);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (8, NULL, 1, NULL, 'layui-icon-app', '/system/buildingindex', '楼栋管理', 15, 3,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (9, NULL, 0, NULL, 'layui-icon-engine', '#', '门控中心', 20, -1,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (10, NULL, 1, NULL, 'layui-icon-engine', '/ncmgr/devindex', '设备管理', 21, 9,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (11, NULL, 1, NULL, 'layui-icon-engine', '/ncmgr/timeindex', '时间段管理', 22, 9,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (12, NULL, 1, NULL, 'layui-icon-engine', '/ncmgr/timegrpindex', '时间组管理', 23, 9,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (13, NULL, 1, NULL, 'layui-icon-engine', '/ncmgr/weektimeindex', '时间周管理', 24, 9,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (14, NULL, 1, NULL, 'layui-icon-engine', '/ncmgr/devweek', '设备时间周管理', 25, 9,3);

+/*INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (15, NULL, 0, NULL, 'layui-icon-app', '#', '集控中心', 30, -1,1);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (16, NULL, 1, NULL, 'layui-icon-app', '/system/dictionary', '数据字典管理', 31, 15,1);*/

+/*INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (17, NULL, 1, NULL, 'layui-icon-app', '/system/queue', '任务调度管理', 32, 15,1);*/

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (18, NULL, 0, NULL, 'layui-icon-username', '#', '人员中心', 40, -1,3);

+/*INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (20, NULL, 1, NULL, 'layui-icon-username', '/doorlistMgr/downDoorList', '下发门禁名单', 41, 18,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (21, NULL, 1, NULL, 'layui-icon-username', '/doorlistMgr/deleteDoorList', '删除门禁名单', 42, 18,3);*/

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (22, NULL, 0, NULL, 'layui-icon-chart-screen', '#', '数据中心', 50, -1,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (23, NULL, 1, NULL, 'layui-icon-chart-screen', '/doorlistMgr/searchDoorlist', '设备名单查询', 51, 22,3);

+INSERT INTO tb_function(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid,grade) VALUES (24, NULL, 1, NULL, 'layui-icon-chart-screen', '/query/tdoorstream', '流水信息查询', 52, 22,3);

+

+

+

+

 

 -- ----------------------------

 -- Records of tb_operator

@@ -113,19 +117,18 @@
 INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23800000', 1, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

 INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23840001', 2, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

 INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23850002', 3, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23850006', 24, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23860007', 12, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23860008', 13, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2386000a', 22, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2386000b', 23, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2387000c', 6, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2387000d', 7, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2387000e', 8, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2387000f', 9, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23880010', 10, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23880011', 11, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23880012', 15, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23880015', 18, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23890016', 20, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23890017', 19, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

-INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23850004', 5, NULL, 'abcdefghijklmnopqrstuvwxyz012345');
\ No newline at end of file
+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23850006', 4, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23860007', 5, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+/*INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23860008', 6, NULL, 'abcdefghijklmnopqrstuvwxyz012345');*/

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2386000a', 7, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2386000b', 8, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2387000c', 9, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2387000d', 10, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2387000e', 11, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee2387000f', 12, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23880010', 13, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23880011', 14, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23880012', 18, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23880015', 22, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23890016', 23, NULL, 'abcdefghijklmnopqrstuvwxyz012345');

+INSERT INTO tb_role_function(id,functionid,permissions,roleid) VALUES ('297eec826b97ecf8016b97ee23890017', 24, NULL, 'abcdefghijklmnopqrstuvwxyz012345');
\ No newline at end of file
diff --git a/src/main/resources/templates/system/role/form.html b/src/main/resources/templates/system/role/form.html
index 2595cd6..ab3466c 100755
--- a/src/main/resources/templates/system/role/form.html
+++ b/src/main/resources/templates/system/role/form.html
@@ -15,6 +15,18 @@
         </div>

     </div>

 

+    <div class="layui-form-item">

+        <label class="layui-form-label">角色等级</label>

+        <div class="layui-input-block">

+            <select name="grade" lay-verify="required|grade">

+                <option value="">请选择一个等级</option>

+                <option value="1">一级</option>

+                <option value="2">二级</option>

+                <option value="3">三级</option>

+            </select>

+        </div>

+    </div>

+

     <div class="layui-form-item model-form-footer">

         <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>

         <button class="layui-btn" lay-filter="form-submit" lay-submit  id="submitbtn">保存</button>

@@ -28,7 +40,9 @@
         var form = layui.form;

         var url = '[[@{/role/add}]]';

         // 回显user数据

+        form.render('select');

         var func = admin.getTempData('t_func');

+

         if (func) {

             $('input[name="roleId"]').attr('readonly', 'readonly');

             form.val('form', func);