Jelajahi Sumber

支持查询&统一样式(菜单管理,部门管理)

RuoYi 6 tahun lalu
induk
melakukan
8de7693f2e

+ 2 - 2
src/main/java/com/ruoyi/project/system/dept/controller/DeptController.java

@@ -42,9 +42,9 @@ public class DeptController extends BaseController
     @RequiresPermissions("system:dept:list")
     @GetMapping("/list")
     @ResponseBody
-    public List<Dept> list()
+    public List<Dept> list(Dept dept)
     {
-        List<Dept> deptList = deptService.selectDeptAll();
+        List<Dept> deptList = deptService.selectDeptList(dept);
         return deptList;
     }
 

+ 9 - 2
src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java

@@ -27,9 +27,16 @@ public interface DeptMapper
     public int checkDeptExistUser(Long deptId);
 
     /**
-     * 查询部门管理集合
+     * 查询部门管理数据
      * 
-     * @return 所有部门信息
+     * @return 部门信息集合
+     */
+    public List<Dept> selectDeptList(Dept dept);
+
+    /**
+     * 查询部门所有数据
+     * 
+     * @return 部门信息集合
      */
     public List<Dept> selectDeptAll();
 

+ 13 - 2
src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java

@@ -24,9 +24,20 @@ public class DeptServiceImpl implements IDeptService
     private DeptMapper deptMapper;
 
     /**
-     * 查询部门管理集合
+     * 查询部门管理数据
      * 
-     * @return 所有部门信息
+     * @return 部门信息集合
+     */
+    @Override
+    public List<Dept> selectDeptList(Dept dept)
+    {
+        return deptMapper.selectDeptList(dept);
+    }
+
+    /**
+     * 查询部门所有数据
+     * 
+     * @return 部门信息集合
      */
     @Override
     public List<Dept> selectDeptAll()

+ 11 - 4
src/main/java/com/ruoyi/project/system/dept/service/IDeptService.java

@@ -13,12 +13,19 @@ import com.ruoyi.project.system.dept.domain.Dept;
 public interface IDeptService
 {
     /**
-     * 查询部门管理集合
+     * 查询部门管理数据
      * 
-     * @return 所有部门信息
+     * @return 部门信息集合
+     */
+    public List<Dept> selectDeptList(Dept dept);
+
+    /**
+     * 查询部门所有数据
+     * 
+     * @return 部门信息集合
      */
     public List<Dept> selectDeptAll();
-    
+
     /**
      * 查询部门管理树
      * 
@@ -65,7 +72,7 @@ public interface IDeptService
      * @return 部门信息
      */
     public Dept selectDeptById(Long deptId);
-    
+
     /**
      * 校验部门名称是否唯一
      * 

+ 2 - 2
src/main/java/com/ruoyi/project/system/menu/controller/MenuController.java

@@ -44,9 +44,9 @@ public class MenuController extends BaseController
     @RequiresPermissions("system:menu:list")
     @GetMapping("/list")
     @ResponseBody
-    public List<Menu> list()
+    public List<Menu> list(Menu menu)
     {
-        List<Menu> menuList = menuService.selectMenuAll();
+        List<Menu> menuList = menuService.selectMenuList(menu);
         return menuList;
     }
 

+ 3 - 3
src/main/java/com/ruoyi/project/system/menu/domain/Menu.java

@@ -27,7 +27,7 @@ public class Menu extends BaseEntity
     /** 类型:0目录,1菜单,2按钮 */
     private String menuType;
     /** 菜单状态:0显示,1隐藏 */
-    private int visible;
+    private Integer visible;
     /** 权限字符串 */
     private String perms;
     /** 菜单图标 */
@@ -105,12 +105,12 @@ public class Menu extends BaseEntity
         this.menuType = menuType;
     }
 
-    public int getVisible()
+    public Integer getVisible()
     {
         return visible;
     }
 
-    public void setVisible(int visible)
+    public void setVisible(Integer visible)
     {
         this.visible = visible;
     }

