优化用户角色授权

This commit is contained in:
不做码农 2021-12-26 14:26:48 +08:00
parent 19b6239ceb
commit 4794ec410e
12 changed files with 206 additions and 105 deletions

View File

@ -7,7 +7,6 @@ using ZR.Common;
using ZR.Admin.WebApi.Filters; using ZR.Admin.WebApi.Filters;
using ZR.Model; using ZR.Model;
using ZR.Model.System; using ZR.Model.System;
using ZR.Model.Vo;
using ZR.Service.System.IService; using ZR.Service.System.IService;
using ZR.Admin.WebApi.Extensions; using ZR.Admin.WebApi.Extensions;
@ -129,6 +128,8 @@ namespace ZR.Admin.WebApi.Controllers.System
if (sysRoleDto == null || sysRoleDto.RoleId <= 0) return ToResponse(ApiResult.Error(101, "请求参数错误")); if (sysRoleDto == null || sysRoleDto.RoleId <= 0) return ToResponse(ApiResult.Error(101, "请求参数错误"));
sysRoleDto.Create_by = HttpContext.GetName(); sysRoleDto.Create_by = HttpContext.GetName();
sysRoleService.CheckRoleAllowed(sysRoleDto);
bool result = sysRoleService.UseTran2(() => bool result = sysRoleService.UseTran2(() =>
{ {
//删除角色菜单 //删除角色菜单
@ -162,9 +163,10 @@ namespace ZR.Admin.WebApi.Controllers.System
/// <returns></returns> /// <returns></returns>
[HttpPut("changeStatus")] [HttpPut("changeStatus")]
[Log(Title = "修改角色状态", BusinessType = BusinessType.UPDATE)] [Log(Title = "修改角色状态", BusinessType = BusinessType.UPDATE)]
[ActionPermissionFilter(Permission = "system:role:update")] [ActionPermissionFilter(Permission = "system:role:edit")]
public IActionResult ChangeStatus([FromBody] SysRole roleDto) public IActionResult ChangeStatus([FromBody] SysRole roleDto)
{ {
sysRoleService.CheckRoleAllowed(roleDto);
int result = sysRoleService.UpdateRoleStatus(roleDto); int result = sysRoleService.UpdateRoleStatus(roleDto);
return ToResponse(ToJson(result)); return ToResponse(ToJson(result));
@ -176,7 +178,7 @@ namespace ZR.Admin.WebApi.Controllers.System
/// <returns></returns> /// <returns></returns>
[Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "角色导出")] [Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "角色导出")]
[HttpGet("export")] [HttpGet("export")]
[ActionPermissionFilter(Permission = "system:role:export")] //[ActionPermissionFilter(Permission = "system:role:export")]
public IActionResult Export() public IActionResult Export()
{ {
var list = sysRoleService.SelectRoleAll(); var list = sysRoleService.SelectRoleAll();

View File

@ -1,11 +1,8 @@
using Infrastructure; using Infrastructure;
using Infrastructure.Attribute; using Infrastructure.Attribute;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.Linq;
using ZR.Admin.WebApi.Filters; using ZR.Admin.WebApi.Filters;
using ZR.Model;
using ZR.Model.System.Dto; using ZR.Model.System.Dto;
using ZR.Model.System;
using ZR.Service.System.IService; using ZR.Service.System.IService;
namespace ZR.Admin.WebApi.Controllers.System namespace ZR.Admin.WebApi.Controllers.System
@ -31,7 +28,7 @@ namespace ZR.Admin.WebApi.Controllers.System
/// <param name="roleUserQueryDto"></param> /// <param name="roleUserQueryDto"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("list")] [HttpGet("list")]
[ActionPermissionFilter(Permission = "system:roleusers:query")] [ActionPermissionFilter(Permission = "system:roleusers:list")]
public IActionResult GetList([FromQuery] RoleUserQueryDto roleUserQueryDto) public IActionResult GetList([FromQuery] RoleUserQueryDto roleUserQueryDto)
{ {
var list = SysUserRoleService.GetSysUsersByRoleId(roleUserQueryDto); var list = SysUserRoleService.GetSysUsersByRoleId(roleUserQueryDto);
@ -59,7 +56,7 @@ namespace ZR.Admin.WebApi.Controllers.System
/// <param name="roleUsersCreateDto"></param> /// <param name="roleUsersCreateDto"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost("delete")] [HttpPost("delete")]
[ActionPermissionFilter(Permission = "system:roleusers:del")] [ActionPermissionFilter(Permission = "system:roleusers:remove")]
[Log(Title = "删除角色用户", BusinessType = Infrastructure.Enums.BusinessType.DELETE)] [Log(Title = "删除角色用户", BusinessType = Infrastructure.Enums.BusinessType.DELETE)]
public IActionResult Delete([FromBody] RoleUsersCreateDto roleUsersCreateDto) public IActionResult Delete([FromBody] RoleUsersCreateDto roleUsersCreateDto)
{ {

View File

@ -44,7 +44,10 @@ namespace ZR.Model.System
/// </summary> /// </summary>
[SugarColumn(IsOnlyIgnoreInsert = true, IsOnlyIgnoreUpdate = true)] [SugarColumn(IsOnlyIgnoreInsert = true, IsOnlyIgnoreUpdate = true)]
public string DelFlag { get; set; } public string DelFlag { get; set; }
/// <summary>
/// 数据范围1全部数据权限 2自定数据权限 3本部门数据权限
/// </summary>
public string DataScope { get; set; }
/// <summary> /// <summary>
/// 菜单组 /// 菜单组
/// </summary> /// </summary>

View File

@ -45,7 +45,7 @@ namespace ZR.Service.System.IService
/// <summary> /// <summary>
/// 更改角色权限状态 /// 更改角色权限状态
/// </summary> /// </summary>
/// <param name="SysRoleDto"></param> /// <param name="roleDto"></param>
/// <returns></returns> /// <returns></returns>
public int UpdateRoleStatus(SysRole roleDto); public int UpdateRoleStatus(SysRole roleDto);

View File

@ -521,4 +521,15 @@ aside {
.el-dialog__wrapper .el-dialog { .el-dialog__wrapper .el-dialog {
width: 95% !important; width: 95% !important;
} }
}
/** 表格更多操作下拉样式 */
.el-table .el-dropdown-link {
cursor: pointer;
color: #409EFF;
margin-left: 5px;
}
.el-table .el-dropdown, .el-icon-arrow-down {
font-size: 12px;
} }

View File

@ -11,6 +11,7 @@ import App from './App'
import store from './store' import store from './store'
import router from './router' import router from './router'
import permission from './directive/permission' import permission from './directive/permission'
import plugins from './plugins' // plugins
import './assets/icons' // icon import './assets/icons' // icon
import './permission' // permission control import './permission' // permission control
@ -63,8 +64,9 @@ Vue.component('DictTag', DictTag)
Vue.component('Editor', Editor) Vue.component('Editor', Editor)
Vue.component('UploadImage', UploadImage) Vue.component('UploadImage', UploadImage)
Vue.component('UploadFile', UploadFile) Vue.component('UploadFile', UploadFile)
Vue.use(permission)
Vue.use(permission)
Vue.use(plugins)
Vue.use(Element, { Vue.use(Element, {
size: Cookies.get('size') || 'small' // set element-ui default size size: Cookies.get('size') || 'small' // set element-ui default size
}) })

View File

@ -1,5 +1,5 @@
import Cookies from 'js-cookie' // import Cookies from 'js-cookie'
const TokenKey = 'ZR-Token' const TokenKey = 'ZR-Token'

View File

@ -42,7 +42,7 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:dept:edit']">修改</el-button> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:dept:update']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)" v-hasPermi="['system:dept:add']">新增</el-button> <el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)" v-hasPermi="['system:dept:add']">新增</el-button>
<el-button v-if="scope.row.parentId != 0" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['system:dept:remove']">删除</el-button> <el-button v-if="scope.row.parentId != 0" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['system:dept:remove']">删除</el-button>
</template> </template>

View File

@ -23,13 +23,10 @@
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['system:role:add']">新增</el-button> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['system:role:add']">新增</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['system:role:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="roleList" border @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="roleList" border highlight-current-row @selection-change="handleSelectionChange">
<el-table-column label="编号" prop="roleId" width="80" /> <el-table-column label="编号" prop="roleId" width="80" />
<el-table-column label="名称" prop="roleName" /> <el-table-column label="名称" prop="roleName" />
<el-table-column label="权限字符" prop="roleKey" /> <el-table-column label="权限字符" prop="roleKey" />
@ -41,13 +38,21 @@
<el-table-column label="创建时间" align="center" prop="createTime" width="150" /> <el-table-column label="创建时间" align="center" prop="createTime" width="150" />
<el-table-column label="备注" align="center" prop="remark" width="150" :show-overflow-tooltip="true" /> <el-table-column label="备注" align="center" prop="remark" width="150" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" width="200"> <el-table-column label="操作" align="center" width="200">
<template slot-scope="scope"> <template slot-scope="scope" v-if="scope.row.roleKey != 'admin'">
<el-button size="mini" type="text" icon="el-icon-edit" @click.stop="handleUpdate(scope.row)" v-if="scope.row.roleKey != 'admin'" <el-button size="mini" type="text" icon="el-icon-edit" @click.stop="handleUpdate(scope.row)" v-hasPermi="['system:role:edit']">修改
v-hasPermi="['system:role:edit']">修改</el-button> </el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click.stop="handleDelete(scope.row)" v-if="scope.row.roleKey != 'admin'" <el-button size="mini" type="text" icon="el-icon-delete" @click.stop="handleDelete(scope.row)" v-hasPermi="['system:role:remove']">删除
v-hasPermi="['system:role:remove']">删除</el-button> </el-button>
<el-button size="mini" type="text" icon="el-icon-circle-check" @click.stop="handleDataScope(scope.row)" v-if="scope.row.roleKey != 'admin'"
v-hasPermi="['system:role:authorize']">数据权限</el-button> <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">
<span class="el-dropdown-link">
<i class="el-icon-d-arrow-right el-icon--right"></i>更多
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleDataScope" icon="el-icon-circle-check" v-hasPermi="['system:role:authorize']">数据权限</el-dropdown-item>
<el-dropdown-item command="handleAuthUser" icon="el-icon-user" v-hasPermi="['system:roleusers:list']">分配用户</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -58,7 +63,12 @@
<el-form-item label="权限字符"> <el-form-item label="权限字符">
{{form.roleKey}} {{form.roleKey}}
</el-form-item> </el-form-item>
<el-form-item label="数据权限"> <el-form-item label="权限范围">
<el-select v-model="form.dataScope" @change="dataScopeSelectChange">
<el-option v-for="item in dataScopeOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="数据权限" v-show="form.dataScope == 2">
<el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox> <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox>
<el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox> <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox>
<el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox> <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
@ -68,6 +78,7 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitDataScope" v-hasPermi="['system:role:authorize']">保存</el-button> <el-button type="primary" @click="submitDataScope" v-hasPermi="['system:role:authorize']">保存</el-button>
<el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -159,26 +170,26 @@ export default {
showRoleScope: false, showRoleScope: false,
// //
dataScopeOptions: [ dataScopeOptions: [
{ // {
value: "1", // value: "1",
label: "全部数据权限", // label: "",
}, // },
{ {
value: "2", value: "2",
label: "自定数据权限", label: "自定数据权限",
}, },
{ // {
value: "3", // value: "3",
label: "本部门数据权限", // label: "",
}, // },
{ // {
value: "4", // value: "4",
label: "本部门及以下数据权限", // label: "",
}, // },
{ // {
value: "5", // value: "5",
label: "仅本人数据权限", // label: "",
}, // },
], ],
// //
menuOptions: [], menuOptions: [],
@ -302,6 +313,7 @@ export default {
// //
cancel() { cancel() {
this.open = false; this.open = false;
this.showRoleScope = false;
this.reset(); this.reset();
}, },
// //
@ -344,6 +356,19 @@ export default {
this.single = selection.length != 1; this.single = selection.length != 1;
this.multiple = !selection.length; this.multiple = !selection.length;
}, },
//
handleCommand(command, row) {
switch (command) {
case "handleDataScope":
this.handleDataScope(row);
break;
case "handleAuthUser":
this.handleAuthUser(row);
break;
default:
break;
}
},
// / // /
handleCheckedTreeExpand(value, type) { handleCheckedTreeExpand(value, type) {
if (type == "menu") { if (type == "menu") {
@ -396,6 +421,12 @@ export default {
this.title = "修改角色"; this.title = "修改角色";
}); });
}, },
/** 选择角色权限范围触发 */
dataScopeSelectChange(value) {
if (value !== "2") {
this.$refs.dept.setCheckedKeys([]);
}
},
/** 分配角色权限按钮操作 */ /** 分配角色权限按钮操作 */
// //
handleDataScope(row) { handleDataScope(row) {
@ -420,9 +451,15 @@ export default {
roleId: row.roleId, roleId: row.roleId,
roleName: row.roleName, roleName: row.roleName,
roleKey: row.roleKey, roleKey: row.roleKey,
dataScope: row.dataScope,
menuCheckStrictly: true, menuCheckStrictly: true,
}; };
}, },
/** 分配用户操作 */
handleAuthUser: function (row) {
const roleId = row.roleId;
this.$router.push({ path: "/system/roleusers", query: { roleId } });
},
/** 提交按钮 */ /** 提交按钮 */
submitForm: function () { submitForm: function () {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
@ -460,8 +497,7 @@ export default {
dataScope(this.form).then((response) => { dataScope(this.form).then((response) => {
this.msgSuccess("修改成功"); this.msgSuccess("修改成功");
this.getList(); this.getList();
this.showRoleScope = false; this.cancel();
this.handleDataScope({ roleId: this.form.roleId });
}); });
} else { } else {
this.msgError("请选择角色"); this.msgError("请选择角色");

View File

@ -1,53 +1,72 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-row :gutter="20">
<el-col :span="4" :xs="24"> <!-- <el-col :span="4" :xs="24">
<el-table ref="roleTable" v-loading="loadingRole" highlight-current-row :data="dataRoleTable" border :height="tableHeight-135" <el-table ref="roleTable" v-loading="loadingRole" highlight-current-row :data="dataRoleTable" border :height="tableHeight-135"
@row-click="handleRoleTableSelection"> @row-click="handleRoleTableSelection">
<el-table-column prop="roleName" label="请选择角色名称" /> <el-table-column prop="roleName" label="请选择角色名称" />
</el-table> </el-table>
</el-col> -->
<el-form :inline="true" @submit.native.prevent>
<el-form-item label="角色名">
<el-input v-model="roleUserQueryParams.roleName" disabled />
</el-form-item>
<el-form-item label="角色字符串">
<el-input v-model="roleUserQueryParams.roleKey" disabled />
</el-form-item>
<el-form-item label="用户名">
<el-input v-model="roleUserQueryParams.userName" placeholder="请输入用户名称" clearable prefix-icon="el-icon-search"
@keyup.enter.native="searchRoleUser" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="searchRoleUser">搜索</el-button>
<!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> -->
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain size="mini" icon="el-icon-plus" @click="handleGetUserTable" v-hasPermi="['system:roleusers:add']">添加用户
</el-button>
</el-col> </el-col>
<el-col :span="20" :xs="24"> <el-col :span="1.5">
<el-form :inline="true" @submit.native.prevent> <el-button type="danger" plain size="mini" icon="el-icon-circle-close" @click="cancelAuthUserAll" v-hasPermi="['system:roleusers:remove']">
<el-form-item> 批量取消授权</el-button>
<el-button type="primary" plain size="mini" icon="el-icon-plus" @click="handleGetUserTable" v-hasPermi="['system:roleusers:add']">添加用户 </el-col>
</el-button> <el-col :span="1.5">
<el-button type="danger" plain size="mini" icon="el-icon-circle-close" @click="cancelAuthUserAll" v-hasPermi="['system:roleusers:del']"> <el-button type="warning" plain icon="el-icon-close" size="mini" @click="handleClose">关闭</el-button>
批量取消授权</el-button>
</el-form-item>
<el-form-item style="margin-left:auto">
<el-input v-model="roleUserQueryParams.userName" placeholder="请输入用户名称" clearable prefix-icon="el-icon-search" @keyup.enter.native="searchRoleUser" />
</el-form-item>
</el-form>
<el-table ref="roleUserTable" v-loading="loadingRoleUser" :data="dataRoleUserTable" row-key="userId" stripe border :height="tableHeight-230">
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="userId" align="center" label="用户Id" width="150" />
<el-table-column prop="userName" align="center" label="用户账号" width="150" />
<el-table-column prop="nickName" align="center" label="用户昵称" width="150" />
<el-table-column prop="email" align="center" label="邮箱" />
<el-table-column prop="status" align="center" label="账号状态" width="80">
<template slot-scope="scope">
<i :style="scope.row.status === '0' ?'color:green':'color:red'"
:class="scope.row.status === '0' ? 'el-icon-success ':'el-icon-error'" />
</template>
</el-table-column>
<el-table-column prop="remark" :show-overflow-tooltip="true" align="center" label="备注" />
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-circle-close" @click="handleCancelPerm(scope.row)" v-if="scope.row.userId != 1"
v-hasPermi="['system:roleusers:del']">取消授权</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="dataRoleUserCount > 0" :total="dataRoleUserCount" :page.sync="roleUserQueryParams.pageNum" :limit.sync="roleUserQueryParams.pageSize" @pagination="getRoleUser" />
</el-col> </el-col>
</el-row> </el-row>
<el-table ref="roleUserTable" v-loading="loadingRoleUser" :data="dataRoleUserTable" row-key="userId" stripe border>
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="userId" align="center" label="用户Id" width="150" />
<el-table-column prop="userName" align="center" label="用户名" width="150" />
<el-table-column prop="nickName" align="center" label="用户昵称" width="150" />
<el-table-column prop="email" align="center" label="邮箱" />
<el-table-column prop="status" align="center" label="账号状态" width="80">
<template slot-scope="scope">
<dict-tag :options="statusOptions" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column prop="remark" :show-overflow-tooltip="true" align="center" label="备注" />
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-circle-close" @click="handleCancelPerm(scope.row)" v-if="scope.row.userId != 1"
v-hasPermi="['system:roleusers:del']">取消授权</el-button>
</template>
</el-table-column>
</el-table>
<pagination :total="dataRoleUserCount" :page.sync="roleUserQueryParams.pageNum" :limit.sync="roleUserQueryParams.pageSize"
@pagination="getRoleUser" />
<!-- 添加或修改菜单对话框 --> <!-- 添加或修改菜单对话框 -->
<el-dialog title="添加用户" :visible.sync="open" append-to-body :close-on-click-modal="false" @close="cancel"> <el-dialog title="添加用户" :visible.sync="open" append-to-body @close="cancel">
<el-form style="display:flex" :inline="true" @submit.native.prevent> <el-form style="display:flex" :inline="true" @submit.native.prevent>
<el-form-item style="margin-left:auto"> <el-form-item style="margin-left:auto">
<el-input v-model="userQueryParams.userName" placeholder="请输入用户名称" clearable prefix-icon="el-icon-search" @keyup.enter.native="handleSearchRoleUser" /> <el-input v-model="userQueryParams.userName" placeholder="请输入用户名称" clearable prefix-icon="el-icon-search"
@keyup.enter.native="handleSearchRoleUser" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row> <el-row>
@ -64,7 +83,8 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="dataUserCount > 0" :total="dataUserCount" :page.sync="userQueryParams.pageNum" :limit.sync="userQueryParams.pageSize" @pagination="handleGetUserTable" /> <pagination :total="dataUserCount" :page.sync="userQueryParams.pageNum" :limit.sync="userQueryParams.pageSize"
@pagination="handleGetUserTable" />
</el-col> </el-col>
</el-row> </el-row>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -75,7 +95,8 @@
</div> </div>
</template> </template>
<script> <script>
import { listRole } from "@/api/system/role"; // import { listRole } from "@/api/system/role";
import { getRole } from "@/api/system/role";
import { import {
getRoleUsers, getRoleUsers,
createRoleUsers, createRoleUsers,
@ -110,11 +131,14 @@ export default {
roleId: "", roleId: "",
// //
open: false, open: false,
//
roleUserQueryParams: { roleUserQueryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
roleId: undefined, roleId: undefined,
userName: undefined, userName: undefined,
roleName: undefined,
roleKey: undefined,
}, },
userQueryParams: { userQueryParams: {
pageNum: 1, pageNum: 1,
@ -122,17 +146,38 @@ export default {
roleId: undefined, roleId: undefined,
userName: undefined, userName: undefined,
}, },
//
statusOptions: [],
}; };
}, },
created() { created() {
// //
this.loadingRole = true; // this.loadingRole = true;
listRole({ pageSize: 50 }).then((response) => { // listRole({ pageSize: 50 }).then((response) => {
this.dataRoleTable = response.data.result; // this.dataRoleTable = response.data.result;
this.handleRoleTableSelection(this.dataRoleTable[0]); // // this.handleRoleTableSelection(this.dataRoleTable[0]);
this.$refs.roleTable.setCurrentRow(this.dataRoleTable[0]); // // this.$refs.roleTable.setCurrentRow(this.dataRoleTable[0]);
this.loadingRole = false; // this.loadingRole = false;
// });
this.getDicts("sys_normal_disable").then((response) => {
this.statusOptions = response.data;
}); });
var roleId = this.$route.query.roleId;
console.log(roleId);
if (roleId) {
this.roleId = roleId;
this.searchRoleUser();
getRole(roleId).then((response) => {
const { code, data } = response;
if (code == 200) {
this.roleUserQueryParams.roleName = data.roleName;
this.roleUserQueryParams.roleKey = data.roleKey;
}
});
} else {
this.msgError("请升级数据库");
}
}, },
methods: { methods: {
searchRoleUser() { searchRoleUser() {
@ -149,6 +194,11 @@ export default {
this.loadingRoleUser = false; this.loadingRoleUser = false;
}); });
}, },
//
handleClose() {
const obj = { path: "/system/role" };
this.$tab.closeOpenPage(obj);
},
// //
cancelAuthUserAll() { cancelAuthUserAll() {
this.delSelections = []; this.delSelections = [];
@ -156,7 +206,7 @@ export default {
this.delSelections.push(element.userId); this.delSelections.push(element.userId);
}); });
if (this.delSelections.length === 0) { if (this.delSelections.length === 0) {
console.log("未选中"); this.msgError("请选择要删除的用户");
return; return;
} }
this.$confirm( this.$confirm(
@ -203,10 +253,10 @@ export default {
}); });
}, },
// //
handleRoleTableSelection(row) { // handleRoleTableSelection(row) {
this.roleId = row.roleId; // this.roleId = row.roleId;
this.getRoleUser(); // this.getRoleUser();
}, // },
handleSearchRoleUser() { handleSearchRoleUser() {
this.userQueryParams.pageNum = 1; this.userQueryParams.pageNum = 1;
this.handleGetUserTable(); this.handleGetUserTable();

View File

@ -31,7 +31,7 @@ CREATE TABLE `Sys_TasksQz` (
-- ---------------------------- -- ----------------------------
-- Records of Sys_TasksQz -- Records of Sys_TasksQz
-- ---------------------------- -- ----------------------------
INSERT INTO `Sys_TasksQz` VALUES ('1410905433996136448', '测试任务', 'SYSTEM', '0 0/10 * * * ? ', 'ZRTasks', 'Job_SyncTest', NULL, 0, '2021-07-02 18:17:31', '9999-12-31 00:00:00', 1, 1, 1, NULL, '2021-07-02 18:17:23', '2021-07-02 18:17:31', 'admin', NULL); INSERT INTO `Sys_TasksQz` VALUES ('1410905433996136448', '测试任务', 'SYSTEM', '0 0/10 * * * ? ', 'ZR.Tasks', 'Job_SyncTest', NULL, 0, '2021-07-02 18:17:31', '9999-12-31 00:00:00', 1, 1, 1, NULL, '2021-07-02 18:17:23', '2021-07-02 18:17:31', 'admin', NULL);
-- ---------------------------- -- ----------------------------
-- Table structure for sys_Tasks_log -- Table structure for sys_Tasks_log
@ -273,7 +273,7 @@ INSERT INTO sys_menu VALUES (102, '菜单管理', 1, 3, 'menu', 'system/menu/ind
INSERT INTO sys_menu VALUES (103, '部门管理', 1, 4, 'dept', 'system/dept/index', 0, 0, 'C', '0', '0', 'system:dept:list', 'tree', '', SYSDATE(), '', NULL, '部门管理菜单'); INSERT INTO sys_menu VALUES (103, '部门管理', 1, 4, 'dept', 'system/dept/index', 0, 0, 'C', '0', '0', 'system:dept:list', 'tree', '', SYSDATE(), '', NULL, '部门管理菜单');
INSERT INTO sys_menu VALUES (104, '岗位管理', 1, 5, 'post', 'system/post/index', 0, 0, 'C', '0', '0', 'system:post:list', 'post', '', SYSDATE(), '', NULL, '岗位管理菜单'); INSERT INTO sys_menu VALUES (104, '岗位管理', 1, 5, 'post', 'system/post/index', 0, 0, 'C', '0', '0', 'system:post:list', 'post', '', SYSDATE(), '', NULL, '岗位管理菜单');
INSERT INTO sys_menu VALUES (105, '字典管理', 1, 6, 'dict', 'system/dict/index', 0, 0, 'C', '0', '0', 'system:dict:list', 'dict', '', SYSDATE(), '', NULL, ''); INSERT INTO sys_menu VALUES (105, '字典管理', 1, 6, 'dict', 'system/dict/index', 0, 0, 'C', '0', '0', 'system:dict:list', 'dict', '', SYSDATE(), '', NULL, '');
INSERT INTO sys_menu VALUES (106, '角色分配', 1, 2, 'roleusers', 'system/roleusers/index', 0, 0, 'C', '0', '0', 'system:role:list', 'people', '', SYSDATE(), '', NULL, NULL); INSERT INTO sys_menu VALUES (106, '角色分配', 1, 2, 'roleusers', 'system/roleusers/index', 0, 0, 'C', '1', '0', 'system:roleusers:list', 'people', '', SYSDATE(), '', NULL, NULL);
INSERT into sys_menu VALUES (107, '参数设置', 1, 8, 'config','system/config/index', 0, 0, 'C', '0', '0', 'system:config:list','edit', '', SYSDATE(), '', NULL, ''); INSERT into sys_menu VALUES (107, '参数设置', 1, 8, 'config','system/config/index', 0, 0, 'C', '0', '0', 'system:config:list','edit', '', SYSDATE(), '', NULL, '');
INSERT INTO sys_menu VALUES (108, '日志管理', 1, 10, 'log', '' , 0, 0, 'M', '0', '0', '', 'log', '', SYSDATE(), '', NULL, '日志管理菜单'); INSERT INTO sys_menu VALUES (108, '日志管理', 1, 10, 'log', '' , 0, 0, 'M', '0', '0', '', 'log', '', SYSDATE(), '', NULL, '日志管理菜单');
INSERT INTO sys_menu VALUES (109, '通知公告', 1, 9, 'notice', 'system/notice/index', 0, 0, 'C', '0', '0', 'system:notice:list', 'message', '', SYSDATE(), '', NULL, ''); INSERT INTO sys_menu VALUES (109, '通知公告', 1, 9, 'notice', 'system/notice/index', 0, 0, 'C', '0', '0', 'system:notice:list', 'message', '', SYSDATE(), '', NULL, '');
@ -304,7 +304,10 @@ INSERT INTO sys_menu VALUES (1008, '角色查询', 101, 1, '', '', 0, 0, 'F', '0
INSERT INTO sys_menu VALUES (1009, '角色新增', 101, 2, '', '', 0, 0, 'F', '0', '0', 'system:role:add', '#', '', SYSDATE(), '', NULL, ''); INSERT INTO sys_menu VALUES (1009, '角色新增', 101, 2, '', '', 0, 0, 'F', '0', '0', 'system:role:add', '#', '', SYSDATE(), '', NULL, '');
INSERT INTO sys_menu VALUES (1010, '角色修改', 101, 3, '', '', 0, 0, 'F', '0', '0', 'system:role:edit', '#', '', SYSDATE(), '', NULL, ''); INSERT INTO sys_menu VALUES (1010, '角色修改', 101, 3, '', '', 0, 0, 'F', '0', '0', 'system:role:edit', '#', '', SYSDATE(), '', NULL, '');
INSERT INTO sys_menu VALUES (1011, '角色删除', 101, 4, '', '', 0, 0, 'F', '0', '0', 'system:role:remove', '#', '', SYSDATE(), '', NULL, ''); INSERT INTO sys_menu VALUES (1011, '角色删除', 101, 4, '', '', 0, 0, 'F', '0', '0', 'system:role:remove', '#', '', SYSDATE(), '', NULL, '');
INSERT INTO sys_menu VALUES (1012, '角色导出', 101, 5, '', '', 0, 0, 'F', '0', '0', 'system:role:export', '#', '', SYSDATE(), '', NULL, ''); INSERT INTO sys_menu VALUES (1012, '角色授权', 101, 5, '', '', 0, 0, 'F', '0', '0', 'system:role:authorize', '#', '', SYSDATE(), '', NULL, '');
-- 分配用户 按钮
INSERT INTO sys_menu VALUES (1029, '新增用户', 106, 2, '', '', 0, 0, 'F', '0', '0', 'system:roleusers:add', NULL, '', SYSDATE(), '', NULL, NULL);
INSERT INTO sys_menu VALUES (1030, '删除用户', 106, 3, '', '', 0, 0, 'F', '0', '0', 'system:roleusers:remove', NULL, '', SYSDATE(), '', NULL, NULL);
-- 菜单管理 按钮 -- 菜单管理 按钮
INSERT INTO sys_menu VALUES (1013, '菜单查询', 102, 1, '', '', 0, 0, 'F', '0', '0', 'system:menu:query', '#', '', SYSDATE(), '', NULL, ''); INSERT INTO sys_menu VALUES (1013, '菜单查询', 102, 1, '', '', 0, 0, 'F', '0', '0', 'system:menu:query', '#', '', SYSDATE(), '', NULL, '');
INSERT INTO sys_menu VALUES (1014, '菜单新增', 102, 2, '', '', 0, 0, 'F', '0', '0', 'system:menu:add', '#', '', SYSDATE(), '', NULL, ''); INSERT INTO sys_menu VALUES (1014, '菜单新增', 102, 2, '', '', 0, 0, 'F', '0', '0', 'system:menu:add', '#', '', SYSDATE(), '', NULL, '');
@ -327,10 +330,7 @@ INSERT INTO sys_menu VALUES (1026, '字典新增', 105, 1, '', '', 0, 0, 'F', '0
INSERT INTO sys_menu VALUES (1027, '字典修改', 105, 2, '', '', 0, 0, 'F', '0', '0', 'system:dict:edit', NULL, '', SYSDATE(), '', NULL, NULL); INSERT INTO sys_menu VALUES (1027, '字典修改', 105, 2, '', '', 0, 0, 'F', '0', '0', 'system:dict:edit', NULL, '', SYSDATE(), '', NULL, NULL);
INSERT INTO sys_menu VALUES (1028, '字典删除', 105, 3, '', '', 0, 0, 'F', '0', '0', 'system:dict:remove', NULL, '', SYSDATE(), '', NULL, NULL); INSERT INTO sys_menu VALUES (1028, '字典删除', 105, 3, '', '', 0, 0, 'F', '0', '0', 'system:dict:remove', NULL, '', SYSDATE(), '', NULL, NULL);
INSERT INTO sys_menu VALUES (1071, '字典导出', 105, 3, '', '', 0, 0, 'F', '0', '0', 'system:dict:export', NULL, '', SYSDATE(), '', NULL, NULL); INSERT INTO sys_menu VALUES (1071, '字典导出', 105, 3, '', '', 0, 0, 'F', '0', '0', 'system:dict:export', NULL, '', SYSDATE(), '', NULL, NULL);
-- 分配用户 按钮
INSERT INTO sys_menu VALUES (1029, '新增用户', 106, 1, '', '', 0, 0, 'F', '0', '0', 'system:roleusers:add', NULL, '', SYSDATE(), '', NULL, NULL);
INSERT INTO sys_menu VALUES (1030, '删除用户', 106, 2, '', '', 0, 0, 'F', '0', '0', 'system:roleusers:del', NULL, '', SYSDATE(), '', NULL, NULL);
INSERT INTO sys_menu VALUES (1031, '查询用户', 106, 3, '', '', 0, 0, 'F', '0', '0', 'system:roleusers:query', '', '', SYSDATE(), '', NULL, NULL);
-- 定时任务 按钮 -- 定时任务 按钮
INSERT INTO sys_menu values (1032, '任务查询', 110, 1, '#', NULL, 0, 0, 'F', '0', '0', 'monitor:job:list', '#', '', sysdate(), '', null, ''); INSERT INTO sys_menu values (1032, '任务查询', 110, 1, '#', NULL, 0, 0, 'F', '0', '0', 'monitor:job:list', '#', '', sysdate(), '', null, '');
INSERT INTO sys_menu VALUES (1033, '任务新增', 110, 2, '#', NULL, 0, 0, 'F', '0', '0', 'monitor:job:add', '', '', SYSDATE(), '', NULL, NULL); INSERT INTO sys_menu VALUES (1033, '任务新增', 110, 2, '#', NULL, 0, 0, 'F', '0', '0', 'monitor:job:add', '', '', SYSDATE(), '', NULL, NULL);
@ -409,7 +409,7 @@ CREATE TABLE `sys_oper_log` (
`operIP` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机地址', `operIP` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机地址',
`operLocation` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作地点', `operLocation` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作地点',
`operParam` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求参数', `operParam` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求参数',
`jsonResult` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '返回参数', `jsonResult` varchar(max) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '返回参数',
`status` int(1) NULL DEFAULT 0 COMMENT '操作状态0正常 1异常', `status` int(1) NULL DEFAULT 0 COMMENT '操作状态0正常 1异常',
`errorMsg` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '错误消息', `errorMsg` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '错误消息',
`operTime` datetime(0) NULL DEFAULT NULL COMMENT '操作时间', `operTime` datetime(0) NULL DEFAULT NULL COMMENT '操作时间',

Binary file not shown.