树形构造器修改

This commit is contained in:
chenchun
2022-09-11 16:49:40 +08:00
parent ef35e1cfd9
commit c65e76bbc3
15 changed files with 62 additions and 36 deletions

View File

@@ -294,6 +294,14 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.RoleController.UpdateStatus(System.Int64,System.Boolean)">
<summary>
更改角色状态
</summary>
<param name="roleId"></param>
<param name="isDel"></param>
<returns></returns>
</member>
<member name="T:Yi.Framework.ApiMicroservice.Controllers.TestController"> <member name="T:Yi.Framework.ApiMicroservice.Controllers.TestController">
<summary> <summary>
测试控制器 测试控制器

View File

@@ -74,5 +74,18 @@ namespace Yi.Framework.ApiMicroservice.Controllers
{ {
return Result.Success().SetStatus(await _iRoleService.UpdateInfo(roleDto)); return Result.Success().SetStatus(await _iRoleService.UpdateInfo(roleDto));
} }
/// <summary>
/// 更改角色状态
/// </summary>
/// <param name="roleId"></param>
/// <param name="isDel"></param>
/// <returns></returns>
[HttpPut]
public async Task<Result> UpdateStatus(long roleId, bool isDel)
{
return Result.Success().SetData(await _iRoleService._repository.UpdateIgnoreNullAsync(new RoleEntity() { Id = roleId, IsDeleted = isDel }));
}
} }
} }

View File

@@ -190,9 +190,9 @@ namespace Yi.Framework.ApiMicroservice.Controllers
{ {
List<VueRouterModel> vueRouterModels = new() List<VueRouterModel> vueRouterModels = new()
{ {
new VueRouterModel { Id = 1, Sort = 1, ParentId = 0, Name = "001" }, new VueRouterModel { Id = 1, OrderNum = 1, ParentId = 0, Name = "001" },
new VueRouterModel { Id = 2, Sort = 1, ParentId = 1, Name = "001001" }, new VueRouterModel { Id = 2, OrderNum = 1, ParentId = 1, Name = "001001" },
new VueRouterModel { Id = 3, Sort = 1, ParentId = 1, Name = "001002" } new VueRouterModel { Id = 3, OrderNum = 1, ParentId = 1, Name = "001002" }
}; };
var treeData = Common.Helper.TreeHelper.SetTree(vueRouterModels); var treeData = Common.Helper.TreeHelper.SetTree(vueRouterModels);
return Result.Success().SetData(treeData); return Result.Success().SetData(treeData);

View File

@@ -9,7 +9,7 @@ namespace Yi.Framework.Common.Helper
{ {
public static class TreeHelper public static class TreeHelper
{ {
public static IList<T> SetTree<T>(IList<T> list, Action<T> action = null) public static List<T> SetTree<T>(List<T> list, Action<T> action = null)
{ {
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
@@ -30,7 +30,7 @@ namespace Yi.Framework.Common.Helper
SetTreeChildren(list, children, model, action); SetTreeChildren(list, children, model, action);
} }
} }
return result.OrderBy(m => (m as ITreeModel<T>).Sort).ToList(); return result.OrderBy(m => (m as ITreeModel<T>).OrderNum).ToList();
} }
return null; return null;
} }
@@ -52,7 +52,7 @@ namespace Yi.Framework.Common.Helper
SetTreeChildren(list, _children, item, action); SetTreeChildren(list, _children, item, action);
} }
} }
mm.Children = mm.Children.OrderBy(m => (m as ITreeModel<T>).Sort).ToList(); mm.Children = mm.Children.OrderBy(m => (m as ITreeModel<T>).OrderNum).ToList();
} }
} }
} }

View File

@@ -8,10 +8,10 @@ namespace Yi.Framework.Common.Models
{ {
public interface ITreeModel<T> public interface ITreeModel<T>
{ {
public int Id { get; set; } public long Id { get; set; }
public int ParentId { get; set; } public long ParentId { get; set; }
public int Sort { get; set; } public int OrderNum { get; set; }
public IList<T> Children { get; set; } public List<T> Children { get; set; }
} }
} }

View File

