Files
RuoYi/ruoyi-admin/src/main/resources/templates/system/menu/menu.html

190 lines
7.5 KiB
HTML
Raw Normal View History

2018-07-09 08:44:52 +08:00
<!DOCTYPE html>
2019-03-31 12:56:04 +08:00
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('菜单列表')" />
</head>
2018-07-09 08:44:52 +08:00
<body class="gray-bg">
<div class="container-div">
<div class="row">
2018-10-01 21:32:01 +08:00
<div class="col-sm-12 search-collapse">
2018-07-15 20:39:59 +08:00
<form id="menu-form">
2018-08-01 10:07:28 +08:00
<div class="select-list">
<ul>
<li>
菜单名称:<input type="text" name="menuName"/>
</li>
<li>
2018-07-22 23:05:50 +08:00
菜单状态:<select name="visible" th:with="type=${@dict.getType('sys_show_hide')}">
<option value="">所有</option>
2018-08-23 17:06:31 +08:00
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
2018-07-27 21:56:08 +08:00
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.treeTable.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
2018-08-25 10:42:10 +08:00
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
2019-02-28 20:52:07 +08:00
<div class="btn-group-sm" id="toolbar" role="group">
2018-10-05 18:43:41 +08:00
<a class="btn btn-success" onclick="$.operate.add(0)" shiro:hasPermission="system:menu:add">
<i class="fa fa-plus"></i> 新增
</a>
<a class="btn btn-primary" onclick="$.operate.edit()" shiro:hasPermission="system:menu:edit">
2018-10-05 18:43:41 +08:00
<i class="fa fa-edit"></i> 修改
</a>
2025-05-14 10:59:18 +08:00
<a class="btn btn-info" onclick="saveSort()">
<i class="fa fa-sort-amount-asc"></i> 保存排序
</a>
<a class="btn btn-default" id="expandAllBtn">
2018-10-05 18:43:41 +08:00
<i class="fa fa-exchange"></i> 展开/折叠
2018-07-09 08:44:52 +08:00
</a>
</div>
2018-08-23 17:06:31 +08:00
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-tree-table"></table>
</div>
</div>
2018-07-09 08:44:52 +08:00
</div>
2019-03-31 12:56:04 +08:00
<th:block th:include="include :: footer" />
2018-07-09 08:44:52 +08:00
<script th:inline="javascript">
2018-07-22 23:05:50 +08:00
var addFlag = [[${@permission.hasPermi('system:menu:add')}]];
var editFlag = [[${@permission.hasPermi('system:menu:edit')}]];
var removeFlag = [[${@permission.hasPermi('system:menu:remove')}]];
var datas = [[${@dict.getType('sys_show_hide')}]];
2018-10-05 19:27:24 +08:00
var prefix = ctx + "system/menu";
2025-05-14 10:59:18 +08:00
var originalOrders = {};
2018-07-09 08:44:52 +08:00
2018-07-23 15:33:28 +08:00
$(function() {
2018-07-09 08:44:52 +08:00
var options = {
2018-10-12 14:10:25 +08:00
code: "menuId",
parentCode: "parentId",
uniqueId: "menuId",
2018-07-09 08:44:52 +08:00
expandAll: false,
expandFirst: false,
2018-07-09 08:44:52 +08:00
url: prefix + "/list",
createUrl: prefix + "/add/{id}",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove/{id}",
modalName: "菜单",
columns: [{
2018-10-05 18:43:41 +08:00
field: 'selectItem',
radio: true
},
{
2018-07-09 08:44:52 +08:00
title: '菜单名称',
field: 'menuName',
2020-12-22 14:13:49 +08:00
width: '20',
widthUnit: '%',
formatter: function(value, row, index) {
2018-09-03 08:45:08 +08:00
if ($.common.isEmpty(row.icon)) {
2018-07-09 08:44:52 +08:00
return row.menuName;
} else {
return '<i class="' + row.icon + '"></i> <span class="nav-label">' + row.menuName + '</span>';
}
}
},
{
field: 'orderNum',
title: '排序',
2020-12-22 14:13:49 +08:00
width: '10',
widthUnit: '%',
2025-05-14 10:59:18 +08:00
align: "center",
formatter: function(value, row, index) {
var menuIdText = $.common.sprintf("<input type='hidden' name='menuIds' value='%s'>", row.menuId);
var orderNumText = $.common.sprintf("<input type='text' name='orderNums' value='%s' class='form-control' style='display: inline-block; width:60px; text-align:center;'>", row.orderNum);
originalOrders[row.menuId] = row.orderNum;
return menuIdText + orderNumText;
}
2018-07-09 08:44:52 +08:00
},
{
field: 'url',
title: '请求地址',
2020-12-22 14:13:49 +08:00
width: '15',
widthUnit: '%',
2025-05-14 10:59:18 +08:00
align: "center",
2020-02-10 14:59:31 +08:00
formatter: function(value, row, index) {
return $.table.tooltip(value);
}
2018-07-09 08:44:52 +08:00
},
{
title: '类型',
field: 'menuType',
2020-12-22 14:13:49 +08:00
width: '10',
widthUnit: '%',
2025-05-14 10:59:18 +08:00
align: "center",
formatter: function(value, item, index) {
2018-07-09 08:44:52 +08:00
if (item.menuType == 'M') {
return '<span class="label label-success">目录</span>';
}
else if (item.menuType == 'C') {
return '<span class="label label-primary">菜单</span>';
}
else if (item.menuType == 'F') {
return '<span class="label label-warning">按钮</span>';
}
}
},
{
field: 'visible',
title: '可见',
2020-12-22 14:13:49 +08:00
width: '10',
widthUnit: '%',
2025-05-14 10:59:18 +08:00
align: "center",
formatter: function(value, row, index) {
if (row.menuType == 'F') {
return '-';
}
2018-07-22 23:05:50 +08:00
return $.table.selectDictLabel(datas, row.visible);
2018-07-09 08:44:52 +08:00
}
},
{
field: 'perms',
title: '权限标识',
2020-12-22 14:13:49 +08:00
width: '15',
widthUnit: '%',
2025-05-14 10:59:18 +08:00
align: "center",
2020-02-10 14:59:31 +08:00
formatter: function(value, row, index) {
return $.table.tooltip(value);
}
2018-07-09 08:44:52 +08:00
},
{
title: '操作',
2020-12-22 14:13:49 +08:00
width: '20',
widthUnit: '%',
2025-05-14 10:59:18 +08:00
align: "center",
formatter: function(value, row, index) {
2018-07-09 08:44:52 +08:00
var actions = [];
2019-05-23 12:33:09 +08:00
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.menuId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-info btn-xs ' + addFlag + '" href="javascript:void(0)" onclick="$.operate.add(\'' + row.menuId + '\')"><i class="fa fa-plus"></i>新增</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.menuId + '\')"><i class="fa fa-trash"></i>删除</a>');
return actions.join('');
2018-07-09 08:44:52 +08:00
}
}]
};
$.treeTable.init(options);
2018-07-23 15:33:28 +08:00
});
2025-05-14 10:59:18 +08:00
/* 保存排序-菜单 */
function saveSort() {
var changedMenuIds = [];
var changedOrderNums = [];
$("input[name='menuIds']").each(function() {
var menuId = $(this).val();
var currentOrder = $(this).next("input[name='orderNums']").val();
if (originalOrders[menuId] !== currentOrder) {
changedMenuIds.push(menuId);
changedOrderNums.push(currentOrder);
}
});
if (changedMenuIds.length === 0) {
$.modal.alertWarning("未检测到排序修改");
return;
}
$.operate.post(prefix + "/updateSort", { "menuIds": changedMenuIds.join(","), "orderNums": changedOrderNums.join(",") });
}
2018-07-09 08:44:52 +08:00
</script>
</body>
</html>