角色分配提供分页功能
This commit is contained in:
parent
40cab1dd1e
commit
31157a2f97
@ -1,7 +1,6 @@
|
|||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using Infrastructure.Attribute;
|
using Infrastructure.Attribute;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using System;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using ZR.Admin.WebApi.Filters;
|
using ZR.Admin.WebApi.Filters;
|
||||||
using ZR.Model;
|
using ZR.Model;
|
||||||
@ -29,13 +28,13 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据角色编号获取已分配的用户
|
/// 根据角色编号获取已分配的用户
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="roleId"></param>
|
/// <param name="roleUserQueryDto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("get/{roleId}")]
|
[HttpGet("list")]
|
||||||
[ActionPermissionFilter(Permission = "system:roleusers:query")]
|
[ActionPermissionFilter(Permission = "system:roleusers:query")]
|
||||||
public IActionResult GetList(long roleId = 0)
|
public IActionResult GetList([FromQuery] RoleUserQueryDto roleUserQueryDto)
|
||||||
{
|
{
|
||||||
var list = SysUserRoleService.GetSysUsersByRoleId(roleId);
|
var list = SysUserRoleService.GetSysUsersByRoleId(roleUserQueryDto);
|
||||||
|
|
||||||
return SUCCESS(list, TIME_FORMAT_FULL);
|
return SUCCESS(list, TIME_FORMAT_FULL);
|
||||||
}
|
}
|
||||||
@ -70,24 +69,19 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取未分配用户角色
|
/// 获取未分配用户角色
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="roleId"></param>
|
/// <param name="roleUserQueryDto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("GetExcludeUsers")]
|
[HttpGet("GetExcludeUsers")]
|
||||||
public IActionResult GetExcludeUsers(long roleId = 0)
|
public IActionResult GetExcludeUsers([FromQuery] RoleUserQueryDto roleUserQueryDto)
|
||||||
{
|
{
|
||||||
if (roleId <= 0)
|
if (roleUserQueryDto.RoleId <= 0)
|
||||||
{
|
{
|
||||||
throw new CustomException(ResultCode.PARAM_ERROR, "roleId不能为空");
|
throw new CustomException(ResultCode.PARAM_ERROR, "roleId不能为空");
|
||||||
}
|
}
|
||||||
// 取得该角色所有添加的用户
|
|
||||||
var userIds = SysUserRoleService.GetSysUsersByRoleId(roleId).Select(f => f.UserId);
|
|
||||||
|
|
||||||
SysUser userQuery = new();
|
|
||||||
userQuery.Status = "0";
|
|
||||||
PagerInfo pager = new(1, 50);
|
|
||||||
|
|
||||||
// 获取未添加用户
|
// 获取未添加用户
|
||||||
var list = UserService.SelectUserList(userQuery, pager).Where(m => !userIds.Contains(m.UserId));
|
var list = SysUserRoleService.GetExcludedSysUsersByRoleId(roleUserQueryDto);
|
||||||
|
|
||||||
return SUCCESS(list, TIME_FORMAT_FULL);
|
return SUCCESS(list, TIME_FORMAT_FULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,13 @@ using System.Text;
|
|||||||
|
|
||||||
namespace ZR.Model.System.Dto
|
namespace ZR.Model.System.Dto
|
||||||
{
|
{
|
||||||
|
public class RoleUserQueryDto : PagerInfo
|
||||||
|
{
|
||||||
|
public long RoleId { get; set; }
|
||||||
|
|
||||||
|
public string UserName { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class RoleUsersCreateDto
|
public class RoleUsersCreateDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1,7 +1,9 @@
|
|||||||
using Infrastructure.Attribute;
|
using Infrastructure.Attribute;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using ZR.Model;
|
||||||
using ZR.Model.System;
|
using ZR.Model.System;
|
||||||
|
using ZR.Model.System.Dto;
|
||||||
|
|
||||||
namespace ZR.Repository.System
|
namespace ZR.Repository.System
|
||||||
{
|
{
|
||||||
@ -73,5 +75,39 @@ namespace ZR.Repository.System
|
|||||||
.Select((t1, u) => u)
|
.Select((t1, u) => u)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取用户数据根据角色id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="roleUserQueryDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public PagedInfo<SysUser> GetSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto)
|
||||||
|
{
|
||||||
|
var query = Context.Queryable<SysUserRole, SysUser>((t1, u) => new JoinQueryInfos(
|
||||||
|
JoinType.Left, t1.UserId == u.UserId))
|
||||||
|
.Where((t1, u) => t1.RoleId == roleUserQueryDto.RoleId && u.DelFlag == "0");
|
||||||
|
if (!string.IsNullOrEmpty(roleUserQueryDto.UserName))
|
||||||
|
{
|
||||||
|
query = query.Where((t1, u) => u.UserName.Contains(roleUserQueryDto.UserName));
|
||||||
|
}
|
||||||
|
return query.Select((t1, u) => u).ToPage(roleUserQueryDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取尚未指派的用户数据根据角色id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="roleUserQueryDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public PagedInfo<SysUser> GetExcludedSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto)
|
||||||
|
{
|
||||||
|
var query = Context.Queryable<SysUser>()
|
||||||
|
.Where(it => SqlFunc.Subqueryable<SysUserRole>()
|
||||||
|
.Where(s => s.UserId == it.UserId).NotAny());
|
||||||
|
if (!string.IsNullOrEmpty(roleUserQueryDto.UserName))
|
||||||
|
{
|
||||||
|
query = query.Where(x => x.UserName.Contains(roleUserQueryDto.UserName));
|
||||||
|
}
|
||||||
|
return query.ToPage(roleUserQueryDto);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using ZR.Model;
|
||||||
using ZR.Model.System.Dto;
|
using ZR.Model.System.Dto;
|
||||||
using ZR.Model.System;
|
using ZR.Model.System;
|
||||||
|
|
||||||
@ -34,8 +35,27 @@ namespace ZR.Service.System.IService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public int AddUserRole(List<SysUserRole> sysUsers);
|
public int AddUserRole(List<SysUserRole> sysUsers);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取用户数据根据角色id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="roleId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public List<SysUser> GetSysUsersByRoleId(long roleId);
|
public List<SysUser> GetSysUsersByRoleId(long roleId);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取用户数据根据角色id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="roleUserQueryDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public PagedInfo<SysUser> GetSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取尚未指派的用户数据根据角色id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="roleUserQueryDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public PagedInfo<SysUser> GetExcludedSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 新增用户角色信息
|
/// 新增用户角色信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using ZR.Model;
|
||||||
using ZR.Model.System.Dto;
|
using ZR.Model.System.Dto;
|
||||||
using ZR.Model.System;
|
using ZR.Model.System;
|
||||||
using ZR.Repository.System;
|
using ZR.Repository.System;
|
||||||
@ -12,8 +13,8 @@ namespace ZR.Service.System
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用户角色
|
/// 用户角色
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[AppService(ServiceType = typeof(ISysUserRoleService),ServiceLifetime = LifeTime.Transient)]
|
[AppService(ServiceType = typeof(ISysUserRoleService), ServiceLifetime = LifeTime.Transient)]
|
||||||
public class SysUserRoleService: ISysUserRoleService
|
public class SysUserRoleService : ISysUserRoleService
|
||||||
{
|
{
|
||||||
public SysUserRoleRepository SysUserRoleRepository;
|
public SysUserRoleRepository SysUserRoleRepository;
|
||||||
|
|
||||||
@ -74,6 +75,26 @@ namespace ZR.Service.System
|
|||||||
return SysUserRoleRepository.GetSysUsersByRoleId(roleId);
|
return SysUserRoleRepository.GetSysUsersByRoleId(roleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取用户数据根据角色id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="roleUserQueryDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public PagedInfo<SysUser> GetSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto)
|
||||||
|
{
|
||||||
|
return SysUserRoleRepository.GetSysUsersByRoleId(roleUserQueryDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取尚未指派的用户数据根据角色id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="roleUserQueryDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public PagedInfo<SysUser> GetExcludedSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto)
|
||||||
|
{
|
||||||
|
return SysUserRoleRepository.GetExcludedSysUsersByRoleId(roleUserQueryDto);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 新增用户角色信息
|
/// 新增用户角色信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
|
||||||
// 查询角色用户
|
// 查询角色用户
|
||||||
export function getRoleUsers(roleId) {
|
export function getRoleUsers(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/system/userRole/get/' + roleId,
|
url: '/system/userRole/list',
|
||||||
method: 'get'
|
method: 'get',
|
||||||
|
params: query,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -25,10 +26,11 @@ export function deleteRoleUsers(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 查询角色未添加用户列表
|
// 查询角色未添加用户列表
|
||||||
export function getExcludeUsers(roleId) {
|
export function getExcludeUsers(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/system/userRole/getExcludeUsers?roleId=' + roleId,
|
url: '/system/userRole/getExcludeUsers',
|
||||||
method: 'get'
|
method: 'get',
|
||||||
|
params: query,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,12 +16,10 @@
|
|||||||
批量取消授权</el-button>
|
批量取消授权</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item style="margin-left:auto">
|
<el-form-item style="margin-left:auto">
|
||||||
<el-input v-model="search" placeholder="请输入用户名称" clearable prefix-icon="el-icon-search" />
|
<el-input v-model="roleUserQueryParams.userName" placeholder="请输入用户名称" clearable prefix-icon="el-icon-search" @keyup.enter.native="getRoleUser" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-table ref="roleUserTable" v-loading="loadingRoleUser"
|
<el-table ref="roleUserTable" v-loading="loadingRoleUser" :data="dataRoleUserTable" row-key="userId" stripe border :height="tableHeight-230">
|
||||||
:data="dataRoleUserTable.filter(data => !search || data.userName.toLowerCase().includes(search.toLowerCase()))" row-key="userId" stripe
|
|
||||||
border :height="tableHeight-180">
|
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column prop="userId" align="center" label="用户Id" width="150" />
|
<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="userName" align="center" label="用户账号" width="150" />
|
||||||
@ -41,16 +39,17 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</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-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-on-click-modal="false" @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="search" placeholder="请输入用户名称" clearable prefix-icon="el-icon-search" />
|
<el-input v-model="userQueryParams.userName" placeholder="请输入用户名称" clearable prefix-icon="el-icon-search" @keyup.enter.native="handleGetUserTable" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form> -->
|
</el-form>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-table ref="userTable" v-loading="loadingUser" :data="dataUserTable" row-key="userId" stripe border :height="tableHeight*0.5">
|
<el-table ref="userTable" v-loading="loadingUser" :data="dataUserTable" row-key="userId" stripe border :height="tableHeight*0.5">
|
||||||
@ -65,6 +64,7 @@
|
|||||||
</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" />
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@ -96,8 +96,10 @@ export default {
|
|||||||
dataRoleTable: [],
|
dataRoleTable: [],
|
||||||
// 已添加用户列表
|
// 已添加用户列表
|
||||||
dataRoleUserTable: [],
|
dataRoleUserTable: [],
|
||||||
|
dataRoleUserCount: 0,
|
||||||
// 未添加用户列表
|
// 未添加用户列表
|
||||||
dataUserTable: [],
|
dataUserTable: [],
|
||||||
|
dataUserCount: 0,
|
||||||
// 勾选添加用户列表
|
// 勾选添加用户列表
|
||||||
addSelections: [],
|
addSelections: [],
|
||||||
// 勾选删除用户列表
|
// 勾选删除用户列表
|
||||||
@ -108,6 +110,18 @@ export default {
|
|||||||
roleId: "",
|
roleId: "",
|
||||||
// 是否显示弹出层
|
// 是否显示弹出层
|
||||||
open: false,
|
open: false,
|
||||||
|
roleUserQueryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
roleId: undefined,
|
||||||
|
userName: undefined,
|
||||||
|
},
|
||||||
|
userQueryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
roleId: undefined,
|
||||||
|
userName: undefined,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -124,8 +138,10 @@ export default {
|
|||||||
// 获取角色用户
|
// 获取角色用户
|
||||||
getRoleUser() {
|
getRoleUser() {
|
||||||
this.loadingRoleUser = true;
|
this.loadingRoleUser = true;
|
||||||
getRoleUsers(this.roleId).then((response) => {
|
this.roleUserQueryParams.roleId = this.roleId;
|
||||||
this.dataRoleUserTable = response.data;
|
getRoleUsers(this.roleUserQueryParams).then((response) => {
|
||||||
|
this.dataRoleUserTable = response.data.result;
|
||||||
|
this.dataRoleUserCount = response.data.totalNum;
|
||||||
this.loadingRoleUser = false;
|
this.loadingRoleUser = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -191,8 +207,10 @@ export default {
|
|||||||
handleGetUserTable() {
|
handleGetUserTable() {
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.loadingUser = true;
|
this.loadingUser = true;
|
||||||
getExcludeUsers(this.roleId).then((response) => {
|
this.userQueryParams.roleId = this.roleId;
|
||||||
this.dataUserTable = response.data;
|
getExcludeUsers(this.userQueryParams).then((response) => {
|
||||||
|
this.dataUserTable = response.data.result;
|
||||||
|
this.dataUserCount = response.data.totalNum;
|
||||||
this.loadingUser = false;
|
this.loadingUser = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user