@@ -8,9 +8,9 @@ namespace Yi.Framework.Common.Models
{ {
public class VueRouterModel : ITreeModel<VueRouterModel> public class VueRouterModel : ITreeModel<VueRouterModel>
{ {
public int Id { get; set; } public long Id { get; set; }
public int ParentId { get; set; } public long ParentId { get; set; }
public int Sort { get; set; } public int OrderNum { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Path { get; set; } public string Path { get; set; }
@@ -19,7 +19,7 @@ namespace Yi.Framework.Common.Models
public string Component { get; set; } public string Component { get; set; }
public bool AlwaysShow { get; set; } public bool AlwaysShow { get; set; }
public Meta Meta { get; set; } public Meta Meta { get; set; }
public IList<VueRouterModel> Children { get; set; } public List<VueRouterModel> Children { get; set; }
} }

View File

@@ -13,7 +13,7 @@ namespace Yi.Framework.Model.Models
{ {
public RoleEntity() public RoleEntity()
{ {
this.IsDeleted = false; //this.IsDeleted = false;
this.CreateTime = DateTime.Now; this.CreateTime = DateTime.Now;
} }
[JsonConverter(typeof(ValueToStringConverter))] [JsonConverter(typeof(ValueToStringConverter))]

View File

@@ -13,7 +13,6 @@ namespace Yi.Framework.Model.Models
{ {
public UserEntity() public UserEntity()
{ {
this.IsDeleted = false;
this.CreateTime = DateTime.Now; this.CreateTime = DateTime.Now;
} }
[JsonConverter(typeof(ValueToStringConverter))] [JsonConverter(typeof(ValueToStringConverter))]

View File

@@ -60,7 +60,7 @@ namespace Yi.Framework.Service
.WhereIF(!string.IsNullOrEmpty(role.RoleName), u => u.RoleName.Contains(role.RoleName)) .WhereIF(!string.IsNullOrEmpty(role.RoleName), u => u.RoleName.Contains(role.RoleName))
.WhereIF(!string.IsNullOrEmpty(role.RoleCode), u => u.RoleCode.Contains(role.RoleCode)) .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) .WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime)
.Where(u => u.IsDeleted == role.IsDeleted) .WhereIF(role.IsDeleted.IsNotNull(), u => u.IsDeleted == role.IsDeleted)
.OrderBy(u => u.OrderNum, OrderByType.Desc) .OrderBy(u => u.OrderNum, OrderByType.Desc)
.ToPageListAsync(page.PageNum, page.PageSize, total); .ToPageListAsync(page.PageNum, page.PageSize, total);

View File

@@ -132,10 +132,10 @@ namespace Yi.Framework.Service
if (!string.IsNullOrEmpty(menu.PermissionCode)) if (!string.IsNullOrEmpty(menu.PermissionCode))
{ {
userRoleMenu.PermissionCodes.Add(menu.PermissionCode); userRoleMenu.PermissionCodes.Add(menu.PermissionCode);
userRoleMenu.Menus.Add(menu);
} }
userRoleMenu.Menus.Add(menu);
} }
} }
@@ -164,7 +164,7 @@ namespace Yi.Framework.Service
.WhereIF(!string.IsNullOrEmpty(user.Name), u => u.Name.Contains(user.Name)) .WhereIF(!string.IsNullOrEmpty(user.Name), u => u.Name.Contains(user.Name))
.WhereIF(!string.IsNullOrEmpty(user.Phone), u => u.Phone.Contains(user.Phone)) .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) .WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime)
.Where(u => u.IsDeleted == user.IsDeleted) .WhereIF(user.IsDeleted.IsNotNull(),u => u.IsDeleted == user.IsDeleted)
.Includes(u => u.Roles) .Includes(u => u.Roles)
.OrderBy(u => u.OrderNum, OrderByType.Desc) .OrderBy(u => u.OrderNum, OrderByType.Desc)
.ToPageListAsync(page.PageNum, page.PageSize, total); .ToPageListAsync(page.PageNum, page.PageSize, total);
@@ -179,8 +179,12 @@ namespace Yi.Framework.Service
List<VueRouterModel> routers = new(); List<VueRouterModel> routers = new();
foreach (var m in menus) foreach (var m in menus)
{ {
var r = new VueRouterModel(); var r = new VueRouterModel();
var routerName = m.Router.Split("/").LastOrDefault(); var routerName = m.Router.Split("/").LastOrDefault();
r.Id = m.Id;
r.ParentId = (long)m.ParentId;
//开头大写 //开头大写
r.Name = routerName.First().ToString().ToUpper() + routerName.Substring(1); r.Name = routerName.First().ToString().ToUpper() + routerName.Substring(1);
r.Path = m.Router; r.Path = m.Router;
@@ -195,6 +199,9 @@ namespace Yi.Framework.Service
} }
if (m.MenuType == MenuTypeEnum.Menu.GetHashCode()) if (m.MenuType == MenuTypeEnum.Menu.GetHashCode())
{ {
r.Redirect = "noRedirect";
r.AlwaysShow = true;
r.Component = m.Component; r.Component = m.Component;
} }
@@ -212,7 +219,7 @@ namespace Yi.Framework.Service
routers.Add(r); routers.Add(r);
} }
return routers; return Common.Helper.TreeHelper.SetTree(routers) ;
} }
public async Task<bool> UpdateInfo(UserInfoDto userDto) public async Task<bool> UpdateInfo(UserInfoDto userDto)

