角色分配提供分页功能
This commit is contained in:
parent
40cab1dd1e
commit
31157a2f97
@ -1,7 +1,6 @@
|
||||
using Infrastructure;
|
||||
using Infrastructure.Attribute;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using ZR.Admin.WebApi.Filters;
|
||||
using ZR.Model;
|
||||
@ -29,13 +28,13 @@ namespace ZR.Admin.WebApi.Controllers.System
|
||||
/// <summary>
|
||||
/// 根据角色编号获取已分配的用户
|
||||
/// </summary>
|
||||
/// <param name="roleId"></param>
|
||||
/// <param name="roleUserQueryDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("get/{roleId}")]
|
||||
[HttpGet("list")]
|
||||
[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);
|
||||
}
|
||||
@ -70,24 +69,19 @@ namespace ZR.Admin.WebApi.Controllers.System
|
||||
/// <summary>
|
||||
/// 获取未分配用户角色
|
||||
/// </summary>
|
||||
/// <param name="roleId"></param>
|
||||
/// <param name="roleUserQueryDto"></param>
|
||||
/// <returns></returns>
|
||||
[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不能为空");
|
||||
}
|
||||
// 取得该角色所有添加的用户
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,13 @@ using System.Text;
|
||||
|
||||
namespace ZR.Model.System.Dto
|
||||
{
|
||||
public class RoleUserQueryDto : PagerInfo
|
||||
{
|
||||
public long RoleId { get; set; }
|
||||
|
||||
public string UserName { get; set; }
|
||||
}
|
||||
|
||||
public class RoleUsersCreateDto
|
||||
{
|
||||
/// <summary>
|
||||
@ -1,7 +1,9 @@
|
||||
using Infrastructure.Attribute;
|
||||
using SqlSugar;
|
||||
using System.Collections.Generic;
|
||||
using ZR.Model;
|
||||
using ZR.Model.System;
|
||||
using ZR.Model.System.Dto;
|
||||
|
||||
namespace ZR.Repository.System
|
||||
{
|
||||
@ -73,5 +75,39 @@ namespace ZR.Repository.System
|
||||
.Select((t1, u) => u)
|
||||
.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.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ZR.Model;
|
||||
using ZR.Model.System.Dto;
|
||||
using ZR.Model.System;
|
||||
|
||||
@ -34,8 +35,27 @@ namespace ZR.Service.System.IService
|
||||
/// <returns></returns>
|
||||
public int AddUserRole(List<SysUserRole> sysUsers);
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户数据根据角色id
|
||||
/// </summary>
|
||||
/// <param name="roleId"></param>
|
||||
/// <returns></returns>
|
||||
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>
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using ZR.Model;
|
||||
using ZR.Model.System.Dto;
|
||||
using ZR.Model.System;
|
||||
using ZR.Repository.System;
|
||||
@ -12,8 +13,8 @@ namespace ZR.Service.System
|
||||
/// <summary>
|
||||
/// 用户角色
|
||||
/// </summary>
|
||||
[AppService(ServiceType = typeof(ISysUserRoleService),ServiceLifetime = LifeTime.Transient)]
|
||||
public class SysUserRoleService: ISysUserRoleService
|
||||
[AppService(ServiceType = typeof(ISysUserRoleService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class SysUserRoleService : ISysUserRoleService
|
||||
{
|
||||
public SysUserRoleRepository SysUserRoleRepository;
|
||||
|
||||
@ -74,6 +75,26 @@ namespace ZR.Service.System
|
||||
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>
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询角色用户
|
||||
export function getRoleUsers(roleId) {
|
||||
export function getRoleUsers(query) {
|
||||
return request({
|
||||
url: '/system/userRole/get/' + roleId,
|
||||
method: 'get'
|
||||
url: '/system/userRole/list',
|
||||
method: 'get',
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
|
||||
@ -25,10 +26,11 @@ export function deleteRoleUsers(data) {
|
||||
})
|
||||
}
|
||||
// 查询角色未添加用户列表
|
||||
export function getExcludeUsers(roleId) {
|
||||
export function getExcludeUsers(query) {
|
||||
return request({
|
||||
url: '/system/userRole/getExcludeUsers?roleId=' + roleId,
|
||||
method: 'get'
|
||||
url: '/system/userRole/getExcludeUsers',
|
||||
method: 'get',
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -16,12 +16,10 @@
|
||||
批量取消授权</el-button>
|
||||
</el-form-item>
|
||||
<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>
|
||||
<el-table ref="roleUserTable" v-loading="loadingRoleUser"
|
||||
:data="dataRoleUserTable.filter(data => !search || data.userName.toLowerCase().includes(search.toLowerCase()))" row-key="userId" stripe
|
||||
border :height="tableHeight-180">
|
||||
<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" />
|
||||
@ -41,16 +39,17 @@
|
||||
</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-row>
|
||||
|
||||
<!-- 添加或修改菜单对话框 -->
|
||||
<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-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> -->
|
||||
</el-form>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-table ref="userTable" v-loading="loadingUser" :data="dataUserTable" row-key="userId" stripe border :height="tableHeight*0.5">
|
||||
@ -65,6 +64,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination v-show="dataUserCount > 0" :total="dataUserCount" :page.sync="userQueryParams.pageNum" :limit.sync="userQueryParams.pageSize" @pagination="handleGetUserTable" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
@ -96,8 +96,10 @@ export default {
|
||||
dataRoleTable: [],
|
||||
// 已添加用户列表
|
||||
dataRoleUserTable: [],
|
||||
dataRoleUserCount: 0,
|
||||
// 未添加用户列表
|
||||
dataUserTable: [],
|
||||
dataUserCount: 0,
|
||||
// 勾选添加用户列表
|
||||
addSelections: [],
|
||||
// 勾选删除用户列表
|
||||
@ -108,6 +110,18 @@ export default {
|
||||
roleId: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
roleUserQueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
roleId: undefined,
|
||||
userName: undefined,
|
||||
},
|
||||
userQueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
roleId: undefined,
|
||||
userName: undefined,
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@ -124,8 +138,10 @@ export default {
|
||||
// 获取角色用户
|
||||
getRoleUser() {
|
||||
this.loadingRoleUser = true;
|
||||
getRoleUsers(this.roleId).then((response) => {
|
||||
this.dataRoleUserTable = response.data;
|
||||
this.roleUserQueryParams.roleId = this.roleId;
|
||||
getRoleUsers(this.roleUserQueryParams).then((response) => {
|
||||
this.dataRoleUserTable = response.data.result;
|
||||
this.dataRoleUserCount = response.data.totalNum;
|
||||
this.loadingRoleUser = false;
|
||||
});
|
||||
},
|
||||
@ -191,8 +207,10 @@ export default {
|
||||
handleGetUserTable() {
|
||||
this.open = true;
|
||||
this.loadingUser = true;
|
||||
getExcludeUsers(this.roleId).then((response) => {
|
||||
this.dataUserTable = response.data;
|
||||
this.userQueryParams.roleId = this.roleId;
|
||||
getExcludeUsers(this.userQueryParams).then((response) => {
|
||||
this.dataUserTable = response.data.result;
|
||||
this.dataUserCount = response.data.totalNum;
|
||||
this.loadingUser = false;
|
||||
});
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user