Browse Source

修复数据库锁定问题及框架优化

zuohuaijun 3 năm trước cách đây
mục cha
commit
7e0ad2d444
57 tập tin đã thay đổi với 412 bổ sung895 xóa
  1. 1 1
      Admin.NET/Admin.NET.Application/AppConfig.json
  2. 27 1
      Admin.NET/Admin.NET.Application/Service/TestService.cs
  3. 6 6
      Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj
  4. 73 137
      Admin.NET/Admin.NET.Core/Admin.NET.Core.xml
  5. 1 1
      Admin.NET/Admin.NET.Core/Const/CommonConst.cs
  6. 3 3
      Admin.NET/Admin.NET.Core/Entity/SysRegion.cs
  7. 1 1
      Admin.NET/Admin.NET.Core/Entity/SysUserExtOrg.cs
  8. 1 1
      Admin.NET/Admin.NET.Core/Enum/AccountTypeEnum.cs
  9. 1 1
      Admin.NET/Admin.NET.Core/Enum/DataScopeEnum.cs
  10. 2 2
      Admin.NET/Admin.NET.Core/Enum/LoginTypeEnum.cs
  11. 0 31
      Admin.NET/Admin.NET.Core/Enum/OrgTypeEnum.cs
  12. 0 25
      Admin.NET/Admin.NET.Core/Enum/RoleTypeEnum.cs
  13. 23 15
      Admin.NET/Admin.NET.Core/SeedData/SysMenuSeedData.cs
  14. 5 3
      Admin.NET/Admin.NET.Core/SeedData/SysRoleMenuSeedData.cs
  15. 10 10
      Admin.NET/Admin.NET.Core/SeedData/SysRoleSeedData.cs
  16. 1 1
      Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs
  17. 1 1
      Admin.NET/Admin.NET.Core/Service/Cache/SysCacheService.cs
  18. 1 1
      Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs
  19. 0 10
      Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs
  20. 11 38
      Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs
  21. 8 7
      Admin.NET/Admin.NET.Core/Service/Org/SysOrgService.cs
  22. 4 4
      Admin.NET/Admin.NET.Core/Service/Pos/SysPosService.cs
  23. 1 0
      Admin.NET/Admin.NET.Core/Service/Region/RegionUtil.cs
  24. 9 27
      Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs
  25. 3 4
      Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs
  26. 1 1
      Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarRepository.cs
  27. 1 0
      Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs
  28. 8 9
      Admin.NET/Admin.NET.Web.Core/Handlers/JwtHandler.cs
  29. 0 1
      Admin.NET/Admin.NET.Web.Entry/SingleFilePublish.cs
  30. 68 68
      Web/src/api-services/apis/sys-auth-api.ts
  31. 51 51
      Web/src/api-services/apis/sys-cache-api.ts
  32. 0 69
      Web/src/api-services/apis/sys-file-api.ts
  33. 24 24
      Web/src/api-services/apis/sys-menu-api.ts
  34. 18 168
      Web/src/api-services/apis/sys-tenant-api.ts
  35. 8 8
      Web/src/api-services/apis/sys-user-api.ts
  36. 2 2
      Web/src/api-services/models/account-type-enum.ts
  37. 0 57
      Web/src/api-services/models/admin-result-list-sys-file.ts
  38. 0 57
      Web/src/api-services/models/admin-result-sys-tenant.ts
  39. 1 1
      Web/src/api-services/models/data-scope-enum.ts
  40. 0 2
      Web/src/api-services/models/index.ts
  41. 1 1
      Web/src/api-services/models/login-type-enum.ts
  42. 2 1
      Web/src/layout/navBars/breadcrumb/user.vue
  43. 3 3
      Web/src/router/backEnd.ts
  44. 4 3
      Web/src/stores/userInfo.ts
  45. 4 3
      Web/src/utils/axios-utils.ts
  46. 5 1
      Web/src/views/login/component/account.vue
  47. 1 1
      Web/src/views/system/cache/index.vue
  48. 1 1
      Web/src/views/system/config/component/editConfig.vue
  49. 5 5
      Web/src/views/system/dict/index.vue
  50. 1 1
      Web/src/views/system/log/vislog/index.vue
  51. 2 2
      Web/src/views/system/onlineUser/index.vue
  52. 2 7
      Web/src/views/system/org/component/editOrg.vue
  53. 1 6
      Web/src/views/system/org/component/orgTree.vue
  54. 1 6
      Web/src/views/system/org/index.vue
  55. 2 2
      Web/src/views/system/password/index.vue
  56. 1 1
      Web/src/views/system/pos/index.vue
  57. 1 2
      Web/src/views/system/user/index.vue

+ 1 - 1
Admin.NET/Admin.NET.Application/AppConfig.json

@@ -16,7 +16,7 @@
                 "ConfigId": "Test",
                 "DbType": "Sqlite",
                 "ConnectionString": "DataSource=./Test.db",
-                "EnableInitDb": false, // 启用库表初始化
+                "EnableInitDb": true, // 启用库表初始化
                 "EnableDiffLog": false // 启用库表差异日志
             }
         ]

+ 27 - 1
Admin.NET/Admin.NET.Application/Service/TestService.cs

@@ -1,4 +1,5 @@
 using Admin.NET.Application.Const;
+using Admin.NET.Core.Service;
 using Furion.DatabaseAccessor;
 using Furion.FriendlyException;
 using Furion.Localization;
@@ -16,9 +17,16 @@ public class TestService : IDynamicApiController, ITransient
 {
     private readonly SqlSugarRepository<Test> _testRep;
 
-    public TestService(SqlSugarRepository<Test> testRep)
+    private readonly SqlSugarRepository<SysMenu> _sysMenuRep;
+    private readonly SysMenuService _sysMenuService;
+
+    public TestService(SqlSugarRepository<Test> testRep, 
+        SqlSugarRepository<SysMenu> sysMenuRep,
+        SysMenuService sysMenuService)
     {
         _testRep = testRep;
+        _sysMenuRep = sysMenuRep;
+        _sysMenuService = sysMenuService;
     }
 
     /// <summary>
@@ -50,6 +58,24 @@ public class TestService : IDynamicApiController, ITransient
         throw Oops.Oh("异常").WithData("数据");
     }
 
+    /// <summary>
+    /// 事务测试
+    /// </summary>
+    [UnitOfWork]
+    public async Task TestTran()
+    {
+        //await _sysMenuRep.GetListAsync();
+
+        //var menuIdList = new List<long> { 0, 1, 2 };
+
+        //await _sysMenuRep.DeleteAsync(u => menuIdList.Contains(u.Id));
+
+        //await _sysMenuRep.DeleteAsync(u => u.Id == 1);
+
+
+        await _sysMenuService.DeleteMenu(new DeleteMenuInput { Id = 252885263002711 });
+    }
+
     /// <summary>
     /// 事务和工作单元测试
     /// </summary>

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

@@ -24,18 +24,18 @@
 
   <ItemGroup>
     <PackageReference Include="AspNetCoreRateLimit" Version="4.0.2" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.6.9" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.6.9" />
-    <PackageReference Include="Furion.Pure" Version="4.6.9" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.7.0.1" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.7.0.1" />
+    <PackageReference Include="Furion.Pure" Version="4.7.0.1" />
     <PackageReference Include="Lazy.Captcha.Core" Version="1.1.6" />
-    <PackageReference Include="Magicodes.IE.Excel" Version="2.6.8" />
-    <PackageReference Include="Magicodes.IE.Pdf" Version="2.6.8" />
+    <PackageReference Include="Magicodes.IE.Excel" Version="2.6.9" />
+    <PackageReference Include="Magicodes.IE.Pdf" Version="2.6.9" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.10" />
     <PackageReference Include="NEST" Version="7.17.5" />
     <PackageReference Include="NETCore.MailKit" Version="2.1.0" />
     <PackageReference Include="NewLife.Redis" Version="5.0.2022.901" />
     <PackageReference Include="OnceMi.AspNetCore.OSS" Version="1.1.9" />
-    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.18.0" />
+    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.19.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="2.13.1" />
     <PackageReference Include="SqlSugarCore" Version="5.1.3.29" />
     <PackageReference Include="System.Linq.Dynamic.Core" Version="1.2.20" />

+ 73 - 137
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -312,76 +312,6 @@
             租户Id
             </summary>
         </member>
-        <member name="T:Admin.NET.Core.SysArea">
-            <summary>
-            系统行政地区表
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.Pid">
-            <summary>
-            父Id
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.Name">
-            <summary>
-            名称
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.ShortName">
-            <summary>
-            简称
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.MergerName">
-            <summary>
-            组合名
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.AreaCode">
-            <summary>
-            行政代码
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.ZipCode">
-            <summary>
-            邮政编码
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.CityCode">
-            <summary>
-            区号
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.Level">
-            <summary>
-            层级
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.PinYin">
-            <summary>
-            拼音
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.Lng">
-            <summary>
-            经度
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.Lat">
-            <summary>
-            维度
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.Remark">
-            <summary>
-            备注
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysArea.Children">
-            <summary>
-            机构子项
-            </summary>
-        </member>
         <member name="T:Admin.NET.Core.SysCodeGen">
             <summary>
             代码生成表
@@ -1227,6 +1157,76 @@
             状态
             </summary>
         </member>
+        <member name="T:Admin.NET.Core.SysRegion">
+            <summary>
+            系统行政地区表
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.Pid">
+            <summary>
+            父Id
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.ShortName">
+            <summary>
+            简称
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.MergerName">
+            <summary>
+            组合名
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.AreaCode">
+            <summary>
+            行政代码
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.ZipCode">
+            <summary>
+            邮政编码
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.CityCode">
+            <summary>
+            区号
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.Level">
+            <summary>
+            层级
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.PinYin">
+            <summary>
+            拼音
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.Lng">
+            <summary>
+            经度
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.Lat">
+            <summary>
+            维度
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.Remark">
+            <summary>
+            备注
+            </summary>
+        </member>
+        <member name="P:Admin.NET.Core.SysRegion.Children">
+            <summary>
+            机构子项
+            </summary>
+        </member>
         <member name="T:Admin.NET.Core.SysRole">
             <summary>
             系统角色表
@@ -2093,7 +2093,7 @@
             全部数据
             </summary>
         </member>
-        <member name="F:Admin.NET.Core.DataScopeEnum.Dept_with_child">
+        <member name="F:Admin.NET.Core.DataScopeEnum.DeptChild">
             <summary>
             本部门及以下数据
             </summary>
@@ -2578,12 +2578,12 @@
             注册
             </summary>
         </member>
-        <member name="F:Admin.NET.Core.LoginTypeEnum.Change_password">
+        <member name="F:Admin.NET.Core.LoginTypeEnum.ChangePassword">
             <summary>
             改密
             </summary>
         </member>
-        <member name="F:Admin.NET.Core.LoginTypeEnum.Authorized_login">
+        <member name="F:Admin.NET.Core.LoginTypeEnum.AuthorizedLogin">
             <summary>
             三方授权登陆
             </summary>
@@ -2688,31 +2688,6 @@
             已读
             </summary>
         </member>
-        <member name="T:Admin.NET.Core.OrgTypeEnum">
-            <summary>
-            机构类型枚举
-            </summary>
-        </member>
-        <member name="F:Admin.NET.Core.OrgTypeEnum.Brand">
-            <summary>
-            品牌
-            </summary>
-        </member>
-        <member name="F:Admin.NET.Core.OrgTypeEnum.Head">
-            <summary>
-            总店(加盟/直营)
-            </summary>
-        </member>
-        <member name="F:Admin.NET.Core.OrgTypeEnum.Direct">
-            <summary>
-            直营店
-            </summary>
-        </member>
-        <member name="F:Admin.NET.Core.OrgTypeEnum.Franchised">
-            <summary>
-            加盟店
-            </summary>
-        </member>
         <member name="T:Admin.NET.Core.RequestTypeEnum">
             <summary>
             HTTP请求类型
@@ -2743,26 +2718,6 @@
             DELETE
             </summary>
         </member>
-        <member name="T:Admin.NET.Core.RoleTypeEnum">
-            <summary>
-            角色类型枚举
-            </summary>
-        </member>
-        <member name="F:Admin.NET.Core.RoleTypeEnum.Group">
-            <summary>
-            集团角色
-            </summary>
-        </member>
-        <member name="F:Admin.NET.Core.RoleTypeEnum.Join">
-            <summary>
-            加盟商角色
-            </summary>
-        </member>
-        <member name="F:Admin.NET.Core.RoleTypeEnum.Store">
-            <summary>
-            门店角色
-            </summary>
-        </member>
         <member name="T:Admin.NET.Core.RunModeEnum">
             <summary>
             运行模式枚举
@@ -5077,12 +5032,6 @@
             <param name="input"></param>
             <returns></returns>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysFileService.GetFileList">
-            <summary>
-            获取文件列表
-            </summary>
-            <returns></returns>
-        </member>
         <member name="M:Admin.NET.Core.Service.SysFileService.UploadFile(Microsoft.AspNetCore.Http.IFormFile)">
             <summary>
             上传文件
@@ -6246,19 +6195,6 @@
             <param name="input"></param>
             <returns></returns>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysTenantService.GetTenant(Admin.NET.Core.Service.TenantInput)">
-            <summary>
-            获取租户详情
-            </summary>
-            <param name="input"></param>
-            <returns></returns>
-        </member>
-        <member name="M:Admin.NET.Core.Service.SysTenantService.GetTenantList">
-            <summary>
-            获取租户列表
-            </summary>
-            <returns></returns>
-        </member>
         <member name="M:Admin.NET.Core.Service.SysTenantService.GrantMenu(Admin.NET.Core.Service.RoleMenuInput)">
             <summary>
             授权租户管理员角色菜单

+ 1 - 1
Admin.NET/Admin.NET.Core/Const/CommonConst.cs

@@ -13,7 +13,7 @@ public class CommonConst
     /// <summary>
     /// 系统管理员角色编码
     /// </summary>
-    public const string SysAdminRoleCode = "sys_admin_role";
+    public const string SysAdminRoleCode = "sys_admin";
 
     /// <summary>
     /// 演示环境开关

+ 3 - 3
Admin.NET/Admin.NET.Core/Entity/SysArea.cs → Admin.NET/Admin.NET.Core/Entity/SysRegion.cs

@@ -3,8 +3,8 @@
 /// <summary>
 /// 系统行政地区表
 /// </summary>
-[SugarTable("sys_area", "系统行政地区表")]
-public class SysArea : EntityBaseId
+[SugarTable("sys_region", "系统行政地区表")]
+public class SysRegion : EntityBaseId
 {
     /// <summary>
     /// 父Id
@@ -90,5 +90,5 @@ public class SysArea : EntityBaseId
     /// 机构子项
     /// </summary>
     [SugarColumn(IsIgnore = true)]
-    public List<SysOrg> Children { get; set; }
+    public List<SysRegion> Children { get; set; }
 }

+ 1 - 1
Admin.NET/Admin.NET.Core/Entity/SysUserExtOrg.cs

@@ -3,7 +3,7 @@
 /// <summary>
 /// 系统用户扩展机构表
 /// </summary>
-[SugarTable("sys_user_org", "系统用户扩展机构表")]
+[SugarTable("sys_user_extorg", "系统用户扩展机构表")]
 public class SysUserExtOrg : EntityBaseId
 {
     /// <summary>

+ 1 - 1
Admin.NET/Admin.NET.Core/Enum/AccountTypeEnum.cs

@@ -27,5 +27,5 @@ public enum AccountTypeEnum
     /// 超级管理员
     /// </summary>
     [Description("超级管理员")]
-    SuperAdmin = 99999,
+    SuperAdmin = 999,
 }

+ 1 - 1
Admin.NET/Admin.NET.Core/Enum/DataScopeEnum.cs

@@ -15,7 +15,7 @@ public enum DataScopeEnum
     /// 本部门及以下数据
     /// </summary>
     [Description("本部门及以下数据")]
-    Dept_with_child = 2,
+    DeptChild = 2,
 
     /// <summary>
     /// 本部门数据

+ 2 - 2
Admin.NET/Admin.NET.Core/Enum/LoginTypeEnum.cs

@@ -27,11 +27,11 @@ public enum LoginTypeEnum
     /// 改密
     /// </summary>
     [Description("改密")]
-    Change_password = 4,
+    ChangePassword = 4,
 
     /// <summary>
     /// 三方授权登陆
     /// </summary>
     [Description("授权登陆")]
-    Authorized_login = 5
+    AuthorizedLogin = 5
 }

+ 0 - 31
Admin.NET/Admin.NET.Core/Enum/OrgTypeEnum.cs

@@ -1,31 +0,0 @@
-namespace Admin.NET.Core;
-
-/// <summary>
-/// 机构类型枚举
-/// </summary>
-public enum OrgTypeEnum
-{
-    /// <summary>
-    /// 品牌
-    /// </summary>
-    [Description("品牌")]
-    Brand,
-
-    /// <summary>
-    /// 总店(加盟/直营)
-    /// </summary>
-    [Description("总店(加盟/直营)")]
-    Head,
-
-    /// <summary>
-    /// 直营店
-    /// </summary>
-    [Description("直营店")]
-    Direct,
-
-    /// <summary>
-    /// 加盟店
-    /// </summary>
-    [Description("加盟店")]
-    Franchised
-}

+ 0 - 25
Admin.NET/Admin.NET.Core/Enum/RoleTypeEnum.cs

@@ -1,25 +0,0 @@
-namespace Admin.NET.Core;
-
-/// <summary>
-/// 角色类型枚举
-/// </summary>
-public enum RoleTypeEnum
-{
-    /// <summary>
-    /// 集团角色
-    /// </summary>
-    [Description("集团角色")]
-    Group,
-
-    /// <summary>
-    /// 加盟商角色
-    /// </summary>
-    [Description("加盟商角色")]
-    Join,
-
-    /// <summary>
-    /// 门店角色
-    /// </summary>
-    [Description("门店角色")]
-    Store
-}

+ 23 - 15
Admin.NET/Admin.NET.Core/SeedData/SysMenuSeedData.cs

