bugfix: support role and menu batchdelete

This commit is contained in:
laker
2025-04-02 17:32:20 +08:00
parent e7048cea30
commit 18a187dcd3
4 changed files with 59 additions and 8 deletions

View File

@@ -1,6 +1,7 @@
package com.laker.admin.module.sys.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -86,4 +87,11 @@ public class SysMenuController {
public Response<Boolean> delete(@PathVariable Long id) {
return Response.ok(sysMenuService.removeById(id));
}
@DeleteMapping("/batch/{ids}")
@ApiOperation(value = "批量删除系统菜单表")
@SaCheckPermission("menu.delete")
public Response<Boolean> deleteBatch(@PathVariable Long[] ids) {
return Response.ok(sysMenuService.removeByIds(CollUtil.toList(ids)));
}
}

View File

@@ -1,6 +1,7 @@
package com.laker.admin.module.sys.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -63,7 +64,7 @@ public class SysRoleController {
@GetMapping("/{id}")
@ApiOperation(value = "根据id查询")
public Response get(@PathVariable Long id) {
public Response<SysRole> get(@PathVariable Long id) {
return Response.ok(sysRoleService.getById(id));
}
@@ -108,7 +109,7 @@ public class SysRoleController {
@PutMapping("/saveRolePower")
@ApiOperation(value = "保存角色权限数据")
@SaCheckPermission("role.update.power")
public Response saveRolePower(Long roleId, String powerIds) {
public Response<Boolean> saveRolePower(Long roleId, String powerIds) {
return Response.ok(sysRolePowerService.saveRolePower(roleId, powerIds));
}
@@ -116,7 +117,14 @@ public class SysRoleController {
@DeleteMapping("/{id}")
@ApiOperation(value = "根据id删除")
@SaCheckPermission("role.delete")
public Response delete(@PathVariable Long id) {
public Response<Boolean> delete(@PathVariable Long id) {
return Response.ok(sysRoleService.removeById(id));
}
@DeleteMapping("/batch/{ids}")
@ApiOperation(value = "根据批量删除ids删除")
@SaCheckPermission("role.delete")
public Response<Boolean> batchRemove(@PathVariable Long[] ids) {
return Response.ok(sysRoleService.removeByIds(CollUtil.toList(ids)));
}
}

View File

@@ -51,7 +51,8 @@
</script>
<script type="text/html" id="power-enable">
<input type="checkbox" name="enable" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="power-enable"
<input type="checkbox" name="enable" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="power-enable"
{{ d.enable== true ? 'checked' : '' }}>
</script>
@@ -62,12 +63,14 @@
<script src="../../component/layui/layui.js"></script>
<script src="../../component/pear/pear.js"></script>
<script>
layui.use(['table', 'form', 'jquery', 'treetable', 'easyAdmin'], function () {
layui.use(['table', 'form', 'jquery', 'popup', 'common', 'treetable', 'easyAdmin'], function () {
let table = layui.table;
let form = layui.form;
let $ = layui.jquery;
let treetable = layui.treetable;
let easyAdmin = layui.easyAdmin;
let common = layui.common;
let popup = layui.popup;
let MODULE_PATH = "power/";
@@ -83,7 +86,11 @@
toolbar: '#power-toolbar',
elem: '#power-table',
data: result.data,
defaultToolbar: [{layEvent: 'refresh', icon: 'layui-icon-refresh'}, 'filter', 'print', 'exports'],
defaultToolbar: [{
title: '刷新',
layEvent: 'refresh',
icon: 'layui-icon-refresh'
}, 'filter', 'print', 'exports'],
page: false,
cols: [
[
@@ -207,6 +214,33 @@
})
});
}
window.batchRemove = function (obj) {
let ids = common.checkField(obj, 'menuId');
if (ids === "") {
popup.warning("未选中数据");
return false;
}
layer.confirm('确定要删除选中角色', {icon: 3, title: '提示'}, function (index) {
layer.close(index);
let loading = layer.load();
$.ajax({
url: "/sys/menu/" + "batch/" + ids,
dataType: 'json',
type: 'delete',
success: function (result) {
layer.close(loading);
if (result.success) {
popup.success(result.msg, function () {
treetable.reload("#power-table");
});
} else {
popup.failure(result.msg);
}
}
})
});
}
})
</script>
</body>

View File

@@ -95,6 +95,7 @@
skin: 'line',
toolbar: '#role-toolbar',
defaultToolbar: [{
title: '刷新',
layEvent: 'refresh',
icon: 'layui-icon-refresh',
}, 'filter', 'print', 'exports']
@@ -230,7 +231,7 @@
window.batchRemove = function (obj) {
let ids = common.checkField(obj, 'roleId');
if (common.isEmpty(ids)) {
if (ids === "") {
popup.warning("未选中数据");
return false;
}
@@ -238,7 +239,7 @@
layer.close(index);
let loading = layer.load();
$.ajax({
url: MODULE_PATH + "batchRemove/" + ids,
url: "/sys/role/" + "batch/" + ids,
dataType: 'json',
type: 'delete',
success: function (result) {