mirror of https://gitee.com/stylefeng/guns
更新角色列表,新增,修改功能
parent
fd3def6602
commit
f6556c0637
|
@ -28,23 +28,23 @@ public class AppViewController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 新增角色界面
|
||||
* 新增应用界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 13:37
|
||||
*/
|
||||
@GetResource(name = "新增角色界面", path = "/view/app/add")
|
||||
@GetResource(name = "新增应用界面", path = "/view/app/add")
|
||||
public String appAdd() {
|
||||
return "/modular/auth/app/app_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑角色界面
|
||||
* 编辑应用界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 13:37
|
||||
*/
|
||||
@GetResource(name = "编辑角色界面", path = "/view/app/edit")
|
||||
@GetResource(name = "编辑应用界面", path = "/view/app/edit")
|
||||
public String appEdit() {
|
||||
return "/modular/auth/app/app_edit.html";
|
||||
}
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
package cn.stylefeng.guns.modular.role;
|
||||
|
||||
import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 角色管理界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 20:55
|
||||
*/
|
||||
@Controller
|
||||
@Slf4j
|
||||
@ApiResource(name = "角色管理界面")
|
||||
public class RoleViewController {
|
||||
|
||||
/**
|
||||
* 角色管理首页
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 20:55
|
||||
*/
|
||||
@GetResource(name = "应用管理首页", path = "/view/role")
|
||||
public String roleIndex() {
|
||||
return "/modular/auth/role/role.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增角色界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 20:57
|
||||
*/
|
||||
@GetResource(name = "新增角色界面", path = "/view/role/add")
|
||||
public String roleAdd() {
|
||||
return "/modular/auth/role/role_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑角色界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 20:57
|
||||
*/
|
||||
@GetResource(name = "编辑角色界面", path = "/view/role/edit")
|
||||
public String roleEdit() {
|
||||
return "/modular/auth/role/role_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,17 +1,14 @@
|
|||
layui.use(['layer', 'form', 'table', 'admin', 'ax', 'func'], function () {
|
||||
layui.use(['layer', 'form', 'table', 'admin', 'HttpRequest', 'func'], function () {
|
||||
var $ = layui.$;
|
||||
var layer = layui.layer;
|
||||
var form = layui.form;
|
||||
var table = layui.table;
|
||||
var $ax = layui.ax;
|
||||
var admin = layui.admin;
|
||||
var HttpRequest = layui.HttpRequest;
|
||||
var func = layui.func;
|
||||
|
||||
/**
|
||||
* 系统管理--角色管理
|
||||
*/
|
||||
var Role = {
|
||||
tableId: "roleTable", //表格id
|
||||
tableId: "roleTable",
|
||||
condition: {
|
||||
roleName: ""
|
||||
}
|
||||
|
@ -24,10 +21,42 @@ layui.use(['layer', 'form', 'table', 'admin', 'ax', 'func'], function () {
|
|||
return [[
|
||||
{type: 'checkbox'},
|
||||
{field: 'roleId', hide: true, sort: true, title: '角色id'},
|
||||
{field: 'name', align: "center", sort: true, title: '名称'},
|
||||
{field: 'pName', align: "center", sort: true, title: '上级角色'},
|
||||
{field: 'description', align: "center", sort: true, title: '别名'},
|
||||
{align: 'center', toolbar: '#tableBar', title: '操作', minWidth: 200}
|
||||
{field: 'roleName', align: "center", sort: true, title: '角色名称'},
|
||||
{field: 'roleCode', align: "center", sort: true, title: '角色编码'},
|
||||
{field: 'roleSort', align: "center", sort: true, title: '排序'},
|
||||
{
|
||||
field: 'dataScopeType', align: "center", sort: true, title: '数据范围类型', templet: function (data) {
|
||||
if (data.dataScopeType === 10) {
|
||||
return "仅本人数据";
|
||||
}
|
||||
if (data.dataScopeType === 20) {
|
||||
return "本部门数据";
|
||||
}
|
||||
if (data.dataScopeType === 30) {
|
||||
return "本部门及以下数据";
|
||||
}
|
||||
if (data.dataScopeType === 40) {
|
||||
return "指定部门数据";
|
||||
}
|
||||
if (data.dataScopeType === 50) {
|
||||
return "全部数据";
|
||||
}
|
||||
return "未知";
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'statusFlag', align: "center", sort: true, title: '状态', templet: function (data) {
|
||||
if (data.statusFlag === 1) {
|
||||
return "启用";
|
||||
}
|
||||
if (data.statusFlag === 2) {
|
||||
return "禁用";
|
||||
}
|
||||
return "未知";
|
||||
}
|
||||
},
|
||||
{field: 'remark', align: "center", sort: true, title: '备注'},
|
||||
{align: 'center', toolbar: '#tableBar', title: '操作', minWidth: 300}
|
||||
]];
|
||||
};
|
||||
|
||||
|
@ -49,7 +78,7 @@ layui.use(['layer', 'form', 'table', 'admin', 'ax', 'func'], function () {
|
|||
func.open({
|
||||
height: 470,
|
||||
title: '添加角色',
|
||||
content: Feng.ctxPath + '/role/role_add',
|
||||
content: Feng.ctxPath + '/view/role/add',
|
||||
tableId: Role.tableId
|
||||
});
|
||||
};
|
||||
|
@ -63,23 +92,11 @@ layui.use(['layer', 'form', 'table', 'admin', 'ax', 'func'], function () {
|
|||
func.open({
|
||||
height: 470,
|
||||
title: '修改角色',
|
||||
content: Feng.ctxPath + "/role/role_edit?roleId=" + data.roleId,
|
||||
content: Feng.ctxPath + "/view/role/edit?roleId=" + data.roleId,
|
||||
tableId: Role.tableId
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 导出excel按钮
|
||||
*/
|
||||
Role.exportExcel = function () {
|
||||
var checkRows = table.checkStatus(Role.tableId);
|
||||
if (checkRows.data.length === 0) {
|
||||
Feng.error("请选择要导出的数据");
|
||||
} else {
|
||||
table.exportFile(tableResult.config.id, checkRows.data, 'xls');
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 点击删除角色
|
||||
*
|
||||
|
@ -87,16 +104,16 @@ layui.use(['layer', 'form', 'table', 'admin', 'ax', 'func'], function () {
|
|||
*/
|
||||
Role.onDeleteRole = function (data) {
|
||||
var operation = function () {
|
||||
var ajax = new $ax(Feng.ctxPath + "/role/remove", function () {
|
||||
var request = new HttpRequest(Feng.ctxPath + "/sysRole/delete", 'post', function () {
|
||||
Feng.success("删除成功!");
|
||||
table.reload(Role.tableId);
|
||||
}, function (data) {
|
||||
Feng.error("删除失败!" + data.responseJSON.message + "!");
|
||||
Feng.error("删除失败!" + data.message + "!");
|
||||
});
|
||||
ajax.set("roleId", data.roleId);
|
||||
ajax.start();
|
||||
request.set("roleId", data.roleId);
|
||||
request.start(true);
|
||||
};
|
||||
Feng.confirm("是否删除角色 " + data.name + "?", operation);
|
||||
Feng.confirm("是否删除角色 " + data.roleName + "?", operation);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -121,10 +138,12 @@ layui.use(['layer', 'form', 'table', 'admin', 'ax', 'func'], function () {
|
|||
// 渲染表格
|
||||
var tableResult = table.render({
|
||||
elem: '#' + Role.tableId,
|
||||
url: Feng.ctxPath + '/role/list',
|
||||
url: Feng.ctxPath + '/sysRole/page',
|
||||
page: true,
|
||||
height: "full-98",
|
||||
cellMinWidth: 100,
|
||||
request: {pageName: 'pageNo', limitName: 'pageSize'},
|
||||
parseData: Feng.parseData,
|
||||
cols: Role.initColumn()
|
||||
});
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
/**
|
||||
* 角色详情对话框
|
||||
*/
|
||||
layui.use(['form', 'admin', 'HttpRequest'], function () {
|
||||
var HttpRequest = layui.HttpRequest;
|
||||
var form = layui.form;
|
||||
var admin = layui.admin;
|
||||
|
||||
// 表单提交事件
|
||||
form.on('submit(btnSubmit)', function (data) {
|
||||
var request = new HttpRequest(Feng.ctxPath + "/sysRole/add", 'post', function (data) {
|
||||
Feng.success("添加成功!");
|
||||
|
||||
//传给上个页面,刷新table用
|
||||
admin.putTempData('formOk', true);
|
||||
|
||||
//关掉对话框
|
||||
admin.closeThisDialog();
|
||||
|
||||
}, function (data) {
|
||||
Feng.error("添加失败!" + data.message)
|
||||
});
|
||||
request.set(data.field);
|
||||
request.start(true);
|
||||
|
||||
//添加 return false 可成功跳转页面
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
|
@ -0,0 +1,35 @@
|
|||
/**
|
||||
* 角色详情对话框
|
||||
*/
|
||||
layui.use(['form', 'admin', 'HttpRequest'], function () {
|
||||
var HttpRequest = layui.HttpRequest;
|
||||
var form = layui.form;
|
||||
var admin = layui.admin;
|
||||
|
||||
//初始化角色的详情数据
|
||||
var detailRequest = new HttpRequest(Feng.ctxPath + "/sysRole/detail?roleId=" + Feng.getUrlParam("roleId"), 'get');
|
||||
var result = detailRequest.start();
|
||||
form.val('roleForm', result.data);
|
||||
|
||||
// 表单提交事件
|
||||
form.on('submit(btnSubmit)', function (data) {
|
||||
var request = new HttpRequest(Feng.ctxPath + "/sysRole/edit", 'post', function (data) {
|
||||
Feng.success("修改成功!");
|
||||
|
||||
//传给上个页面,刷新table用
|
||||
admin.putTempData('formOk', true);
|
||||
|
||||
//关掉对话框
|
||||
admin.closeThisDialog();
|
||||
|
||||
}, function (data) {
|
||||
Feng.error("修改失败!" + data.message + "!");
|
||||
});
|
||||
request.set(data.field);
|
||||
request.start(true);
|
||||
|
||||
//添加 return false 可成功跳转页面
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
|
@ -1,56 +0,0 @@
|
|||
/**
|
||||
* 角色详情对话框
|
||||
*/
|
||||
var RoleInfoDlg = {
|
||||
data: {
|
||||
pid: "",
|
||||
pName: ""
|
||||
}
|
||||
};
|
||||
|
||||
layui.use(['layer', 'form', 'admin', 'ax'], function () {
|
||||
var $ = layui.jquery;
|
||||
var $ax = layui.ax;
|
||||
var form = layui.form;
|
||||
var admin = layui.admin;
|
||||
var layer = layui.layer;
|
||||
|
||||
// 点击上级角色时
|
||||
$('#pName').click(function () {
|
||||
var formName = encodeURIComponent("parent.RoleInfoDlg.data.pName");
|
||||
var formId = encodeURIComponent("parent.RoleInfoDlg.data.pid");
|
||||
var treeUrl = encodeURIComponent("/role/roleTreeList");
|
||||
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '父级角色选择',
|
||||
area: ['300px', '400px'],
|
||||
content: Feng.ctxPath + '/system/commonTree?formName=' + formName + "&formId=" + formId + "&treeUrl=" + treeUrl,
|
||||
end: function () {
|
||||
$("#pid").val(RoleInfoDlg.data.pid);
|
||||
$("#pName").val(RoleInfoDlg.data.pName);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 表单提交事件
|
||||
form.on('submit(btnSubmit)', function (data) {
|
||||
var ajax = new $ax(Feng.ctxPath + "/role/add", function (data) {
|
||||
Feng.success("添加成功!");
|
||||
|
||||
//传给上个页面,刷新table用
|
||||
admin.putTempData('formOk', true);
|
||||
|
||||
//关掉对话框
|
||||
admin.closeThisDialog();
|
||||
|
||||
}, function (data) {
|
||||
Feng.error("添加失败!" + data.responseJSON.message)
|
||||
});
|
||||
ajax.set(data.field);
|
||||
ajax.start();
|
||||
|
||||
//添加 return false 可成功跳转页面
|
||||
return false;
|
||||
});
|
||||
});
|
|
@ -1,61 +0,0 @@
|
|||
/**
|
||||
* 角色详情对话框
|
||||
*/
|
||||
var RoleInfoDlg = {
|
||||
data: {
|
||||
pid: "",
|
||||
pName: ""
|
||||
}
|
||||
};
|
||||
|
||||
layui.use(['layer', 'form', 'admin', 'ax'], function () {
|
||||
var $ = layui.jquery;
|
||||
var $ax = layui.ax;
|
||||
var form = layui.form;
|
||||
var admin = layui.admin;
|
||||
var layer = layui.layer;
|
||||
|
||||
//初始化角色的详情数据
|
||||
var ajax = new $ax(Feng.ctxPath + "/role/view/" + Feng.getUrlParam("roleId"));
|
||||
var result = ajax.start();
|
||||
form.val('roleForm',result.data);
|
||||
|
||||
// 点击上级角色时
|
||||
$('#pName').click(function () {
|
||||
var formName = encodeURIComponent("parent.RoleInfoDlg.data.pName");
|
||||
var formId = encodeURIComponent("parent.RoleInfoDlg.data.pid");
|
||||
var treeUrl = encodeURIComponent("/role/roleTreeList");
|
||||
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '父级角色选择',
|
||||
area: ['300px', '400px'],
|
||||
content: Feng.ctxPath + '/system/commonTree?formName=' + formName + "&formId=" + formId + "&treeUrl=" + treeUrl,
|
||||
end: function () {
|
||||
$("#pid").val(RoleInfoDlg.data.pid);
|
||||
$("#pName").val(RoleInfoDlg.data.pName);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 表单提交事件
|
||||
form.on('submit(btnSubmit)', function (data) {
|
||||
var ajax = new $ax(Feng.ctxPath + "/role/edit", function (data) {
|
||||
Feng.success("修改成功!");
|
||||
|
||||
//传给上个页面,刷新table用
|
||||
admin.putTempData('formOk', true);
|
||||
|
||||
//关掉对话框
|
||||
admin.closeThisDialog();
|
||||
|
||||
}, function (data) {
|
||||
Feng.error("修改失败!" + data.responseJSON.message + "!");
|
||||
});
|
||||
ajax.set(data.field);
|
||||
ajax.start();
|
||||
|
||||
//添加 return false 可成功跳转页面
|
||||
return false;
|
||||
});
|
||||
});
|
|
@ -1,4 +1,4 @@
|
|||
@layout("/layout/_container.html",{js:["/assets/modular/system/role/role.js"]}){
|
||||
@layout("/layout/_container.html",{js:["/assets/modular/auth/role/role.js"]}){
|
||||
|
||||
<div class="layui-body-header">
|
||||
<span class="layui-body-header-title">角色管理</span>
|
||||
|
@ -16,10 +16,7 @@
|
|||
</div>
|
||||
<div class="layui-inline">
|
||||
<button id="btnSearch" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>
|
||||
@if(shiro.hasPermission("/role/add")){
|
||||
<button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button>
|
||||
@}
|
||||
<button id="btnExp" class="layui-btn icon-btn"><i class="layui-icon"></i>导出</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -31,14 +28,9 @@
|
|||
</div>
|
||||
|
||||
<script type="text/html" id="tableBar">
|
||||
@if(shiro.hasPermission("/role/edit")){
|
||||
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
|
||||
@}
|
||||
@if(shiro.hasPermission("/role/remove")){
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</a>
|
||||
@}
|
||||
@if(shiro.hasPermission("/role/setAuthority")){
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="roleAssign">权限配置</a>
|
||||
@}
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="assignMenu">分配菜单</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="assignApi">分配接口</a>
|
||||
</script>
|
||||
@}
|
||||
@}
|
|
@ -1,4 +1,4 @@
|
|||
@layout("/layout/_form.html",{js:["/assets/modular/system/role/role_add.js"]}){
|
||||
@layout("/layout/_form.html",{js:["/assets/modular/auth/role/role_add.js"]}){
|
||||
|
||||
<form class="layui-form" id="roleForm" lay-filter="roleForm">
|
||||
<div class="layui-fluid" style="padding-bottom: 75px;">
|
||||
|
@ -10,26 +10,25 @@
|
|||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">角色名称<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input name="name" placeholder="请输入角色名称" type="text" class="layui-input" lay-verify="required" required/>
|
||||
<input name="roleName" placeholder="请输入角色名称" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">上级名称<span style="color: red;">*</span></label>
|
||||
<label class="layui-form-label">角色编码<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="pid" name="pid" type="hidden">
|
||||
<input id="pName" name="pName" placeholder="请输入上级名称" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
|
||||
<input name="roleCode" placeholder="角色编码" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">别名<span style="color: red;">*</span></label>
|
||||
<label class="layui-form-label">排序<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="description" name="description" placeholder="请输入别名" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
|
||||
<input name="roleSort" placeholder="排序" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<label class="layui-form-label">备注</label>
|
||||
<div class="layui-input-block">
|
||||
<input name="sort" placeholder="请输入排序" type="text" class="layui-input"/>
|
||||
<input name="remark" placeholder="请填写备注" type="text" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,4 +1,4 @@
|
|||
@layout("/layout/_form.html",{js:["/assets/modular/system/role/role_edit.js"]}){
|
||||
@layout("/layout/_form.html",{js:["/assets/modular/auth/role/role_edit.js"]}){
|
||||
|
||||
<form class="layui-form" id="roleForm" lay-filter="roleForm">
|
||||
<div class="layui-fluid" style="padding-bottom: 75px;">
|
||||
|
@ -10,26 +10,25 @@
|
|||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">角色名称<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input name="name" placeholder="请输入角色名称" type="text" class="layui-input" lay-verify="required" required/>
|
||||
<input name="roleName" placeholder="请输入角色名称" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">上级名称<span style="color: red;">*</span></label>
|
||||
<label class="layui-form-label">角色编码<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="pid" name="pid" type="hidden">
|
||||
<input id="pName" name="pName" placeholder="请输入上级名称" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
|
||||
<input name="roleCode" placeholder="角色编码" type="text" class="layui-input layui-disabled" lay-verify="required" disabled="disabled" required autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">别名<span style="color: red;">*</span></label>
|
||||
<label class="layui-form-label">排序<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="description" name="description" placeholder="请输入别名" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
|
||||
<input name="roleSort" placeholder="排序" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<label class="layui-form-label">备注</label>
|
||||
<div class="layui-input-block">
|
||||
<input name="sort" placeholder="请输入排序" type="text" class="layui-input"/>
|
||||
<input name="remark" placeholder="请填写备注" type="text" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
Loading…
Reference in New Issue