Просмотр исходного кода

修复优化角色和租户菜单授权流程

zuohuaijun 3 лет назад
Родитель
Сommit
c34c400864

+ 0 - 30
Admin.NET/Admin.NET.Application/Service/TestJobTimer.cs

@@ -1,30 +0,0 @@
-using Furion.TaskScheduler;
-
-namespace Admin.NET.Application.Service;
-
-/// <summary>
-/// 任务调度测试
-/// </summary>
-public class TestJobTimer : ISpareTimeWorker
-{
-    /// <summary>
-    /// 定时器
-    /// </summary>
-    /// <param name="timer"></param>
-    /// <param name="count"></param>
-    [SpareTime(5000, "定时器", StartNow = true, ExecuteType = SpareTimeExecuteTypes.Serial)]
-    public void CollectDeviceChannel(SpareTimer timer, long count)
-    {
-        ////// 写日志文件
-        ////StringLoggingPart.Default.SetMessage("这是一个日志").LogInformation();
-
-        //Scoped.Create((_, scope) =>
-        //{
-        //    //var services = scope.ServiceProvider;
-        //    //var db = services.GetService<ISqlSugarClient>();
-
-        //    // 写日志文件
-        //    Log.Information("【定时器】" + DateTime.Now + "执行次数:" + count);
-        //});
-    }
-}

+ 5 - 5
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -20,20 +20,20 @@
     <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.8.2.9" />
     <PackageReference Include="Furion.Pure" Version="4.8.2.9" />
     <PackageReference Include="Lazy.Captcha.Core" Version="1.1.6" />
-    <PackageReference Include="Magicodes.IE.Excel" Version="2.7.0" />
-    <PackageReference Include="Magicodes.IE.Pdf" Version="2.7.0" />
+    <PackageReference Include="Magicodes.IE.Excel" Version="2.7.1" />
+    <PackageReference Include="Magicodes.IE.Pdf" Version="2.7.1" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.11" />
     <PackageReference Include="NEST" Version="7.17.5" />
     <PackageReference Include="NETCore.MailKit" Version="2.1.0" />
-    <PackageReference Include="NewLife.Redis" Version="5.0.2022.1101" />
+    <PackageReference Include="NewLife.Redis" Version="5.0.2022.1201" />
     <PackageReference Include="OnceMi.AspNetCore.OSS" Version="1.1.9" />
-    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.20.2" />
+    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.21.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="2.15.0" />
     <PackageReference Include="SqlSugarCore" Version="5.1.3.35" />
     <PackageReference Include="System.Linq.Dynamic.Core" Version="1.2.23" />
     <PackageReference Include="UAParser" Version="3.1.47" />
     <PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
-    <PackageReference Include="Masuit.Tools.Core" Version="2.5.8" />
+    <PackageReference Include="Masuit.Tools.Core" Version="2.5.8.1" />
   </ItemGroup>
 
   <ItemGroup>

+ 6 - 34
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -3558,6 +3558,11 @@
             清理日志作业任务
             </summary>
         </member>
+        <member name="T:Admin.NET.Core.OnlineUserJob">
+            <summary>
+            清理在线用户作业任务
+            </summary>
+        </member>
         <member name="T:Admin.NET.Core.DatabaseLoggingWriter">
             <summary>
             数据库日志写入器
@@ -6218,20 +6223,6 @@
             <param name="roleIdList"></param>
             <returns></returns>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysRoleMenuService.GetRoleMenuTree(System.Collections.Generic.List{System.Int64})">
-            <summary>
-            根据角色Id集合获取菜单树
-            </summary>
-            <param name="roleIdList"></param>
-            <returns></returns>
-        </member>
-        <member name="M:Admin.NET.Core.Service.SysRoleMenuService.GetRoleMenuList(System.Collections.Generic.List{System.Int64})">
-            <summary>
-            根据角色Id集合获取菜单集合
-            </summary>
-            <param name="roleIdList"></param>
-            <returns></returns>
-        </member>
         <member name="M:Admin.NET.Core.Service.SysRoleMenuService.GrantRoleMenu(Admin.NET.Core.Service.RoleMenuInput)">
             <summary>
             授权角色菜单