@@ -24,11 +24,12 @@ public class SysMenuSeedData : ISqlSugarEntitySeedData<SysMenu>
             new SysMenu{ Id=252885263002212, Pid=252885263002210, Title="账号编辑", Permission="sysUser:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002213, Pid=252885263002210, Title="账号增加", Permission="sysUser:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002214, Pid=252885263002210, Title="账号删除", Permission="sysUser:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
-            new SysMenu{ Id=252885263002215, Pid=252885263002210, Title="授权角色", Permission="sysUser:grantRole", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
-            new SysMenu{ Id=252885263002216, Pid=252885263002210, Title="授权数据", Permission="sysUser:grantData", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002215, Pid=252885263002210, Title="查看详情", Permission="sysUser:detail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002216, Pid=252885263002210, Title="授权角色", Permission="sysUser:grantRole", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002217, Pid=252885263002210, Title="重置密码", Permission="sysUser:resetPwd", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002218, Pid=252885263002210, Title="设置状态", Permission="sysUser:setStatus", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
-            new SysMenu{ Id=252885263002219, Pid=252885263002210, Title="强制下线", Permission="sysUser:forceOffline", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002219, Pid=252885263002210, Title="修改密码", Permission="sysUser:changePwd", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263012220, Pid=252885263002210, Title="强制下线", Permission="sysUser:forceOffline", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
 
             new SysMenu{ Id=252885263002220, Pid=252885263002200, Title="角色管理", Path="/system/role", Name="sysRole", Component="/system/role/index", Icon="ele-UserFilled", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=110 },
             new SysMenu{ Id=252885263002221, Pid=252885263002220, Title="角色查询", Permission="sysRole:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
@@ -40,25 +41,25 @@ public class SysMenuSeedData : ISqlSugarEntitySeedData<SysMenu>
             new SysMenu{ Id=252885263002227, Pid=252885263002220, Title="设置状态", Permission="sysRole:setStatus", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
 
             new SysMenu{ Id=252885263002230, Pid=252885263002200, Title="菜单管理", Path="/system/menu", Name="sysMenu", Component="/system/menu/index", Icon="ele-Menu", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=120 },
-            new SysMenu{ Id=252885263002231, Pid=252885263002230, Title="菜单查询", Permission="sysMenu:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002231, Pid=252885263002230, Title="菜单查询", Permission="sysMenu:list", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002232, Pid=252885263002230, Title="菜单编辑", Permission="sysMenu:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002233, Pid=252885263002230, Title="菜单增加", Permission="sysMenu:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002234, Pid=252885263002230, Title="菜单删除", Permission="sysMenu:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
 
             new SysMenu{ Id=252885263002240, Pid=252885263002200, Title="机构管理", Path="/system/org", Name="sysOrg", Component="/system/org/index", Icon="ele-OfficeBuilding", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=130 },
-            new SysMenu{ Id=252885263002241, Pid=252885263002240, Title="机构查询", Permission="sysOrg:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002241, Pid=252885263002240, Title="机构查询", Permission="sysOrg:list", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002242, Pid=252885263002240, Title="机构编辑", Permission="sysOrg:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002243, Pid=252885263002240, Title="机构增加", Permission="sysOrg:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002244, Pid=252885263002240, Title="机构删除", Permission="sysOrg:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
 
             new SysMenu{ Id=252885263002250, Pid=252885263002200, Title="职位管理", Path="/system/pos", Name="sysPos", Component="/system/pos/index",Icon="ele-Mug", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=140 },
-            new SysMenu{ Id=252885263002251, Pid=252885263002250, Title="职位查询", Permission="sysPos:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002251, Pid=252885263002250, Title="职位查询", Permission="sysPos:list", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002252, Pid=252885263002250, Title="职位编辑", Permission="sysPos:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002253, Pid=252885263002250, Title="职位增加", Permission="sysPos:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002254, Pid=252885263002250, Title="职位删除", Permission="sysPos:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
 
             new SysMenu{ Id=252885263002260, Pid=252885263002200, Title="修改密码", Path="/system/password", Name="sysPassword", Component="/system/password/index",Icon="ele-Hide", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=150 },
-            new SysMenu{ Id=252885263002261, Pid=252885263002260, Title="修改密码", Permission="sysPassword:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002261, Pid=252885263002260, Title="修改密码", Permission="sysUser:changePwd", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
 
             new SysMenu{ Id=252885263002300, Pid=0, Title="平台管理", Path="/platform", Name="platform", Component="Layout", Redirect="/platform/tenant", Icon="ele-Menu", Type=MenuTypeEnum.Dir, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=200 },
 
@@ -77,10 +78,10 @@ public class SysMenuSeedData : ISqlSugarEntitySeedData<SysMenu>
             new SysMenu{ Id=252885263002324, Pid=252885263002320, Title="配置删除", Permission="sysConfig:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
 
             new SysMenu{ Id=252885263002330, Pid=252885263002300, Title="字典管理", Path="/platform/dict", Name="sysDict", Component="/system/dict/index", Icon="ele-Collection", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=120 },
-            new SysMenu{ Id=252885263002331, Pid=252885263002330, Title="字典查询", Permission="sysDict:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
-            new SysMenu{ Id=252885263002332, Pid=252885263002330, Title="字典编辑", Permission="sysDict:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
-            new SysMenu{ Id=252885263002333, Pid=252885263002330, Title="字典增加", Permission="sysDict:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
-            new SysMenu{ Id=252885263002334, Pid=252885263002330, Title="字典删除", Permission="sysDict:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002331, Pid=252885263002330, Title="字典查询", Permission="sysDictType:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002332, Pid=252885263002330, Title="字典编辑", Permission="sysDictType:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002333, Pid=252885263002330, Title="字典增加", Permission="sysDictType:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002334, Pid=252885263002330, Title="字典删除", Permission="sysDictType:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
 
             new SysMenu{ Id=252885263002340, Pid=252885263002300, Title="任务调度", Path="/platform/timer", Name="sysTimer", Component="/system/timer/index", Icon="ele-AlarmClock", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=130 },
             new SysMenu{ Id=252885263002341, Pid=252885263002340, Title="任务查询", Permission="sysTimer:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
@@ -89,13 +90,20 @@ public class SysMenuSeedData : ISqlSugarEntitySeedData<SysMenu>
             new SysMenu{ Id=252885263002344, Pid=252885263002340, Title="任务删除", Permission="sysTimer:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002345, Pid=252885263002340, Title="设置状态", Permission="sysTimer:setStatus", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
 
-            new SysMenu{ Id=252885263002360, Pid=252885263002300, Title="系统监控", Path="/platform/server", Name="sysServer", Component="/system/server/index", Icon="ele-Monitor", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=150 },
+            new SysMenu{ Id=252885263002360, Pid=252885263002300, Title="系统监控", Path="/platform/server", Name="sysServer", Component="/system/server/index", Icon="ele-Monitor", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=140 },
 
-            new SysMenu{ Id=252885263002370, Pid=252885263002300, Title="缓存管理", Path="/platform/cache", Name="sysCache", Component="/system/cache/index", Icon="ele-Loading", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=160 },
-            new SysMenu{ Id=252885263002371, Pid=252885263002370, Title="缓存查询", Permission="sysCache:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002370, Pid=252885263002300, Title="缓存管理", Path="/platform/cache", Name="sysCache", Component="/system/cache/index", Icon="ele-Loading", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=150 },
+            new SysMenu{ Id=252885263002371, Pid=252885263002370, Title="缓存查询", Permission="sysCache:keyList", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002372, Pid=252885263002370, Title="缓存删除", Permission="sysCache:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
 
-            new SysMenu{ Id=252885263002390, Pid=252885263002300, Title="文件管理", Path="/platform/file", Name="sysFile", Component="/system/file/index", Icon="ele-Document", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=180 },
+            new SysMenu{ Id=252885263002380, Pid=252885263002300, Title="行政区域", Path="/platform/region", Name="sysRegion", Component="/system/region/index", Icon="ele-LocationInformation", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=160 },
+            new SysMenu{ Id=252885263002381, Pid=252885263002380, Title="区域查询", Permission="sysRegion:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002382, Pid=252885263002380, Title="区域编辑", Permission="sysRegion:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002383, Pid=252885263002380, Title="区域增加", Permission="sysRegion:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002384, Pid=252885263002380, Title="区域删除", Permission="sysRegion:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+            new SysMenu{ Id=252885263002385, Pid=252885263002380, Title="更新同步", Permission="sysRegion:sync", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
+
+            new SysMenu{ Id=252885263002390, Pid=252885263002300, Title="文件管理", Path="/platform/file", Name="sysFile", Component="/system/file/index", Icon="ele-Document", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=170 },
             new SysMenu{ Id=252885263002391, Pid=252885263002390, Title="文件查询", Permission="sysFile:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002392, Pid=252885263002390, Title="文件上传", Permission="sysFile:upload", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },
             new SysMenu{ Id=252885263002393, Pid=252885263002390, Title="文件下载", Permission="sysFile:download", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Order=100 },

+ 5 - 3
Admin.NET/Admin.NET.Core/SeedData/SysRoleMenuSeedData.cs

@@ -31,6 +31,7 @@ public class SysRoleMenuSeedData : ISqlSugarEntitySeedData<SysRoleMenu>
             new SysRoleMenu{ Id=252885263003108, RoleId=252885263003721, MenuId=252885263002217 },
             new SysRoleMenu{ Id=252885263003109, RoleId=252885263003721, MenuId=252885263002218 },
             new SysRoleMenu{ Id=252885263003110, RoleId=252885263003721, MenuId=252885263002219 },
+            new SysRoleMenu{ Id=252885263013111, RoleId=252885263003721, MenuId=252885263012220 },
             // 角色管理
             new SysRoleMenu{ Id=252885263003111, RoleId=252885263003721, MenuId=252885263002220 },
             new SysRoleMenu{ Id=252885263003112, RoleId=252885263003721, MenuId=252885263002221 },
@@ -59,7 +60,7 @@ public class SysRoleMenuSeedData : ISqlSugarEntitySeedData<SysRoleMenu>
             new SysRoleMenu{ Id=252885263003144, RoleId=252885263003721, MenuId=252885263002253 },
             new SysRoleMenu{ Id=252885263003145, RoleId=252885263003721, MenuId=252885263002254 },
             // 修改密码
-            new SysRoleMenu{ Id=252885263003151, RoleId=252885263003721, MenuId=252885263002260},
+            new SysRoleMenu{ Id=252885263003151, RoleId=252885263003721, MenuId=252885263002260 },
 
             // 平台管理
             new SysRoleMenu{ Id=252885263003200, RoleId=252885263003721, MenuId=252885263002300 },
@@ -122,7 +123,7 @@ public class SysRoleMenuSeedData : ISqlSugarEntitySeedData<SysRoleMenu>
             // 系统管理
             new SysRoleMenu{ Id=252885263004100, RoleId=252885263003722, MenuId=252885263002200 },
             // 密码修改
-            new SysRoleMenu{ Id=252885263004151, RoleId=252885263003722, MenuId=252885263002260},
+            new SysRoleMenu{ Id=252885263004151, RoleId=252885263003722, MenuId=252885263002260 },
 
             // 数据面板【user3/252885263003724】
             new SysRoleMenu{ Id=252885263005000, RoleId=252885263003724, MenuId=252885263002100 },
@@ -153,6 +154,7 @@ public class SysRoleMenuSeedData : ISqlSugarEntitySeedData<SysRoleMenu>
             new SysRoleMenu{ Id=252885263101108, RoleId=252885263004721, MenuId=252885263002217 },
             new SysRoleMenu{ Id=252885263101109, RoleId=252885263004721, MenuId=252885263002218 },
             new SysRoleMenu{ Id=252885263103110, RoleId=252885263004721, MenuId=252885263002219 },
+            new SysRoleMenu{ Id=252885263113111, RoleId=252885263003721, MenuId=252885263012220 },
             // 角色管理
             new SysRoleMenu{ Id=252885263103111, RoleId=252885263004721, MenuId=252885263002220 },
             new SysRoleMenu{ Id=252885263103112, RoleId=252885263004721, MenuId=252885263002221 },
@@ -181,7 +183,7 @@ public class SysRoleMenuSeedData : ISqlSugarEntitySeedData<SysRoleMenu>
             new SysRoleMenu{ Id=252885263103144, RoleId=252885263004721, MenuId=252885263002253 },
             new SysRoleMenu{ Id=252885263103145, RoleId=252885263004721, MenuId=252885263002254 },
             // 密码修改
-            new SysRoleMenu{ Id=252885263103151, RoleId=252885263004721, MenuId=252885263002260},
+            new SysRoleMenu{ Id=252885263103151, RoleId=252885263004721, MenuId=252885263002260 },
         };
     }
 }

+ 10 - 10
Admin.NET/Admin.NET.Core/SeedData/SysRoleSeedData.cs

@@ -13,17 +13,17 @@ public class SysRoleSeedData : ISqlSugarEntitySeedData<SysRole>
     {
         return new[]
         {
-            new SysRole{ Id=252885263003721, Name="系统管理员", DataScope=DataScopeEnum.All, Code="admin", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="系统管理员", TenantId=142307070918780 },
-            new SysRole{ Id=252885263003722, Name="本部门及以下数据", DataScope=DataScopeEnum.Dept_with_child, Code="deptChild", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="本部门及以下数据", TenantId=142307070918780 },
-            new SysRole{ Id=252885263003723, Name="本部门数据", DataScope=DataScopeEnum.Dept, Code="dept", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="本部门数据", TenantId=142307070918780 },
-            new SysRole{ Id=252885263003724, Name="仅本人数据", DataScope=DataScopeEnum.Self, Code="self", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="仅本人数据", TenantId=142307070918780 },
-            new SysRole{ Id=252885263003725, Name="自定义数据", DataScope=DataScopeEnum.Define, Code="define", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="自定义数据", TenantId=142307070918780 },
+            new SysRole{ Id=252885263003721, Name="系统管理员", DataScope=DataScopeEnum.All, Code="sys_admin", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="系统管理员", TenantId=142307070918780 },
+            new SysRole{ Id=252885263003722, Name="本部门及以下数据", DataScope=DataScopeEnum.DeptChild, Code="sys_deptChild", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="本部门及以下数据", TenantId=142307070918780 },
+            new SysRole{ Id=252885263003723, Name="本部门数据", DataScope=DataScopeEnum.Dept, Code="sys_dept", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="本部门数据", TenantId=142307070918780 },
+            new SysRole{ Id=252885263003724, Name="仅本人数据", DataScope=DataScopeEnum.Self, Code="sys_self", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="仅本人数据", TenantId=142307070918780 },
+            new SysRole{ Id=252885263003725, Name="自定义数据", DataScope=DataScopeEnum.Define, Code="sys_define", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="自定义数据", TenantId=142307070918780 },
 
-            new SysRole{ Id=252885263004721, Name="系统管理员", DataScope=DataScopeEnum.All, Code="admin", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="系统管理员", TenantId=142307070918781 },
-            new SysRole{ Id=252885263004722, Name="本部门及以下数据", DataScope=DataScopeEnum.Dept_with_child, Code="deptChild", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="本部门及以下数据", TenantId=142307070918781 },
-            new SysRole{ Id=252885263004723, Name="本部门数据", DataScope=DataScopeEnum.Dept, Code="dept", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="本部门数据", TenantId=142307070918781 },
-            new SysRole{ Id=252885263004724, Name="仅本人数据", DataScope=DataScopeEnum.Self, Code="self", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="仅本人数据", TenantId=142307070918781 },
-            new SysRole{ Id=252885263004725, Name="自定义数据", DataScope=DataScopeEnum.Define, Code="define", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="自定义数据", TenantId=142307070918781 },
+            new SysRole{ Id=252885263004721, Name="系统管理员", DataScope=DataScopeEnum.All, Code="sys_admin", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="系统管理员", TenantId=142307070918781 },
+            new SysRole{ Id=252885263004722, Name="本部门及以下数据", DataScope=DataScopeEnum.DeptChild, Code="sys_deptChild", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="本部门及以下数据", TenantId=142307070918781 },
+            new SysRole{ Id=252885263004723, Name="本部门数据", DataScope=DataScopeEnum.Dept, Code="sys_dept", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="本部门数据", TenantId=142307070918781 },
+            new SysRole{ Id=252885263004724, Name="仅本人数据", DataScope=DataScopeEnum.Self, Code="sys_self", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="仅本人数据", TenantId=142307070918781 },
+            new SysRole{ Id=252885263004725, Name="自定义数据", DataScope=DataScopeEnum.Define, Code="sys_define", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="自定义数据", TenantId=142307070918781 },
         };
     }
 }

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs

@@ -103,7 +103,7 @@ public class SysAuthService : IDynamicApiController, ITransient
     /// 获取用户信息
     /// </summary>
     /// <returns></returns>
-    [HttpGet("/getUserInfo")]
+    [HttpGet("/userInfo")]
     public async Task<LoginUserOutput> GetUserInfo()
     {
         var user = _userManager.User;

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/Cache/SysCacheService.cs

@@ -67,7 +67,7 @@ public class SysCacheService : IDynamicApiController, ISingleton
     /// </summary>
     /// <param name="key"></param>
     /// <returns></returns>
-    [HttpPost("/sysCache/remove")]
+    [HttpPost("/sysCache/delete")]
     public void Remove(string key)
     {
         _cache.Remove(key);

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs

@@ -284,7 +284,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
                 Path = "/" + className.ToLower(),
                 Component = "LAYOUT",
             };
-            {//如果之前存在那么就删除本级和下级
+            {   //如果之前存在那么就删除本级和下级
                 var list = await _db.Queryable<SysMenu>().Where(e => e.Title == menuType0.Title && e.Type == menuType0.Type).ToListAsync();
                 if (list.Count > 0)
                 {

+ 0 - 10
Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs

@@ -45,16 +45,6 @@ public class SysFileService : IDynamicApiController, ITransient
             .ToPagedListAsync(input.Page, input.PageSize);
     }
 
-    /// <summary>
-    /// 获取文件列表
-    /// </summary>
-    /// <returns></returns>
-    [HttpGet("/sysFile/list")]
-    public async Task<List<SysFile>> GetFileList()
-    {
-        return await _sysFileRep.GetListAsync();
-    }
-
     /// <summary>
     /// 上传文件
     /// </summary>

+ 11 - 38
Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs

@@ -29,7 +29,7 @@ public class SysMenuService : IDynamicApiController, ITransient
     /// 获取登录菜单树
     /// </summary>
     /// <returns></returns>
-    [HttpGet("/getMenuList")]
+    [HttpGet("/loginMenu")]
     public async Task<List<MenuOutput>> GetLoginMenuTree()
     {
         if (_userManager.SuperAdmin)
@@ -42,15 +42,6 @@ public class SysMenuService : IDynamicApiController, ITransient
         else
         {
             var menuIdList = await GetMenuIdList();
-            //// 获取所有节点的父节点(当半选状态的父节点未存储时)
-            //var treeIdList = new List<long>();
-            //foreach (var cId in menuIdList)
-            //{
-            //    if (cId < 1)
-            //        continue;
-            //    var pIds = _sysMenuRep.AsQueryable().ToParentList(u => u.Pid, cId).Select(u => u.Id).ToList();
-            //    treeIdList = treeIdList.Union(pIds).ToList();
-            //}
             var menuList = await _sysMenuRep.AsQueryable()
                 .Where(u => u.Type != MenuTypeEnum.Btn)
                 .Where(u => menuIdList.Contains(u.Id))
@@ -73,7 +64,7 @@ public class SysMenuService : IDynamicApiController, ITransient
         if (!string.IsNullOrWhiteSpace(input.Title) || input.Type > 0)
         {
             return await _sysMenuRep.AsQueryable()
-                .WhereIF(input.Type > 0, u => u.Type == (MenuTypeEnum)input.Type)
+                .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();
@@ -141,9 +132,8 @@ public class SysMenuService : IDynamicApiController, ITransient
     [UnitOfWork]
     public async Task DeleteMenu(DeleteMenuInput input)
     {
-        var menuTreeList = await _sysMenuRep.AsQueryable().ToChildListAsync(u => u.Pid, input.Id);
+        var menuTreeList = await _sysMenuRep.AsQueryable().ToChildListAsync(u => u.Pid, input.Id, true);
         var menuIdList = menuTreeList.Select(u => u.Id).ToList();
-        menuIdList.Add(input.Id);
 
         await _sysMenuRep.DeleteAsync(u => menuIdList.Contains(u.Id));
 
@@ -160,16 +150,8 @@ public class SysMenuService : IDynamicApiController, ITransient
     /// <param name="menu"></param>
     private static void CheckMenuParam(SysMenu menu)
     {
-        var type = menu.Type;
-        //var component = input.Component;
         var permission = menu.Permission;
-        //if (type == (int)MenuTypeEnum.Dir || type == (int)MenuTypeEnum.Menu)
-        //{
-        //    if (string.IsNullOrEmpty(component))
-        //        throw Oops.Oh(ErrorCodeEnum.D4001);
-        //}
-        //else
-        if (type == MenuTypeEnum.Btn)
+        if (menu.Type == MenuTypeEnum.Btn)
         {
             if (string.IsNullOrEmpty(permission))
                 throw Oops.Oh(ErrorCodeEnum.D4003);
@@ -182,27 +164,18 @@ public class SysMenuService : IDynamicApiController, ITransient
     /// 获取按钮权限列表(登录)
     /// </summary>
     /// <returns></returns>
-    [HttpGet("getPermCode")]
+    [HttpGet("/getPermCode")]
     public async Task<List<string>> GetPermCodeList()
     {
         var userId = _userManager.UserId;
-        var permissions = _sysCacheService.GetPermission(userId); // 先从缓存里面读取
+        var permissions = _sysCacheService.GetPermission(userId); // 取缓存
         if (permissions == null || permissions.Count == 0)
         {
-            if (_userManager.SuperAdmin)
-            {
-                permissions = await _sysMenuRep.AsQueryable()
-                    .Where(u => u.Type == MenuTypeEnum.Btn)
-                    .Select(u => u.Permission).ToListAsync();
-            }
-            else
-            {
-                var menuIdList = await GetMenuIdList();
-                permissions = await _sysMenuRep.AsQueryable()
-                    .Where(u => u.Type == MenuTypeEnum.Btn)
-                    .Where(u => menuIdList.Contains(u.Id))
-                    .Select(u => u.Permission).ToListAsync();
-            }
+            var menuIdList = _userManager.SuperAdmin ? new List<long>() : await GetMenuIdList();
+            permissions = await _sysMenuRep.AsQueryable()
+                .Where(u => u.Type == MenuTypeEnum.Btn)
+                .WhereIF(menuIdList.Count > 0, u => menuIdList.Contains(u.Id))
+                .Select(u => u.Permission).ToListAsync();
             _sysCacheService.SetPermission(userId, permissions); // 缓存结果
         }
         return permissions;

+ 8 - 7
Admin.NET/Admin.NET.Core/Service/Org/SysOrgService.cs

@@ -6,15 +6,15 @@ namespace Admin.NET.Core.Service;
 [ApiDescriptionSettings(Order = 197)]
 public class SysOrgService : IDynamicApiController, ITransient
 {
-    private readonly SqlSugarRepository<SysOrg> _sysOrgRep;
     private readonly UserManager _userManager;
+    private readonly SqlSugarRepository<SysOrg> _sysOrgRep;
     private readonly SysCacheService _sysCacheService;
     private readonly SysUserExtOrgService _sysUserExtOrgService;
     private readonly SysUserRoleService _sysUserRoleService;
     private readonly SysRoleOrgService _sysRoleOrgService;
 
-    public SysOrgService(SqlSugarRepository<SysOrg> sysOrgRep,
-        UserManager userManager,
+    public SysOrgService(UserManager userManager, 
+        SqlSugarRepository<SysOrg> sysOrgRep,        
         SysCacheService sysCacheService,
         SysUserExtOrgService sysUserExtOrgService,
         SysUserRoleService sysUserRoleService,
@@ -50,7 +50,7 @@ public class SysOrgService : IDynamicApiController, ITransient
 
         if (input.Id > 0)
         {
-            return await iSugarQueryable.WhereIF(orgIdList.Count > 0, u => orgIdList.Contains(u.Id)).ToChildListAsync(u => u.Pid, input.Id);
+            return await iSugarQueryable.WhereIF(orgIdList.Count > 0, u => orgIdList.Contains(u.Id)).ToChildListAsync(u => u.Pid, input.Id, true);
         }
         else
         {
@@ -131,6 +131,7 @@ public class SysOrgService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     /// <returns></returns>
     [HttpPost("/sysOrg/delete")]
+    [UnitOfWork]
     public async Task DeleteOrg(DeleteOrgInput input)
     {
         var sysOrg = await _sysOrgRep.GetFirstAsync(u => u.Id == input.Id);
@@ -149,7 +150,7 @@ public class SysOrgService : IDynamicApiController, ITransient
             throw Oops.Oh(ErrorCodeEnum.D2005);
 
         // 若子机构有用户则禁止删除
-        var orgTreeList = await _sysOrgRep.AsQueryable().ToChildListAsync(u => u.Pid, input.Id);
+        var orgTreeList = await _sysOrgRep.AsQueryable().ToChildListAsync(u => u.Pid, input.Id, true);
         var orgIdList = orgTreeList.Select(u => u.Id).ToList();
 
         // 级联删除机构子节点
@@ -251,7 +252,7 @@ public class SysOrgService : IDynamicApiController, ITransient
             orgIdList = await _sysOrgRep.AsQueryable().Select(u => u.Id).ToListAsync();
         }
         // 若数据范围是本部门及以下,则获取本节点和子节点集合
-        else if (dataScope == (int)DataScopeEnum.Dept_with_child)
+        else if (dataScope == (int)DataScopeEnum.DeptChild)
         {
             orgIdList = await GetChildIdListWithSelfById(orgId);
         }
@@ -271,7 +272,7 @@ public class SysOrgService : IDynamicApiController, ITransient
     [NonAction]
     public async Task<List<long>> GetChildIdListWithSelfById(long pid)
     {
-        var orgTreeList = await _sysOrgRep.AsQueryable().ToChildListAsync(u => u.Pid, pid);
+        var orgTreeList = await _sysOrgRep.AsQueryable().ToChildListAsync(u => u.Pid, pid, true);
         return orgTreeList.Select(u => u.Id).ToList();
     }
 }

+ 4 - 4
Admin.NET/Admin.NET.Core/Service/Pos/SysPosService.cs

@@ -7,13 +7,13 @@
 public class SysPosService : IDynamicApiController, ITransient
 {
     private readonly SqlSugarRepository<SysPos> _sysPosRep;
-    private readonly SysUserExtOrgService _sysUserOrgService;
+    private readonly SysUserExtOrgService _sysUserExtOrgService;
 
     public SysPosService(SqlSugarRepository<SysPos> sysPosRep,
-        SysUserExtOrgService sysUserOrgService)
+        SysUserExtOrgService sysUserExtOrgService)
     {
         _sysPosRep = sysPosRep;
-        _sysUserOrgService = sysUserOrgService;
+        _sysUserExtOrgService = sysUserExtOrgService;
     }
 
     /// <summary>
@@ -75,7 +75,7 @@ public class SysPosService : IDynamicApiController, ITransient
             throw Oops.Oh(ErrorCodeEnum.D6001);
 
         // 该附属职位下是否有用户
-        var hasExtPosEmp = await _sysUserOrgService.HasUserPos(input.Id);
+        var hasExtPosEmp = await _sysUserExtOrgService.HasUserPos(input.Id);
         if (hasExtPosEmp)
             throw Oops.Oh(ErrorCodeEnum.D6001);
 

+ 1 - 0
Admin.NET/Admin.NET.Core/Service/Region/RegionUtil.cs

@@ -0,0 +1 @@
+

+ 9 - 27
Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs

@@ -85,7 +85,8 @@ public class SysTenantService : IDynamicApiController, ITransient
             TenantId = tenantId,
             Pid = 0,
             Name = companyName,
-            Code = companyName
+            Code = companyName,
+            Remark = companyName,
         };
         await _orgRep.InsertAsync(newOrg);
 
@@ -94,8 +95,9 @@ public class SysTenantService : IDynamicApiController, ITransient
         {
             TenantId = tenantId,
             Code = CommonConst.SysAdminRoleCode,
-            Name = "租户管理员",
-            DataScope = DataScopeEnum.All
+            Name = "租户管理员-" + companyName,
+            DataScope = DataScopeEnum.All,
+            Remark = companyName
         };
         await _roleRep.InsertAsync(newRole);
 
@@ -103,7 +105,8 @@ public class SysTenantService : IDynamicApiController, ITransient
         {
             Name = "租户管理员",
             Code = "adminTenant",
-            TenantId = tenantId
+            TenantId = tenantId,
+            Remark = companyName,
         };
         await _posRep.InsertAsync(newPos);
 
@@ -121,7 +124,7 @@ public class SysTenantService : IDynamicApiController, ITransient
             PosId = newPos.Id,
             Birthday = DateTime.Parse("1986-06-28"),
             RealName = "租户管理员",
-            Remark = "租户管理员"
+            Remark = "租户管理员" + companyName,
         };
         await _userRep.InsertAsync(newUser);
 
@@ -186,27 +189,6 @@ public class SysTenantService : IDynamicApiController, ITransient
         await _userRep.Context.Updateable(tenantAdminUser).UpdateColumns(u => new { u.Account }).ExecuteCommandAsync();
     }
 
-    /// <summary>
-    /// 获取租户详情
-    /// </summary>
-    /// <param name="input"></param>
-    /// <returns></returns>
-    [HttpGet("/sysTenant/detail")]
-    public async Task<SysTenant> GetTenant([FromQuery] TenantInput input)
-    {
-        return await _tenantRep.GetFirstAsync(u => u.Id == input.Id);
-    }
-
-    /// <summary>
-    /// 获取租户列表
-    /// </summary>
-    /// <returns></returns>
-    [HttpGet("/sysTenant/list")]
-    public async Task<dynamic> GetTenantList()
-    {
-        return await _tenantRep.AsQueryable().ToListAsync();
-    }
-
     /// <summary>
     /// 授权租户管理员角色菜单
     /// </summary>
@@ -227,7 +209,7 @@ public class SysTenantService : IDynamicApiController, ITransient
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    [HttpGet("/sysTenant/ownMenu")]
+    [HttpGet("/sysTenant/ownMenuTree")]
     public async Task<List<SysMenu>> OwnMenuTree([FromQuery] TenantInput input)
     {
         var tenantAdminUser = await GetTenantAdminUser(input.Id);

+ 3 - 4
Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs

@@ -34,7 +34,7 @@ public class SysUserService : IDynamicApiController, ITransient
     public async Task<SqlSugarPagedList<SysUser>> GetUserPage([FromQuery] PageUserInput input)
     {
         var orgList = input.OrgId > 0 ? await _sysOrgService.GetChildIdListWithSelfById(input.OrgId) :
-            _userManager.SuperAdmin ? null : await _sysOrgService.GetChildIdListWithSelfById(_userManager.OrgId);
+            _userManager.SuperAdmin ? null : await _sysOrgService.GetUserOrgIdList(); // 各管理员只能看到自己机构下的用户列表
 
         return await _sysUserRep.AsQueryable()
             .WhereIF(!_userManager.SuperAdmin, u => u.AccountType != AccountTypeEnum.SuperAdmin)
@@ -147,8 +147,7 @@ public class SysUserService : IDynamicApiController, ITransient
             throw Oops.Oh(ErrorCodeEnum.D3005);
 
         user.Status = input.Status;
-        return await _sysUserRep.AsUpdateable(user)
-            .UpdateColumns(u => new { u.Status }).ExecuteCommandAsync();
+        return await _sysUserRep.AsUpdateable(user).UpdateColumns(u => new { u.Status }).ExecuteCommandAsync();
     }
 
     /// <summary>
@@ -171,7 +170,7 @@ public class SysUserService : IDynamicApiController, ITransient
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    [HttpPost("/sysUser/changeUserPwd")]
+    [HttpPost("/sysUser/changePwd")]
     public async Task<int> ChangeUserPwd(ChangePwdInput input)
     {
         var user = await _sysUserRep.GetFirstAsync(u => u.Id == _userManager.UserId);

+ 1 - 1
Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarRepository.cs

@@ -11,6 +11,6 @@ public class SqlSugarRepository<T> : SimpleClient<T> where T : class, new()
     public SqlSugarRepository(ISqlSugarClient context = null) : base(context)
     {
         iTenant = App.GetService<ISqlSugarClient>().AsTenant();
-        Context = iTenant.GetConnectionWithAttr<T>();
+        base.Context = iTenant.GetConnectionScopeWithAttr<T>();
     }
 }

+ 1 - 0
Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs

@@ -55,6 +55,7 @@ public static class SqlSugarSetup
                 };
                 db.Aop.OnError = (ex) =>
                 {
+                    if (ex.Parametres == null) return;
                     Console.ForegroundColor = ConsoleColor.Red;
                     var pars = db.Utilities.SerializeObject(((SugarParameter[])ex.Parametres).ToDictionary(it => it.ParameterName, it => it.Value));
                     Console.WriteLine("【" + DateTime.Now + "——错误SQL】\r\n" + UtilMethods.GetSqlString(config.DbType, ex.Sql, (SugarParameter[])ex.Parametres) + "\r\n");

+ 8 - 9
Admin.NET/Admin.NET.Web.Core/Handlers/JwtHandler.cs

@@ -48,11 +48,11 @@ namespace Admin.NET.Web.Core
         /// <returns></returns>
         private static async Task<bool> CheckAuthorzieAsync(DefaultHttpContext httpContext)
         {
-            // 三方授权模式
+            // 三方授权模式
             if (App.User.FindFirst(ClaimConst.RunMode)?.Value == ((int)RunModeEnum.OpenID).ToString())
                 return true;
 
-            // 管理员判断
+            // 排除超
             if (App.User.FindFirst(ClaimConst.AccountType)?.Value == ((int)AccountTypeEnum.SuperAdmin).ToString())
                 return true;
 
@@ -62,21 +62,20 @@ namespace Admin.NET.Web.Core
                 routeName = httpContext.Request.Path.Value[5..].Replace("/", ":");
 
             // 默认路由
-            var defalutRoute = new List<string>()
+            var defalutRoutes = new List<string>()
             {
-                "getLoginUser",     // 系统登录接口
-                "sysMenu:change"    // 菜单切换接口
+                "userInfo",  // 获取用户信息
+                "loginMenu", // 获取登录菜单
             };
-
-            if (defalutRoute.Contains(routeName)) return true;
+            if (defalutRoutes.Contains(routeName)) return true;
 
             // 获取用户权限集合(按钮或API接口)
             var permissionList = await App.GetService<SysMenuService>().GetPermCodeList();
             var allPermissionList = await App.GetService<SysMenuService>().GetAllPermCodeList();
 
             // 检查授权(菜单中没有配置按钮权限,则不限制)
-            return permissionList.Exists(p => p.Equals(routeName, System.StringComparison.CurrentCultureIgnoreCase))
-                || allPermissionList.TrueForAll(p => !p.Equals(routeName, System.StringComparison.CurrentCultureIgnoreCase));
+            return permissionList.Exists(p => p.Equals(routeName, System.StringComparison.CurrentCultureIgnoreCase)) ||
+                allPermissionList.TrueForAll(p => !p.Equals(routeName, System.StringComparison.CurrentCultureIgnoreCase));
         }
     }
 }

+ 0 - 1
Admin.NET/Admin.NET.Web.Entry/SingleFilePublish.cs

@@ -32,7 +32,6 @@ public class SingleFilePublish : ISingleFilePublish
             "Admin.NET.Application",
             "Admin.NET.Core",
             "Admin.NET.Web.Core",
-            "BusinessSystem",
         };
     }
 }

+ 68 - 68
Web/src/api-services/apis/sys-auth-api.ts

@@ -108,42 +108,6 @@ export const SysAuthApiAxiosParamCreator = function (configuration?: Configurati
                 options: localVarRequestOptions,
             };
         },
-        /**
-         * 
-         * @summary 获取用户信息
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        getUserInfoGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            const localVarPath = `/getUserInfo`;
-            // use dummy base URL string because the URL constructor only accepts absolute URLs.
-            const localVarUrlObj = new URL(localVarPath, 'https://example.com');
-            let baseOptions;
-            if (configuration) {
-                baseOptions = configuration.baseOptions;
-            }
-            const localVarRequestOptions :AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options};
-            const localVarHeaderParameter = {} as any;
-            const localVarQueryParameter = {} as any;
-
-            // authentication Bearer required
-
-            const query = new URLSearchParams(localVarUrlObj.search);
-            for (const key in localVarQueryParameter) {
-                query.set(key, localVarQueryParameter[key]);
-            }
-            for (const key in options.params) {
-                query.set(key, options.params[key]);
-            }
-            localVarUrlObj.search = (new URLSearchParams(query)).toString();
-            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
-            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
-
-            return {
-                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
-                options: localVarRequestOptions,
-            };
-        },
         /**
          * 用户名/密码:superadmin/123456
          * @summary 登录系统
@@ -306,6 +270,42 @@ export const SysAuthApiAxiosParamCreator = function (configuration?: Configurati
             localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
             localVarRequestOptions.data = localVarFormParams;
 
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @summary 获取用户信息
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        userInfoGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/userInfo`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, 'https://example.com');
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+            const localVarRequestOptions :AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+
+            const query = new URLSearchParams(localVarUrlObj.search);
+            for (const key in localVarQueryParameter) {
+                query.set(key, localVarQueryParameter[key]);
+            }
+            for (const key in options.params) {
+                query.set(key, options.params[key]);
+            }
+            localVarUrlObj.search = (new URLSearchParams(query)).toString();
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
             return {
                 url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
                 options: localVarRequestOptions,
@@ -347,19 +347,6 @@ export const SysAuthApiFp = function(configuration?: Configuration) {
                 return axios.request(axiosRequestArgs);
             };
         },
-        /**
-         * 
-         * @summary 获取用户信息
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async getUserInfoGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultLoginUserOutput>>> {
-            const localVarAxiosArgs = await SysAuthApiAxiosParamCreator(configuration).getUserInfoGet(options);
-            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
-                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
-                return axios.request(axiosRequestArgs);
-            };
-        },
         /**
          * 用户名/密码:superadmin/123456
          * @summary 登录系统
@@ -415,6 +402,19 @@ export const SysAuthApiFp = function(configuration?: Configuration) {
                 return axios.request(axiosRequestArgs);
             };
         },
+        /**
+         * 
+         * @summary 获取用户信息
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async userInfoGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultLoginUserOutput>>> {
+            const localVarAxiosArgs = await SysAuthApiAxiosParamCreator(configuration).userInfoGet(options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
     }
 };
 
@@ -443,15 +443,6 @@ export const SysAuthApiFactory = function (configuration?: Configuration, basePa
         async getRefreshTokenPost(accessToken: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultString>> {
             return SysAuthApiFp(configuration).getRefreshTokenPost(accessToken, options).then((request) => request(axios, basePath));
         },
-        /**
-         * 
-         * @summary 获取用户信息
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async getUserInfoGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultLoginUserOutput>> {
-            return SysAuthApiFp(configuration).getUserInfoGet(options).then((request) => request(axios, basePath));
-        },
         /**
          * 用户名/密码:superadmin/123456
          * @summary 登录系统
@@ -491,6 +482,15 @@ export const SysAuthApiFactory = function (configuration?: Configuration, basePa
         async swaggerSubmitUrlPostForm(userName?: string, password?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<number>> {
             return SysAuthApiFp(configuration).swaggerSubmitUrlPostForm(userName, password, options).then((request) => request(axios, basePath));
         },
+        /**
+         * 
+         * @summary 获取用户信息
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async userInfoGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultLoginUserOutput>> {
+            return SysAuthApiFp(configuration).userInfoGet(options).then((request) => request(axios, basePath));
+        },
     };
 };
 
@@ -522,16 +522,6 @@ export class SysAuthApi extends BaseAPI {
     public async getRefreshTokenPost(accessToken: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultString>> {
         return SysAuthApiFp(this.configuration).getRefreshTokenPost(accessToken, options).then((request) => request(this.axios, this.basePath));
     }
-    /**
-     * 
-     * @summary 获取用户信息
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof SysAuthApi
-     */
-    public async getUserInfoGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultLoginUserOutput>> {
-        return SysAuthApiFp(this.configuration).getUserInfoGet(options).then((request) => request(this.axios, this.basePath));
-    }
     /**
      * 用户名/密码:superadmin/123456
      * @summary 登录系统
@@ -575,4 +565,14 @@ export class SysAuthApi extends BaseAPI {
     public async swaggerSubmitUrlPostForm(userName?: string, password?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<number>> {
         return SysAuthApiFp(this.configuration).swaggerSubmitUrlPostForm(userName, password, options).then((request) => request(this.axios, this.basePath));
     }
+    /**
+     * 
+     * @summary 获取用户信息
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof SysAuthApi
+     */
+    public async userInfoGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultLoginUserOutput>> {
+        return SysAuthApiFp(this.configuration).userInfoGet(options).then((request) => request(this.axios, this.basePath));
+    }
 }

+ 51 - 51
Web/src/api-services/apis/sys-cache-api.ts

@@ -166,27 +166,27 @@ export const SysCacheApiAxiosParamCreator = function (configuration?: Configurat
         },
         /**
          * 
-         * @summary 获取缓存
-         * @param {string} [cacheKey] 
+         * @summary 删除缓存
+         * @param {string} [key] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        sysCacheDetailGet: async (cacheKey?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            const localVarPath = `/sysCache/detail`;
+        sysCacheDeletePost: async (key?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/sysCache/delete`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
             let baseOptions;
             if (configuration) {
                 baseOptions = configuration.baseOptions;
             }
-            const localVarRequestOptions :AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options};
+            const localVarRequestOptions :AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options};
             const localVarHeaderParameter = {} as any;
             const localVarQueryParameter = {} as any;
 
             // authentication Bearer required
 
-            if (cacheKey !== undefined) {
-                localVarQueryParameter['cacheKey'] = cacheKey;
+            if (key !== undefined) {
+                localVarQueryParameter['key'] = key;
             }
 
             const query = new URLSearchParams(localVarUrlObj.search);
@@ -207,12 +207,13 @@ export const SysCacheApiAxiosParamCreator = function (configuration?: Configurat
         },
         /**
          * 
-         * @summary 获取所有缓存键名
+         * @summary 获取缓存
+         * @param {string} [cacheKey] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        sysCacheKeyListGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            const localVarPath = `/sysCache/keyList`;
+        sysCacheDetailGet: async (cacheKey?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/sysCache/detail`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
             let baseOptions;
@@ -225,6 +226,10 @@ export const SysCacheApiAxiosParamCreator = function (configuration?: Configurat
 
             // authentication Bearer required
 
+            if (cacheKey !== undefined) {
+                localVarQueryParameter['cacheKey'] = cacheKey;
+            }
+
             const query = new URLSearchParams(localVarUrlObj.search);
             for (const key in localVarQueryParameter) {
                 query.set(key, localVarQueryParameter[key]);
@@ -243,29 +248,24 @@ export const SysCacheApiAxiosParamCreator = function (configuration?: Configurat
         },
         /**
          * 
-         * @summary 删除缓存
-         * @param {string} [key] 
+         * @summary 获取所有缓存键名
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        sysCacheRemovePost: async (key?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            const localVarPath = `/sysCache/remove`;
+        sysCacheKeyListGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/sysCache/keyList`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
             let baseOptions;
             if (configuration) {
                 baseOptions = configuration.baseOptions;
             }
-            const localVarRequestOptions :AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options};
+            const localVarRequestOptions :AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options};
             const localVarHeaderParameter = {} as any;
             const localVarQueryParameter = {} as any;
 
             // authentication Bearer required
 
-            if (key !== undefined) {
-                localVarQueryParameter['key'] = key;
-            }
-
             const query = new URLSearchParams(localVarUrlObj.search);
             for (const key in localVarQueryParameter) {
                 query.set(key, localVarQueryParameter[key]);
@@ -338,13 +338,13 @@ export const SysCacheApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary 获取缓存
-         * @param {string} [cacheKey] 
+         * @summary 删除缓存
+         * @param {string} [key] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async sysCacheDetailGet(cacheKey?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultObject>>> {
-            const localVarAxiosArgs = await SysCacheApiAxiosParamCreator(configuration).sysCacheDetailGet(cacheKey, options);
+        async sysCacheDeletePost(key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
+            const localVarAxiosArgs = await SysCacheApiAxiosParamCreator(configuration).sysCacheDeletePost(key, options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -352,12 +352,13 @@ export const SysCacheApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary 获取所有缓存键名
+         * @summary 获取缓存
+         * @param {string} [cacheKey] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async sysCacheKeyListGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListString>>> {
-            const localVarAxiosArgs = await SysCacheApiAxiosParamCreator(configuration).sysCacheKeyListGet(options);
+        async sysCacheDetailGet(cacheKey?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultObject>>> {
+            const localVarAxiosArgs = await SysCacheApiAxiosParamCreator(configuration).sysCacheDetailGet(cacheKey, options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -365,13 +366,12 @@ export const SysCacheApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary 删除缓存
-         * @param {string} [key] 
+         * @summary 获取所有缓存键名
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async sysCacheRemovePost(key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
-            const localVarAxiosArgs = await SysCacheApiAxiosParamCreator(configuration).sysCacheRemovePost(key, options);
+        async sysCacheKeyListGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListString>>> {
+            const localVarAxiosArgs = await SysCacheApiAxiosParamCreator(configuration).sysCacheKeyListGet(options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -419,6 +419,16 @@ export const SysCacheApiFactory = function (configuration?: Configuration, baseP
         async sysCacheDelByParentKeyPost(prefixKey?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultInt32>> {
             return SysCacheApiFp(configuration).sysCacheDelByParentKeyPost(prefixKey, options).then((request) => request(axios, basePath));
         },
+        /**
+         * 
+         * @summary 删除缓存
+         * @param {string} [key] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async sysCacheDeletePost(key?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
+            return SysCacheApiFp(configuration).sysCacheDeletePost(key, options).then((request) => request(axios, basePath));
+        },
         /**
          * 
          * @summary 获取缓存
@@ -438,16 +448,6 @@ export const SysCacheApiFactory = function (configuration?: Configuration, baseP
         async sysCacheKeyListGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListString>> {
             return SysCacheApiFp(configuration).sysCacheKeyListGet(options).then((request) => request(axios, basePath));
         },
-        /**
-         * 
-         * @summary 删除缓存
-         * @param {string} [key] 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async sysCacheRemovePost(key?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
-            return SysCacheApiFp(configuration).sysCacheRemovePost(key, options).then((request) => request(axios, basePath));
-        },
     };
 };
 
@@ -496,34 +496,34 @@ export class SysCacheApi extends BaseAPI {
     }
     /**
      * 
-     * @summary 获取缓存
-     * @param {string} [cacheKey] 
+     * @summary 删除缓存
+     * @param {string} [key] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof SysCacheApi
      */
-    public async sysCacheDetailGet(cacheKey?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultObject>> {
-        return SysCacheApiFp(this.configuration).sysCacheDetailGet(cacheKey, options).then((request) => request(this.axios, this.basePath));
+    public async sysCacheDeletePost(key?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+        return SysCacheApiFp(this.configuration).sysCacheDeletePost(key, options).then((request) => request(this.axios, this.basePath));
     }
     /**
      * 
-     * @summary 获取所有缓存键名
+     * @summary 获取缓存
+     * @param {string} [cacheKey] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof SysCacheApi
      */
-    public async sysCacheKeyListGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListString>> {
-        return SysCacheApiFp(this.configuration).sysCacheKeyListGet(options).then((request) => request(this.axios, this.basePath));
+    public async sysCacheDetailGet(cacheKey?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultObject>> {
+        return SysCacheApiFp(this.configuration).sysCacheDetailGet(cacheKey, options).then((request) => request(this.axios, this.basePath));
     }
     /**
      * 
-     * @summary 删除缓存
-     * @param {string} [key] 
+     * @summary 获取所有缓存键名
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof SysCacheApi
      */
-    public async sysCacheRemovePost(key?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
-        return SysCacheApiFp(this.configuration).sysCacheRemovePost(key, options).then((request) => request(this.axios, this.basePath));
+    public async sysCacheKeyListGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListString>> {
+        return SysCacheApiFp(this.configuration).sysCacheKeyListGet(options).then((request) => request(this.axios, this.basePath));
     }
 }

+ 0 - 69
Web/src/api-services/apis/sys-file-api.ts

@@ -19,7 +19,6 @@ import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } fr
 import { AdminResultFileOutput } from '../models';
 import { AdminResultIActionResult } from '../models';
 import { AdminResultListFileOutput } from '../models';
-import { AdminResultListSysFile } from '../models';
 import { AdminResultSqlSugarPagedListSysFile } from '../models';
 import { DeleteFileInput } from '../models';
 import { FileInput } from '../models';
@@ -111,42 +110,6 @@ export const SysFileApiAxiosParamCreator = function (configuration?: Configurati
                 options: localVarRequestOptions,
             };
         },
-        /**
-         * 
-         * @summary 获取文件列表
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        sysFileListGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            const localVarPath = `/sysFile/list`;
-            // use dummy base URL string because the URL constructor only accepts absolute URLs.
-            const localVarUrlObj = new URL(localVarPath, 'https://example.com');
-            let baseOptions;
-            if (configuration) {
-                baseOptions = configuration.baseOptions;
-            }
-            const localVarRequestOptions :AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options};
-            const localVarHeaderParameter = {} as any;
-            const localVarQueryParameter = {} as any;
-
-            // authentication Bearer required
-
-            const query = new URLSearchParams(localVarUrlObj.search);
-            for (const key in localVarQueryParameter) {
-                query.set(key, localVarQueryParameter[key]);
-            }
-            for (const key in options.params) {
-                query.set(key, options.params[key]);
-            }
-            localVarUrlObj.search = (new URLSearchParams(query)).toString();
-            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
-            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
-
-            return {
-                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
-                options: localVarRequestOptions,
-            };
-        },
         /**
          * 
          * @summary 获取文件分页列表
@@ -355,19 +318,6 @@ export const SysFileApiFp = function(configuration?: Configuration) {
                 return axios.request(axiosRequestArgs);
             };
         },
-        /**
-         * 
-         * @summary 获取文件列表
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async sysFileListGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListSysFile>>> {
-            const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).sysFileListGet(options);
-            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
-                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
-                return axios.request(axiosRequestArgs);
-            };
-        },
         /**
          * 
          * @summary 获取文件分页列表
@@ -446,15 +396,6 @@ export const SysFileApiFactory = function (configuration?: Configuration, basePa
         async sysFileDownloadPost(body?: FileInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultIActionResult>> {
             return SysFileApiFp(configuration).sysFileDownloadPost(body, options).then((request) => request(axios, basePath));
         },
-        /**
-         * 
-         * @summary 获取文件列表
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async sysFileListGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListSysFile>> {
-            return SysFileApiFp(configuration).sysFileListGet(options).then((request) => request(axios, basePath));
-        },
         /**
          * 
          * @summary 获取文件分页列表
@@ -524,16 +465,6 @@ export class SysFileApi extends BaseAPI {
     public async sysFileDownloadPost(body?: FileInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultIActionResult>> {
         return SysFileApiFp(this.configuration).sysFileDownloadPost(body, options).then((request) => request(this.axios, this.basePath));
     }
-    /**
-     * 
-     * @summary 获取文件列表
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof SysFileApi
-     */
-    public async sysFileListGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListSysFile>> {
-        return SysFileApiFp(this.configuration).sysFileListGet(options).then((request) => request(this.axios, this.basePath));
-    }
     /**
      * 
      * @summary 获取文件分页列表

+ 24 - 24
Web/src/api-services/apis/sys-menu-api.ts

@@ -31,12 +31,12 @@ export const SysMenuApiAxiosParamCreator = function (configuration?: Configurati
     return {
         /**
          * 
-         * @summary 获取登录菜单树
+         * @summary 获取按钮权限列表(登录)
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getMenuListGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            const localVarPath = `/getMenuList`;
+        getPermCodeGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/getPermCode`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
             let baseOptions;
@@ -67,12 +67,12 @@ export const SysMenuApiAxiosParamCreator = function (configuration?: Configurati
         },
         /**
          * 
-         * @summary 获取按钮权限列表(登录)
+         * @summary 获取登录菜单树
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getPermCodeGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            const localVarPath = `/getPermCode`;
+        loginMenuGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/loginMenu`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
             let baseOptions;
@@ -281,12 +281,12 @@ export const SysMenuApiFp = function(configuration?: Configuration) {
     return {
         /**
          * 
-         * @summary 获取登录菜单树
+         * @summary 获取按钮权限列表(登录)
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getMenuListGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListMenuOutput>>> {
-            const localVarAxiosArgs = await SysMenuApiAxiosParamCreator(configuration).getMenuListGet(options);
+        async getPermCodeGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListString>>> {
+            const localVarAxiosArgs = await SysMenuApiAxiosParamCreator(configuration).getPermCodeGet(options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -294,12 +294,12 @@ export const SysMenuApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary 获取按钮权限列表(登录)
+         * @summary 获取登录菜单树
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getPermCodeGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListString>>> {
-            const localVarAxiosArgs = await SysMenuApiAxiosParamCreator(configuration).getPermCodeGet(options);
+        async loginMenuGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListMenuOutput>>> {
+            const localVarAxiosArgs = await SysMenuApiAxiosParamCreator(configuration).loginMenuGet(options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -373,21 +373,21 @@ export const SysMenuApiFactory = function (configuration?: Configuration, basePa
     return {
         /**
          * 
-         * @summary 获取登录菜单树
+         * @summary 获取按钮权限列表(登录)
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getMenuListGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListMenuOutput>> {
-            return SysMenuApiFp(configuration).getMenuListGet(options).then((request) => request(axios, basePath));
+        async getPermCodeGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListString>> {
+            return SysMenuApiFp(configuration).getPermCodeGet(options).then((request) => request(axios, basePath));
         },
         /**
          * 
-         * @summary 获取按钮权限列表(登录)
+         * @summary 获取登录菜单树
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getPermCodeGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListString>> {
-            return SysMenuApiFp(configuration).getPermCodeGet(options).then((request) => request(axios, basePath));
+        async loginMenuGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListMenuOutput>> {
+            return SysMenuApiFp(configuration).loginMenuGet(options).then((request) => request(axios, basePath));
         },
         /**
          * 
@@ -442,23 +442,23 @@ export const SysMenuApiFactory = function (configuration?: Configuration, basePa
 export class SysMenuApi extends BaseAPI {
     /**
      * 
-     * @summary 获取登录菜单树
+     * @summary 获取按钮权限列表(登录)
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof SysMenuApi
      */
-    public async getMenuListGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListMenuOutput>> {
-        return SysMenuApiFp(this.configuration).getMenuListGet(options).then((request) => request(this.axios, this.basePath));
+    public async getPermCodeGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListString>> {
+        return SysMenuApiFp(this.configuration).getPermCodeGet(options).then((request) => request(this.axios, this.basePath));
     }
     /**
      * 
-     * @summary 获取按钮权限列表(登录)
+     * @summary 获取登录菜单树
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof SysMenuApi
      */
-    public async getPermCodeGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListString>> {
-        return SysMenuApiFp(this.configuration).getPermCodeGet(options).then((request) => request(this.axios, this.basePath));
+    public async loginMenuGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListMenuOutput>> {
+        return SysMenuApiFp(this.configuration).loginMenuGet(options).then((request) => request(this.axios, this.basePath));
     }
     /**
      * 

+ 18 - 168
Web/src/api-services/apis/sys-tenant-api.ts

@@ -19,9 +19,7 @@ import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } fr
 import { AddTenantInput } from '../models';
 import { AdminResultListInt64 } from '../models';
 import { AdminResultListSysMenu } from '../models';
-import { AdminResultObject } from '../models';
 import { AdminResultSqlSugarPagedListSysTenant } from '../models';
-import { AdminResultSysTenant } from '../models';
 import { DeleteTenantInput } from '../models';
 import { RoleMenuInput } from '../models';
 import { TenantInput } from '../models';
@@ -114,51 +112,6 @@ export const SysTenantApiAxiosParamCreator = function (configuration?: Configura
                 options: localVarRequestOptions,
             };
         },
-        /**
-         * 
-         * @summary 获取租户详情
-         * @param {number} id 主键Id
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        sysTenantDetailGet: async (id: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            // verify required parameter 'id' is not null or undefined
-            if (id === null || id === undefined) {
-                throw new RequiredError('id','Required parameter id was null or undefined when calling sysTenantDetailGet.');
-            }
-            const localVarPath = `/sysTenant/detail`;
-            // use dummy base URL string because the URL constructor only accepts absolute URLs.
-            const localVarUrlObj = new URL(localVarPath, 'https://example.com');
-            let baseOptions;
-            if (configuration) {
-                baseOptions = configuration.baseOptions;
-            }
-            const localVarRequestOptions :AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options};
-            const localVarHeaderParameter = {} as any;
-            const localVarQueryParameter = {} as any;
-
-            // authentication Bearer required
-
-            if (id !== undefined) {
-                localVarQueryParameter['Id'] = id;
-            }
-
-            const query = new URLSearchParams(localVarUrlObj.search);
-            for (const key in localVarQueryParameter) {
-                query.set(key, localVarQueryParameter[key]);
-            }
-            for (const key in options.params) {
-                query.set(key, options.params[key]);
-            }
-            localVarUrlObj.search = (new URLSearchParams(query)).toString();
-            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
-            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
-
-            return {
-                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
-                options: localVarRequestOptions,
-            };
-        },
         /**
          * 
          * @summary 授权租户管理员角色菜单
@@ -200,42 +153,6 @@ export const SysTenantApiAxiosParamCreator = function (configuration?: Configura
                 options: localVarRequestOptions,
             };
         },
-        /**
-         * 
-         * @summary 获取租户列表
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        sysTenantListGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            const localVarPath = `/sysTenant/list`;
-            // use dummy base URL string because the URL constructor only accepts absolute URLs.
-            const localVarUrlObj = new URL(localVarPath, 'https://example.com');
-            let baseOptions;
-            if (configuration) {
-                baseOptions = configuration.baseOptions;
-            }
-            const localVarRequestOptions :AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options};
-            const localVarHeaderParameter = {} as any;
-            const localVarQueryParameter = {} as any;
-
-            // authentication Bearer required
-
-            const query = new URLSearchParams(localVarUrlObj.search);
-            for (const key in localVarQueryParameter) {
-                query.set(key, localVarQueryParameter[key]);
-            }
-            for (const key in options.params) {
-                query.set(key, options.params[key]);
-            }
-            localVarUrlObj.search = (new URLSearchParams(query)).toString();
-            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
-            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
-
-            return {
-                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
-                options: localVarRequestOptions,
-            };
-        },
         /**
          * 
          * @summary 获取租户管理员角色拥有菜单树
@@ -243,12 +160,12 @@ export const SysTenantApiAxiosParamCreator = function (configuration?: Configura
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        sysTenantOwnMenuGet: async (id: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+        sysTenantOwnMenuListGet: async (id: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
             // verify required parameter 'id' is not null or undefined
             if (id === null || id === undefined) {
-                throw new RequiredError('id','Required parameter id was null or undefined when calling sysTenantOwnMenuGet.');
+                throw new RequiredError('id','Required parameter id was null or undefined when calling sysTenantOwnMenuListGet.');
             }
-            const localVarPath = `/sysTenant/ownMenu`;
+            const localVarPath = `/sysTenant/ownMenuList`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
             let baseOptions;
@@ -288,12 +205,12 @@ export const SysTenantApiAxiosParamCreator = function (configuration?: Configura
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        sysTenantOwnMenuListGet: async (id: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+        sysTenantOwnMenuTreeGet: async (id: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
             // verify required parameter 'id' is not null or undefined
             if (id === null || id === undefined) {
-                throw new RequiredError('id','Required parameter id was null or undefined when calling sysTenantOwnMenuListGet.');
+                throw new RequiredError('id','Required parameter id was null or undefined when calling sysTenantOwnMenuTreeGet.');
             }
-            const localVarPath = `/sysTenant/ownMenuList`;
+            const localVarPath = `/sysTenant/ownMenuTree`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
             let baseOptions;
@@ -516,20 +433,6 @@ export const SysTenantApiFp = function(configuration?: Configuration) {
                 return axios.request(axiosRequestArgs);
             };
         },
-        /**
-         * 
-         * @summary 获取租户详情
-         * @param {number} id 主键Id
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async sysTenantDetailGet(id: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSysTenant>>> {
-            const localVarAxiosArgs = await SysTenantApiAxiosParamCreator(configuration).sysTenantDetailGet(id, options);
-            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
-                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
-                return axios.request(axiosRequestArgs);
-            };
-        },
         /**
          * 
          * @summary 授权租户管理员角色菜单
@@ -544,19 +447,6 @@ export const SysTenantApiFp = function(configuration?: Configuration) {
                 return axios.request(axiosRequestArgs);
             };
         },
-        /**
-         * 
-         * @summary 获取租户列表
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async sysTenantListGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultObject>>> {
-            const localVarAxiosArgs = await SysTenantApiAxiosParamCreator(configuration).sysTenantListGet(options);
-            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
-                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
-                return axios.request(axiosRequestArgs);
-            };
-        },
         /**
          * 
          * @summary 获取租户管理员角色拥有菜单树
@@ -564,8 +454,8 @@ export const SysTenantApiFp = function(configuration?: Configuration) {
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async sysTenantOwnMenuGet(id: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListSysMenu>>> {
-            const localVarAxiosArgs = await SysTenantApiAxiosParamCreator(configuration).sysTenantOwnMenuGet(id, options);
+        async sysTenantOwnMenuListGet(id: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListInt64>>> {
+            const localVarAxiosArgs = await SysTenantApiAxiosParamCreator(configuration).sysTenantOwnMenuListGet(id, options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -578,8 +468,8 @@ export const SysTenantApiFp = function(configuration?: Configuration) {
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async sysTenantOwnMenuListGet(id: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListInt64>>> {
-            const localVarAxiosArgs = await SysTenantApiAxiosParamCreator(configuration).sysTenantOwnMenuListGet(id, options);
+        async sysTenantOwnMenuTreeGet(id: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListSysMenu>>> {
+            const localVarAxiosArgs = await SysTenantApiAxiosParamCreator(configuration).sysTenantOwnMenuTreeGet(id, options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -662,16 +552,6 @@ export const SysTenantApiFactory = function (configuration?: Configuration, base
         async sysTenantDeletePost(body?: DeleteTenantInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
             return SysTenantApiFp(configuration).sysTenantDeletePost(body, options).then((request) => request(axios, basePath));
         },
-        /**
-         * 
-         * @summary 获取租户详情
-         * @param {number} id 主键Id
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async sysTenantDetailGet(id: number, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSysTenant>> {
-            return SysTenantApiFp(configuration).sysTenantDetailGet(id, options).then((request) => request(axios, basePath));
-        },
         /**
          * 
          * @summary 授权租户管理员角色菜单
@@ -682,15 +562,6 @@ export const SysTenantApiFactory = function (configuration?: Configuration, base
         async sysTenantGrantMenuPost(body?: RoleMenuInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
             return SysTenantApiFp(configuration).sysTenantGrantMenuPost(body, options).then((request) => request(axios, basePath));
         },
-        /**
-         * 
-         * @summary 获取租户列表
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async sysTenantListGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultObject>> {
-            return SysTenantApiFp(configuration).sysTenantListGet(options).then((request) => request(axios, basePath));
-        },
         /**
          * 
          * @summary 获取租户管理员角色拥有菜单树
@@ -698,8 +569,8 @@ export const SysTenantApiFactory = function (configuration?: Configuration, base
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async sysTenantOwnMenuGet(id: number, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListSysMenu>> {
-            return SysTenantApiFp(configuration).sysTenantOwnMenuGet(id, options).then((request) => request(axios, basePath));
+        async sysTenantOwnMenuListGet(id: number, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListInt64>> {
+            return SysTenantApiFp(configuration).sysTenantOwnMenuListGet(id, options).then((request) => request(axios, basePath));
         },
         /**
          * 
@@ -708,8 +579,8 @@ export const SysTenantApiFactory = function (configuration?: Configuration, base
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async sysTenantOwnMenuListGet(id: number, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListInt64>> {
-            return SysTenantApiFp(configuration).sysTenantOwnMenuListGet(id, options).then((request) => request(axios, basePath));
+        async sysTenantOwnMenuTreeGet(id: number, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListSysMenu>> {
+            return SysTenantApiFp(configuration).sysTenantOwnMenuTreeGet(id, options).then((request) => request(axios, basePath));
         },
         /**
          * 
@@ -779,17 +650,6 @@ export class SysTenantApi extends BaseAPI {
     public async sysTenantDeletePost(body?: DeleteTenantInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
         return SysTenantApiFp(this.configuration).sysTenantDeletePost(body, options).then((request) => request(this.axios, this.basePath));
     }
-    /**
-     * 
-     * @summary 获取租户详情
-     * @param {number} id 主键Id
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof SysTenantApi
-     */
-    public async sysTenantDetailGet(id: number, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSysTenant>> {
-        return SysTenantApiFp(this.configuration).sysTenantDetailGet(id, options).then((request) => request(this.axios, this.basePath));
-    }
     /**
      * 
      * @summary 授权租户管理员角色菜单
@@ -801,16 +661,6 @@ export class SysTenantApi extends BaseAPI {
     public async sysTenantGrantMenuPost(body?: RoleMenuInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
         return SysTenantApiFp(this.configuration).sysTenantGrantMenuPost(body, options).then((request) => request(this.axios, this.basePath));
     }
-    /**
-     * 
-     * @summary 获取租户列表
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof SysTenantApi
-     */
-    public async sysTenantListGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultObject>> {
-        return SysTenantApiFp(this.configuration).sysTenantListGet(options).then((request) => request(this.axios, this.basePath));
-    }
     /**
      * 
      * @summary 获取租户管理员角色拥有菜单树
@@ -819,8 +669,8 @@ export class SysTenantApi extends BaseAPI {
      * @throws {RequiredError}
      * @memberof SysTenantApi
      */
-    public async sysTenantOwnMenuGet(id: number, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListSysMenu>> {
-        return SysTenantApiFp(this.configuration).sysTenantOwnMenuGet(id, options).then((request) => request(this.axios, this.basePath));
+    public async sysTenantOwnMenuListGet(id: number, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListInt64>> {
+        return SysTenantApiFp(this.configuration).sysTenantOwnMenuListGet(id, options).then((request) => request(this.axios, this.basePath));
     }
     /**
      * 
@@ -830,8 +680,8 @@ export class SysTenantApi extends BaseAPI {
      * @throws {RequiredError}
      * @memberof SysTenantApi
      */
-    public async sysTenantOwnMenuListGet(id: number, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListInt64>> {
-        return SysTenantApiFp(this.configuration).sysTenantOwnMenuListGet(id, options).then((request) => request(this.axios, this.basePath));
+    public async sysTenantOwnMenuTreeGet(id: number, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListSysMenu>> {
+        return SysTenantApiFp(this.configuration).sysTenantOwnMenuTreeGet(id, options).then((request) => request(this.axios, this.basePath));
     }
     /**
      * 

+ 8 - 8
Web/src/api-services/apis/sys-user-api.ts

@@ -82,8 +82,8 @@ export const SysUserApiAxiosParamCreator = function (configuration?: Configurati
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        sysUserChangeUserPwdPost: async (body?: ChangePwdInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            const localVarPath = `/sysUser/changeUserPwd`;
+        sysUserChangePwdPost: async (body?: ChangePwdInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/sysUser/changePwd`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
             let baseOptions;
@@ -557,8 +557,8 @@ export const SysUserApiFp = function(configuration?: Configuration) {
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async sysUserChangeUserPwdPost(body?: ChangePwdInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultInt32>>> {
-            const localVarAxiosArgs = await SysUserApiAxiosParamCreator(configuration).sysUserChangeUserPwdPost(body, options);
+        async sysUserChangePwdPost(body?: ChangePwdInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultInt32>>> {
+            const localVarAxiosArgs = await SysUserApiAxiosParamCreator(configuration).sysUserChangePwdPost(body, options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -724,8 +724,8 @@ export const SysUserApiFactory = function (configuration?: Configuration, basePa
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async sysUserChangeUserPwdPost(body?: ChangePwdInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultInt32>> {
-            return SysUserApiFp(configuration).sysUserChangeUserPwdPost(body, options).then((request) => request(axios, basePath));
+        async sysUserChangePwdPost(body?: ChangePwdInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultInt32>> {
+            return SysUserApiFp(configuration).sysUserChangePwdPost(body, options).then((request) => request(axios, basePath));
         },
         /**
          * 
@@ -854,8 +854,8 @@ export class SysUserApi extends BaseAPI {
      * @throws {RequiredError}
      * @memberof SysUserApi
      */
-    public async sysUserChangeUserPwdPost(body?: ChangePwdInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultInt32>> {
-        return SysUserApiFp(this.configuration).sysUserChangeUserPwdPost(body, options).then((request) => request(this.axios, this.basePath));
+    public async sysUserChangePwdPost(body?: ChangePwdInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultInt32>> {
+        return SysUserApiFp(this.configuration).sysUserChangePwdPost(body, options).then((request) => request(this.axios, this.basePath));
     }
     /**
      * 

+ 2 - 2
Web/src/api-services/models/account-type-enum.ts

@@ -12,7 +12,7 @@
  * Do not edit the class manually.
  */
 /**
- * 账号类型枚举<br />&nbsp;其他 None = 0<br />&nbsp;普通账号 User = 1<br />&nbsp;系统管理员 Admin = 4<br />&nbsp;超级管理员 SuperAdmin = 99999<br />
+ * 账号类型枚举<br />&nbsp;其他 None = 0<br />&nbsp;普通账号 User = 1<br />&nbsp;系统管理员 Admin = 4<br />&nbsp;超级管理员 SuperAdmin = 999<br />
  * @export
  * @enum {string}
  */
@@ -20,6 +20,6 @@ export enum AccountTypeEnum {
     NUMBER_0 = 0,
     NUMBER_1 = 1,
     NUMBER_4 = 4,
-    NUMBER_99999 = 99999
+    NUMBER_999 = 999
 }
 

+ 0 - 57
Web/src/api-services/models/admin-result-list-sys-file.ts

@@ -1,57 +0,0 @@
-/* tslint:disable */
-/* eslint-disable */
-/**
- * Admin.NET
- * 让 .NET 开发更简单、更通用、更流行。前后端分离架构(.NET6/Vue3),开箱即用紧随前沿技术。<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
- *
- * OpenAPI spec version: 1.0.0
- * Contact: 515096995@qq.com
- *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
- * Do not edit the class manually.
- */
-import { SysFile } from './sys-file';
-/**
- * 全局返回结果
- * @export
- * @interface AdminResultListSysFile
- */
-export interface AdminResultListSysFile {
-    /**
-     * 状态码
-     * @type {number}
-     * @memberof AdminResultListSysFile
-     */
-    code?: number;
-    /**
-     * 类型success、warning、error
-     * @type {string}
-     * @memberof AdminResultListSysFile
-     */
-    type?: string | null;
-    /**
-     * 错误信息
-     * @type {string}
-     * @memberof AdminResultListSysFile
-     */
-    message?: string | null;
-    /**
-     * 数据
-     * @type {Array<SysFile>}
-     * @memberof AdminResultListSysFile
-     */
-    result?: Array<SysFile> | null;
-    /**
-     * 附加数据
-     * @type {any}
-     * @memberof AdminResultListSysFile
-     */
-    extras?: any | null;
-    /**
-     * 时间
-     * @type {Date}
-     * @memberof AdminResultListSysFile
-     */
-    time?: Date;
-}

+ 0 - 57
Web/src/api-services/models/admin-result-sys-tenant.ts

@@ -1,57 +0,0 @@
-/* tslint:disable */
-/* eslint-disable */
-/**
- * Admin.NET
- * 让 .NET 开发更简单、更通用、更流行。前后端分离架构(.NET6/Vue3),开箱即用紧随前沿技术。<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
- *
- * OpenAPI spec version: 1.0.0
- * Contact: 515096995@qq.com
- *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
- * Do not edit the class manually.
- */
-import { SysTenant } from './sys-tenant';
-/**
- * 全局返回结果
- * @export
- * @interface AdminResultSysTenant
- */
-export interface AdminResultSysTenant {
-    /**
-     * 状态码
-     * @type {number}
-     * @memberof AdminResultSysTenant
-     */
-    code?: number;
-    /**
-     * 类型success、warning、error
-     * @type {string}
-     * @memberof AdminResultSysTenant
-     */
-    type?: string | null;
-    /**
-     * 错误信息
-     * @type {string}
-     * @memberof AdminResultSysTenant
-     */
-    message?: string | null;
-    /**
-     * 
-     * @type {SysTenant}
-     * @memberof AdminResultSysTenant
-     */
-    result?: SysTenant;
-    /**
-     * 附加数据
-     * @type {any}
-     * @memberof AdminResultSysTenant
-     */
-    extras?: any | null;
-    /**
-     * 时间
-     * @type {Date}
-     * @memberof AdminResultSysTenant
-     */
-    time?: Date;
-}

+ 1 - 1
Web/src/api-services/models/data-scope-enum.ts

@@ -12,7 +12,7 @@
  * Do not edit the class manually.
  */
 /**
- * 角色数据范围枚举<br />&nbsp;全部数据 All = 1<br />&nbsp;本部门及以下数据 Dept_with_child = 2<br />&nbsp;本部门数据 Dept = 3<br />&nbsp;仅本人数据 Self = 4<br />&nbsp;自定义数据 Define = 5<br />
+ * 角色数据范围枚举<br />&nbsp;全部数据 All = 1<br />&nbsp;本部门及以下数据 DeptChild = 2<br />&nbsp;本部门数据 Dept = 3<br />&nbsp;仅本人数据 Self = 4<br />&nbsp;自定义数据 Define = 5<br />
  * @export
  * @enum {string}
  */

+ 0 - 2
Web/src/api-services/models/index.ts

@@ -30,7 +30,6 @@ export * from './admin-result-list-string';
 export * from './admin-result-list-sys-config';
 export * from './admin-result-list-sys-dict-data';
 export * from './admin-result-list-sys-dict-type';
-export * from './admin-result-list-sys-file';
 export * from './admin-result-list-sys-menu';
 export * from './admin-result-list-sys-org';
 export * from './admin-result-list-sys-pos';
@@ -61,7 +60,6 @@ export * from './admin-result-sys-code-gen-config';
 export * from './admin-result-sys-config';
 export * from './admin-result-sys-dict-data';
 export * from './admin-result-sys-dict-type';
-export * from './admin-result-sys-tenant';
 export * from './admin-result-sys-user';
 export * from './admin-result-we-chat-pay';
 export * from './admin-result-we-chat-pay-output';

+ 1 - 1
Web/src/api-services/models/login-type-enum.ts

@@ -12,7 +12,7 @@
  * Do not edit the class manually.
  */
 /**
- * 登录类型枚举<br />&nbsp;登录 Login = 1<br />&nbsp;退出 Logout = 2<br />&nbsp;注册 Register = 3<br />&nbsp;改密 Change_password = 4<br />&nbsp;授权登陆 Authorized_login = 5<br />
+ * 登录类型枚举<br />&nbsp;登录 Login = 1<br />&nbsp;退出 Logout = 2<br />&nbsp;注册 Register = 3<br />&nbsp;改密 ChangePassword = 4<br />&nbsp;授权登陆 AuthorizedLogin = 5<br />
  * @export
  * @enum {string}
  */

+ 2 - 1
Web/src/layout/navBars/breadcrumb/user.vue

@@ -165,8 +165,9 @@ export default defineComponent({
 					},
 				})
 					.then(async () => {
-						// 清除缓存 token 等
+						// 清除缓存 Token 等
 						Session.clear();
+						Local.clear();
 						// 使用 reload 时,不需要调用 resetRoute() 重置路由
 						window.location.reload();
 					})

+ 3 - 3
Web/src/router/backEnd.ts

@@ -9,8 +9,8 @@ import { formatTwoStageRoutes, formatFlatteningRoutes, router } from '/@/router/
 import { useRoutesList } from '/@/stores/routesList';
 import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes';
 
-import { getAPI } from '../utils/axios-utils';
-import { SysMenuApi } from '../api-services/api';
+import { getAPI } from '/@/utils/axios-utils';
+import { SysMenuApi } from '/@/api-services/api';
 
 const layouModules: any = import.meta.glob('../layout/routerView/*.{vue,tsx}');
 const viewsModules: any = import.meta.glob('../views/**/*.{vue,tsx}');
@@ -101,7 +101,7 @@ export async function setAddRoute() {
  * @returns 返回后端路由菜单数据
  */
 export async function getBackEndControlRoutes() {
-	var res = await getAPI(SysMenuApi).getMenuListGet();
+	var res = await getAPI(SysMenuApi).loginMenuGet();
 	return res.data.result;
 }
 

+ 4 - 3
Web/src/stores/userInfo.ts

@@ -1,8 +1,9 @@
 import { defineStore } from 'pinia';
 import { UserInfosStates } from './interface';
 import { Session } from '/@/utils/storage';
-import { getAPI } from '../utils/axios-utils';
-import { SysAuthApi } from '../api-services/api';
+
+import { getAPI } from '/@/utils/axios-utils';
+import { SysAuthApi } from '/@/api-services/api';
 
 /**
  * 用户信息
@@ -33,7 +34,7 @@ export const useUserInfo = defineStore('userInfo', {
 		async getApiUserInfo() {
 			return new Promise((resolve) => {
 				getAPI(SysAuthApi)
-					.getUserInfoGet()
+					.userInfoGet()
 					.then((res: any) => {
 						if (res.data.result == null) return;
 						var d = res.data.result;

+ 4 - 3
Web/src/utils/axios-utils.ts

@@ -127,9 +127,9 @@ axiosInstance.interceptors.response.use(
 		} else if (serve.code === undefined) {
 			return Promise.resolve(res);
 		} else if (serve.code !== 200) {
-			var error = JSON.stringify(serve.message);
-			ElMessage.error(error);
-			throw new Error(error);
+			var message = JSON.stringify(serve.message);
+			ElMessage.error(message);
+			throw new Error(message);
 		}
 
 		return res;
@@ -177,6 +177,7 @@ export function feature<T, U = Error>(promise: Promise<T>, errorExt?: object): P
  * @returns 服务API 实例
  */
 export function getAPI<T extends BaseAPI>(
+	// eslint-disable-next-line no-unused-vars
 	apiType: new (configuration?: Configuration, basePath?: string, axiosInstance?: AxiosInstance) => T,
 	configuration: Configuration = serveConfig,
 	basePath: string = BASE_PATH,

+ 5 - 1
Web/src/views/login/component/account.vue

@@ -70,7 +70,7 @@ import { useI18n } from 'vue-i18n';
 // import { useThemeConfig } from '/@/stores/themeConfig';
 // import { initFrontEndControlRoutes } from '/@/router/frontEnd';
 import { initBackEndControlRoutes } from '/@/router/backEnd';
-import { Session } from '/@/utils/storage';
+import { Session, Local } from '/@/utils/storage';
 import { formatAxis } from '/@/utils/formatTime';
 import { NextLoading } from '/@/utils/loading';
 
@@ -130,6 +130,10 @@ export default defineComponent({
 		});
 		// 登录
 		const onSignIn = async () => {
+			// 先清空缓存
+			Session.clear();
+			Local.clear();
+
 			var res = await getAPI(SysAuthApi).loginPost(state.ruleForm);
 			if (res.data.result?.accessToken == null) {
 				getCaptcha(); // 重新获取验证码

+ 1 - 1
Web/src/views/system/cache/index.vue

@@ -106,7 +106,7 @@ export default defineComponent({
 				type: 'warning',
 			})
 				.then(async () => {
-					await getAPI(SysCacheApi).sysCacheRemovePost(currentNode.value.id);
+					await getAPI(SysCacheApi).sysCacheDeletePost(currentNode.value.id);
 					handleQuery();
 					state.cacheValue = undefined;
 					ElMessage.success('删除成功');

+ 1 - 1
Web/src/views/system/config/component/editConfig.vue

@@ -26,7 +26,7 @@
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						<el-form-item label="系统参数" prop="sysFlag" :rules="[{ required: true, message: '系统参数不能为空', trigger: 'blur' }]">
-							<el-radio-group v-model="ruleForm.sysFlag" :disabled="ruleForm.sysFlag == 1">
+							<el-radio-group v-model="ruleForm.sysFlag" :disabled="ruleForm.sysFlag == 1 && ruleForm.id != undefined">
 								<el-radio :label="1">是</el-radio>
 								<el-radio :label="2">否</el-radio>
 							</el-radio-group>

+ 5 - 5
Web/src/views/system/dict/index.vue

@@ -10,8 +10,8 @@
 				</el-form-item>
 				<el-form-item>
 					<el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
-					<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysDict:page'"> 查询 </el-button>
-					<el-button icon="ele-Plus" @click="openAddDictType" v-auth="'sysDict:add'"> 新增 </el-button>
+					<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysDictType:page'"> 查询 </el-button>
+					<el-button icon="ele-Plus" @click="openAddDictType" v-auth="'sysDictType:add'"> 新增 </el-button>
 				</el-form-item>
 			</el-form>
 		</el-card>
@@ -32,9 +32,9 @@
 				<el-table-column prop="remark" label="备注" show-overflow-tooltip />
 				<el-table-column label="操作" width="210" fixed="right" align="center" show-overflow-tooltip>
 					<template #default="scope">
-						<el-button icon="ele-Edit" size="small" text type="primary" @click="openEditDictType(scope.row)" v-auth="'sysDict:update'"> 编辑 </el-button>
-						<el-button icon="ele-Memo" size="small" text type="primary" @click="openDictDataDialog(scope.row)" v-auth="'sysDict:page'"> 字典 </el-button>
-						<el-button icon="ele-Delete" size="small" text type="danger" @click="delDictType(scope.row)" v-auth="'sysDict:delete'"> 删除 </el-button>
+						<el-button icon="ele-Edit" size="small" text type="primary" @click="openEditDictType(scope.row)" v-auth="'sysDictType:update'"> 编辑 </el-button>
+						<el-button icon="ele-Memo" size="small" text type="primary" @click="openDictDataDialog(scope.row)" v-auth="'sysDictType:page'"> 字典 </el-button>
+						<el-button icon="ele-Delete" size="small" text type="danger" @click="delDictType(scope.row)" v-auth="'sysDictType:delete'"> 删除 </el-button>
 					</template>
 				</el-table-column>
 			</el-table>

+ 1 - 1
Web/src/views/system/log/vislog/index.vue

@@ -19,7 +19,7 @@
 		<el-card shadow="hover" style="margin-top: 8px">
 			<el-table :data="logData" style="width: 100%" v-loading="loading" border>
 				<el-table-column type="index" label="序号" width="55" align="center" />
-				<el-table-column prop="userName" label="账号名称" show-overflow-tooltip />
+				<el-table-column prop="account" label="账号名称" show-overflow-tooltip />
 				<el-table-column prop="realName" label="真实姓名" show-overflow-tooltip />
 				<el-table-column prop="success" label="状态" width="70" show-overflow-tooltip>
 					<template #default="scope">

+ 2 - 2
Web/src/views/system/onlineUser/index.vue

@@ -98,7 +98,7 @@ connection.onclose(async () => {
 connection.onreconnecting(() => {
 	ElNotification({
 		title: '提示',
-		message: '与服务器重连中...',
+		message: '服务器已断线...',
 		type: 'error',
 		position: 'bottom-right',
 	});
@@ -141,7 +141,7 @@ const openDrawer = () => {
 const handleQuery = async () => {
 	state.loading = true;
 	var res = await getAPI(SysOnlineUserApi).sysOnlineUserPageGet(state.queryParams.userName, state.queryParams.realName, state.tableParams.page, state.tableParams.pageSize);
-	state.onlineUserList = res.data.result?.items;
+	state.onlineUserList = res.data.result?.items ?? [];
 	state.tableParams.total = res.data.result?.total;
 	state.loading = false;
 };

+ 2 - 7
Web/src/views/system/org/component/editOrg.vue

@@ -88,11 +88,6 @@ export default defineComponent({
 			state.ruleForm = row;
 			state.isShowDialog = true;
 		};
-		// 关闭弹窗
-		const closeDialog = () => {
-			proxy.mittBus.emit('submitRefresh');
-			state.isShowDialog = false;
-		};
 		// 取消
 		const cancel = () => {
 			state.isShowDialog = false;
@@ -106,13 +101,13 @@ export default defineComponent({
 				} else {
 					await getAPI(SysOrgApi).sysOrgAddPost(state.ruleForm);
 				}
-				closeDialog();
+				proxy.mittBus.emit('submitRefresh');
+				state.isShowDialog = false;
 			});
 		};
 		return {
 			ruleFormRef,
 			openDialog,
-			closeDialog,
 			cancel,
 			submit,
 			...toRefs(state),

+ 1 - 6
Web/src/views/system/org/component/orgTree.vue

@@ -78,11 +78,6 @@ const initTreeData = async () => {
 	state.loading = false;
 };
 
-// 更新树节点数据
-const updateTreeData = (treeData: any) => {
-	state.orgData = treeData;
-};
-
 // 设置默认选择
 const setCheckedKeys = (orgData: any) => {
 	state.isShowCheckbox = true;
@@ -124,7 +119,7 @@ const nodeClick = (node: any) => {
 
 //const orgTreeData = state.orgData; // 异步数据导出不了?
 // 导出
-defineExpose({ initTreeData, updateTreeData, setCheckedKeys, getCheckedKeys });
+defineExpose({ initTreeData, setCheckedKeys, getCheckedKeys });
 </script>
 
 <style scoped>

+ 1 - 6
Web/src/views/system/org/index.vue

@@ -84,11 +84,7 @@ export default defineComponent({
 				handleQuery();
 
 				// 编辑删除后更新机构数据
-				state.loading = true;
-				var res = await getAPI(SysOrgApi).sysOrgListGet(-1, '', '');
-				state.orgTreeData = res.data.result ?? [];
-				state.loading = false;
-				orgTreeRef.value.updateTreeData(state.orgTreeData);
+				orgTreeRef.value.initTreeData();
 			});
 		});
 		onUnmounted(() => {
@@ -130,7 +126,6 @@ export default defineComponent({
 			})
 				.then(async () => {
 					await getAPI(SysOrgApi).sysOrgDeletePost({ id: row.id });
-					handleQuery();
 					ElMessage.success('删除成功');
 					proxy.mittBus.emit('submitRefresh');
 				})

+ 2 - 2
Web/src/views/system/password/index.vue

@@ -14,7 +14,7 @@
 				</el-form-item>
 				<el-form-item>
 					<el-button icon="ele-Refresh" @click="reset" size="default">重 置</el-button>
-					<el-button icon="ele-Select" type="primary" @click="submit" size="default" v-auth="'sysPassword:update'">确 定</el-button>
+					<el-button icon="ele-Select" type="primary" @click="submit" size="default" v-auth="'sysUser:changePwd'">确 定</el-button>
 				</el-form-item>
 			</el-form>
 		</el-card>
@@ -56,7 +56,7 @@ export default defineComponent({
 		const submit = () => {
 			ruleFormRef.value.validate(async (valid: boolean) => {
 				if (!valid) return;
-				await getAPI(SysUserApi).sysUserChangeUserPwdPost(state.ruleForm);
+				await getAPI(SysUserApi).sysUserChangePwdPost(state.ruleForm);
 				// 退出系统
 				ElMessageBox.confirm('密码已修改,是否重新登录系统?', '提示', {
 					confirmButtonText: '确定',

+ 1 - 1
Web/src/views/system/pos/index.vue

@@ -10,7 +10,7 @@
 				</el-form-item>
 				<el-form-item>
 					<el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
-					<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysPos:page'"> 查询 </el-button>
+					<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysPos:list'"> 查询 </el-button>
 					<el-button icon="ele-Plus" @click="openAddPos" v-auth="'sysPos:add'"> 新增 </el-button>
 				</el-form-item>
 			</el-form>

+ 1 - 2
Web/src/views/system/user/index.vue

@@ -32,7 +32,7 @@
 						<el-table-column prop="nickName" label="昵称" width="120" show-overflow-tooltip />
 						<el-table-column label="头像" width="80" align="center" show-overflow-tooltip>
 							<template #default="scope">
-								<el-avatar src="" size="small">{{ scope.row.nickName.slice(0, 1) }} </el-avatar>
+								<el-avatar src="" size="small">{{ scope.row.nickName?.slice(0, 1) }} </el-avatar>
 							</template>
 						</el-table-column>
 						<el-table-column prop="realName" label="姓名" width="120" show-overflow-tooltip />
@@ -141,7 +141,6 @@ export default defineComponent({
 			state.loading = true;
 			var res = await getAPI(SysOrgApi).sysOrgListGet(0);
 			state.orgTreeData = res.data.result ?? [];
-			// orgTreeRef.value.updateTreeData(state.orgTreeData); // 赋值机构树
 			state.loading = false;
 		};
 		// 查询操作