View File

@@ -3,7 +3,7 @@ import request from '@/utils/request'
// 获取路由 // 获取路由
export const getRouters = () => { export const getRouters = () => {
return request({ return request({
url: '/getRouters', url: '/account/GetRouterInfo',
method: 'get' method: 'get'
}) })
} }

View File

@@ -47,15 +47,10 @@ export function dataScope(data) {
} }
// 角色状态修改 // 角色状态修改
export function changeRoleStatus(roleId, status) { export function changeRoleStatus(roleId, isDel) {
const data = {
roleId,
status
}
return request({ return request({
url: '/system/role/changeStatus', url: `/role/updateStatus?roleId=${roleId}&isDel=${isDel}`,
method: 'put', method: 'put'
data: data
}) })
} }

View File

@@ -35,8 +35,8 @@ const usePermissionStore = defineStore(
generateRoutes(roles) { generateRoutes(roles) {
return new Promise(resolve => { return new Promise(resolve => {
// 向后端请求路由数据 // 向后端请求路由数据
// getRouters().then(res => { // getRouters().then(response => {
// const res=response.data;
const res=[ const res=[
{ {
"name": "System", "name": "System",
@@ -344,6 +344,7 @@ const res=[
} }
]; ];
const sdata = JSON.parse(JSON.stringify(res)) const sdata = JSON.parse(JSON.stringify(res))
const rdata = JSON.parse(JSON.stringify(res)) const rdata = JSON.parse(JSON.stringify(res))
const defaultData = JSON.parse(JSON.stringify(res)) const defaultData = JSON.parse(JSON.stringify(res))
@@ -357,7 +358,10 @@ const res=[
this.setDefaultRoutes(sidebarRoutes) this.setDefaultRoutes(sidebarRoutes)
this.setTopbarRoutes(defaultRoutes) this.setTopbarRoutes(defaultRoutes)
resolve(rewriteRoutes) resolve(rewriteRoutes)
// })
// })
}) })
} }
} }

View File

@@ -66,8 +66,8 @@
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column label="用户号" align="center" key="userName" prop="userName" v-if="columns[0].visible" /> <el-table-column label="用户号" align="center" key="id" prop="id" v-if="columns[0].visible" />
<el-table-column label="用户名称" align="center" key="name" prop="name" v-if="columns[1].visible" <el-table-column label="用户账号" align="center" key="userName" prop="userName" v-if="columns[1].visible"
:show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" align="center" key="nick" prop="nick" v-if="columns[2].visible" <el-table-column label="用户昵称" align="center" key="nick" prop="nick" v-if="columns[2].visible"
:show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
@@ -177,7 +177,7 @@
<el-form-item label="岗位"> <el-form-item label="岗位">
<el-select v-model="form.postIds" multiple placeholder="请选择"> <el-select v-model="form.postIds" multiple placeholder="请选择">
<el-option v-for="item in postOptions" :key="item.postId" :label="item.postName" <el-option v-for="item in postOptions" :key="item.postId" :label="item.postName"
:value="item.postId" :disabled="item.status == 1"></el-option> :value="item.postId" :disabled="item.isDeleted == true"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>