@@ -6346,13 +6337,6 @@
             <param name="input"></param>
             <returns></returns>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysRoleService.GetRoleOwnMenuTree(Admin.NET.Core.Service.RoleInput)">
-            <summary>
-            根据角色Id获取菜单树(Antd)
-            </summary>
-            <param name="input"></param>
-            <returns></returns>
-        </member>
         <member name="M:Admin.NET.Core.Service.SysRoleService.GetRoleOwnMenuList(Admin.NET.Core.Service.RoleInput)">
             <summary>
             根据角色Id获取菜单集合(Element)
@@ -6512,16 +6496,9 @@
             <param name="input"></param>
             <returns></returns>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysTenantService.OwnMenuTree(Admin.NET.Core.Service.TenantUserInput)">
-            <summary>
-            获取租户管理员角色拥有菜单树
-            </summary>
-            <param name="input"></param>
-            <returns></returns>
-        </member>
         <member name="M:Admin.NET.Core.Service.SysTenantService.OwnMenuList(Admin.NET.Core.Service.TenantUserInput)">
             <summary>
-            获取租户管理员角色拥有菜单
+            获取租户管理员角色拥有菜单Id集合
             </summary>
             <param name="input"></param>
             <returns></returns>
@@ -7800,10 +7777,5 @@
             SM工具类
             </summary>
         </member>
-        <member name="T:OnlineUserJob">
-            <summary>
-            清理在线用户作业任务
-            </summary>
-        </member>
     </members>
 </doc>

+ 1 - 1
Admin.NET/Admin.NET.Core/Job/OnlineUserJob.cs

@@ -1,4 +1,4 @@
-using Admin.NET.Core;
+namespace Admin.NET.Core;
 
 /// <summary>
 /// 清理在线用户作业任务

+ 45 - 29
Admin.NET/Admin.NET.Core/SeedData/SysRoleMenuSeedData.cs

@@ -67,21 +67,20 @@ public class SysRoleMenuSeedData : ISqlSugarEntitySeedData<SysRoleMenu>
             new SysRoleMenu{ Id=252885263003165, RoleId=252885263003721, MenuId=252885263005274 },
             new SysRoleMenu{ Id=252885263003166, RoleId=252885263003721, MenuId=252885263005275 },
             new SysRoleMenu{ Id=252885263003167, RoleId=252885263003721, MenuId=252885263005276 },
+            // 三方账号
+            new SysRoleMenu{ Id=252885263003171, RoleId=252885263003721, MenuId=252885263005280 },
+            new SysRoleMenu{ Id=252885263003172, RoleId=252885263003721, MenuId=252885263005281 },
+            new SysRoleMenu{ Id=252885263003173, RoleId=252885263003721, MenuId=252885263005282 },
+            new SysRoleMenu{ Id=252885263003174, RoleId=252885263003721, MenuId=252885263005283 },
 
-            // 平台管理
-            new SysRoleMenu{ Id=252885263003200, RoleId=252885263003721, MenuId=252885263005300 },
-            //// 参数配置
-            //new SysRoleMenu{ Id=252885263003201, RoleId=252885263003721, MenuId=252885263005320 },
-            //new SysRoleMenu{ Id=252885263003202, RoleId=252885263003721, MenuId=252885263005321 },
-            //new SysRoleMenu{ Id=252885263003203, RoleId=252885263003721, MenuId=252885263005322 },
-            //new SysRoleMenu{ Id=252885263003204, RoleId=252885263003721, MenuId=252885263005323 },
-            //new SysRoleMenu{ Id=252885263003205, RoleId=252885263003721, MenuId=252885263005324 },
-            //// 字典管理
-            //new SysRoleMenu{ Id=252885263003211, RoleId=252885263003721, MenuId=252885263005330 },
-            //new SysRoleMenu{ Id=252885263003212, RoleId=252885263003721, MenuId=252885263005331 },
-            //new SysRoleMenu{ Id=252885263003213, RoleId=252885263003721, MenuId=252885263005332 },
-            //new SysRoleMenu{ Id=252885263003214, RoleId=252885263003721, MenuId=252885263005333 },
-            //new SysRoleMenu{ Id=252885263003215, RoleId=252885263003721, MenuId=252885263005334 },
+            //// 平台管理
+            //new SysRoleMenu{ Id=252885263003200, RoleId=252885263003721, MenuId=252885263005300 },
+            // 任务调度
+            new SysRoleMenu{ Id=252885263003221, RoleId=252885263003721, MenuId=252885263005350 },
+            new SysRoleMenu{ Id=252885263003222, RoleId=252885263003721, MenuId=252885263005351 },
+            new SysRoleMenu{ Id=252885263003223, RoleId=252885263003721, MenuId=252885263005352 },
+            new SysRoleMenu{ Id=252885263003224, RoleId=252885263003721, MenuId=252885263005353 },
+            new SysRoleMenu{ Id=252885263003225, RoleId=252885263003721, MenuId=252885263005354 },
             // 系统监控
             new SysRoleMenu{ Id=252885263003231, RoleId=252885263003721, MenuId=252885263005360 },
             // 缓存管理
@@ -102,8 +101,8 @@ public class SysRoleMenuSeedData : ISqlSugarEntitySeedData<SysRoleMenu>
             new SysRoleMenu{ Id=252885263003264, RoleId=252885263003721, MenuId=252885263005393 },
             new SysRoleMenu{ Id=252885263003265, RoleId=252885263003721, MenuId=252885263005394 },
 
-            // 日志管理
-            new SysRoleMenu{ Id=252885263003300, RoleId=252885263003721, MenuId=252885263005500 },
+            //// 日志管理
+            //new SysRoleMenu{ Id=252885263003300, RoleId=252885263003721, MenuId=252885263005500 },
             new SysRoleMenu{ Id=252885263003301, RoleId=252885263003721, MenuId=252885263005510 },
             new SysRoleMenu{ Id=252885263003302, RoleId=252885263003721, MenuId=252885263005511 },
             new SysRoleMenu{ Id=252885263003311, RoleId=252885263003721, MenuId=252885263005520 },
@@ -118,29 +117,46 @@ public class SysRoleMenuSeedData : ISqlSugarEntitySeedData<SysRoleMenu>
             new SysRoleMenu{ Id=252885263003501, RoleId=252885263003721, MenuId=252885263005710 },
             new SysRoleMenu{ Id=252885263003502, RoleId=252885263003721, MenuId=252885263005711 },
 
-            // 数据面板【user1/252885263003722】
+            // 其他角色默认菜单
+            // 数据面板【252885263003722】
             new SysRoleMenu{ Id=252885263004000, RoleId=252885263003722, MenuId=252885263002100 },
             new SysRoleMenu{ Id=252885263004001, RoleId=252885263003722, MenuId=252885263002110 },
             new SysRoleMenu{ Id=252885263004002, RoleId=252885263003722, MenuId=252885263002111 },
-            // 系统管理
-            new SysRoleMenu{ Id=252885263004100, RoleId=252885263003722, MenuId=252885263005200 },
             // 个人中心
             new SysRoleMenu{ Id=252885263004151, RoleId=252885263003722, MenuId=252885263005260 },
             new SysRoleMenu{ Id=252885263004152, RoleId=252885263003722, MenuId=252885263005261 },
             new SysRoleMenu{ Id=252885263004153, RoleId=252885263003722, MenuId=252885263005262 },
             new SysRoleMenu{ Id=252885263004154, RoleId=252885263003722, MenuId=252885263005263 },
 
-            // 数据面板【user3/252885263003724】
-            new SysRoleMenu{ Id=252885263005000, RoleId=252885263003724, MenuId=252885263002100 },
-            new SysRoleMenu{ Id=252885263005001, RoleId=252885263003724, MenuId=252885263002110 },
-            new SysRoleMenu{ Id=252885263005002, RoleId=252885263003724, MenuId=252885263002111 },
-            // 系统管理
-            new SysRoleMenu{ Id=252885263005100, RoleId=252885263003724, MenuId=252885263005200 },
+            // 数据面板【252885263003723】
+            new SysRoleMenu{ Id=252885263005000, RoleId=252885263003723, MenuId=252885263002100 },
+            new SysRoleMenu{ Id=252885263005001, RoleId=252885263003723, MenuId=252885263002110 },
+            new SysRoleMenu{ Id=252885263005002, RoleId=252885263003723, MenuId=252885263002111 },
+            // 个人中心
+            new SysRoleMenu{ Id=252885263005151, RoleId=252885263003723, MenuId=252885263005260 },
+            new SysRoleMenu{ Id=252885263005152, RoleId=252885263003723, MenuId=252885263005261 },
+            new SysRoleMenu{ Id=252885263005153, RoleId=252885263003723, MenuId=252885263005262 },
+            new SysRoleMenu{ Id=252885263005154, RoleId=252885263003723, MenuId=252885263005263 },
+
+            // 数据面板【252885263003724】
+            new SysRoleMenu{ Id=252885263006000, RoleId=252885263003724, MenuId=252885263002100 },
+            new SysRoleMenu{ Id=252885263006001, RoleId=252885263003724, MenuId=252885263002110 },
+            new SysRoleMenu{ Id=252885263006002, RoleId=252885263003724, MenuId=252885263002111 },
+            // 个人中心
+            new SysRoleMenu{ Id=252885263006151, RoleId=252885263003724, MenuId=252885263005260 },
+            new SysRoleMenu{ Id=252885263006152, RoleId=252885263003724, MenuId=252885263005261 },
+            new SysRoleMenu{ Id=252885263006153, RoleId=252885263003724, MenuId=252885263005262 },
+            new SysRoleMenu{ Id=252885263006154, RoleId=252885263003724, MenuId=252885263005263 },
+
+            // 数据面板【252885263003725】
+            new SysRoleMenu{ Id=252885263007000, RoleId=252885263003725, MenuId=252885263002100 },
+            new SysRoleMenu{ Id=252885263007001, RoleId=252885263003725, MenuId=252885263002110 },
+            new SysRoleMenu{ Id=252885263007002, RoleId=252885263003725, MenuId=252885263002111 },
             // 个人中心
-            new SysRoleMenu{ Id=252885263005151, RoleId=252885263003724, MenuId=252885263005260},
-            new SysRoleMenu{ Id=252885263005152, RoleId=252885263003724, MenuId=252885263005261 },
-            new SysRoleMenu{ Id=252885263005153, RoleId=252885263003724, MenuId=252885263005262 },
-            new SysRoleMenu{ Id=252885263005154, RoleId=252885263003724, MenuId=252885263005263 },
+            new SysRoleMenu{ Id=252885263007151, RoleId=252885263003725, MenuId=252885263005260 },
+            new SysRoleMenu{ Id=252885263007152, RoleId=252885263003725, MenuId=252885263005261 },
+            new SysRoleMenu{ Id=252885263007153, RoleId=252885263003725, MenuId=252885263005262 },
+            new SysRoleMenu{ Id=252885263007154, RoleId=252885263003725, MenuId=252885263005263 },
         };
     }
 }

+ 10 - 13
Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs

@@ -42,12 +42,10 @@ public class SysMenuService : IDynamicApiController, ITransient
         else
         {
             var menuIdList = await GetMenuIdList();
-            var menuList = await _sysMenuRep.AsQueryable()
-                //.Where(u => u.Type != MenuTypeEnum.Btn)
-                //.Where(u => menuIdList.Contains(u.Id))
+            var menuTree = await _sysMenuRep.AsQueryable()
                 .OrderBy(u => u.Order).ToTreeAsync(u => u.Children, u => u.Pid, 0, menuIdList.Select(d => (object)d).ToArray());
-            DeleteBtnFromMenuTree(menuList);
-            return menuList.Adapt<List<MenuOutput>>();
+            DeleteBtnFromMenuTree(menuTree);
+            return menuTree.Adapt<List<MenuOutput>>();
         }
     }
 
@@ -74,23 +72,22 @@ public class SysMenuService : IDynamicApiController, ITransient
     [AllowAnonymous]
     public async Task<List<SysMenu>> GetMenuList([FromQuery] MenuInput input)
     {
-        var menuIdList = new List<long>();
-        if (!_userManager.SuperAdmin)
-            menuIdList = await GetMenuIdList();
+        var menuIdList = _userManager.SuperAdmin ? new List<long>() : await GetMenuIdList();
 
+        // 有筛选条件时返回list列表(防止构造不出树)
         if (!string.IsNullOrWhiteSpace(input.Title) || input.Type > 0)
         {
             return await _sysMenuRep.AsQueryable()
+                .WhereIF(!string.IsNullOrWhiteSpace(input.Title), u => u.Title.Contains(input.Title))
                 .WhereIF(input.Type > 0, u => u.Type == input.Type)
                 .WhereIF(menuIdList.Count > 1, u => menuIdList.Contains(u.Id))
-                .WhereIF(!string.IsNullOrWhiteSpace(input.Title), u => u.Title.Contains(input.Title))
                 .OrderBy(u => u.Order).ToListAsync();
         }
 
-        return await _sysMenuRep.AsQueryable()
-            .WhereIF(menuIdList.Count > 1, u => menuIdList.Contains(u.Id))
-            .OrderBy(u => u.Order)
-            .ToTreeAsync(u => u.Children, u => u.Pid, 0);
+        return _userManager.SuperAdmin ?
+            await _sysMenuRep.AsQueryable().OrderBy(u => u.Order).ToTreeAsync(u => u.Children, u => u.Pid, 0) :
+            await _sysMenuRep.AsQueryable()
+                .OrderBy(u => u.Order).ToTreeAsync(u => u.Children, u => u.Pid, 0, menuIdList.Select(d => (object)d).ToArray()); // 角色菜单授权时
     }
 
     /// <summary>

+ 0 - 29
Admin.NET/Admin.NET.Core/Service/Role/SysRoleMenuService.cs

@@ -27,35 +27,6 @@ public class SysRoleMenuService : ITransient
             .Select(u => u.MenuId).ToListAsync();
     }
 
-    /// <summary>
-    /// 根据角色Id集合获取菜单树
-    /// </summary>
-    /// <param name="roleIdList"></param>
-    /// <returns></returns>
-    public async Task<List<SysMenu>> GetRoleMenuTree(List<long> roleIdList)
-    {
-        var menuIdList = await _sysRoleMenuRep.AsQueryable()
-            .Where(u => roleIdList.Contains(u.RoleId))
-            .Select(u => u.MenuId).ToListAsync();
-
-        return await _sysRoleMenuRep.ChangeRepository<SqlSugarRepository<SysMenu>>().AsQueryable()
-            .Where(u => menuIdList.Contains(u.Id))
-            .ToTreeAsync(u => u.Children, u => u.Pid, 0);
-    }
-
-    /// <summary>
-    /// 根据角色Id集合获取菜单集合
-    /// </summary>
-    /// <param name="roleIdList"></param>
-    /// <returns></returns>
-    public async Task<List<long>> GetRoleMenuList(List<long> roleIdList)
-    {
-        return await _sysRoleMenuRep.AsQueryable()
-            .InnerJoin<SysMenu>((a, b) => a.MenuId == b.Id)
-            .Where((a, b) => roleIdList.Contains(a.RoleId) && b.Type == MenuTypeEnum.Btn)
-            .Select((a, b) => b.Id).ToListAsync();
-    }
-
     /// <summary>
     /// 授权角色菜单
     /// </summary>

+ 1 - 12
Admin.NET/Admin.NET.Core/Service/Role/SysRoleService.cs

@@ -181,17 +181,6 @@ public class SysRoleService : IDynamicApiController, ITransient
         await _sysRoleOrgService.GrantRoleOrg(input);
     }
 
-    /// <summary>
-    /// 根据角色Id获取菜单树(Antd)
-    /// </summary>
-    /// <param name="input"></param>
-    /// <returns></returns>
-    [HttpGet("/sysRole/ownMenuTree")]
-    public async Task<List<SysMenu>> GetRoleOwnMenuTree([FromQuery] RoleInput input)
-    {
-        return await _sysRoleMenuService.GetRoleMenuTree(new List<long> { input.Id });
-    }
-
     /// <summary>
     /// 根据角色Id获取菜单集合(Element)
     /// </summary>
@@ -200,7 +189,7 @@ public class SysRoleService : IDynamicApiController, ITransient
     [HttpGet("/sysRole/ownMenuList")]
     public async Task<List<long>> GetRoleOwnMenuList([FromQuery] RoleInput input)
     {
-        return await _sysRoleMenuService.GetRoleMenuList(new List<long> { input.Id });
+        return await _sysRoleMenuService.GetRoleMenuIdList(new List<long> { input.Id });
     }
 
     /// <summary>

+ 2 - 14
Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs

@@ -299,19 +299,7 @@ public class SysTenantService : IDynamicApiController, ITransient
     }
 
     /// <summary>
-    /// 获取租户管理员角色拥有菜单树
-    /// </summary>
-    /// <param name="input"></param>
-    /// <returns></returns>
-    [HttpGet("/sysTenant/ownMenuTree")]
-    public async Task<List<SysMenu>> OwnMenuTree([FromQuery] TenantUserInput input)
-    {
-        var roleIds = await _sysUserRoleService.GetUserRoleIdList(input.UserId);
-        return await _sysRoleMenuService.GetRoleMenuTree(new List<long> { roleIds[0] });
-    }
-
-    /// <summary>
-    /// 获取租户管理员角色拥有菜单树
+    /// 获取租户管理员角色拥有菜单Id集合
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
@@ -319,7 +307,7 @@ public class SysTenantService : IDynamicApiController, ITransient
     public async Task<List<long>> OwnMenuList([FromQuery] TenantUserInput input)
     {
         var roleIds = await _sysUserRoleService.GetUserRoleIdList(input.UserId);
-        return await _sysRoleMenuService.GetRoleMenuList(new List<long> { roleIds[0] });
+        return await _sysRoleMenuService.GetRoleMenuIdList(new List<long> { roleIds[0] });
     }
 
     /// <summary>

+ 5 - 11
Web/src/views/system/role/component/editRole.vue

@@ -45,9 +45,9 @@
 								node-key="id"
 								show-checkbox
 								:props="{ children: 'children', label: 'title', class: treeNodeClass }"
-								highlight-current
-								class="menu-data-tree"
 								icon="ele-Menu"
+								highlight-current
+								default-expand-all
 							/>
 						</el-form-item>
 					</el-col>
@@ -65,7 +65,6 @@
 
 <script lang="ts">
 import { reactive, toRefs, defineComponent, ref, onMounted } from 'vue';
-import { ElMessage } from 'element-plus';
 import type { ElTree } from 'element-plus';
 import type Node from 'element-plus/es/components/tree/src/model/node';
 import mittBus from '/@/utils/mitt';
@@ -122,18 +121,13 @@ export default defineComponent({
 		const submit = () => {
 			ruleFormRef.value.validate(async (valid: boolean) => {
 				if (!valid) return;
-				//提交全选和半选的key
-				var allCheckedKeys = treeRef.value?.getCheckedKeys() as Array<number>;
-				var halfCheckedKeys = treeRef.value?.getHalfCheckedKeys() as Array<number>;
-				state.ruleForm.menuIdList = allCheckedKeys.concat(halfCheckedKeys);
-				var res = null;
+				state.ruleForm.menuIdList = treeRef.value?.getCheckedKeys() as Array<number>; //.concat(treeRef.value?.getHalfCheckedKeys());
 				if (state.ruleForm.id != undefined && state.ruleForm.id > 0) {
-					res = await getAPI(SysRoleApi).sysRoleUpdatePost(state.ruleForm);
+					await getAPI(SysRoleApi).sysRoleUpdatePost(state.ruleForm);
 				} else {
-					res = await getAPI(SysRoleApi).sysRoleAddPost(state.ruleForm);
+					await getAPI(SysRoleApi).sysRoleAddPost(state.ruleForm);
 				}
 				closeDialog();
-				if(res.data && res.data.code == 200) ElMessage.success('操作成功');
 			});
 		};
 		// 叶子节点同行显示样式

+ 9 - 10
Web/src/views/system/tenant/component/grantMenu.vue

@@ -1,6 +1,12 @@
 <template>
 	<div class="sys-grantMenu-container">
-		<el-dialog v-model="isShowDialog" title="授权租户菜单" draggable width="769px">
+		<el-dialog v-model="isShowDialog" draggable :close-on-click-modal="false" width="769px">
+			<template #header>
+				<div style="color: #fff">
+					<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>
+					<span> 授权租户菜单 </span>
+				</div>
+			</template>
 			<el-form :model="ruleForm" size="default" v-loading="loading">
 				<el-row :gutter="35">
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl1="24">
@@ -11,7 +17,6 @@
 								node-key="id"
 								show-checkbox
 								:props="{ children: 'children', label: 'title', class: treeNodeClass }"
-								:default-checked-keys="ownMenuData"
 								icon="ele-Menu"
 								highlight-current
 								default-expand-all
@@ -32,7 +37,6 @@
 
 <script lang="ts">
 import { reactive, toRefs, defineComponent, ref, onMounted } from 'vue';
-import { ElMessage } from 'element-plus';
 import type { ElTree } from 'element-plus';
 import type Node from 'element-plus/es/components/tree/src/model/node';
 
@@ -52,7 +56,6 @@ export default defineComponent({
 				menuIdList: [] as any, // 菜单集合
 			},
 			menuData: [] as any, // 菜单数据
-			ownMenuData: [] as any, // 拥有菜单
 		});
 		onMounted(async () => {
 			state.loading = true;
@@ -77,13 +80,9 @@ export default defineComponent({
 		};
 		// 提交
 		const submit = async () => {
-			//提交全选和半选的key
-			var allCheckedKeys = treeRef.value?.getCheckedKeys() as Array<number>;
-			var halfCheckedKeys = treeRef.value?.getHalfCheckedKeys() as Array<number>;
-			state.ruleForm.menuIdList = allCheckedKeys.concat(halfCheckedKeys);
-			var res = await getAPI(SysTenantApi).sysTenantGrantMenuPost(state.ruleForm);
+			state.ruleForm.menuIdList = treeRef.value?.getCheckedKeys() as Array<number>;
+			await getAPI(SysTenantApi).sysTenantGrantMenuPost(state.ruleForm);
 			state.isShowDialog = false;
-			if(res.data && res.data.code == 200) ElMessage.success('操作成功');
 		};
 		// 叶子节点同行显示样式
 		const treeNodeClass = (node: Node) => {