+ 7 - 0
src/main/java/com/ruoyi/project/system/menu/mapper/MenuMapper.java

@@ -34,6 +34,13 @@ public interface MenuMapper
      * @return 菜单列表
      */
     public List<String> selectMenuTree(Long roleId);
+    
+    /**
+     * 查询系统菜单列表
+     * 
+     * @return 菜单列表
+     */
+    public List<Menu> selectMenuList(Menu menu);
 
     /**
      * 查询系统所有菜单

+ 7 - 0
src/main/java/com/ruoyi/project/system/menu/service/IMenuService.java

@@ -23,6 +23,13 @@ public interface IMenuService
      */
     public List<Menu> selectMenusByUserId(Long userId);
 
+    /**
+     * 查询系统菜单列表
+     * 
+     * @return 菜单列表
+     */
+    public List<Menu> selectMenuList(Menu menu);
+
     /**
      * 查询菜单集合
      * 

+ 11 - 0
src/main/java/com/ruoyi/project/system/menu/service/MenuServiceImpl.java

@@ -49,6 +49,17 @@ public class MenuServiceImpl implements IMenuService
         return TreeUtils.getChildPerms(menus, 0);
     }
 
+    /**
+     * 查询菜单集合
+     * 
+     * @return 所有菜单信息
+     */
+    @Override
+    public List<Menu> selectMenuList(Menu menu)
+    {
+        return menuMapper.selectMenuList(menu);
+    }
+
     /**
      * 查询菜单集合
      * 

+ 12 - 0
src/main/resources/mybatis/system/DeptMapper.xml

@@ -28,6 +28,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<include refid="selectDeptVo"/>
 	</select>
 	
+	<select id="selectDeptList" parameterType="Dept" resultMap="DeptResult">
+        <include refid="selectDeptVo"/>
+        <where>
+			<if test="deptName != null and deptName != ''">
+				AND dept_name like concat('%', #{deptName}, '%')
+			</if>
+			<if test="status != null and status != ''">
+				AND status = #{status}
+			</if>
+		</where>
+    </select>
+	
 	<select id="checkDeptExistUser" parameterType="Long" resultType="int">
 		select count(*) from sys_user where dept_id = #{deptId}
 	</select>

+ 12 - 0
src/main/resources/mybatis/system/MenuMapper.xml

@@ -51,6 +51,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		order by m.parent_id, m.order_num
 	</select>
 	
+	<select id="selectMenuList" parameterType="Menu" resultMap="MenuResult">
+        <include refid="selectMenuVo"/>
+        <where>
+			<if test="menuName != null and menuName != ''">
+				AND menu_name like concat('%', #{menuName}, '%')
+			</if>
+			<if test="visible != null and visible != ''">
+				AND visible = #{visible}
+			</if>
+		</where>
+    </select>
+	
 	<select id="selectMenuAll" resultMap="MenuResult">
 		<include refid="selectMenuVo"/>
 	</select>

+ 2 - 2
src/main/resources/static/ajax/libs/jqTreeGrid/jquery.treegrid.css

@@ -8,9 +8,9 @@
 .treegrid-table{border:0 !important;margin-bottom:0}
 .treegrid-table tbody {display:block;height:auto;overflow-y:auto;}
 .treegrid-table thead, .treegrid-table tbody tr {display:table;width:100%;table-layout:fixed;}
-.treegrid-thead th{line-height:40px;border: 0 !important;background:#f3f3f4 !important;border-radius: 4px;border-left:1px solid #e7eaec !important;border-bottom:2px solid #e7eaec !important;text-align: center;}
+.treegrid-thead th{line-height:40px;border: 0 !important;background:#f3f3f4 !important;border-radius: 4px;border-left:0px solid #e7eaec !important;border-bottom:2px solid #e7eaec !important;text-align: center;}
 .treegrid-thead tr :first-child{border-left:0 !important}
-.treegrid-tbody td{border: 0 !important;border-left:1px solid #e7eaec !important;border-bottom:1px solid #e7eaec !important;overflow: hidden;
+.treegrid-tbody td{border: 0 !important;border-left:0px solid #e7eaec !important;border-bottom:1px solid #e7eaec !important;overflow: hidden;
     white-space: nowrap;
     text-overflow: ellipsis;}
 .treegrid-tbody tr :first-child{border-left:0 !important}

+ 2 - 2
src/main/resources/static/ajax/libs/jqTreeGrid/jquery.treegrid.extension.js

@@ -22,7 +22,7 @@
         }
         // 工具条在外层包装一下div,样式用的bootstrap-table的
         if(options.toolbar){
-            var _tool_div = $("<div class='fixed-table-toolbar' style='display:none;'></div>");
+            var _tool_div = $("<div class='fixed-table-toolbar'></div>");
             var _tool_left_div = $("<div class='bs-bars pull-left'></div>");
             _tool_left_div.append($(options.toolbar));
             _tool_div.append(_tool_left_div);
@@ -249,7 +249,7 @@
         expandAll : true, // 是否全部展开
         striped : false, // 是否各行渐变色
         columns : [],
-        toolbar: null,//顶部工具条
+        toolbar: '#toolbar',//顶部工具条
         height: 0,
         expanderExpandedClass : 'glyphicon glyphicon-chevron-down',// 展开的按钮的图标
         expanderCollapsedClass : 'glyphicon glyphicon-chevron-right'// 缩起的按钮的图标

+ 0 - 152
src/main/resources/static/ajax/libs/jqTreeGrid/tree.table.js

@@ -1,152 +0,0 @@
-/**
- * 初始化 Tree Table 的封装
- */
-(function () {
-    var TreeTable = function (tableId, url, columns) {
-        this.btInstance = null;					//jquery和bootstrapTreeTable绑定的对象
-        this.bstableId = tableId;
-        this.url = url;
-        this.method = "GET";
-        this.columns = columns;
-        this.data = {};// ajax的参数
-        this.expandColumn = null;// 展开显示的列 
-        this.id = 'menuId';// 选取记录返回的值
-        this.code = 'menuId';// 用于设置父子关系
-        this.parentCode = 'parentId';// 用于设置父子关系
-        this.expandAll = false;// 是否默认全部展开
-        this.toolbarId = tableId + "Toolbar";
-        this.height = 430;
-    };
-
-    TreeTable.prototype = {
-        /**
-         * 初始化bootstrap table
-         */
-        init: function () {
-            var tableId = this.bstableId;
-            this.btInstance =
-                $('#'+tableId).bootstrapTreeTable({
-                    id: this.id,// 选取记录返回的值
-                    code: this.code,// 用于设置父子关系
-                    parentCode: this.parentCode,// 用于设置父子关系
-                    rootCodeValue: this.rootCodeValue,//设置根节点code值----可指定根节点,默认为null,"",0,"0"
-                    type: this.method, //请求数据的ajax类型
-                    url: this.url,   //请求数据的ajax的url
-                    ajaxParams: this.data, //请求数据的ajax的data属性
-                    expandColumn: this.expandColumn,//在哪一列上面显示展开按钮,从0开始
-                    striped: true,   //是否各行渐变色
-                    expandAll: this.expandAll,  //是否全部展开
-                    columns: this.columns,		//列数组
-                    toolbar: "#" + this.toolbarId,//顶部工具条
-                    height: this.height,
-                });
-            return this;
-        },
-
-        /**
-         * 设置在哪一列上面显示展开按钮,从0开始
-         */
-        setExpandColumn: function (expandColumn) {
-            this.expandColumn = expandColumn;
-        },
-        /**
-         * 设置记录返回的id值
-         */
-        setIdField: function (id) {
-            this.id = id;
-        },
-        /**
-         * 设置记录分级的字段
-         */
-        setCodeField: function (code) {
-            this.code = code;
-        },
-        /**
-         * 设置记录分级的父级字段
-         */
-        setParentCodeField: function (parentCode) {
-            this.parentCode = parentCode;
-        },
-        /**
-         * 设置根节点code值----可指定根节点,默认为null,"",0,"0"
-         */
-        setRootCodeValue: function (rootCodeValue) {
-            this.rootCodeValue = rootCodeValue;
-        },
-        /**
-         * 设置是否默认全部展开
-         */
-        setExpandAll: function (expandAll) {
-        	this.expandAll = expandAll;
-        },
-        /**
-         * 设置表格高度
-         */
-        setHeight: function (height) {
-        	this.height = height;
-        },
-        /**
-         * 设置ajax post请求时候附带的参数
-         */
-        set: function (key, value) {
-            if (typeof key == "object") {
-                for (var i in key) {
-                    if (typeof i == "function")
-                        continue;
-                    this.data[i] = key[i];
-                }
-            } else {
-                this.data[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
-            }
-            return this;
-        },
-
-        /**
-         * 设置ajax get请求时候附带的参数
-         */
-        setData: function (data) {
-            this.data = data;
-            return this;
-        },
-
-        /**
-         * 清空ajax post请求参数
-         */
-        clear: function () {
-            this.data = {};
-            return this;
-        },
-
-        /**
-         * 刷新表格
-         */
-        refresh: function (parms) {
-            if (typeof parms != "undefined") {
-                this.btInstance.bootstrapTreeTable('refresh', parms.query);// 为了兼容bootstrap-table的写法
-            } else {
-                this.btInstance.bootstrapTreeTable('refresh');
-            }
-        },
-        
-        /**
-         * 设置高度
-         */
-        resetHeight: function(parms) {
-        	if (typeof parms != "undefined") {
-                this.btInstance.bootstrapTreeTable('resetHeight', parms.height);// 为了兼容bootstrap-table的写法
-            } else {
-                this.btInstance.bootstrapTreeTable('resetHeight');
-            }
-        },
-        
-        /**
-         * 获取选中行
-         */
-        getSelectedRow: function() {
-            return this.btInstance.bootstrapTreeTable('getSelections');
-        }
-    };
-
-    window.TreeTable = TreeTable;
-
-}());

+ 16 - 2
src/main/resources/static/ruoyi/js/ry-ui.js

@@ -100,10 +100,11 @@
         // 表格树封装处理
         treeTable: {
             _option: {},
+            _treeTable: {},
             // 初始化表格
             init: function(options) {
                 $.table._option = options;
-                $('#bootstrap-table').bootstrapTreeTable({
+                var treeTable = $('#bootstrap-table').bootstrapTreeTable({
         		    code : options.id,             // 用于设置父子关系
         	        parentCode : options.parentId, // 用于设置父子关系
         	    	type: 'get',                   // 请求方式(*)
@@ -115,7 +116,20 @@
         			expandAll : $.common.visible(options.expandAll), // 是否全部展开
         	        columns: options.columns
         	    });
-            }
+                $.treeTable._treeTable = treeTable;
+            },
+            // 条件查询
+            search: function(form) {
+            	var params = {};
+            	$.each($("#" + form).serializeArray(), function(i, field) {
+            		params[field.name] = field.value;
+		        });
+            	$.treeTable._treeTable.bootstrapTreeTable('refresh', params);
+            },
+            // 刷新
+            refresh: function() {
+            	$.treeTable._treeTable.bootstrapTreeTable('refresh');
+            },
         },
         // 表单封装处理
     	form: {

File diff ditekan karena terlalu besar
+ 0 - 0
src/main/resources/static/ruoyi/js/ry-ui.min.js


+ 32 - 12
src/main/resources/templates/system/dept/dept.html

@@ -3,20 +3,39 @@
 	  xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
 <meta charset="utf-8">
 <head th:include="include :: header"></head>
-<style type="text/css">
-.fixed-table-container{position:relative;clear:both;border:1px solid #ddd;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}
-</style>
 <body class="gray-bg">
-	<div class="wrapper wrapper-content">
-	    <div class="btn-group hidden-xs" id="toolbar" role="group">
-	    	<div class="form-group">
-	            <a type="button" class="btn btn-outline btn-default" onclick="$.operate.add(100)" shiro:hasPermission="system:dept:add">
+	<div class="container-div">
+		<div class="row">
+			<div class="col-sm-12 select-info">
+				<form id="operlog-form">
+					<div class="select-list gd">
+						<ul>
+							<li>
+								部门名称:<input type="text" name="deptName"/>
+							</li>
+							<li>
+								部门状态:<select name="status" th:with="type=${@dictService.selectDictData('sys_normal_disable')}">
+									<option value="">所有</option>
+									<option th:each="e : ${type}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option>
+								</select>
+							</li>
+							<li>
+								<a class="btn btn-primary btn-rounded btn-sm" onclick="$.treeTable.search($('form').attr('id'))"><i class="fa fa-search"></i>&nbsp;搜索</a>
+							</li>
+						</ul>
+					</div>
+				</form>
+			</div>
+                
+            <div class="btn-group hidden-xs" id="toolbar" role="group">
+		        <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add(100)" shiro:hasPermission="system:dept:add">
                     <i class="fa fa-plus"></i> 新增
                 </a>
-			</div>
-        </div>
-        
-		<table id="bootstrap-table" data-mobile-responsive="true"></table>
+	        </div>
+       		 <div class="col-sm-12 select-info order-table">
+	            <table id="bootstrap-table" data-mobile-responsive="true"></table>
+	        </div>
+	    </div>
 	</div>
 	<div th:include="include :: footer"></div>
 	<script th:inline="javascript">
@@ -91,7 +110,7 @@
 					success : function(result) {
 						if (result.code == web_status.SUCCESS) {
 		                	$.modal.alertSuccess(result.msg);
-		                	loading();
+		                	$.treeTable.refresh();
 		                } else {
 		                	$.modal.alertError(result.msg);
 		                }
@@ -99,6 +118,7 @@
 				});
 			});
 		}
