Merge pull request 'main' (#6) from Admin.NET/Admin.NET.Pro:main into main
Reviewed-on: http://101.43.53.74:3000/shuerchoi/Admin.NET.Pro/pulls/6
This commit is contained in:
commit
bb46b55891
@ -4,7 +4,7 @@
|
||||
// 详细数据库配置见SqlSugar官网(第一个为默认库),极力推荐 PostgreSQL 数据库
|
||||
// 数据库连接字符串参考地址:https://www.connectionstrings.com/
|
||||
"DbConnection": {
|
||||
"EnableConsoleSql": true, // 启用控制台打印SQL
|
||||
"EnableConsoleSql": false, // 启用控制台打印SQL
|
||||
"ConnectionConfigs": [
|
||||
{
|
||||
//"ConfigId": "1300000000001", // 默认库标识-禁止修改
|
||||
|
||||
@ -22,7 +22,7 @@ public class AppAuthService : IDynamicApiController, ITransient
|
||||
private readonly AppUserManager _appUserManager;
|
||||
private readonly SqlSugarRepository<SysUser> _sysUserRep;
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
private readonly SysMenuService _sysMenuService;
|
||||
private readonly SysRoleService _sysRoleService;
|
||||
private readonly SysOnlineUserService _sysOnlineUserService;
|
||||
private readonly SysConfigService _sysConfigService;
|
||||
private readonly ICaptcha _captcha;
|
||||
@ -31,7 +31,7 @@ public class AppAuthService : IDynamicApiController, ITransient
|
||||
public AppAuthService(AppUserManager appUserManager,
|
||||
SqlSugarRepository<SysUser> sysUserRep,
|
||||
IHttpContextAccessor httpContextAccessor,
|
||||
SysMenuService sysMenuService,
|
||||
SysRoleService sysRoleService,
|
||||
SysOnlineUserService sysOnlineUserService,
|
||||
SysConfigService sysConfigService,
|
||||
ICaptcha captcha,
|
||||
@ -40,7 +40,7 @@ public class AppAuthService : IDynamicApiController, ITransient
|
||||
_appUserManager = appUserManager;
|
||||
_sysUserRep = sysUserRep;
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_sysMenuService = sysMenuService;
|
||||
_sysRoleService = sysRoleService;
|
||||
_sysOnlineUserService = sysOnlineUserService;
|
||||
_sysConfigService = sysConfigService;
|
||||
_captcha = captcha;
|
||||
@ -201,15 +201,14 @@ public class AppAuthService : IDynamicApiController, ITransient
|
||||
public virtual async Task<LoginUserOutput> GetUserInfo()
|
||||
{
|
||||
var user = await _sysUserRep.GetFirstAsync(u => u.Id == _appUserManager.UserId) ?? throw Oops.Oh(ErrorCodeEnum.D1011).StatusCode(401);
|
||||
// 获取机构
|
||||
// 机构
|
||||
var org = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysOrg>>().GetFirstAsync(u => u.Id == user.OrgId);
|
||||
// 获取职位
|
||||
// 职位
|
||||
var pos = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysPos>>().GetFirstAsync(u => u.Id == user.PosId);
|
||||
// 获取按钮集合
|
||||
var buttons = await _sysMenuService.GetOwnBtnPermList();
|
||||
// 获取角色集合
|
||||
var roleIds = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysUserRole>>().AsQueryable()
|
||||
.Where(u => u.UserId == user.Id).Select(u => u.RoleId).ToListAsync();
|
||||
// 角色集合
|
||||
var roleIds = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysUserRole>>().AsQueryable().Where(u => u.UserId == user.Id).Select(u => u.RoleId).ToListAsync();
|
||||
// 接口集合
|
||||
var apis = await _sysRoleService.GetUserApiList();
|
||||
|
||||
return new LoginUserOutput
|
||||
{
|
||||
@ -227,7 +226,7 @@ public class AppAuthService : IDynamicApiController, ITransient
|
||||
OrgName = org?.Name,
|
||||
OrgType = org?.Type,
|
||||
PosName = pos?.Name,
|
||||
Buttons = buttons,
|
||||
Apis = apis,
|
||||
RoleIds = roleIds
|
||||
};
|
||||
}
|
||||
|
||||
@ -18,9 +18,9 @@
|
||||
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
|
||||
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
|
||||
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.14.6" />
|
||||
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.4.6" />
|
||||
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.4.6" />
|
||||
<PackageReference Include="Furion.Pure" Version="4.9.4.6" />
|
||||
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.4.7" />
|
||||
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.4.7" />
|
||||
<PackageReference Include="Furion.Pure" Version="4.9.4.7" />
|
||||
<PackageReference Include="Hardware.Info" Version="100.1.0.1" />
|
||||
<PackageReference Include="IPTools.China" Version="1.6.0" />
|
||||
<PackageReference Include="IPTools.International" Version="1.6.0" />
|
||||
@ -38,7 +38,7 @@
|
||||
<PackageReference Include="SqlSugarCore" Version="5.1.4.166" />
|
||||
<PackageReference Include="SSH.NET" Version="2024.1.0" />
|
||||
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.4.3" />
|
||||
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1049" />
|
||||
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1051" />
|
||||
<PackageReference Include="UAParser" Version="3.1.47" />
|
||||
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
|
||||
</ItemGroup>
|
||||
|
||||
@ -20,26 +20,3 @@ public class ThemeAttribute : Attribute
|
||||
this.Theme = theme;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ThemeExtend
|
||||
{
|
||||
/// <summary>
|
||||
/// 扩展方法
|
||||
/// </summary>
|
||||
/// <param name="enumValue"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetTheme(this Enum enumValue)
|
||||
{
|
||||
Type type = enumValue.GetType();
|
||||
FieldInfo field = type.GetField(enumValue.ToString());
|
||||
if (field.IsDefined(typeof(ThemeAttribute), true))
|
||||
{
|
||||
var themeAttribute = (ThemeAttribute)field.GetCustomAttribute(typeof(ThemeAttribute));
|
||||
return themeAttribute.Theme;
|
||||
}
|
||||
else
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -11,11 +11,6 @@ namespace Admin.NET.Core;
|
||||
/// </summary>
|
||||
public class CacheConst
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户权限缓存(按钮集合)
|
||||
/// </summary>
|
||||
public const string KeyUserButton = "sys_user_button:";
|
||||
|
||||
/// <summary>
|
||||
/// 用户接口缓存(接口集合)
|
||||
/// </summary>
|
||||
|
||||
@ -74,7 +74,7 @@ public partial class SysMenu : EntityBase
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnDescription = "图标", Length = 128)]
|
||||
[MaxLength(128)]
|
||||
public string? Icon { get; set; }
|
||||
public string? Icon { get; set; } = "ele-Menu";
|
||||
|
||||
/// <summary>
|
||||
/// 是否内嵌
|
||||
|
||||
@ -20,15 +20,33 @@ public class SysSchedule : EntityTenant
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日程时间
|
||||
/// 日程日期
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnDescription = "日程时间")]
|
||||
[SugarColumn(ColumnDescription = "日程日期")]
|
||||
public DateTime? ScheduleTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 开始时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnDescription = "开始时间", Length = 10)]
|
||||
public string? StartTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结束时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnDescription = "结束时间", Length = 10)]
|
||||
public string? EndTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日程内容
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnDescription = "日程内容", Length = 256)]
|
||||
[Required, MaxLength(256)]
|
||||
public virtual string Content { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 完成状态
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnDescription = "完成状态")]
|
||||
public FinishStatusEnum Status { get; set; } = FinishStatusEnum.UnFinish;
|
||||
}
|
||||
@ -211,6 +211,18 @@ public enum ErrorCodeEnum
|
||||
[ErrorCodeItemMetadata("系统默认账号禁止删除")]
|
||||
D1029,
|
||||
|
||||
/// <summary>
|
||||
/// 开放接口绑定账号禁止删除
|
||||
/// </summary>
|
||||
[ErrorCodeItemMetadata("开放接口绑定账号禁止删除")]
|
||||
D1030,
|
||||
|
||||
/// <summary>
|
||||
/// 开放接口绑定租户禁止删除
|
||||
/// </summary>
|
||||
[ErrorCodeItemMetadata("开放接口绑定租户禁止删除")]
|
||||
D1031,
|
||||
|
||||
/// <summary>
|
||||
/// 父机构不存在
|
||||
/// </summary>
|
||||
|
||||
26
Admin.NET/Admin.NET.Core/Enum/FinishStatusEnum.cs
Normal file
26
Admin.NET/Admin.NET.Core/Enum/FinishStatusEnum.cs
Normal file
@ -0,0 +1,26 @@
|
||||
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
|
||||
//
|
||||
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
|
||||
//
|
||||
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
|
||||
|
||||
namespace Admin.NET.Core;
|
||||
|
||||
/// <summary>
|
||||
/// 完成状态枚举
|
||||
/// </summary>
|
||||
[Description("完成状态枚举")]
|
||||
public enum FinishStatusEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// 已完成
|
||||
/// </summary>
|
||||
[Description("已完成")]
|
||||
Finish = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 未完成
|
||||
/// </summary>
|
||||
[Description("未完成")]
|
||||
UnFinish = 0,
|
||||
}
|
||||
@ -60,6 +60,7 @@ public class EnumToDictJob : IJob
|
||||
dictData.Code = enumData.Name;
|
||||
dictData.OrderNo = enumData.Value + 10;
|
||||
dictData.Name = enumData.Describe;
|
||||
dictData.TagType = enumData.Theme != "" ? enumData.Theme : "info";
|
||||
uSysDictData.Add(dictData);
|
||||
}
|
||||
});
|
||||
@ -113,7 +114,7 @@ public class EnumToDictJob : IJob
|
||||
Code = u.Name,
|
||||
Remark = t2.Remark,
|
||||
OrderNo = u.Value + 10,
|
||||
TagType = "info"
|
||||
TagType = u.Theme != "" ? u.Theme : "info"
|
||||
}).ToList()
|
||||
}).ToList();
|
||||
var iDictData = new List<SysDictData>();
|
||||
|
||||
@ -31,9 +31,6 @@ public class OnlineUserJob : IJob
|
||||
var rep = serviceScope.ServiceProvider.GetRequiredService<SqlSugarRepository<SysOnlineUser>>();
|
||||
await rep.CopyNew().AsDeleteable().ExecuteCommandAsync(stoppingToken);
|
||||
|
||||
// 缓存租户列表
|
||||
await serviceScope.ServiceProvider.GetRequiredService<SysTenantService>().CacheTenant();
|
||||
|
||||
string msg = $"【{DateTime.Now}】清理在线用户成功!服务已重启...";
|
||||
var originColor = Console.ForegroundColor;
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
@ -42,5 +39,11 @@ public class OnlineUserJob : IJob
|
||||
|
||||
// 自定义日志
|
||||
_logger.LogInformation(msg);
|
||||
|
||||
// 缓存租户列表
|
||||
await serviceScope.ServiceProvider.GetRequiredService<SysTenantService>().CacheTenant();
|
||||
|
||||
// 初始化管理员角色接口资源
|
||||
await serviceScope.ServiceProvider.GetRequiredService<SysRoleService>().InitAdminRoleApi();
|
||||
}
|
||||
}
|
||||
@ -1,66 +0,0 @@
|
||||
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
|
||||
//
|
||||
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
|
||||
//
|
||||
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
|
||||
|
||||
using Furion.Logging.Extensions;
|
||||
|
||||
namespace Admin.NET.Core;
|
||||
|
||||
/// <summary>
|
||||
/// 初始化管理员角色接口资源作业任务
|
||||
/// </summary>
|
||||
[JobDetail("job_roleApi", Description = "初始化管理员角色接口资源", GroupName = "default", Concurrent = false)]
|
||||
[PeriodSeconds(1, TriggerId = "trigger_roleApi", Description = "初始化管理员角色接口资源", MaxNumberOfRuns = 1, RunOnStart = true)]
|
||||
public class RoleApiJob : IJob
|
||||
{
|
||||
private readonly IServiceScopeFactory _scopeFactory;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public RoleApiJob(IServiceScopeFactory scopeFactory, ILoggerFactory loggerFactory)
|
||||
{
|
||||
_scopeFactory = scopeFactory;
|
||||
_logger = loggerFactory.CreateLogger(CommonConst.SysLogCategoryName);
|
||||
}
|
||||
|
||||
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
|
||||
{
|
||||
using var serviceScope = _scopeFactory.CreateScope();
|
||||
|
||||
// 获取所有接口列表-排除租户接口
|
||||
var apiList = App.GetRequiredService<SysCommonService>().GetApiList();
|
||||
|
||||
var index = 0;
|
||||
var sysRoleApis = new List<SysRoleApi>();
|
||||
foreach (var baseApi in apiList)
|
||||
{
|
||||
foreach (var controller in baseApi.Children)
|
||||
{
|
||||
// 排除租户管理接口
|
||||
if (controller.Name == "sysTenant") continue;
|
||||
|
||||
foreach (var api in controller.Children)
|
||||
{
|
||||
// 为系统管理员分配接口
|
||||
sysRoleApis.Add(new SysRoleApi { Id = 1400000000101 + index, RoleId = 1300000000101, Route = api.Route });
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
var db = serviceScope.ServiceProvider.GetRequiredService<ISqlSugarClient>();
|
||||
var storage = db.StorageableByObject(sysRoleApis).ToStorage();
|
||||
storage.AsInsertable.ExecuteCommand();
|
||||
storage.AsUpdateable.ExecuteCommand();
|
||||
|
||||
var originColor = Console.ForegroundColor;
|
||||
Console.ForegroundColor = ConsoleColor.Blue;
|
||||
Console.WriteLine($"【{DateTime.Now}】初始化管理员角色接口资源");
|
||||
Console.ForegroundColor = originColor;
|
||||
|
||||
// 自定义日志
|
||||
_logger.LogInformation($"【{DateTime.Now}】初始化管理员角色接口资源");
|
||||
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@ -28,167 +28,167 @@ public class SysMenuSeedData : ISqlSugarEntitySeedData<SysMenu>
|
||||
new SysMenu{ Id=1310000000101, Pid=0, Title="系统管理", Path="/system", Name="system", Component="Layout", Icon="ele-Setting", Type=MenuTypeEnum.Dir, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=10000 },
|
||||
|
||||
new SysMenu{ Id=1310000000111, Pid=1310000000101, Title="账号管理", Path="/system/user", Name="sysUser", Component="/system/user/index", Icon="ele-User", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000112, Pid=1310000000111, Title="查询", Permission="sysUser:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000113, Pid=1310000000111, Title="编辑", Permission="sysUser:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000114, Pid=1310000000111, Title="增加", Permission="sysUser:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000115, Pid=1310000000111, Title="删除", Permission="sysUser:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000116, Pid=1310000000111, Title="详情", Permission="sysUser:detail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000117, Pid=1310000000111, Title="授权角色", Permission="sysUser:grantRole", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000118, Pid=1310000000111, Title="重置密码", Permission="sysUser:resetPwd", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000119, Pid=1310000000111, Title="设置状态", Permission="sysUser:setStatus", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000120, Pid=1310000000111, Title="强制下线", Permission="sysOnlineUser:forceOffline", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000121, Pid=1310000000111, Title="解除锁定", Permission="sysUser:unlockLogin", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000112, Pid=1310000000111, Title="查询", Permission="sysUser:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000113, Pid=1310000000111, Title="编辑", Permission="sysUser:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000114, Pid=1310000000111, Title="增加", Permission="sysUser:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000115, Pid=1310000000111, Title="删除", Permission="sysUser:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000116, Pid=1310000000111, Title="详情", Permission="sysUser:detail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000117, Pid=1310000000111, Title="授权角色", Permission="sysUser:grantRole", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000118, Pid=1310000000111, Title="重置密码", Permission="sysUser:resetPwd", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000119, Pid=1310000000111, Title="设置状态", Permission="sysUser:setStatus", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000120, Pid=1310000000111, Title="强制下线", Permission="sysOnlineUser:forceOffline", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000121, Pid=1310000000111, Title="解除锁定", Permission="sysUser:unlockLogin", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000131, Pid=1310000000101, Title="角色管理", Path="/system/role", Name="sysRole", Component="/system/role/index", Icon="ele-Help", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=110 },
|
||||
new SysMenu{ Id=1310000000132, Pid=1310000000131, Title="查询", Permission="sysRole:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000133, Pid=1310000000131, Title="编辑", Permission="sysRole:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000134, Pid=1310000000131, Title="增加", Permission="sysRole:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000135, Pid=1310000000131, Title="删除", Permission="sysRole:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000136, Pid=1310000000131, Title="授权菜单", Permission="sysRole:grantMenu", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000137, Pid=1310000000131, Title="授权数据", Permission="sysRole:grantDataScope", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000138, Pid=1310000000131, Title="设置状态", Permission="sysRole:setStatus", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000139, Pid=1310000000131, Title="授权接口", Permission="sysRole:grantApi", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000132, Pid=1310000000131, Title="查询", Permission="sysRole:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000133, Pid=1310000000131, Title="编辑", Permission="sysRole:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000134, Pid=1310000000131, Title="增加", Permission="sysRole:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000135, Pid=1310000000131, Title="删除", Permission="sysRole:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000136, Pid=1310000000131, Title="授权菜单", Permission="sysRole:grantMenu", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000137, Pid=1310000000131, Title="授权数据", Permission="sysRole:grantDataScope", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000138, Pid=1310000000131, Title="设置状态", Permission="sysRole:setStatus", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000139, Pid=1310000000131, Title="授权接口", Permission="sysRole:grantApi", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000141, Pid=1310000000101, 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"), OrderNo=120 },
|
||||
//new SysMenu{ Id=1310000000142, Pid=1310000000141, Title="查询", Permission="sysOrg:list", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000143, Pid=1310000000141, Title="编辑", Permission="sysOrg:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000144, Pid=1310000000141, Title="增加", Permission="sysOrg:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000145, Pid=1310000000141, Title="删除", Permission="sysOrg:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
////new SysMenu{ Id=1310000000142, Pid=1310000000141, Title="查询", Permission="sysOrg:list", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000143, Pid=1310000000141, Title="编辑", Permission="sysOrg:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000144, Pid=1310000000141, Title="增加", Permission="sysOrg:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000145, Pid=1310000000141, Title="删除", Permission="sysOrg:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000151, Pid=1310000000101, 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"), OrderNo=130 },
|
||||
new SysMenu{ Id=1310000000152, Pid=1310000000151, Title="查询", Permission="sysPos:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000153, Pid=1310000000151, Title="列表", Permission="sysPos:list", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000154, Pid=1310000000151, Title="编辑", Permission="sysPos:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000155, Pid=1310000000151, Title="增加", Permission="sysPos:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000156, Pid=1310000000151, Title="删除", Permission="sysPos:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000152, Pid=1310000000151, Title="查询", Permission="sysPos:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000153, Pid=1310000000151, Title="列表", Permission="sysPos:list", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000154, Pid=1310000000151, Title="编辑", Permission="sysPos:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000155, Pid=1310000000151, Title="增加", Permission="sysPos:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000156, Pid=1310000000151, Title="删除", Permission="sysPos:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000161, Pid=1310000000101, Title="个人中心", Path="/system/userCenter", Name="sysUserCenter", Component="/system/user/component/userCenter",Icon="ele-Medal", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=140 },
|
||||
new SysMenu{ Id=1310000000162, Pid=1310000000161, Title="修改密码", Permission="sysUser:changePwd", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000163, Pid=1310000000161, Title="基本信息", Permission="sysUser:baseInfo", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000164, Pid=1310000000161, Title="电子签名", Permission="sysFile:uploadSignature", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000165, Pid=1310000000161, Title="上传头像", Permission="sysFile:uploadAvatar", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000162, Pid=1310000000161, Title="修改密码", Permission="sysUser:changePwd", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000163, Pid=1310000000161, Title="基本信息", Permission="sysUser:baseInfo", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000164, Pid=1310000000161, Title="电子签名", Permission="sysFile:uploadSignature", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000165, Pid=1310000000161, Title="上传头像", Permission="sysFile:uploadAvatar", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000171, Pid=1310000000101, Title="通知公告", Path="/system/notice", Name="sysNotice", Component="/system/notice/index",Icon="ele-Bell", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=150 },
|
||||
new SysMenu{ Id=1310000000172, Pid=1310000000171, Title="查询", Permission="sysNotice:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000173, Pid=1310000000171, Title="编辑", Permission="sysNotice:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000174, Pid=1310000000171, Title="增加", Permission="sysNotice:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000175, Pid=1310000000171, Title="删除", Permission="sysNotice:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000176, Pid=1310000000171, Title="发布", Permission="sysNotice:public", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000177, Pid=1310000000171, Title="撤回", Permission="sysNotice:cancel", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000172, Pid=1310000000171, Title="查询", Permission="sysNotice:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000173, Pid=1310000000171, Title="编辑", Permission="sysNotice:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000174, Pid=1310000000171, Title="增加", Permission="sysNotice:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000175, Pid=1310000000171, Title="删除", Permission="sysNotice:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000176, Pid=1310000000171, Title="发布", Permission="sysNotice:public", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000177, Pid=1310000000171, Title="撤回", Permission="sysNotice:cancel", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000181, Pid=1310000000101, Title="三方账号", Path="/system/oAuthUser", Name="sysOAuthUser", Component="/system/oAuthUser/index",Icon="ele-ChatDotRound", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=160 },
|
||||
new SysMenu{ Id=1310000000182, Pid=1310000000181, Title="查询", Permission="sysOAuthUser:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000183, Pid=1310000000181, Title="编辑", Permission="sysOAuthUser:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000184, Pid=1310000000181, Title="增加", Permission="sysOAuthUser:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000185, Pid=1310000000181, Title="删除", Permission="sysOAuthUser:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000182, Pid=1310000000181, Title="查询", Permission="sysOAuthUser:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000183, Pid=1310000000181, Title="编辑", Permission="sysOAuthUser:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000184, Pid=1310000000181, Title="增加", Permission="sysOAuthUser:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000185, Pid=1310000000181, Title="删除", Permission="sysOAuthUser:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000191, Pid=1310000000101, Title="AD域配置", Path="/system/ldap", Name="sysLdap", Component="/system/ldap/index",Icon="ele-Place", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=170 },
|
||||
new SysMenu{ Id=1310000000192, Pid=1310000000191, Title="查询", Permission="sysLdap:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000193, Pid=1310000000191, Title="详情", Permission="sysLdap:detail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=110 },
|
||||
new SysMenu{ Id=1310000000194, Pid=1310000000191, Title="编辑", Permission="sysLdap:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=120 },
|
||||
new SysMenu{ Id=1310000000195, Pid=1310000000191, Title="增加", Permission="sysLdap:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=130 },
|
||||
new SysMenu{ Id=1310000000196, Pid=1310000000191, Title="删除", Permission="sysLdap:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=140 },
|
||||
new SysMenu{ Id=1310000000197, Pid=1310000000191, Title="同步域账户", Permission="sysLdap:syncUser", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=150 },
|
||||
new SysMenu{ Id=1310000000198, Pid=1310000000191, Title="同步域组织", Permission="sysLdap:syncOrg", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=160 },
|
||||
//new SysMenu{ Id=1310000000192, Pid=1310000000191, Title="查询", Permission="sysLdap:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000193, Pid=1310000000191, Title="详情", Permission="sysLdap:detail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=110 },
|
||||
//new SysMenu{ Id=1310000000194, Pid=1310000000191, Title="编辑", Permission="sysLdap:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=120 },
|
||||
//new SysMenu{ Id=1310000000195, Pid=1310000000191, Title="增加", Permission="sysLdap:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=130 },
|
||||
//new SysMenu{ Id=1310000000196, Pid=1310000000191, Title="删除", Permission="sysLdap:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=140 },
|
||||
//new SysMenu{ Id=1310000000197, Pid=1310000000191, Title="同步域账户", Permission="sysLdap:syncUser", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=150 },
|
||||
//new SysMenu{ Id=1310000000198, Pid=1310000000191, Title="同步域组织", Permission="sysLdap:syncOrg", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=160 },
|
||||
|
||||
new SysMenu{ Id=1310000000301, Pid=0, Title="平台管理", Path="/platform", Name="platform", Component="Layout", Icon="ele-Menu", Type=MenuTypeEnum.Dir, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=11000 },
|
||||
|
||||
new SysMenu{ Id=1310000000311, Pid=1310000000301, Title="租户管理", Path="/platform/tenant", Name="sysTenant", Component="/system/tenant/index", Icon="ele-School", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000312, Pid=1310000000311, Title="查询", Permission="sysTenant:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000313, Pid=1310000000311, Title="编辑", Permission="sysTenant:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000314, Pid=1310000000311, Title="增加", Permission="sysTenant:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000315, Pid=1310000000311, Title="删除", Permission="sysTenant:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000316, Pid=1310000000311, Title="授权菜单", Permission="sysTenant:grantMenu", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000317, Pid=1310000000311, Title="重置密码", Permission="sysTenant:resetPwd", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000318, Pid=1310000000311, Title="生成库", Permission="sysTenant:createDb", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000319, Pid=1310000000311, Title="设置状态", Permission="sysTenant:setStatus", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000312, Pid=1310000000311, Title="查询", Permission="sysTenant:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000313, Pid=1310000000311, Title="编辑", Permission="sysTenant:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000314, Pid=1310000000311, Title="增加", Permission="sysTenant:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000315, Pid=1310000000311, Title="删除", Permission="sysTenant:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000316, Pid=1310000000311, Title="授权菜单", Permission="sysTenant:grantMenu", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000317, Pid=1310000000311, Title="重置密码", Permission="sysTenant:resetPwd", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000318, Pid=1310000000311, Title="生成库", Permission="sysTenant:createDb", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000319, Pid=1310000000311, Title="设置状态", Permission="sysTenant:setStatus", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000321, Pid=1310000000301, Title="菜单管理", Path="/platform/menu", Name="sysMenu", Component="/system/menu/index", Icon="ele-Menu", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=110 },
|
||||
new SysMenu{ Id=1310000000322, Pid=1310000000321, Title="查询", Permission="sysMenu:list", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000323, Pid=1310000000321, Title="编辑", Permission="sysMenu:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000324, Pid=1310000000321, Title="增加", Permission="sysMenu:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000325, Pid=1310000000321, Title="删除", Permission="sysMenu:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000322, Pid=1310000000321, Title="查询", Permission="sysMenu:list", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000323, Pid=1310000000321, Title="编辑", Permission="sysMenu:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000324, Pid=1310000000321, Title="增加", Permission="sysMenu:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000325, Pid=1310000000321, Title="删除", Permission="sysMenu:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000331, Pid=1310000000301, Title="参数配置", Path="/platform/config", Name="sysConfig", Component="/system/config/index", Icon="ele-DocumentCopy", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=120 },
|
||||
new SysMenu{ Id=1310000000332, Pid=1310000000331, Title="查询", Permission="sysConfig:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000333, Pid=1310000000331, Title="编辑", Permission="sysConfig:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000334, Pid=1310000000331, Title="增加", Permission="sysConfig:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000335, Pid=1310000000331, Title="删除", Permission="sysConfig:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000332, Pid=1310000000331, Title="查询", Permission="sysConfig:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000333, Pid=1310000000331, Title="编辑", Permission="sysConfig:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000334, Pid=1310000000331, Title="增加", Permission="sysConfig:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000335, Pid=1310000000331, Title="删除", Permission="sysConfig:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000341, Pid=1310000000301, 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"), OrderNo=130 },
|
||||
new SysMenu{ Id=1310000000342, Pid=1310000000341, Title="查询", Permission="sysDictType:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000343, Pid=1310000000341, Title="编辑", Permission="sysDictType:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000344, Pid=1310000000341, Title="增加", Permission="sysDictType:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000345, Pid=1310000000341, Title="删除", Permission="sysDictType:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000342, Pid=1310000000341, Title="查询", Permission="sysDictType:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000343, Pid=1310000000341, Title="编辑", Permission="sysDictType:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000344, Pid=1310000000341, Title="增加", Permission="sysDictType:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000345, Pid=1310000000341, Title="删除", Permission="sysDictType:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000351, Pid=1310000000301, Title="任务调度", Path="/platform/job", Name="sysJob", Component="/system/job/index", Icon="ele-AlarmClock", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=140 },
|
||||
new SysMenu{ Id=1310000000352, Pid=1310000000351, Title="查询", Permission="sysJob:pageJobDetail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000353, Pid=1310000000351, Title="编辑", Permission="sysJob:updateJobDetail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000354, Pid=1310000000351, Title="增加", Permission="sysJob:addJobDetail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000355, Pid=1310000000351, Title="删除", Permission="sysJob:deleteJobDetail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000352, Pid=1310000000351, Title="查询", Permission="sysJob:pageJobDetail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000353, Pid=1310000000351, Title="编辑", Permission="sysJob:updateJobDetail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000354, Pid=1310000000351, Title="增加", Permission="sysJob:addJobDetail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000355, Pid=1310000000351, Title="删除", Permission="sysJob:deleteJobDetail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000361, Pid=1310000000301, 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"), OrderNo=150 },
|
||||
|
||||
new SysMenu{ Id=1310000000371, Pid=1310000000301, 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"), OrderNo=160 },
|
||||
new SysMenu{ Id=1310000000372, Pid=1310000000371, Title="查询", Permission="sysCache:keyList", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000373, Pid=1310000000371, Title="删除", Permission="sysCache:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000372, Pid=1310000000371, Title="查询", Permission="sysCache:keyList", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000373, Pid=1310000000371, Title="删除", Permission="sysCache:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000381, Pid=1310000000301, 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"), OrderNo=170 },
|
||||
new SysMenu{ Id=1310000000382, Pid=1310000000381, Title="查询", Permission="sysRegion:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000383, Pid=1310000000381, Title="编辑", Permission="sysRegion:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000384, Pid=1310000000381, Title="增加", Permission="sysRegion:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000385, Pid=1310000000381, Title="删除", Permission="sysRegion:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000386, Pid=1310000000381, Title="同步", Permission="sysRegion:sync", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000382, Pid=1310000000381, Title="查询", Permission="sysRegion:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000383, Pid=1310000000381, Title="编辑", Permission="sysRegion:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000384, Pid=1310000000381, Title="增加", Permission="sysRegion:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000385, Pid=1310000000381, Title="删除", Permission="sysRegion:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000386, Pid=1310000000381, Title="同步", Permission="sysRegion:sync", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000391, Pid=1310000000301, 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"), OrderNo=180 },
|
||||
new SysMenu{ Id=1310000000392, Pid=1310000000391, Title="查询", Permission="sysFile:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000393, Pid=1310000000391, Title="上传", Permission="sysFile:uploadFile", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000394, Pid=1310000000391, Title="下载", Permission="sysFile:downloadFile", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000395, Pid=1310000000391, Title="删除", Permission="sysFile:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000396, Pid=1310000000391, Title="编辑", Permission="sysFile:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2023-10-27 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000392, Pid=1310000000391, Title="查询", Permission="sysFile:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000393, Pid=1310000000391, Title="上传", Permission="sysFile:uploadFile", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000394, Pid=1310000000391, Title="下载", Permission="sysFile:downloadFile", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000395, Pid=1310000000391, Title="删除", Permission="sysFile:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000396, Pid=1310000000391, Title="编辑", Permission="sysFile:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2023-10-27 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000401, Pid=1310000000301, Title="打印模板", Path="/platform/print", Name="sysPrint", Component="/system/print/index", Icon="ele-Printer", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=190 },
|
||||
new SysMenu{ Id=1310000000402, Pid=1310000000401, Title="查询", Permission="sysPrint:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000403, Pid=1310000000401, Title="编辑", Permission="sysPrint:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000404, Pid=1310000000401, Title="增加", Permission="sysPrint:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000405, Pid=1310000000401, Title="删除", Permission="sysPrint:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000402, Pid=1310000000401, Title="查询", Permission="sysPrint:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000403, Pid=1310000000401, Title="编辑", Permission="sysPrint:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000404, Pid=1310000000401, Title="增加", Permission="sysPrint:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000405, Pid=1310000000401, Title="删除", Permission="sysPrint:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000411, Pid=1310000000301, Title="动态插件", Path="/platform/plugin", Name="sysPlugin", Component="/system/plugin/index", Icon="ele-Connection", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=200 },
|
||||
new SysMenu{ Id=1310000000412, Pid=1310000000411, Title="查询", Permission="sysPlugin:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000413, Pid=1310000000411, Title="编辑", Permission="sysPlugin:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000414, Pid=1310000000411, Title="增加", Permission="sysPlugin:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000415, Pid=1310000000411, Title="删除", Permission="sysPlugin:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000412, Pid=1310000000411, Title="查询", Permission="sysPlugin:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000413, Pid=1310000000411, Title="编辑", Permission="sysPlugin:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000414, Pid=1310000000411, Title="增加", Permission="sysPlugin:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000415, Pid=1310000000411, Title="删除", Permission="sysPlugin:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000421, Pid=1310000000301, Title="开放接口", Path="/platform/openAccess", Name="sysOpenAccess", Component="/system/openAccess/index", Icon="ele-Link", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=210 },
|
||||
new SysMenu{ Id=1310000000422, Pid=1310000000421, Title="查询", Permission="sysOpenAccess:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000423, Pid=1310000000421, Title="编辑", Permission="sysOpenAccess:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000424, Pid=1310000000421, Title="增加", Permission="sysOpenAccess:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000425, Pid=1310000000421, Title="删除", Permission="sysOpenAccess:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000422, Pid=1310000000421, Title="查询", Permission="sysOpenAccess:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000423, Pid=1310000000421, Title="编辑", Permission="sysOpenAccess:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000424, Pid=1310000000421, Title="增加", Permission="sysOpenAccess:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000425, Pid=1310000000421, Title="删除", Permission="sysOpenAccess:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000431, Pid=1310000000301, Title="系统配置", Path="/platform/infoSetting", Name="sysInfoSetting", Component="/system/infoSetting/index", Icon="ele-Setting", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=220 },
|
||||
|
||||
new SysMenu{ Id=1310000000441, Pid=1310000000301, Title="微信支付", Path="/platform/wechatpay", Name="sysWechatPay", Component="/system/weChatPay/index", Icon="ele-Coin", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=230 },
|
||||
new SysMenu{ Id=1310000000442, Pid=1310000000441, Title="微信支付下单Native", Permission="sysWechatPay:payTransactionNative", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000443, Pid=1310000000441, Title="查询退款信息", Permission="sysWechatPay:listRefund", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000444, Pid=1310000000441, Title="获取支付订单详情(本地库)", Permission="sysWechatPay:payInfo", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000445, Pid=1310000000441, Title="获取支付订单详情(微信接口)", Permission="sysWechatPay:payInfoFromWechat", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000446, Pid=1310000000441, Title="退款申请", Permission="sysWechatPay:refundDomestic", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000442, Pid=1310000000441, Title="微信支付下单Native", Permission="sysWechatPay:payTransactionNative", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000443, Pid=1310000000441, Title="查询退款信息", Permission="sysWechatPay:listRefund", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000444, Pid=1310000000441, Title="获取支付订单详情(本地库)", Permission="sysWechatPay:payInfo", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000445, Pid=1310000000441, Title="获取支付订单详情(微信接口)", Permission="sysWechatPay:payInfoFromWechat", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000446, Pid=1310000000441, Title="退款申请", Permission="sysWechatPay:refundDomestic", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000501, Pid=0, Title="日志管理", Path="/log", Name="log", Component="Layout", Icon="ele-DocumentCopy", Type=MenuTypeEnum.Dir, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=12000 },
|
||||
new SysMenu{ Id=1310000000511, Pid=1310000000501, Title="访问日志", Path="/log/vislog", Name="sysVisLog", Component="/system/log/vislog/index", Icon="ele-Document", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000512, Pid=1310000000511, Title="查询", Permission="sysVislog:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000513, Pid=1310000000511, Title="清空", Permission="sysVislog:clear", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000512, Pid=1310000000511, Title="查询", Permission="sysVislog:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000513, Pid=1310000000511, Title="清空", Permission="sysVislog:clear", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000521, Pid=1310000000501, Title="操作日志", Path="/log/oplog", Name="sysOpLog", Component="/system/log/oplog/index", Icon="ele-Document", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=110 },
|
||||
new SysMenu{ Id=1310000000522, Pid=1310000000521, Title="查询", Permission="sysOplog:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000523, Pid=1310000000521, Title="清空", Permission="sysOplog:clear", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000524, Pid=1310000000521, Title="导出", Permission="sysOplog:export", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000522, Pid=1310000000521, Title="查询", Permission="sysOplog:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000523, Pid=1310000000521, Title="清空", Permission="sysOplog:clear", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000524, Pid=1310000000521, Title="导出", Permission="sysOplog:export", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000531, Pid=1310000000501, Title="异常日志", Path="/log/exlog", Name="sysExLog", Component="/system/log/exlog/index", Icon="ele-Document", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=120 },
|
||||
new SysMenu{ Id=1310000000532, Pid=1310000000531, Title="查询", Permission="sysExlog:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000533, Pid=1310000000531, Title="清空", Permission="sysExlog:clear", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000534, Pid=1310000000531, Title="导出", Permission="sysExlog:export", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000532, Pid=1310000000531, Title="查询", Permission="sysExlog:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000533, Pid=1310000000531, Title="清空", Permission="sysExlog:clear", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000534, Pid=1310000000531, Title="导出", Permission="sysExlog:export", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000541, Pid=1310000000501, Title="差异日志", Path="/log/difflog", Name="sysDiffLog", Component="/system/log/difflog/index", Icon="ele-Document", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=130 },
|
||||
new SysMenu{ Id=1310000000542, Pid=1310000000541, Title="查询", Permission="sysDifflog:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
new SysMenu{ Id=1310000000543, Pid=1310000000541, Title="清空", Permission="sysDifflog:clear", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000542, Pid=1310000000541, Title="查询", Permission="sysDifflog:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
//new SysMenu{ Id=1310000000543, Pid=1310000000541, Title="清空", Permission="sysDifflog:clear", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
new SysMenu{ Id=1310000000601, Pid=0, Title="开发工具", Path="/develop", Name="develop", Component="Layout", Icon="ele-Cpu", Type=MenuTypeEnum.Dir, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=13000 },
|
||||
new SysMenu{ Id=1310000000611, Pid=1310000000601, Title="库表管理", Path="/develop/database", Name="sysDatabase", Component="/system/database/index",Icon="ele-Coin", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
|
||||
|
||||
@ -87,9 +87,9 @@ public class LoginUserOutput
|
||||
public string PosName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 按钮权限集合
|
||||
/// 接口权限集合
|
||||
/// </summary>
|
||||
public List<string> Buttons { get; set; }
|
||||
public List<string> Apis { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色集合
|
||||
|
||||
@ -19,7 +19,7 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
private readonly SqlSugarRepository<SysUser> _sysUserRep;
|
||||
private readonly SqlSugarRepository<SysUserLdap> _sysUserLdap;
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
private readonly SysMenuService _sysMenuService;
|
||||
private readonly SysRoleService _sysRoleService;
|
||||
private readonly SysOnlineUserService _sysOnlineUserService;
|
||||
private readonly SysConfigService _sysConfigService;
|
||||
private readonly ICaptcha _captcha;
|
||||
@ -30,7 +30,7 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
SqlSugarRepository<SysUser> sysUserRep,
|
||||
SqlSugarRepository<SysUserLdap> sysUserLdapRep,
|
||||
IHttpContextAccessor httpContextAccessor,
|
||||
SysMenuService sysMenuService,
|
||||
SysRoleService sysRoleService,
|
||||
SysOnlineUserService sysOnlineUserService,
|
||||
SysConfigService sysConfigService,
|
||||
ICaptcha captcha,
|
||||
@ -41,7 +41,7 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
_sysUserRep = sysUserRep;
|
||||
_sysUserLdap = sysUserLdapRep;
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_sysMenuService = sysMenuService;
|
||||
_sysRoleService = sysRoleService;
|
||||
_sysOnlineUserService = sysOnlineUserService;
|
||||
_sysConfigService = sysConfigService;
|
||||
_captcha = captcha;
|
||||
@ -265,16 +265,15 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
public virtual async Task<LoginUserOutput> GetUserInfo()
|
||||
{
|
||||
var user = await _sysUserRep.GetFirstAsync(u => u.Id == _userManager.UserId) ?? throw Oops.Oh(ErrorCodeEnum.D1011).StatusCode(401);
|
||||
// 获取机构
|
||||
// 机构
|
||||
var org = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysOrg>>().GetFirstAsync(u => u.Id == user.OrgId);
|
||||
// 获取职位
|
||||
// 职位
|
||||
var pos = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysPos>>().GetFirstAsync(u => u.Id == user.PosId);
|
||||
// 获取按钮集合
|
||||
var buttons = await _sysMenuService.GetOwnBtnPermList();
|
||||
// 获取角色集合
|
||||
var roleIds = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysUserRole>>().AsQueryable()
|
||||
.Where(u => u.UserId == user.Id).Select(u => u.RoleId).ToListAsync();
|
||||
// 获取水印文字(若系统水印为空则全局为空)
|
||||
// 角色集合
|
||||
var roleIds = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysUserRole>>().AsQueryable().Where(u => u.UserId == user.Id).Select(u => u.RoleId).ToListAsync();
|
||||
// 接口集合
|
||||
var apis = await _sysRoleService.GetUserApiList();
|
||||
// 水印文字(若系统水印为空则禁止显示)
|
||||
var watermarkText = await _sysConfigService.GetConfigValue<string>(ConfigConst.SysWebWatermark);
|
||||
if (!string.IsNullOrWhiteSpace(watermarkText))
|
||||
watermarkText += $"-{user.RealName}"; // $"-{user.RealName}-{_httpContextAccessor.HttpContext.GetRemoteIpAddressToIPv4(true)}-{DateTime.Now}";
|
||||
@ -295,7 +294,7 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
OrgName = org?.Name,
|
||||
OrgType = org?.Type,
|
||||
PosName = pos?.Name,
|
||||
Buttons = buttons,
|
||||
Apis = apis,
|
||||
RoleIds = roleIds,
|
||||
WatermarkText = watermarkText
|
||||
};
|
||||
|
||||
@ -86,7 +86,7 @@ public class SysCommonService : IDynamicApiController, ITransient
|
||||
foreach (ApiDescription action in actions)
|
||||
{
|
||||
// 路由
|
||||
var route = action.RelativePath.Contains('{') ? action.RelativePath[..action.RelativePath.IndexOf('{')] : action.RelativePath; // 去掉路由参数
|
||||
var route = action.RelativePath.Contains('{') ? action.RelativePath[..(action.RelativePath.IndexOf('{') - 1)] : action.RelativePath; // 去掉路由参数
|
||||
route = route[(route.IndexOf('/') + 1)..]; // 去掉路由前缀
|
||||
|
||||
// 接口分组/控制器信息
|
||||
|
||||
@ -142,6 +142,7 @@ public class SysFileService : IDynamicApiController, ITransient
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
[DisplayName("文件预览")]
|
||||
[AllowAnonymous]
|
||||
public async Task<IActionResult> GetPreview([FromRoute] long Id)
|
||||
{
|
||||
@ -499,6 +500,7 @@ public class SysFileService : IDynamicApiController, ITransient
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="ArgumentNullException"></exception>
|
||||
[DisplayName("根据关联查询附件")]
|
||||
public async Task<List<FileOutput>> GetRelationFiles([FromQuery] RelationQueryInput input)
|
||||
{
|
||||
return await _sysFileRep.AsQueryable()
|
||||
|
||||
@ -130,9 +130,6 @@ public class SysMenuService : IDynamicApiController, ITransient
|
||||
CheckMenuParam(sysMenu);
|
||||
|
||||
await _sysMenuRep.InsertAsync(sysMenu);
|
||||
|
||||
// 清除缓存
|
||||
DeleteMenuCache();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -170,9 +167,6 @@ public class SysMenuService : IDynamicApiController, ITransient
|
||||
CheckMenuParam(sysMenu);
|
||||
|
||||
await _sysMenuRep.AsUpdateable(sysMenu).ExecuteCommandAsync();
|
||||
|
||||
// 清除缓存
|
||||
DeleteMenuCache();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -192,9 +186,6 @@ public class SysMenuService : IDynamicApiController, ITransient
|
||||
|
||||
// 级联删除角色菜单数据
|
||||
await _sysRoleMenuService.DeleteRoleMenuByMenuIdList(menuIdList);
|
||||
|
||||
// 清除缓存
|
||||
DeleteMenuCache();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -228,58 +219,6 @@ public class SysMenuService : IDynamicApiController, ITransient
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户拥有按钮权限集合(缓存) 🔖
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[DisplayName("获取按钮权限集合")]
|
||||
public async Task<List<string>> GetOwnBtnPermList()
|
||||
{
|
||||
var userId = _userManager.UserId;
|
||||
var permissions = _sysCacheService.Get<List<string>>(CacheConst.KeyUserButton + userId);
|
||||
if (permissions == null)
|
||||
{
|
||||
var menuIdList = _userManager.SuperAdmin ? new List<long>() : await GetMenuIdList();
|
||||
permissions = menuIdList.Count > 0 || _userManager.SuperAdmin
|
||||
? await _sysMenuRep.AsQueryable()
|
||||
.Where(u => u.Type == MenuTypeEnum.Btn)
|
||||
.WhereIF(menuIdList.Count > 0, u => menuIdList.Contains(u.Id))
|
||||
.Select(u => u.Permission).ToListAsync()
|
||||
: new List<string>();
|
||||
_sysCacheService.Set(CacheConst.KeyUserButton + userId, permissions, TimeSpan.FromDays(7));
|
||||
}
|
||||
|
||||
return permissions;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取系统所有按钮权限集合(缓存)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[NonAction]
|
||||
public async Task<List<string>> GetAllBtnPermList()
|
||||
{
|
||||
var permissions = _sysCacheService.Get<List<string>>(CacheConst.KeyUserButton + 0);
|
||||
if (permissions == null || permissions.Count == 0)
|
||||
{
|
||||
permissions = await _sysMenuRep.AsQueryable()
|
||||
.Where(u => u.Type == MenuTypeEnum.Btn)
|
||||
.Select(u => u.Permission).ToListAsync();
|
||||
_sysCacheService.Set(CacheConst.KeyUserButton + 0, permissions);
|
||||
}
|
||||
|
||||
return permissions;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 清除菜单和按钮缓存
|
||||
/// </summary>
|
||||
private void DeleteMenuCache()
|
||||
{
|
||||
// _sysCacheService.RemoveByPrefixKey(CacheConst.KeyUserMenu);
|
||||
_sysCacheService.RemoveByPrefixKey(CacheConst.KeyUserButton);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前用户菜单Id集合
|
||||
/// </summary>
|
||||
|
||||
@ -43,7 +43,7 @@ public class SysRoleApiService : ITransient
|
||||
public async Task<List<string>> GetRoleApiList(List<long> roleIdList)
|
||||
{
|
||||
return await _sysRoleApiRep.AsQueryable()
|
||||
.Where(u => roleIdList.Contains(u.RoleId))
|
||||
.WhereIF(roleIdList != null, u => roleIdList.Contains(u.RoleId))
|
||||
.Select(u => u.Route).ToListAsync();
|
||||
}
|
||||
|
||||
|
||||
@ -47,10 +47,6 @@ public class SysRoleMenuService : ITransient
|
||||
MenuId = u
|
||||
}).ToList();
|
||||
await _sysRoleMenuRep.InsertRangeAsync(menus);
|
||||
|
||||
// 清除缓存
|
||||
// _sysCacheService.RemoveByPrefixKey(CacheConst.KeyUserMenu);
|
||||
_sysCacheService.RemoveByPrefixKey(CacheConst.KeyUserButton);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@ -21,6 +21,7 @@ public class SysRoleService : IDynamicApiController, ITransient
|
||||
private readonly SysOrgService _sysOrgService;
|
||||
private readonly SysUserRoleService _sysUserRoleService;
|
||||
private readonly SysCacheService _sysCacheService;
|
||||
private readonly SysCommonService _sysCommonService;
|
||||
|
||||
public SysRoleService(UserManager userManager,
|
||||
SqlSugarRepository<SysRole> sysRoleRep,
|
||||
@ -30,7 +31,8 @@ public class SysRoleService : IDynamicApiController, ITransient
|
||||
SysBaseApiService sysBaseApiService,
|
||||
SysOrgService sysOrgService,
|
||||
SysUserRoleService sysUserRoleService,
|
||||
SysCacheService sysCacheService)
|
||||
SysCacheService sysCacheService,
|
||||
SysCommonService sysCommonService)
|
||||
{
|
||||
_userManager = userManager;
|
||||
_sysRoleRep = sysRoleRep;
|
||||
@ -41,6 +43,7 @@ public class SysRoleService : IDynamicApiController, ITransient
|
||||
_sysOrgService = sysOrgService;
|
||||
_sysUserRoleService = sysUserRoleService;
|
||||
_sysCacheService = sysCacheService;
|
||||
_sysCommonService = sysCommonService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -181,13 +184,6 @@ public class SysRoleService : IDynamicApiController, ITransient
|
||||
[DisplayName("授权角色菜单")]
|
||||
public async Task GrantMenu(RoleMenuInput input)
|
||||
{
|
||||
// 删除与该角色相关的用户菜单缓存
|
||||
var userIdList = await _sysUserRoleService.GetUserIdList(input.Id);
|
||||
foreach (var userId in userIdList)
|
||||
{
|
||||
_sysCacheService.Remove(CacheConst.KeyUserButton + userId);
|
||||
}
|
||||
|
||||
await _sysRoleMenuService.GrantRoleMenu(input);
|
||||
}
|
||||
|
||||
@ -314,10 +310,24 @@ public class SysRoleService : IDynamicApiController, ITransient
|
||||
var apiList = _sysCacheService.Get<List<string>>(CacheConst.KeyUserApi + userId);
|
||||
if (apiList == null)
|
||||
{
|
||||
// 当前用户已拥有的角色集合
|
||||
var roleIds = _userManager.SuperAdmin ? null : await _sysUserRoleService.GetUserRoleIdList(_userManager.UserId);
|
||||
|
||||
// 超管时获取所有接口资源
|
||||
if (_userManager.SuperAdmin)
|
||||
{
|
||||
var allApiList = _sysCommonService.GetApiList();
|
||||
apiList = new List<string>();
|
||||
foreach (var apiOutput in allApiList)
|
||||
{
|
||||
foreach (var controller in apiOutput.Children)
|
||||
{
|
||||
apiList.AddRange(controller.Children.Select(u => u.Route));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var roleIds = await _sysUserRoleService.GetUserRoleIdList(_userManager.UserId);
|
||||
apiList = await _sysRoleApiService.GetRoleApiList(roleIds);
|
||||
}
|
||||
_sysCacheService.Set(CacheConst.KeyUserApi + userId, apiList, TimeSpan.FromDays(7));
|
||||
}
|
||||
return apiList;
|
||||
@ -351,4 +361,37 @@ public class SysRoleService : IDynamicApiController, ITransient
|
||||
}
|
||||
return apiList;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化管理员角色接口资源
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[DisplayName("初始化管理员角色接口资源")]
|
||||
public async Task InitAdminRoleApi()
|
||||
{
|
||||
// 获取所有接口资源
|
||||
var allApiList = _sysCommonService.GetApiList();
|
||||
|
||||
var idIndex = 0;
|
||||
var sysRoleApis = new List<SysRoleApi>();
|
||||
foreach (var apiOutput in allApiList)
|
||||
{
|
||||
foreach (var controller in apiOutput.Children)
|
||||
{
|
||||
if (controller.Name == "sysTenant") continue; // 排除租户管理接口
|
||||
|
||||
foreach (var api in controller.Children)
|
||||
{
|
||||
sysRoleApis.Add(new SysRoleApi { Id = 1400000000101 + idIndex, RoleId = 1300000000101, Route = api.Route });
|
||||
idIndex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 更新系统管理员角色的接口资源
|
||||
var storage = _sysRoleRep.Context.StorageableByObject(sysRoleApis).ToStorage();
|
||||
storage.AsInsertable.ExecuteCommand();
|
||||
storage.AsUpdateable.ExecuteCommand();
|
||||
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@ -6,7 +6,15 @@
|
||||
|
||||
namespace Admin.NET.Core.Service;
|
||||
|
||||
public class ScheduleInput
|
||||
public class ScheduleInput : BaseIdInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public virtual FinishStatusEnum Status { get; set; }
|
||||
}
|
||||
|
||||
public class ListScheduleInput
|
||||
{
|
||||
public DateTime? StartTime { get; set; }
|
||||
|
||||
|
||||
@ -27,13 +27,13 @@ public class SysScheduleService : IDynamicApiController, ITransient
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[DisplayName("获取日程列表")]
|
||||
public async Task<List<SysSchedule>> Page(ScheduleInput input)
|
||||
public async Task<List<SysSchedule>> Page(ListScheduleInput input)
|
||||
{
|
||||
return await _sysSchedule.AsQueryable()
|
||||
.Where(u => u.UserId == _userManager.UserId)
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()), u => u.ScheduleTime >= input.StartTime)
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.EndTime.ToString()), u => u.ScheduleTime <= input.EndTime)
|
||||
.OrderBy(u => u.CreateTime, OrderByType.Asc)
|
||||
.OrderBy(u => u.StartTime, OrderByType.Asc)
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
@ -84,4 +84,21 @@ public class SysScheduleService : IDynamicApiController, ITransient
|
||||
{
|
||||
await _sysSchedule.DeleteAsync(u => u.Id == input.Id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置日程状态
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[DisplayName("设置日程状态")]
|
||||
public async Task<int> SetStatus(ScheduleInput input)
|
||||
{
|
||||
if (!Enum.IsDefined(typeof(FinishStatusEnum), input.Status))
|
||||
throw Oops.Oh(ErrorCodeEnum.D3005);
|
||||
|
||||
return await _sysSchedule.AsUpdateable()
|
||||
.SetColumns(u => u.Status == input.Status)
|
||||
.Where(u => u.Id == input.Id)
|
||||
.ExecuteCommandAsync();
|
||||
}
|
||||
}
|
||||
@ -265,6 +265,11 @@ public class SysTenantService : IDynamicApiController, ITransient
|
||||
if (input.Id.ToString() == SqlSugarConst.MainConfigId)
|
||||
throw Oops.Oh(ErrorCodeEnum.D1023);
|
||||
|
||||
// 若账号为开放接口绑定租户则禁止删除
|
||||
var isOpenAccessTenant = await _sysTenantRep.ChangeRepository<SqlSugarRepository<SysOpenAccess>>().IsAnyAsync(u => u.BindTenantId == input.Id);
|
||||
if (isOpenAccessTenant)
|
||||
throw Oops.Oh(ErrorCodeEnum.D1031);
|
||||
|
||||
await _sysTenantRep.DeleteAsync(u => u.Id == input.Id);
|
||||
|
||||
await CacheTenant(input.Id);
|
||||
|
||||
@ -37,7 +37,6 @@ public class SysUserRoleService : ITransient
|
||||
RoleId = u
|
||||
}).ToList();
|
||||
await _sysUserRoleRep.InsertRangeAsync(roles);
|
||||
_sysCacheService.Remove(CacheConst.KeyUserButton + input.UserId);
|
||||
_sysCacheService.Remove(CacheConst.KeyUserApi + input.UserId);
|
||||
}
|
||||
|
||||
@ -53,7 +52,6 @@ public class SysUserRoleService : ITransient
|
||||
.Select(u => u.UserId)
|
||||
.ForEachAsync(userId =>
|
||||
{
|
||||
_sysCacheService.Remove(CacheConst.KeyUserButton + userId);
|
||||
_sysCacheService.Remove(CacheConst.KeyUserApi + userId);
|
||||
});
|
||||
|
||||
@ -68,7 +66,6 @@ public class SysUserRoleService : ITransient
|
||||
public async Task DeleteUserRoleByUserId(long userId)
|
||||
{
|
||||
await _sysUserRoleRep.DeleteAsync(u => u.UserId == userId);
|
||||
_sysCacheService.Remove(CacheConst.KeyUserButton + userId);
|
||||
_sysCacheService.Remove(CacheConst.KeyUserApi + userId);
|
||||
}
|
||||
|
||||
|
||||
@ -172,11 +172,17 @@ public class SysUserService : IDynamicApiController, ITransient
|
||||
throw Oops.Oh(ErrorCodeEnum.D1014);
|
||||
if (user.Id == _userManager.UserId)
|
||||
throw Oops.Oh(ErrorCodeEnum.D1001);
|
||||
|
||||
// 若账号为租户默认账号则禁止删除
|
||||
var isTenantUser = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysTenant>>().IsAnyAsync(u => u.UserId == input.Id);
|
||||
if (isTenantUser)
|
||||
throw Oops.Oh(ErrorCodeEnum.D1029);
|
||||
|
||||
// 若账号为开放接口绑定账号则禁止删除
|
||||
var isOpenAccessUser = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysOpenAccess>>().IsAnyAsync(u => u.BindUserId == input.Id);
|
||||
if (isOpenAccessUser)
|
||||
throw Oops.Oh(ErrorCodeEnum.D1030);
|
||||
|
||||
// 强制下线
|
||||
await _sysOnlineUserService.ForceOffline(user.Id);
|
||||
|
||||
|
||||
@ -284,6 +284,7 @@ public static class SqlSugarSetup
|
||||
// 初始化/创建数据库
|
||||
if (config.DbSettings.EnableInitDb)
|
||||
{
|
||||
Log.Information($"初始化数据库 {config.DbType} - {config.ConfigId} - {config.ConnectionString}");
|
||||
if (config.DbType != SqlSugar.DbType.Oracle)
|
||||
dbProvider.DbMaintenance.CreateDatabase();
|
||||
}
|
||||
@ -291,6 +292,7 @@ public static class SqlSugarSetup
|
||||
// 初始化表结构
|
||||
if (config.TableSettings.EnableInitTable)
|
||||
{
|
||||
Log.Information($"初始化表结构 {config.DbType} - {config.ConfigId}");
|
||||
var entityTypes = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.IsDefined(typeof(SugarTable), false))
|
||||
.Where(u => !u.GetCustomAttributes<IgnoreTableAttribute>().Any())
|
||||
.WhereIF(config.TableSettings.EnableIncreTable, u => u.IsDefined(typeof(IncreTableAttribute), false)).ToList();
|
||||
@ -302,8 +304,10 @@ public static class SqlSugarSetup
|
||||
else
|
||||
entityTypes = entityTypes.Where(u => u.GetCustomAttribute<TenantAttribute>()?.configId.ToString() == config.ConfigId.ToString()).ToList(); // 自定义的库
|
||||
|
||||
int count = 0, sum = entityTypes.Count;
|
||||
foreach (var entityType in entityTypes)
|
||||
{
|
||||
Console.WriteLine($"创建表 {entityType} ({config.ConfigId} - {++count}/{sum})");
|
||||
if (entityType.GetCustomAttribute<SplitTableAttribute>() == null)
|
||||
dbProvider.CodeFirst.InitTables(entityType);
|
||||
else
|
||||
@ -314,10 +318,12 @@ public static class SqlSugarSetup
|
||||
// 初始化种子数据
|
||||
if (config.SeedSettings.EnableInitSeed)
|
||||
{
|
||||
Log.Information($"初始化种子数据 {config.DbType} - {config.ConfigId}");
|
||||
var seedDataTypes = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.GetInterfaces().Any(i => i.HasImplementedRawGeneric(typeof(ISqlSugarEntitySeedData<>))))
|
||||
.WhereIF(config.SeedSettings.EnableIncreSeed, u => u.IsDefined(typeof(IncreSeedAttribute), false))
|
||||
.OrderBy(u => u.GetCustomAttributes(typeof(SeedDataAttribute), false).Length > 0 ? ((SeedDataAttribute)u.GetCustomAttributes(typeof(SeedDataAttribute), false)[0]).Order : 0).ToList();
|
||||
|
||||
int count = 0, sum = seedDataTypes.Count;
|
||||
foreach (var seedType in seedDataTypes)
|
||||
{
|
||||
var entityType = seedType.GetInterfaces().First().GetGenericArguments().First();
|
||||
@ -343,6 +349,18 @@ public static class SqlSugarSetup
|
||||
if (seedData == null) continue;
|
||||
|
||||
var entityInfo = dbProvider.EntityMaintenance.GetEntityInfo(entityType);
|
||||
Console.WriteLine($"添加数据 {entityInfo.DbTableName} ({config.ConfigId} - {++count}/{sum})");
|
||||
|
||||
if (entityType.GetCustomAttribute<SplitTableAttribute>(true) != null)
|
||||
{
|
||||
//拆分表的操作需要实体类型,而通过反射很难实现
|
||||
//所以,这里将Init方法写在“种子数据类”内部,再传入 db 反射调用
|
||||
var hasInitMethod = seedType.GetMethod("Init");
|
||||
var parameters = new object[] { db };
|
||||
hasInitMethod?.Invoke(instance, parameters);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (entityInfo.Columns.Any(u => u.IsPrimarykey))
|
||||
{
|
||||
// 按主键进行批量增加和更新
|
||||
@ -360,6 +378,7 @@ public static class SqlSugarSetup
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化租户业务数据库
|
||||
|
||||
@ -79,8 +79,8 @@ public class Startup : AppStartup
|
||||
{
|
||||
setting.DateFormatHandling = DateFormatHandling.IsoDateFormat;
|
||||
setting.DateTimeZoneHandling = DateTimeZoneHandling.Local;
|
||||
setting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; // 时间格式化
|
||||
// setting.Converters.AddDateTimeTypeConverters(localized: true); // 时间本地化
|
||||
setting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; // 时间格式化
|
||||
setting.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; // 忽略循环引用
|
||||
// setting.ContractResolver = new CamelCasePropertyNamesContractResolver(); // 解决动态对象属性名大写
|
||||
// setting.NullValueHandling = NullValueHandling.Ignore; // 忽略空值
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"name": "admin.net.pro",
|
||||
"type": "module",
|
||||
"version": "2.4.33",
|
||||
"lastBuildTime": "2024.07.18",
|
||||
"lastBuildTime": "2024.07.20",
|
||||
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
|
||||
"author": "zuohuaijun",
|
||||
"license": "MIT",
|
||||
@ -57,7 +57,7 @@
|
||||
"splitpanes": "^3.1.5",
|
||||
"vcrontab-3": "^3.3.22",
|
||||
"vform3-builds": "^3.0.10",
|
||||
"vue": "^3.4.32",
|
||||
"vue": "^3.4.33",
|
||||
"vue-clipboard3": "^2.0.0",
|
||||
"vue-demi": "^0.14.8",
|
||||
"vue-grid-layout": "3.0.0-beta1",
|
||||
@ -68,8 +68,8 @@
|
||||
"vue-signature-pad": "^3.0.2",
|
||||
"vue3-tree-org": "^4.2.2",
|
||||
"vuedraggable": "4.0.3",
|
||||
"vxe-pc-ui": "^4.0.74",
|
||||
"vxe-table": "^4.7.54",
|
||||
"vxe-pc-ui": "^4.0.77",
|
||||
"vxe-table": "^4.7.56",
|
||||
"vxe-table-plugin-element": "^4.0.4",
|
||||
"vxe-table-plugin-export-xlsx": "^4.0.5",
|
||||
"xe-utils": "^3.5.28",
|
||||
@ -86,7 +86,7 @@
|
||||
"@typescript-eslint/parser": "^7.16.1",
|
||||
"@vitejs/plugin-vue": "^5.0.5",
|
||||
"@vitejs/plugin-vue-jsx": "^4.0.0",
|
||||
"@vue/compiler-sfc": "^3.4.32",
|
||||
"@vue/compiler-sfc": "^3.4.33",
|
||||
"code-inspector-plugin": "^0.14.2",
|
||||
"eslint": "^9.7.0",
|
||||
"eslint-plugin-vue": "^9.27.0",
|
||||
|
||||
@ -19,7 +19,6 @@ import { Configuration } from '../configuration';
|
||||
import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';
|
||||
import { AddMenuInput } from '../models';
|
||||
import { AdminResultListMenuOutput } from '../models';
|
||||
import { AdminResultListString } from '../models';
|
||||
import { AdminResultListSysMenu } from '../models';
|
||||
import { DeleteMenuInput } from '../models';
|
||||
import { MenuTypeEnum } from '../models';
|
||||
@ -222,49 +221,6 @@ export const SysMenuApiAxiosParamCreator = function (configuration?: Configurati
|
||||
options: localVarRequestOptions,
|
||||
};
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 获取用户拥有按钮权限集合(缓存) 🔖
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
apiSysMenuOwnBtnPermListGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||
const localVarPath = `/api/sysMenu/ownBtnPermList`;
|
||||
// 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
|
||||
// http bearer authentication required
|
||||
if (configuration && configuration.accessToken) {
|
||||
const accessToken = typeof configuration.accessToken === 'function'
|
||||
? await configuration.accessToken()
|
||||
: await configuration.accessToken;
|
||||
localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
|
||||
}
|
||||
|
||||
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 更新菜单 🔖
|
||||
@ -378,19 +334,6 @@ export const SysMenuApiFp = function(configuration?: Configuration) {
|
||||
return axios.request(axiosRequestArgs);
|
||||
};
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 获取用户拥有按钮权限集合(缓存) 🔖
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
async apiSysMenuOwnBtnPermListGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListString>>> {
|
||||
const localVarAxiosArgs = await SysMenuApiAxiosParamCreator(configuration).apiSysMenuOwnBtnPermListGet(options);
|
||||
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
|
||||
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
|
||||
return axios.request(axiosRequestArgs);
|
||||
};
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 更新菜单 🔖
|
||||
@ -454,15 +397,6 @@ export const SysMenuApiFactory = function (configuration?: Configuration, basePa
|
||||
async apiSysMenuLoginMenuTreeGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListMenuOutput>> {
|
||||
return SysMenuApiFp(configuration).apiSysMenuLoginMenuTreeGet(options).then((request) => request(axios, basePath));
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 获取用户拥有按钮权限集合(缓存) 🔖
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
async apiSysMenuOwnBtnPermListGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListString>> {
|
||||
return SysMenuApiFp(configuration).apiSysMenuOwnBtnPermListGet(options).then((request) => request(axios, basePath));
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 更新菜单 🔖
|
||||
@ -527,16 +461,6 @@ export class SysMenuApi extends BaseAPI {
|
||||
public async apiSysMenuLoginMenuTreeGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListMenuOutput>> {
|
||||
return SysMenuApiFp(this.configuration).apiSysMenuLoginMenuTreeGet(options).then((request) => request(this.axios, this.basePath));
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @summary 获取用户拥有按钮权限集合(缓存) 🔖
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
* @memberof SysMenuApi
|
||||
*/
|
||||
public async apiSysMenuOwnBtnPermListGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListString>> {
|
||||
return SysMenuApiFp(this.configuration).apiSysMenuOwnBtnPermListGet(options).then((request) => request(this.axios, this.basePath));
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @summary 更新菜单 🔖
|
||||
|
||||
@ -321,6 +321,49 @@ export const SysRoleApiAxiosParamCreator = function (configuration?: Configurati
|
||||
options: localVarRequestOptions,
|
||||
};
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 初始化管理员角色接口资源
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
apiSysRoleInitAdminRoleApiPost: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||
const localVarPath = `/api/sysRole/initAdminRoleApi`;
|
||||
// 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 localVarHeaderParameter = {} as any;
|
||||
const localVarQueryParameter = {} as any;
|
||||
|
||||
// authentication Bearer required
|
||||
// http bearer authentication required
|
||||
if (configuration && configuration.accessToken) {
|
||||
const accessToken = typeof configuration.accessToken === 'function'
|
||||
? await configuration.accessToken()
|
||||
: await configuration.accessToken;
|
||||
localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
|
||||
}
|
||||
|
||||
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 获取角色列表 🔖
|
||||
@ -862,6 +905,19 @@ export const SysRoleApiFp = function(configuration?: Configuration) {
|
||||
return axios.request(axiosRequestArgs);
|
||||
};
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 初始化管理员角色接口资源
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
async apiSysRoleInitAdminRoleApiPost(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
|
||||
const localVarAxiosArgs = await SysRoleApiAxiosParamCreator(configuration).apiSysRoleInitAdminRoleApiPost(options);
|
||||
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
|
||||
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
|
||||
return axios.request(axiosRequestArgs);
|
||||
};
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 获取角色列表 🔖
|
||||
@ -1057,6 +1113,15 @@ export const SysRoleApiFactory = function (configuration?: Configuration, basePa
|
||||
async apiSysRoleGrantMenuPost(body?: RoleMenuInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
|
||||
return SysRoleApiFp(configuration).apiSysRoleGrantMenuPost(body, options).then((request) => request(axios, basePath));
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 初始化管理员角色接口资源
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
async apiSysRoleInitAdminRoleApiPost(options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
|
||||
return SysRoleApiFp(configuration).apiSysRoleInitAdminRoleApiPost(options).then((request) => request(axios, basePath));
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 获取角色列表 🔖
|
||||
@ -1223,6 +1288,16 @@ export class SysRoleApi extends BaseAPI {
|
||||
public async apiSysRoleGrantMenuPost(body?: RoleMenuInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
|
||||
return SysRoleApiFp(this.configuration).apiSysRoleGrantMenuPost(body, options).then((request) => request(this.axios, this.basePath));
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @summary 初始化管理员角色接口资源
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
* @memberof SysRoleApi
|
||||
*/
|
||||
public async apiSysRoleInitAdminRoleApiPost(options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
|
||||
return SysRoleApiFp(this.configuration).apiSysRoleInitAdminRoleApiPost(options).then((request) => request(this.axios, this.basePath));
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @summary 获取角色列表 🔖
|
||||
|
||||
@ -18,9 +18,11 @@ import { Configuration } from '../configuration';
|
||||
// @ts-ignore
|
||||
import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';
|
||||
import { AddScheduleInput } from '../models';
|
||||
import { AdminResultInt32 } from '../models';
|
||||
import { AdminResultListSysSchedule } from '../models';
|
||||
import { AdminResultSysSchedule } from '../models';
|
||||
import { DeleteScheduleInput } from '../models';
|
||||
import { ListScheduleInput } from '../models';
|
||||
import { ScheduleInput } from '../models';
|
||||
import { UpdateScheduleInput } from '../models';
|
||||
/**
|
||||
@ -177,12 +179,60 @@ export const SysScheduleApiAxiosParamCreator = function (configuration?: Configu
|
||||
/**
|
||||
*
|
||||
* @summary 获取日程列表
|
||||
* @param {ListScheduleInput} [body]
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
apiSysSchedulePagePost: async (body?: ListScheduleInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||
const localVarPath = `/api/sysSchedule/page`;
|
||||
// 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 localVarHeaderParameter = {} as any;
|
||||
const localVarQueryParameter = {} as any;
|
||||
|
||||
// authentication Bearer required
|
||||
// http bearer authentication required
|
||||
if (configuration && configuration.accessToken) {
|
||||
const accessToken = typeof configuration.accessToken === 'function'
|
||||
? await configuration.accessToken()
|
||||
: await configuration.accessToken;
|
||||
localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
|
||||
}
|
||||
|
||||
localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';
|
||||
|
||||
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};
|
||||
const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json';
|
||||
localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || "");
|
||||
|
||||
return {
|
||||
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
|
||||
options: localVarRequestOptions,
|
||||
};
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 设置日程状态
|
||||
* @param {ScheduleInput} [body]
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
apiSysSchedulePagePost: async (body?: ScheduleInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||
const localVarPath = `/api/sysSchedule/page`;
|
||||
apiSysScheduleSetStatusPost: async (body?: ScheduleInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||
const localVarPath = `/api/sysSchedule/setStatus`;
|
||||
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
||||
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
|
||||
let baseOptions;
|
||||
@ -324,12 +374,26 @@ export const SysScheduleApiFp = function(configuration?: Configuration) {
|
||||
/**
|
||||
*
|
||||
* @summary 获取日程列表
|
||||
* @param {ListScheduleInput} [body]
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
async apiSysSchedulePagePost(body?: ListScheduleInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListSysSchedule>>> {
|
||||
const localVarAxiosArgs = await SysScheduleApiAxiosParamCreator(configuration).apiSysSchedulePagePost(body, options);
|
||||
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
|
||||
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
|
||||
return axios.request(axiosRequestArgs);
|
||||
};
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 设置日程状态
|
||||
* @param {ScheduleInput} [body]
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
async apiSysSchedulePagePost(body?: ScheduleInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListSysSchedule>>> {
|
||||
const localVarAxiosArgs = await SysScheduleApiAxiosParamCreator(configuration).apiSysSchedulePagePost(body, options);
|
||||
async apiSysScheduleSetStatusPost(body?: ScheduleInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultInt32>>> {
|
||||
const localVarAxiosArgs = await SysScheduleApiAxiosParamCreator(configuration).apiSysScheduleSetStatusPost(body, options);
|
||||
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
|
||||
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
|
||||
return axios.request(axiosRequestArgs);
|
||||
@ -391,12 +455,22 @@ export const SysScheduleApiFactory = function (configuration?: Configuration, ba
|
||||
/**
|
||||
*
|
||||
* @summary 获取日程列表
|
||||
* @param {ListScheduleInput} [body]
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
async apiSysSchedulePagePost(body?: ListScheduleInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListSysSchedule>> {
|
||||
return SysScheduleApiFp(configuration).apiSysSchedulePagePost(body, options).then((request) => request(axios, basePath));
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary 设置日程状态
|
||||
* @param {ScheduleInput} [body]
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
async apiSysSchedulePagePost(body?: ScheduleInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListSysSchedule>> {
|
||||
return SysScheduleApiFp(configuration).apiSysSchedulePagePost(body, options).then((request) => request(axios, basePath));
|
||||
async apiSysScheduleSetStatusPost(body?: ScheduleInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultInt32>> {
|
||||
return SysScheduleApiFp(configuration).apiSysScheduleSetStatusPost(body, options).then((request) => request(axios, basePath));
|
||||
},
|
||||
/**
|
||||
*
|
||||
@ -454,13 +528,24 @@ export class SysScheduleApi extends BaseAPI {
|
||||
/**
|
||||
*
|
||||
* @summary 获取日程列表
|
||||
* @param {ListScheduleInput} [body]
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
* @memberof SysScheduleApi
|
||||
*/
|
||||
public async apiSysSchedulePagePost(body?: ListScheduleInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListSysSchedule>> {
|
||||
return SysScheduleApiFp(this.configuration).apiSysSchedulePagePost(body, options).then((request) => request(this.axios, this.basePath));
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @summary 设置日程状态
|
||||
* @param {ScheduleInput} [body]
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
* @memberof SysScheduleApi
|
||||
*/
|
||||
public async apiSysSchedulePagePost(body?: ScheduleInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListSysSchedule>> {
|
||||
return SysScheduleApiFp(this.configuration).apiSysSchedulePagePost(body, options).then((request) => request(this.axios, this.basePath));
|
||||
public async apiSysScheduleSetStatusPost(body?: ScheduleInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultInt32>> {
|
||||
return SysScheduleApiFp(this.configuration).apiSysScheduleSetStatusPost(body, options).then((request) => request(this.axios, this.basePath));
|
||||
}
|
||||
/**
|
||||
*
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
import { FinishStatusEnum } from './finish-status-enum';
|
||||
/**
|
||||
*
|
||||
*
|
||||
@ -101,13 +102,35 @@ export interface AddScheduleInput {
|
||||
userId?: number;
|
||||
|
||||
/**
|
||||
* 日程时间
|
||||
* 日程日期
|
||||
*
|
||||
* @type {Date}
|
||||
* @memberof AddScheduleInput
|
||||
*/
|
||||
scheduleTime?: Date | null;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof AddScheduleInput
|
||||
*/
|
||||
startTime?: string | null;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof AddScheduleInput
|
||||
*/
|
||||
endTime?: string | null;
|
||||
|
||||
/**
|
||||
* @type {FinishStatusEnum}
|
||||
* @memberof AddScheduleInput
|
||||
*/
|
||||
status?: FinishStatusEnum;
|
||||
|
||||
/**
|
||||
* 日程内容
|
||||
*
|
||||
|
||||
24
Web/src/api-services/models/finish-status-enum.ts
Normal file
24
Web/src/api-services/models/finish-status-enum.ts
Normal file
@ -0,0 +1,24 @@
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
/**
|
||||
* Admin.NET 通用权限开发平台
|
||||
* 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
|
||||
*
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* 完成状态枚举<br /> 未完成 UnFinish = 0<br /> 已完成 Finish = 1<br />
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum FinishStatusEnum {
|
||||
NUMBER_0 = 0,
|
||||
NUMBER_1 = 1
|
||||
}
|
||||
|
||||
@ -190,6 +190,7 @@ export * from './file-output';
|
||||
export * from './filter';
|
||||
export * from './filter-logic-enum';
|
||||
export * from './filter-operator-enum';
|
||||
export * from './finish-status-enum';
|
||||
export * from './from';
|
||||
export * from './gen-auth-url-input';
|
||||
export * from './gender-enum';
|
||||
@ -211,6 +212,7 @@ export * from './job-detail-input';
|
||||
export * from './job-detail-output';
|
||||
export * from './job-trigger-input';
|
||||
export * from './layout-kind';
|
||||
export * from './list-schedule-input';
|
||||
export * from './log-input';
|
||||
export * from './log-level';
|
||||
export * from './log-vis-output';
|
||||
|
||||
34
Web/src/api-services/models/list-schedule-input.ts
Normal file
34
Web/src/api-services/models/list-schedule-input.ts
Normal file
@ -0,0 +1,34 @@
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
/**
|
||||
* Admin.NET 通用权限开发平台
|
||||
* 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
|
||||
*
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @export
|
||||
* @interface ListScheduleInput
|
||||
*/
|
||||
export interface ListScheduleInput {
|
||||
|
||||
/**
|
||||
* @type {Date}
|
||||
* @memberof ListScheduleInput
|
||||
*/
|
||||
startTime?: Date | null;
|
||||
|
||||
/**
|
||||
* @type {Date}
|
||||
* @memberof ListScheduleInput
|
||||
*/
|
||||
endTime?: Date | null;
|
||||
}
|
||||
@ -140,12 +140,12 @@ export interface LoginUserOutput {
|
||||
posName?: string | null;
|
||||
|
||||
/**
|
||||
* 按钮权限集合
|
||||
* 接口权限集合
|
||||
*
|
||||
* @type {Array<string>}
|
||||
* @memberof LoginUserOutput
|
||||
*/
|
||||
buttons?: Array<string> | null;
|
||||
apis?: Array<string> | null;
|
||||
|
||||
/**
|
||||
* 角色集合
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
import { FinishStatusEnum } from './finish-status-enum';
|
||||
/**
|
||||
*
|
||||
*
|
||||
@ -21,14 +22,16 @@
|
||||
export interface ScheduleInput {
|
||||
|
||||
/**
|
||||
* @type {Date}
|
||||
* 主键Id
|
||||
*
|
||||
* @type {number}
|
||||
* @memberof ScheduleInput
|
||||
*/
|
||||
startTime?: Date | null;
|
||||
id: number;
|
||||
|
||||
/**
|
||||
* @type {Date}
|
||||
* @type {FinishStatusEnum}
|
||||
* @memberof ScheduleInput
|
||||
*/
|
||||
endTime?: Date | null;
|
||||
status?: FinishStatusEnum;
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
import { FinishStatusEnum } from './finish-status-enum';
|
||||
/**
|
||||
* 系统日程表
|
||||
*
|
||||
@ -101,13 +102,29 @@ export interface SysSchedule {
|
||||
userId?: number;
|
||||
|
||||
/**
|
||||
* 日程时间
|
||||
* 日程日期
|
||||
*
|
||||
* @type {Date}
|
||||
* @memberof SysSchedule
|
||||
*/
|
||||
scheduleTime?: Date | null;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof SysSchedule
|
||||
*/
|
||||
startTime?: string | null;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof SysSchedule
|
||||
*/
|
||||
endTime?: string | null;
|
||||
|
||||
/**
|
||||
* 日程内容
|
||||
*
|
||||
@ -115,4 +132,10 @@ export interface SysSchedule {
|
||||
* @memberof SysSchedule
|
||||
*/
|
||||
content: string;
|
||||
|
||||
/**
|
||||
* @type {FinishStatusEnum}
|
||||
* @memberof SysSchedule
|
||||
*/
|
||||
status?: FinishStatusEnum;
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
import { FinishStatusEnum } from './finish-status-enum';
|
||||
/**
|
||||
*
|
||||
*
|
||||
@ -101,13 +102,35 @@ export interface UpdateScheduleInput {
|
||||
userId?: number;
|
||||
|
||||
/**
|
||||
* 日程时间
|
||||
* 日程日期
|
||||
*
|
||||
* @type {Date}
|
||||
* @memberof UpdateScheduleInput
|
||||
*/
|
||||
scheduleTime?: Date | null;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof UpdateScheduleInput
|
||||
*/
|
||||
startTime?: string | null;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof UpdateScheduleInput
|
||||
*/
|
||||
endTime?: string | null;
|
||||
|
||||
/**
|
||||
* @type {FinishStatusEnum}
|
||||
* @memberof UpdateScheduleInput
|
||||
*/
|
||||
status?: FinishStatusEnum;
|
||||
|
||||
/**
|
||||
* 日程内容
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<slot v-if="getUserAuthBtnList" />
|
||||
<slot v-if="getUserAuthApiList" />
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="auth">
|
||||
@ -20,7 +20,7 @@ const stores = useUserInfo();
|
||||
const { userInfos } = storeToRefs(stores);
|
||||
|
||||
// 获取 pinia 中的用户权限
|
||||
const getUserAuthBtnList = computed(() => {
|
||||
return userInfos.value.authBtnList.some((v: string) => v === props.value);
|
||||
const getUserAuthApiList = computed(() => {
|
||||
return userInfos.value.authApiList.some((v: string) => v === props.value);
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<slot v-if="getUserAuthBtnList" />
|
||||
<slot v-if="getUserAuthApiList" />
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="authAll">
|
||||
@ -21,7 +21,7 @@ const stores = useUserInfo();
|
||||
const { userInfos } = storeToRefs(stores);
|
||||
|
||||
// 获取 pinia 中的用户权限
|
||||
const getUserAuthBtnList = computed(() => {
|
||||
return judgementSameArr(props.value, userInfos.value.authBtnList);
|
||||
const getUserAuthApiList = computed(() => {
|
||||
return judgementSameArr(props.value, userInfos.value.authApiList);
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<slot v-if="getUserAuthBtnList" />
|
||||
<slot v-if="getUserAuthApiList" />
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="auths">
|
||||
@ -20,9 +20,9 @@ const stores = useUserInfo();
|
||||
const { userInfos } = storeToRefs(stores);
|
||||
|
||||
// 获取 pinia 中的用户权限
|
||||
const getUserAuthBtnList = computed(() => {
|
||||
const getUserAuthApiList = computed(() => {
|
||||
let flag = false;
|
||||
userInfos.value.authBtnList.map((val: string) => {
|
||||
userInfos.value.authApiList.map((val: string) => {
|
||||
props.value.map((v) => {
|
||||
if (val === v) flag = true;
|
||||
});
|
||||
|
||||
@ -13,7 +13,7 @@ export function authDirective(app: App) {
|
||||
app.directive('auth', {
|
||||
mounted(el, binding) {
|
||||
const stores = useUserInfo();
|
||||
if (!stores.userInfos.authBtnList.some((v: string) => v === binding.value)) el.parentNode.removeChild(el);
|
||||
if (!stores.userInfos.authApiList.some((v: string) => v === binding.value)) el.parentNode.removeChild(el);
|
||||
},
|
||||
});
|
||||
// 多个权限验证,满足一个则显示(v-auths="[xxx,xxx]")
|
||||
@ -21,7 +21,7 @@ export function authDirective(app: App) {
|
||||
mounted(el, binding) {
|
||||
let flag = false;
|
||||
const stores = useUserInfo();
|
||||
stores.userInfos.authBtnList.map((val: string) => {
|
||||
stores.userInfos.authApiList.map((val: string) => {
|
||||
binding.value.map((v: string) => {
|
||||
if (val === v) flag = true;
|
||||
});
|
||||
@ -33,7 +33,7 @@ export function authDirective(app: App) {
|
||||
app.directive('auth-all', {
|
||||
mounted(el, binding) {
|
||||
const stores = useUserInfo();
|
||||
const flag = judgementSameArr(binding.value, stores.userInfos.authBtnList);
|
||||
const flag = judgementSameArr(binding.value, stores.userInfos.authApiList);
|
||||
if (!flag) el.parentNode.removeChild(el);
|
||||
},
|
||||
});
|
||||
|
||||
@ -83,7 +83,7 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
orgName: d.orgName,
|
||||
posName: d.posName,
|
||||
roles: d.roleIds,
|
||||
authBtnList: d.buttons,
|
||||
authApiList: d.apis,
|
||||
time: new Date().getTime(),
|
||||
};
|
||||
// vue-next-admin 提交Id:225bce7 提交消息:admin-23.03.26:发布v2.4.32版本
|
||||
|
||||
2
Web/src/types/pinia.d.ts
vendored
2
Web/src/types/pinia.d.ts
vendored
@ -4,7 +4,7 @@
|
||||
|
||||
// 用户信息
|
||||
declare interface UserInfos<T = any> {
|
||||
authBtnList: string[];
|
||||
authApiList: string[];
|
||||
photo: string;
|
||||
roles: string[];
|
||||
time: number;
|
||||
|
||||
@ -9,7 +9,7 @@ import { resolveDirective, withDirectives } from 'vue';
|
||||
*/
|
||||
export function auth(value: string): boolean {
|
||||
const stores = useUserInfo();
|
||||
return stores.userInfos.authBtnList.some((v: string) => v === value);
|
||||
return stores.userInfos.authApiList.some((v: string) => v === value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -20,7 +20,7 @@ export function auth(value: string): boolean {
|
||||
export function auths(value: Array<string>): boolean {
|
||||
let flag = false;
|
||||
const stores = useUserInfo();
|
||||
stores.userInfos.authBtnList.map((val: string) => {
|
||||
stores.userInfos.authApiList.map((val: string) => {
|
||||
value.map((v: string) => {
|
||||
if (val === v) flag = true;
|
||||
});
|
||||
@ -35,7 +35,7 @@ export function auths(value: Array<string>): boolean {
|
||||
*/
|
||||
export function authAll(value: Array<string>): boolean {
|
||||
const stores = useUserInfo();
|
||||
return judgementSameArr(value, stores.userInfos.authBtnList);
|
||||
return judgementSameArr(value, stores.userInfos.authApiList);
|
||||
}
|
||||
/**
|
||||
* 单个权限验证,是否满足,返回VNode
|
||||
|
||||
@ -23,16 +23,19 @@
|
||||
</el-calendar>
|
||||
</div>
|
||||
<div class="schedule-list">
|
||||
<div class="item" v-for="(item, index) in state.TodayScheduleData" :key="index" @click="openEditSchedule(item)">
|
||||
<el-icon style="display: inline; vertical-align: middle"> <ele-Calendar /> </el-icon>
|
||||
<span class="content" style="padding-left: 10px">
|
||||
<span>
|
||||
{{ item.scheduleTime }}
|
||||
</span>
|
||||
<span style="padding-left: 15px; font-weight: 600; color: var(--el-color-primary)">
|
||||
<div class="item" v-for="(item, index) in state.TodayScheduleData" :key="index">
|
||||
<el-icon v-if="item.status == 1" class="icon" @click="changeStatus(item)"> <ele-CircleCheck /> </el-icon>
|
||||
<el-icon v-else class="icon" @click="changeStatus(item)"> <ele-Edit /> </el-icon>
|
||||
|
||||
<span class="content" style="padding-left: 10px" @click="openEditSchedule(item)">
|
||||
<span> {{ item.startTime }} - {{ item.endTime }} </span>
|
||||
<span :class="item.status == 1 ? 'finish' : 'no'" style="padding-left: 15px; font-weight: 600; color: var(--el-color-primary)">
|
||||
{{ item.content }}
|
||||
</span>
|
||||
</span>
|
||||
<span style="float: right">
|
||||
<el-icon class="icon" @click="delItem(item)"> <ele-CircleClose /> </el-icon>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -50,7 +53,7 @@ export default {
|
||||
|
||||
<script setup lang="ts">
|
||||
import { reactive, onMounted, ref } from 'vue';
|
||||
import { dayjs } from 'element-plus';
|
||||
import { dayjs, ElMessage, ElMessageBox } from 'element-plus';
|
||||
import calendar from '/@/utils/calendar.js';
|
||||
|
||||
import EditSchedule from '/@/views/home/widgets/components/scheduleEdit.vue';
|
||||
@ -78,6 +81,7 @@ onMounted(async () => {
|
||||
|
||||
// 查询操作
|
||||
const handleQuery = async () => {
|
||||
// debugger;
|
||||
state.queryParams.startTime = GetMonthFirstDay(state.calendarValue);
|
||||
state.queryParams.endTime = GetMonthLastDay(state.calendarValue);
|
||||
|
||||
@ -91,6 +95,35 @@ const handleQuery = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
// 删除
|
||||
const delItem = (row: any) => {
|
||||
console.log(row);
|
||||
ElMessageBox.confirm(`确定删日程:${row.startTime}-${row.endTime}【${row.content}】?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
})
|
||||
.then(async () => {
|
||||
await getAPI(SysScheduleApi).apiSysScheduleDeletePost(row);
|
||||
await handleQuery();
|
||||
ElMessage.success('删除成功');
|
||||
})
|
||||
.catch(() => {});
|
||||
};
|
||||
|
||||
// 修改状态
|
||||
const changeStatus = async (row: any) => {
|
||||
await getAPI(SysScheduleApi)
|
||||
.apiSysScheduleSetStatusPost({ id: row.id, status: row.status == 1 ? 0 : 1 })
|
||||
.then(() => {
|
||||
row.status = row.status == 1 ? 0 : 1;
|
||||
ElMessage.success('日程状态设置成功');
|
||||
})
|
||||
.catch(() => {
|
||||
ElMessage.success('日程状态设置异常');
|
||||
});
|
||||
};
|
||||
|
||||
// 农历转换
|
||||
const solarDate2lunar = (solarDate: any) => {
|
||||
var solar = solarDate.split('-');
|
||||
@ -110,31 +143,36 @@ const handleQueryByDate = async (date: any) => {
|
||||
|
||||
// 打开新增页面
|
||||
const openAddSchedule = () => {
|
||||
var timerange = GetRecentTime();
|
||||
|
||||
state.editTitle = '添加日程';
|
||||
editScheduleRef.value?.openDialog({ id: undefined, status: 1, orderNo: 100 });
|
||||
editScheduleRef.value?.openDialog({ id: undefined, status: 0, orderNo: 100, startTime: timerange.startTime, endTime: timerange.endTime });
|
||||
};
|
||||
|
||||
// 打开编辑页面
|
||||
const openEditSchedule = async (row: any) => {
|
||||
if (row.status == 1) return;
|
||||
state.editTitle = '编辑日程';
|
||||
editScheduleRef.value?.openDialog(row, true);
|
||||
};
|
||||
|
||||
// 点击日历中的日期
|
||||
async function handleClickDate(data: any) {
|
||||
const handleClickDate = async (data: any) => {
|
||||
await handleQueryByDate(data.day);
|
||||
}
|
||||
};
|
||||
|
||||
function GetMonthFirstDay(date: any) {
|
||||
// 获取当月第一天
|
||||
const GetMonthFirstDay = (date: any) => {
|
||||
var newDate = new Date(date);
|
||||
newDate.setDate(1);
|
||||
newDate.setHours(0);
|
||||
newDate.setMinutes(0);
|
||||
newDate.setSeconds(0);
|
||||
return newDate;
|
||||
}
|
||||
};
|
||||
|
||||
function GetMonthLastDay(date: any) {
|
||||
// 获取当月最后一天
|
||||
const GetMonthLastDay = (date: any) => {
|
||||
var newDate = new Date(date);
|
||||
newDate.setMonth(newDate.getMonth() + 1);
|
||||
newDate.setDate(0);
|
||||
@ -142,29 +180,83 @@ function GetMonthLastDay(date: any) {
|
||||
newDate.setMinutes(0);
|
||||
newDate.setSeconds(0);
|
||||
return newDate;
|
||||
}
|
||||
};
|
||||
|
||||
// 去掉时分秒的日期
|
||||
function FormatDateDelHMS(date: any) {
|
||||
const FormatDateDelHMS = (date: any) => {
|
||||
var newDate = new Date(date);
|
||||
newDate.setHours(0);
|
||||
newDate.setMinutes(0);
|
||||
newDate.setSeconds(0);
|
||||
return newDate;
|
||||
}
|
||||
};
|
||||
|
||||
function FormatDateEndHMS(date: any) {
|
||||
const FormatDateEndHMS = (date: any) => {
|
||||
var newDate = new Date(date);
|
||||
newDate.setHours(23);
|
||||
newDate.setMinutes(59);
|
||||
newDate.setSeconds(59);
|
||||
return newDate;
|
||||
}
|
||||
};
|
||||
|
||||
// 格式化日期
|
||||
function FormatDate(date: any) {
|
||||
const FormatDate = (date: any) => {
|
||||
return dayjs(date).format('YYYY-MM-DD');
|
||||
}
|
||||
};
|
||||
|
||||
// 获取最近的初始时间 EndTime默认为StartTime + 1(hour)
|
||||
const GetRecentTime = () => {
|
||||
var date = new Date();
|
||||
// 计算最近的开始时间
|
||||
var currentHour = date.getHours();
|
||||
var currentMin = date.getMinutes();
|
||||
|
||||
var starHour = dayjs(date).format('HH');
|
||||
var endHour = dayjs(date).format('HH');
|
||||
var starMin = '00';
|
||||
var endMin = '00';
|
||||
// 如果当前时间已经23 那么starHour和endHour都是23
|
||||
if (currentHour == 23) {
|
||||
starHour = '23';
|
||||
endHour = '23';
|
||||
starMin = '00';
|
||||
endMin = '45';
|
||||
} else {
|
||||
// 判断分钟数属于那个层级
|
||||
if (currentMin < 15) {
|
||||
starMin = '15';
|
||||
endMin = '15';
|
||||
// 计算结束时间
|
||||
date.setHours(date.getHours() + 1);
|
||||
endHour = dayjs(date).format('HH');
|
||||
} else if (currentMin >= 15 && currentMin < 30) {
|
||||
starMin = '30';
|
||||
endMin = '30';
|
||||
|
||||
// 计算结束时间
|
||||
date.setHours(date.getHours() + 1);
|
||||
endHour = dayjs(date).format('HH');
|
||||
} else if (currentMin >= 30 && currentMin < 45) {
|
||||
starMin = '45';
|
||||
endMin = '45';
|
||||
// 计算结束时间
|
||||
date.setHours(date.getHours() + 1);
|
||||
endHour = dayjs(date).format('HH');
|
||||
} else if (currentMin >= 45) {
|
||||
// 分钟 : 00
|
||||
starMin = '00';
|
||||
endMin = '00';
|
||||
|
||||
// 开始时间+1
|
||||
date.setHours(date.getHours() + 1);
|
||||
starHour = dayjs(date).format('HH');
|
||||
// 计算结束时间
|
||||
date.setHours(date.getHours() + 1);
|
||||
endHour = dayjs(date).format('HH');
|
||||
}
|
||||
}
|
||||
return { startTime: starHour + ':' + starMin, endTime: endHour + ':' + endMin };
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@ -241,6 +333,14 @@ function FormatDate(date: any) {
|
||||
color: #666;
|
||||
font-size: 14px;
|
||||
}
|
||||
.icon {
|
||||
display: inline;
|
||||
vertical-align: middle;
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
.finish {
|
||||
text-decoration: line-through 2px var(--el-color-danger) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -9,9 +9,20 @@
|
||||
</template>
|
||||
<el-form :model="state.ruleForm" ref="ruleFormRef" label-width="auto">
|
||||
<el-row :gutter="35">
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
||||
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8" class="mb20 time-padding-right">
|
||||
<el-form-item label="日程时间" prop="scheduleTime" :rules="[{ required: true, message: '日程时间不能为空', trigger: 'blur' }]">
|
||||
<el-date-picker v-model="state.ruleForm.scheduleTime" type="datetime" placeholder="请选择日程时间" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" class="w100" />
|
||||
<el-date-picker v-model="state.ruleForm.scheduleTime" type="datetime" placeholder="请选择日程日期" format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" class="w100" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="5" :sm="5" :md="5" :lg="5" :xl="5" class="mb20 time-padding">
|
||||
<el-form-item prop="startTime" :rules="[{ required: true, message: '开始时间不能为空', trigger: 'blur' }]">
|
||||
<el-time-select v-model="state.ruleForm.startTime" format="HH:mm" start="00:00" end="23:45" step="00:15" class="w100" clearable @change="ChangeEndTime()" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<span>至</span>
|
||||
<el-col :xs="5" :sm="5" :md="5" :lg="5" :xl="5" class="mb20 time-padding">
|
||||
<el-form-item prop="endTime" :rules="[{ required: true, message: '结束时间不能为空', trigger: 'blur' }]">
|
||||
<el-time-select v-model="state.ruleForm.endTime" :min-time="state.ruleForm.startTime" format="HH:mm" start="00:00" end="23:45" step="00:15" class="w100" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
||||
@ -34,7 +45,7 @@
|
||||
|
||||
<script lang="ts" setup name="editSchedule">
|
||||
import { onMounted, reactive, ref } from 'vue';
|
||||
import { dayjs, ElMessageBox, ElMessage, ElNotification } from 'element-plus';
|
||||
import { dayjs, ElMessageBox, ElMessage } from 'element-plus';
|
||||
|
||||
import { getAPI } from '/@/utils/axios-utils';
|
||||
import { SysScheduleApi } from '/@/api-services/api';
|
||||
@ -53,7 +64,7 @@ const state = reactive({
|
||||
});
|
||||
|
||||
// 页面初始化
|
||||
onMounted(async () => {});
|
||||
onMounted(() => {});
|
||||
|
||||
// 打开弹窗
|
||||
const openDialog = (row: any, showRemove: boolean = false) => {
|
||||
@ -104,6 +115,44 @@ const remove = () => {
|
||||
.catch(() => {});
|
||||
};
|
||||
|
||||
// 开始时间改变
|
||||
const ChangeEndTime = () => {
|
||||
// 转成日期
|
||||
var timeStr = state.ruleForm.startTime;
|
||||
var parts = timeStr.split(':');
|
||||
var hours = parseInt(parts[0], 10);
|
||||
var minutes = parseInt(parts[1], 10);
|
||||
|
||||
var startTime = new Date();
|
||||
startTime.setHours(hours);
|
||||
startTime.setMinutes(minutes);
|
||||
|
||||
if (startTime.getHours() < 23) {
|
||||
startTime.setHours(startTime.getHours() + 1);
|
||||
state.ruleForm.endTime = dayjs(startTime).format('HH:mm');
|
||||
} else {
|
||||
state.ruleForm.endTime = '23:45';
|
||||
}
|
||||
};
|
||||
|
||||
// 导出对象
|
||||
defineExpose({ openDialog });
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.editSchedule-container {
|
||||
.no-pre-icon {
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
:v-deep(.el-select__prefix) {
|
||||
display: none !important;
|
||||
}
|
||||
.time-padding-right {
|
||||
padding-right: 1px !important;
|
||||
}
|
||||
.time-padding {
|
||||
padding-left: 10px !important;
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
4
Web/src/views/system/cache/index.vue
vendored
4
Web/src/views/system/cache/index.vue
vendored
@ -7,7 +7,7 @@
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>缓存列表</span>
|
||||
<el-button icon="ele-Refresh" size="small" circle text @click="handleQuery" v-auth="'sysCache:keyList'" />
|
||||
<el-button icon="ele-Refresh" size="small" circle text @click="handleQuery" v-auth="'sysCache/keyList'" />
|
||||
</div>
|
||||
</template>
|
||||
<el-tree
|
||||
@ -29,7 +29,7 @@
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>{{ `缓存数据${state.cacheKey ? `【${state.cacheKey}】` : ''}` }}</span>
|
||||
<el-button icon="ele-Delete" size="small" type="danger" @click="delCache" v-auth="'sysCache:delete'"> 删除缓存 </el-button>
|
||||
<el-button icon="ele-Delete" size="small" type="danger" @click="delCache" v-auth="'sysCache/delete'"> 删除缓存 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
<vue-json-pretty :data="state.cacheValue" showLength showIcon showLineNumber showSelectController />
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysConfig:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysConfig/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -38,7 +38,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysConfig:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysConfig/add'"> 新增 </el-button>
|
||||
<!-- <el-button v-if="state.selectList.length > 0" type="danger" icon="ele-Delete" @click="handleBacthDelete" > 批量删除 </el-button> -->
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
@ -54,10 +54,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysConfig:update'" @click="handleEdit(row)"> </el-button>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysConfig/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysConfig:delete'" :disabled="row.sysFlag === 1" @click="handleDelete(row)"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysConfig/delete'" :disabled="row.sysFlag === 1" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysDictType:page'" :loading="optionsDictType.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysDictType/page'" :loading="optionsDictType.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="optionsDictType.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -32,7 +32,7 @@
|
||||
<vxe-grid ref="xGridDictType" class="xGrid-style" v-bind="optionsDictType" v-on="gridEventsDictType" @cell-click="handleDictData">
|
||||
<template #toolbar_buttons>
|
||||
<el-icon size="16" style="margin-right: 3px; margin-top: 2px; display: inline; vertical-align: middle"><ele-Collection /></el-icon>字典
|
||||
<el-button type="primary" style="margin-left: 10px" icon="ele-Plus" @click="handleAdd" v-auth="'sysDictType:add'"> 新增 </el-button>
|
||||
<el-button type="primary" style="margin-left: 10px" icon="ele-Plus" @click="handleAdd" v-auth="'sysDictType/add'"> 新增 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
@ -47,10 +47,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysDictType:update'" @click="handleEdit(row)"> </el-button>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysDictType/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysDictType:delete'" @click="handleDeleteDictType(row)"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysDictType/delete'" @click="handleDeleteDictType(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
@ -77,7 +77,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQueryDictData" v-auth="'sysDictType:page'" :loading="optionsDictData.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQueryDictData" v-auth="'sysDictType/page'" :loading="optionsDictData.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQueryDictData" :loading="optionsDictData.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -88,7 +88,7 @@
|
||||
<vxe-grid ref="xGridDictData" class="xGrid-style" v-bind="optionsDictData" v-on="gridEventsDictData">
|
||||
<template #toolbar_buttons>
|
||||
<el-icon size="16" style="margin-right: 3px; margin-top: 2px; display: inline; vertical-align: middle"><ele-Collection /></el-icon>字典值
|
||||
<el-button type="primary" style="margin-left: 10px" icon="ele-Plus" @click="handleAddDictData" v-auth="'sysDictType:add'"> 新增 </el-button>
|
||||
<el-button type="primary" style="margin-left: 10px" icon="ele-Plus" @click="handleAddDictData" v-auth="'sysDictType/add'"> 新增 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
@ -110,10 +110,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysDictType:update'" @click="handleEditDictData(row)"> </el-button>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysDictType/update'" @click="handleEditDictData(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysDictType:delete'" @click="handleDeleteDictData(row)"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysDictType/delete'" @click="handleDeleteDictData(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysFile:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysFile/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -36,7 +36,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="showUpload" v-auth="'sysFile:uploadFile'"> 上传 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="showUpload" v-auth="'sysFile/uploadFile'"> 上传 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
@ -60,16 +60,16 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysFile:update'" />
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysFile/update'" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysFile:delete'" />
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysFile/delete'" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="预览" placement="top">
|
||||
<el-button icon="ele-View" size="small" text type="primary" @click="showPreviewDialog(row)" v-auth="'sysFile:delete'" />
|
||||
<el-button icon="ele-View" size="small" text type="primary" @click="showPreviewDialog(row)" v-auth="'sysFile/preview'" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="下载" placement="top">
|
||||
<el-button icon="ele-Download" size="small" text type="primary" @click="handleDownload(row)" v-auth="'sysFile:downloadFile'" />
|
||||
<el-button icon="ele-Download" size="small" text type="primary" @click="handleDownload(row)" v-auth="'sysFile/downloadFile'" />
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery(true)" v-auth="'sysJob:pageJobDetail'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery(true)" v-auth="'sysJob/pageJobDetail'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -31,7 +31,7 @@
|
||||
<template #toolbar_buttons>
|
||||
<el-button-group>
|
||||
<el-tooltip content="增加作业">
|
||||
<el-button icon="ele-CirclePlus" @click="handleAdd" v-auth="'sysJob:addJobDetail'"> </el-button>
|
||||
<el-button icon="ele-CirclePlus" @click="handleAdd" v-auth="'sysJob/addJobDetail'"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="启动所有作业">
|
||||
<el-button icon="ele-VideoPlay" @click="startAllJob" />
|
||||
@ -191,10 +191,10 @@
|
||||
<el-button size="small" type="primary" icon="ele-CircleClose" text @click="cancelJob(row)" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="编辑作业">
|
||||
<el-button size="small" type="primary" icon="ele-Edit" text @click="handleEdit(row)" v-auth="'sysJob:updateJobDetail'"> </el-button>
|
||||
<el-button size="small" type="primary" icon="ele-Edit" text @click="handleEdit(row)" v-auth="'sysJob/updateJobDetail'"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除作业">
|
||||
<el-button size="small" type="danger" icon="ele-Delete" text @click="handleDelete(row)" v-auth="'sysJob:deleteJobDetail'"> </el-button>
|
||||
<el-button size="small" type="danger" icon="ele-Delete" text @click="handleDelete(row)" v-auth="'sysJob/deleteJobDetail'"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<template #pager>
|
||||
|
||||
@ -16,10 +16,10 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysLdap:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysLdap/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
<el-button icon="ele-Filter" type="primary" :loading="options.loading" @click="state.visible = true" v-auth="'sysLdap:page'" style="margin-left: 12px"> 高级查询</el-button>
|
||||
<el-button icon="ele-Filter" type="primary" :loading="options.loading" @click="state.visible = true" v-auth="'sysLdap/page'" style="margin-left: 12px"> 高级查询</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
@ -53,7 +53,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysLdap:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysLdap/add'"> 新增 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
@ -68,12 +68,12 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysLdap:update'" @click="handleEdit(row)"> </el-button>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysLdap/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysLdap:delete'" @click="handleDelete(row)"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysLdap/delete'" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-button icon="ele-Refresh" text type="danger" v-auth="'sysLdap:syncUser'" @click="handleSync(row)">同步域账户</el-button>
|
||||
<el-button icon="ele-Refresh" text type="danger" v-auth="'sysLdap/syncUser'" @click="handleSync(row)">同步域账户</el-button>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</el-card>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysDifflog:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysDifflog/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -31,7 +31,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button icon="ele-DeleteFilled" type="danger" @click="handleClear" v-auth="'sysDifflog:clear'"> 清空 </el-button>
|
||||
<el-button icon="ele-DeleteFilled" type="danger" @click="handleClear" v-auth="'sysDifflog/clear'"> 清空 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools>
|
||||
<vxe-button circle icon="vxe-icon-upload" name="导入" code="showImport" class="mr12" />
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysExlog:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysExlog/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -41,7 +41,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents" @cell-dblclick="handleView">
|
||||
<template #toolbar_buttons>
|
||||
<el-button icon="ele-DeleteFilled" type="danger" @click="handleClear" v-auth="'sysExlog:clear'"> 清空 </el-button>
|
||||
<el-button icon="ele-DeleteFilled" type="danger" @click="handleClear" v-auth="'sysExlog/clear'"> 清空 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysOplog:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysOplog/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -41,7 +41,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents" @cell-dblclick="handleView">
|
||||
<template #toolbar_buttons>
|
||||
<el-button icon="ele-DeleteFilled" type="danger" @click="handleClear" v-auth="'sysOplog:clear'"> 清空 </el-button>
|
||||
<el-button icon="ele-DeleteFilled" type="danger" @click="handleClear" v-auth="'sysOplog/clear'"> 清空 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysVislog:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysVislog/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -41,7 +41,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button icon="ele-DeleteFilled" type="danger" @click="handleClear" v-auth="'sysVislog:clear'"> 清空 </el-button>
|
||||
<el-button icon="ele-DeleteFilled" type="danger" @click="handleClear" v-auth="'sysVislog/clear'"> 清空 </el-button>
|
||||
<el-button icon="ele-MapLocation" type="primary" @click="handleMap"> 热力图 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
<el-radio-group v-model="state.ruleForm.type">
|
||||
<el-radio :value="1">目录</el-radio>
|
||||
<el-radio :value="2">菜单</el-radio>
|
||||
<el-radio :value="3">按钮</el-radio>
|
||||
<!-- <el-radio :value="3">按钮</el-radio> -->
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysMenu:list'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysMenu/list'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -35,7 +35,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysMenu:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysMenu/add'"> 新增 </el-button>
|
||||
<el-button-group style="padding-left: 12px">
|
||||
<el-button type="primary" icon="ele-Expand" @click="handleExpand"> 全部展开 </el-button>
|
||||
<el-button type="primary" icon="ele-Fold" @click="handleFold"> 全部折叠 </el-button>
|
||||
@ -63,10 +63,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysMenu:update'" @click="handleEdit(row)"> </el-button>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysMenu/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysMenu:delete'" @click="handleDelete(row)"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysMenu/delete'" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysNotice:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysNotice/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -34,7 +34,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysNotice:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysNotice/add'"> 新增 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
@ -53,12 +53,12 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysNotice:update'" :disabled="row.status === 1" />
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysNotice/update'" :disabled="row.status === 1" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysNotice:delete'" :disabled="row.status === 1" />
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysNotice/delete'" :disabled="row.status === 1" />
|
||||
</el-tooltip>
|
||||
<el-button icon="ele-Position" size="small" text type="primary" @click="handlePublic(row)" v-auth="'sysNotice:public'" :disabled="row.status === 1">发布</el-button>
|
||||
<el-button icon="ele-Position" size="small" text type="primary" @click="handlePublic(row)" v-auth="'sysNotice/public'" :disabled="row.status === 1">发布</el-button>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</el-card>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysOAuthUser:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysOAuthUser/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -55,10 +55,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysOAuthUser:update'" :disabled="row.status === 1" />
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysOAuthUser/update'" :disabled="row.status === 1" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysOAuthUser:delete'" :disabled="row.status === 1" />
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysOAuthUser/delete'" :disabled="row.status === 1" />
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
<el-button icon="ele-Position" text type="primary" @click="openSendMessage(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="强制下线" placement="top">
|
||||
<el-button icon="ele-CircleCloseFilled" text type="danger" v-auth="'sysOnlineUser:forceOffline'" @click="forceOffline(row)"> </el-button>
|
||||
<el-button icon="ele-CircleCloseFilled" text type="danger" v-auth="'sysOnlineUser/forceOffline'" @click="forceOffline(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysOpenAccess:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysOpenAccess/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -26,7 +26,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysOpenAccess:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysOpenAccess/add'"> 新增 </el-button>
|
||||
<el-button icon="ele-QuestionFilled" @click="openHelp"> 说明 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
@ -38,10 +38,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysOpenAccess:update'" :disabled="row.status === 1" />
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysOpenAccess/update'" :disabled="row.status === 1" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysOpenAccess:delete'" :disabled="row.status === 1" />
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysOpenAccess/delete'" :disabled="row.status === 1" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="生成签名" placement="top">
|
||||
<el-button icon="ele-EditPen" size="small" text type="warning" @click="handleSign(row)" />
|
||||
|
||||
@ -89,7 +89,7 @@ const props = defineProps({
|
||||
title: String,
|
||||
orgData: Array<SysOrg>,
|
||||
});
|
||||
const emits = defineEmits(['handleQuery']);
|
||||
const emits = defineEmits(['reload']);
|
||||
const ruleFormRef = ref();
|
||||
const state = reactive({
|
||||
isShowDialog: false,
|
||||
@ -111,7 +111,7 @@ const openDialog = (row: any) => {
|
||||
|
||||
// 关闭弹窗
|
||||
const closeDialog = () => {
|
||||
emits('handleQuery', true);
|
||||
emits('reload', true);
|
||||
state.isShowDialog = false;
|
||||
};
|
||||
|
||||
|
||||
@ -38,6 +38,7 @@
|
||||
:filter-node-method="filterNode"
|
||||
@node-click="nodeClick"
|
||||
:show-checkbox="state.isShowCheckbox"
|
||||
:default-expanded-keys="state.orgData[0] && [state.orgData[0].id]"
|
||||
:default-checked-keys="state.ownOrgData"
|
||||
highlight-current
|
||||
:check-strictly="!state.strictly"
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px; flex: 1">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysOrg:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysOrg/add'"> 新增 </el-button>
|
||||
<el-button-group style="padding-left: 12px">
|
||||
<el-button type="primary" icon="ele-Expand" @click="handleExpand"> 全部展开 </el-button>
|
||||
<el-button type="primary" icon="ele-Fold" @click="handleFold"> 全部折叠 </el-button>
|
||||
@ -63,10 +63,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysOrg:update'"></el-button>
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysOrg/update'"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysOrg:delete'"></el-button>
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysOrg/delete'"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
@ -81,7 +81,6 @@
|
||||
<script lang="ts" setup name="sysOrg">
|
||||
import { onMounted, reactive, ref, nextTick } from 'vue';
|
||||
import { ElMessageBox, ElMessage } from 'element-plus';
|
||||
import { auth } from '/@/utils/authFunction';
|
||||
import { VxeGridInstance, VxeGridListeners } from 'vxe-table';
|
||||
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysPlugin:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysPlugin/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -26,7 +26,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysPlugin:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysPlugin/add'"> 新增 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
@ -41,10 +41,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysPlugin:update'" @click="handleEdit(row)"> </el-button>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysPlugin/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysPlugin:delete'" @click="handleDelete(row)"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysPlugin/delete'" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<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/page'"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -31,7 +31,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysPos:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysPos/add'"> 新增 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
@ -46,10 +46,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysPos:update'" @click="handleEdit(row)"> </el-button>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysPos/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysPos:delete'" @click="handleDelete(row)"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysPos/delete'" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysPrint:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysPrint/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -26,7 +26,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysPrint:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysPrint/add'"> 新增 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
@ -41,10 +41,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysPrint:update'" @click="handleEdit(row)"> </el-button>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysPrint/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysPrint:delete'" @click="handleDelete(row)"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysPrint/delete'" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysRegion:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysRegion/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -37,8 +37,8 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px; flex: 1">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents" :tree-config="{ transform: true, parentField: 'pid' }">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysRegion:add'"> 新增 </el-button>
|
||||
<el-button type="danger" icon="ele-Lightning" @click="handlSync" v-auth="'sysRegion:add'"> 同步统计局 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysRegion/add'"> 新增 </el-button>
|
||||
<el-button type="danger" icon="ele-Lightning" @click="handlSync" v-auth="'sysRegion/add'"> 同步统计局 </el-button>
|
||||
<el-button-group style="padding-left: 12px">
|
||||
<el-button type="primary" icon="ele-Expand" @click="handleExpand"> 全部展开 </el-button>
|
||||
<el-button type="primary" icon="ele-Fold" @click="handleFold"> 全部折叠 </el-button>
|
||||
@ -50,10 +50,10 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysRegion:update'" @click="handleEdit(row)"> </el-button>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysRegion/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysRegion:delete'" @click="handleDelete(row)"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysRegion/delete'" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysRole:page'"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysRole/page'"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -31,7 +31,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysRole:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysRole/add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Link" @click="openBaseApi" plain> 设置基础接口资源 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools></template>
|
||||
@ -54,13 +54,13 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysRole:update'"></el-button>
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysRole/update'"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysRole:delete'"></el-button>
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysRole/delete'"></el-button>
|
||||
</el-tooltip>
|
||||
<el-button icon="ele-Link" size="small" text type="primary" @click="openGrantApi(row)" v-auth="'sysRole:grantApi'"> 接口资源 </el-button>
|
||||
<el-button icon="ele-OfficeBuilding" size="small" text type="primary" @click="openGrantData(row)" v-auth="'sysRole:grantDataScope'">数据范围</el-button>
|
||||
<el-button icon="ele-Link" size="small" text type="primary" @click="openGrantApi(row)" v-auth="'sysRole/grantApi'"> 接口资源 </el-button>
|
||||
<el-button icon="ele-OfficeBuilding" size="small" text type="primary" @click="openGrantData(row)" v-auth="'sysRole/grantDataScope'">数据范围</el-button>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</el-card>
|
||||
@ -75,7 +75,6 @@
|
||||
<script lang="ts" setup name="sysRole">
|
||||
import { onMounted, reactive, ref } from 'vue';
|
||||
import { ElMessageBox, ElMessage } from 'element-plus';
|
||||
import { auth } from '/@/utils/authFunction';
|
||||
import { VxeGridInstance, VxeGridListeners, VxeGridPropTypes } from 'vxe-table';
|
||||
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
|
||||
import { Local } from '/@/utils/storage';
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysTenant:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysTenant/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -31,7 +31,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button icon="ele-Plus" type="primary" @click="handleAdd" v-auth="'sysTenant:add'"> 新增 </el-button>
|
||||
<el-button icon="ele-Plus" type="primary" @click="handleAdd" v-auth="'sysTenant/add'"> 新增 </el-button>
|
||||
<el-button type="danger" icon="ele-Refresh" @click="syncTenantDb" plain> 同步所有租户数据库 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
@ -77,16 +77,16 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysTenant:update'" />
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysTenant/update'" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" @click="handleDelete(row)" :v-auth="'sysTenant:delete'" :disabled="row.id == 1300000000001"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" @click="handleDelete(row)" :v-auth="'sysTenant/delete'" :disabled="row.id == 1300000000001"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="重置密码" placement="top">
|
||||
<el-button icon="ele-RefreshLeft" text type="danger" @click="resetTenantPwd(row)" :v-auth="'sysTenant:resetPwd'"> </el-button>
|
||||
<el-button icon="ele-RefreshLeft" text type="danger" @click="resetTenantPwd(row)" :v-auth="'sysTenant/resetPwd'"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-button icon="ele-Coin" size="small" text type="danger" @click="createTenant(row)" v-auth="'sysTenant:createDb'" :disabled="row.tenantType == 0"> 创建库 </el-button>
|
||||
<el-button icon="ele-Menu" size="small" text type="primary" @click="openGrantMenu(row)" :v-auth="'sysTenant:grantMenu'"> 授权菜单 </el-button>
|
||||
<el-button icon="ele-Coin" size="small" text type="danger" @click="createTenant(row)" v-auth="'sysTenant/createDb'" :disabled="row.tenantType == 0"> 创建库 </el-button>
|
||||
<el-button icon="ele-Menu" size="small" text type="primary" @click="openGrantMenu(row)" :v-auth="'sysTenant/grantMenu'"> 授权菜单 </el-button>
|
||||
<el-button icon="ele-Link" size="small" text type="primary" @click="openGrantApi(row)"> 授权接口 </el-button>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
@ -154,7 +154,7 @@ const options = useVxeTable<TenantOutput>(
|
||||
{ field: 'slaveConnections', title: '从库连接', showOverflow: 'tooltip' },
|
||||
{ field: 'orderNo', title: '排序', width: 80, showOverflow: 'tooltip' },
|
||||
{ field: '', title: '修改记录', width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
|
||||
{ title: '操作', fixed: 'right', width: 380, showOverflow: true, slots: { default: 'row_buttons' } },
|
||||
{ title: '操作', fixed: 'right', width: 300, showOverflow: true, slots: { default: 'row_buttons' } },
|
||||
],
|
||||
},
|
||||
// vxeGrid配置参数(此处可覆写任何参数),参考vxe-table官方文档
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<el-tabs v-loading="state.loading" v-model="state.selectedTabName">
|
||||
<el-tab-pane label="基础信息" style="height: 550px">
|
||||
<el-tab-pane label="基础信息" style="height: 550px; overflow-y: auto; overflow-x: hidden">
|
||||
<el-form :model="state.ruleForm" ref="ruleFormRef" label-width="auto">
|
||||
<el-row :gutter="10">
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||
@ -144,7 +144,7 @@
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="档案信息" style="height: 550px">
|
||||
<el-tab-pane label="档案信息" style="height: 550px; overflow-y: auto; overflow-x: hidden">
|
||||
<el-form :model="state.ruleForm" label-width="auto">
|
||||
<el-row :gutter="10">
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
<div class="image-signature">
|
||||
<el-image :src="userInfos.signature" fit="contain" alt="电子签名" loading="lazy" style="width: 100%; height: 100%"> </el-image>
|
||||
</div>
|
||||
<el-button icon="ele-Edit" type="primary" @click="openSignDialog" v-auth="'sysFile:uploadSignature'"> 电子签名 </el-button>
|
||||
<el-button icon="ele-Edit" type="primary" @click="openSignDialog" v-auth="'sysFile/uploadSignature'"> 电子签名 </el-button>
|
||||
<el-upload
|
||||
ref="uploadSignRef"
|
||||
action=""
|
||||
@ -45,7 +45,7 @@
|
||||
:on-exceed="uploadSignFileExceed"
|
||||
style="display: inline-block; margin-left: 12px; position: absolute"
|
||||
>
|
||||
<el-button icon="ele-UploadFilled" v-auth="'sysFile:uploadSignature'">上传手写签名</el-button>
|
||||
<el-button icon="ele-UploadFilled" v-auth="'sysFile/uploadSignature'">上传手写签名</el-button>
|
||||
</el-upload>
|
||||
</el-card>
|
||||
</el-col>
|
||||
@ -101,7 +101,7 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
||||
<el-form-item>
|
||||
<el-button icon="ele-SuccessFilled" type="primary" @click="submitUserBase" v-auth="'sysUser:baseInfo'"> 保存基本信息 </el-button>
|
||||
<el-button icon="ele-SuccessFilled" type="primary" @click="submitUserBase" v-auth="'sysUser/baseInfo'"> 保存基本信息 </el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -123,7 +123,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button icon="ele-Refresh" @click="resetPassword">重 置</el-button>
|
||||
<el-button icon="ele-SuccessFilled" type="primary" @click="submitPassword" v-auth="'sysUser:changePwd'">确 定</el-button>
|
||||
<el-button icon="ele-SuccessFilled" type="primary" @click="submitPassword" v-auth="'sysUser/changePwd'">确 定</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-button-group>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysUser:page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysUser/page'" :loading="options.loading"> 查询 </el-button>
|
||||
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||
</el-button-group>
|
||||
</el-col>
|
||||
@ -42,7 +42,7 @@
|
||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px; flex: 1">
|
||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||
<template #toolbar_buttons>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysUser:add'"> 新增 </el-button>
|
||||
<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'sysUser/add'"> 新增 </el-button>
|
||||
</template>
|
||||
<template #toolbar_tools> </template>
|
||||
<template #empty>
|
||||
@ -64,20 +64,20 @@
|
||||
<el-tag v-else>其他</el-tag>
|
||||
</template>
|
||||
<template #row_status="{ row }">
|
||||
<el-switch v-model="row.status" :active-value="1" :inactive-value="2" size="small" @change="changeStatus(row)" v-auth="'sysUser:setStatus'" />
|
||||
<el-switch v-model="row.status" :active-value="1" :inactive-value="2" size="small" @change="changeStatus(row)" v-auth="'sysUser/setStatus'" />
|
||||
</template>
|
||||
<template #row_record="{ row }">
|
||||
<ModifyRecord :data="row" />
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysUser:update'" @click="handleEdit(row)"> </el-button>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysUser/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysUser:delete'" @click="handleDelete(row)"> </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysUser/delete'" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-button icon="ele-RefreshLeft" text type="danger" v-auth="'sysUser:resetPwd'" @click="resetQueryPwd(row)">重置密码</el-button>
|
||||
<el-button icon="ele-Unlock" text type="primary" v-auth="'sysUser:unlockLogin'" @click="handleUnlock(row)">解除锁定</el-button>
|
||||
<el-button icon="ele-RefreshLeft" text type="danger" v-auth="'sysUser/resetPwd'" @click="resetQueryPwd(row)">重置密码</el-button>
|
||||
<el-button icon="ele-Unlock" text type="primary" v-auth="'sysUser/unlockLogin'" @click="handleUnlock(row)">解除锁定</el-button>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</el-card>
|
||||
@ -91,7 +91,6 @@
|
||||
<script lang="ts" setup name="sysUser">
|
||||
import { onMounted, reactive, ref, onActivated } from 'vue';
|
||||
import { ElMessageBox, ElMessage } from 'element-plus';
|
||||
import { auth } from '/@/utils/authFunction';
|
||||
import { VxeGridInstance, VxeGridListeners, VxeGridPropTypes } from 'vxe-table';
|
||||
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
|
||||
import { Local } from '/@/utils/storage';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user