用户角色菜单数据对应

This commit is contained in:
陈淳
2022-09-09 16:52:32 +08:00
parent 5d738d99fe
commit c15c43dba4
11 changed files with 81 additions and 25 deletions

View File

@@ -141,6 +141,13 @@
菜单管理
</summary>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.MenuController.GetList(Yi.Framework.Model.Models.MenuEntity)">
<summary>
动态条件查询全部
</summary>
<param name="menu"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.MenuController.GetMenuTree">
<summary>
得到树形菜单
@@ -152,6 +159,12 @@
角色管理
</summary>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.RoleController.PageList(Yi.Framework.Model.Models.RoleEntity,Yi.Framework.Common.Models.PageParModel)">
<summary>
动态条件分页查询
</summary>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.RoleController.GiveRoleSetMenu(Yi.Framework.DTOModel.GiveRoleSetMenuDto)">
<summary>
给多用户设置多角色

View File

@@ -20,7 +20,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
/// </summary>
[ApiController]
[Route("api/[controller]/[action]")]
public class MenuController
public class MenuController
{
private IMenuService _iMenuService;
public MenuController(ILogger<MenuEntity> logger, IMenuService iMenuService)
@@ -28,10 +28,16 @@ namespace Yi.Framework.ApiMicroservice.Controllers
_iMenuService = iMenuService;
}
/// <summary>
/// 动态条件查询全部
/// </summary>
/// <param name="menu"></param>
/// <returns></returns>
[HttpGet]
public async Task<Result> GetList()
public async Task<Result> GetList([FromQuery] MenuEntity menu)
{
return Result.Success().SetData(await _iMenuService._repository.GetListAsync());
return Result.Success().SetData(await _iMenuService.SelctGetList(menu));
}
@@ -41,8 +47,8 @@ namespace Yi.Framework.ApiMicroservice.Controllers
/// <returns></returns>
[HttpGet]
public async Task<Result> GetMenuTree()
{
return Result.Success().SetData(await _iMenuService. GetMenuTreeAsync());
{
return Result.Success().SetData(await _iMenuService.GetMenuTreeAsync());
}
}
}

View File

@@ -29,12 +29,17 @@ namespace Yi.Framework.ApiMicroservice.Controllers
_iRoleService = iRoleService;
}
/// <summary>
/// 动态条件分页查询
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<Result> PageList()
public async Task<Result> PageList([FromQuery] RoleEntity role, [FromQuery] PageParModel page)
{
return Result.Success().SetData(await _iRoleService._repository.GetListAsync());
return Result.Success().SetData(await _iRoleService.SelctPageList(role, page));
}
/// <summary>
/// 给多用户设置多角色
/// </summary>

View File

@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
@@ -8,5 +9,6 @@ namespace Yi.Framework.Interface
public partial interface IMenuService:IBaseService<MenuEntity>
{
Task<List<MenuEntity>> GetMenuTreeAsync();
Task<List<MenuEntity>> SelctGetList(MenuEntity menu);
}
}

View File

@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
@@ -27,5 +28,6 @@ namespace Yi.Framework.Interface
/// <param name="menuIds"></param>
/// <returns></returns>
Task<bool> GiveRoleSetMenu(List<long> roleIds, List<long> menuIds);
Task<PageModel<List<RoleEntity>>> SelctPageList(RoleEntity role, PageParModel page);
}
}

View File

@@ -1,6 +1,7 @@
using SqlSugar;
using System.Collections.Generic;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
@@ -9,11 +10,20 @@ namespace Yi.Framework.Service
{
public partial class MenuService : BaseService<MenuEntity>, IMenuService
{
public async Task<List<MenuEntity>> SelctGetList(MenuEntity menu)
{
var data = await _repository._Db.Queryable<MenuEntity>()
.WhereIF(!string.IsNullOrEmpty(menu.MenuName), u => u.MenuName.Contains(menu.MenuName))
.Where(u => u.IsDeleted == false)
.OrderBy(u => u.OrderNum, OrderByType.Desc)
.ToListAsync();
return data;
}
public async Task<List<MenuEntity>> GetMenuTreeAsync()
{
//ParentId 0,代表为根目录,只能存在一个
//复杂查询直接使用db代理
return await _repository._Db.Queryable<MenuEntity>().Where(u=>u.IsDeleted==false).ToTreeAsync(it=>it.Children,it=>it.ParentId,0);
return await _repository._Db.Queryable<MenuEntity>().Where(u => u.IsDeleted == false).ToTreeAsync(it => it.Children, it => it.ParentId, 0);
}
}
}

View File

@@ -1,6 +1,8 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
@@ -46,5 +48,21 @@ namespace Yi.Framework.Service
return await _repository._Db.Queryable<RoleEntity>().Includes(u => u.Menus).InSingleAsync(roleId);
}
public async Task<PageModel<List<RoleEntity>>> SelctPageList(RoleEntity role, PageParModel page)
{
RefAsync<int> total = 0;
var data = await _repository._Db.Queryable<RoleEntity>()
.WhereIF(!string.IsNullOrEmpty(role.RoleName), u => u.RoleName.Contains(role.RoleName))
.WhereIF(!string.IsNullOrEmpty(role.RoleCode), u => u.RoleCode.Contains(role.RoleCode))
.WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime)
.Where(u => u.IsDeleted == role.IsDeleted)
.OrderBy(u => u.OrderNum, OrderByType.Desc)
.ToPageListAsync(page.PageNum, page.PageSize, total);
return new PageModel<List<RoleEntity>>(data, total);
}
}
}

View File

@@ -165,7 +165,7 @@ namespace Yi.Framework.Service
.WhereIF(!string.IsNullOrEmpty(user.Phone), u => u.Phone.Contains(user.Phone))
.WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime)
.Where(u => u.IsDeleted == false)
.OrderBy(u => u.OrderNum)
.OrderBy(u => u.OrderNum, OrderByType.Desc)
.ToPageListAsync(page.PageNum, page.PageSize, total);
return new PageModel<List<UserEntity>>(data, total);

View File

@@ -9,8 +9,8 @@
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="菜单状态" clearable>
<el-form-item label="状态" prop="isDeleted">
<el-select v-model="queryParams.isDeleted" placeholder="菜单状态" clearable>
<el-option
v-for="dict in sys_normal_disable"
:key="dict.value"
@@ -63,7 +63,7 @@
<el-table-column prop="orderNum" label="排序" width="60"></el-table-column>
<el-table-column prop="permissionCode" label="权限标识" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="router" label="组件路径" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="isDe" label="状态" width="80">
<el-table-column prop="isDeleted" label="状态" width="80">
<template #default="scope">
<dict-tag :options="sys_normal_disable" :value="scope.row.isDeleted" />
</template>
@@ -360,7 +360,7 @@ function reset() {
isFrame: "1",
isCache: "0",
visible: "0",
status: "0"
isDeleted: "0"
};
proxy.resetForm("menuRef");
}

View File

@@ -10,18 +10,18 @@
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="权限字符" prop="roleKey">
<el-form-item label="权限字符" prop="roleCode">
<el-input
v-model="queryParams.roleKey"
v-model="queryParams.roleCode"
placeholder="请输入权限字符"
clearable
style="width: 240px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-form-item label="状态" prop="isDeleted">
<el-select
v-model="queryParams.status"
v-model="queryParams.isDeleted"
placeholder="角色状态"
clearable
style="width: 240px"
@@ -96,8 +96,8 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="角色编号" prop="roleCode" width="120" />
<el-table-column label="角色名称" prop="roleName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="权限字符" prop="roleKey" :show-overflow-tooltip="true" width="150" />
<el-table-column label="显示顺序" prop="roleSort" width="100" />
<el-table-column label="权限字符" prop="roleCode" :show-overflow-tooltip="true" width="150" />
<el-table-column label="显示顺序" prop="orderNum" width="100" />
<el-table-column label="状态" align="center" width="100">
<template #default="scope">
<el-switch
@@ -304,13 +304,13 @@ const data = reactive({
pageNum: 1,
pageSize: 10,
roleName: undefined,
roleKey: undefined,
status: undefined
roleCode: undefined,
isDeleted: undefined
},
rules: {
roleName: [{ required: true, message: "角色名称不能为空", trigger: "blur" }],
roleKey: [{ required: true, message: "权限字符不能为空", trigger: "blur" }],
roleSort: [{ required: true, message: "角色顺序不能为空", trigger: "blur" }]
roleCode: [{ required: true, message: "权限字符不能为空", trigger: "blur" }],
orderNum: [{ required: true, message: "角色顺序不能为空", trigger: "blur" }]
},
});
@@ -320,8 +320,8 @@ const { queryParams, form, rules } = toRefs(data);
function getList() {
loading.value = true;
listRole(proxy.addDateRange(queryParams.value, dateRange.value)).then(response => {
roleList.value = response.data;
total.value = response.total;
roleList.value = response.data.data;
total.value = response.data.total;
loading.value = false;
});
}