+		
 	</script>
 </body>
 </html>

+ 32 - 11
src/main/resources/templates/system/menu/menu.html

@@ -2,21 +2,42 @@
 <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
 <meta charset="utf-8">
 <head th:include="include :: header"></head>
-<style type="text/css">
-.fixed-table-container{position:relative;clear:both;border:1px solid #ddd;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}
-</style>
 <body class="gray-bg">
-	<div class="wrapper wrapper-content">
-	    <div class="btn-group hidden-xs" id="toolbar" role="group">
-	    	<div class="form-group">
-	            <a type="button" class="btn btn-outline btn-default" onclick="$.operate.add(0)" shiro:hasPermission="system:menu:add">
+
+    <div class="container-div">
+		<div class="row">
+			<div class="col-sm-12 select-info">
+				<form id="operlog-form">
+					<div class="select-list gd">
+						<ul>
+							<li>
+								菜单名称:<input type="text" name="menuName"/>
+							</li>
+							<li>
+								菜单状态:<select name="visible" th:with="type=${@dictService.selectDictData('sys_show_hide')}">
+									<option value="">所有</option>
+									<option th:each="e : ${type}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option>
+								</select>
+							</li>
+							<li>
+								<a class="btn btn-primary btn-rounded btn-sm" onclick="$.treeTable.search($('form').attr('id'))"><i class="fa fa-search"></i>&nbsp;搜索</a>
+							</li>
+						</ul>
+					</div>
+				</form>
+			</div>
+                
+            <div class="btn-group hidden-xs" id="toolbar" role="group">
+		        <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add(0)" shiro:hasPermission="system:menu:add">
                     <i class="fa fa-plus"></i> 新增
                 </a>
-			</div>
-        </div>
-        
-	    <table id="bootstrap-table" data-mobile-responsive="true"></table>
+	        </div>
+       		 <div class="col-sm-12 select-info order-table">
+	            <table id="bootstrap-table" data-mobile-responsive="true"></table>
+	        </div>
+	    </div>
 	</div>
+	
 	<div th:include="include :: footer"></div>
 	<script th:inline="javascript">
 		var addFlag = [[${@permissionService.hasPermi('system:menu:add')}]];

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini