From 98e3f7ab73af0e0c26195a28a7158d4c312eb763 Mon Sep 17 00:00:00 2001 From: yxw <17074267@qq.com> Date: Mon, 15 Dec 2025 18:28:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4UI=E5=B8=83=E5=B1=80=EF=BC=8C?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=A8=A1=E7=89=88=E6=96=B0=E5=A2=9E=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Layout/MainLayout.razor | 3 + .../Atomx.Admin.Client/Pages/Home.razor | 44 +-- .../Pages/SiteApps/AppVersionList.razor | 18 +- .../Pages/Systems/AdminList.razor | 283 ++++++++++-------- .../Pages/Systems/Info.razor | 8 + .../Pages/Systems/PermissionEdit.razor | 167 ++++++----- .../Pages/Systems/RoleList.razor | 209 +++++++------ .../Pages/Systems/Tools.razor | 9 + .../Controllers/AppVersionController.cs | 2 + Atomx.Admin/Atomx.Admin/wwwroot/app.css | 90 +++++- Atomx.Common/Entities/MessageTemplate.cs | 5 + 11 files changed, 510 insertions(+), 328 deletions(-) create mode 100644 Atomx.Admin/Atomx.Admin.Client/Pages/Systems/Info.razor create mode 100644 Atomx.Admin/Atomx.Admin.Client/Pages/Systems/Tools.razor diff --git a/Atomx.Admin/Atomx.Admin.Client/Layout/MainLayout.razor b/Atomx.Admin/Atomx.Admin.Client/Layout/MainLayout.razor index e8c7074..b127ea1 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Layout/MainLayout.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Layout/MainLayout.razor @@ -47,6 +47,9 @@ @Body + + + diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Home.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Home.razor index 3a8532b..b0ea21b 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Home.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Home.razor @@ -1,24 +1,32 @@ @page "/" +@page "/{locale}/" @attribute [Authorize] + -Home -Hello, world! -Welcome to your new app. + Hello, world! - - 产品分类 - - - 产品分类编辑 - - - 多语言设置 - - - 多语言资源设置 - - - 角色管理 - \ No newline at end of file + Welcome to your new app. + + + 产品分类 + + + 产品分类编辑 + + + 多语言设置 + + + 多语言资源设置 + + + 角色管理 + + + +@code { + [Parameter] + public string Locale { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/SiteApps/AppVersionList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/SiteApps/AppVersionList.razor index facab5a..be2b21b 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/SiteApps/AppVersionList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/SiteApps/AppVersionList.razor @@ -1,9 +1,25 @@ @page "/system/app/version/list" +@page "/{locale}/system/app/version/list" @inject ILogger Logger @attribute [Authorize] + + + + + 管理后台 + 系统配置 + 版本管理 + + + + App Version List + + + @code { - + [Parameter] + public string Locale { get; set; } = string.Empty; } diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/AdminList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/AdminList.razor index 2b01207..47222be 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/AdminList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/AdminList.razor @@ -1,149 +1,165 @@ @page "/admin/list" +@page "/{locale}/admin/list" @inject ILogger Logger @attribute [Authorize] -管理员账号管理 + + + + 管理后台 + 系统功能 + 版本管理 + + + + + + + + + + + -管理员帐号 - - - - - - - - + + + 查询 + 重置 + + + + + + + + + + + 帐号列表 + + + 新增 + + + + + + + + - - - 查询 - 重置 - - - - - - - - - - - 帐号列表 - - \ - 新增 - - - - - - - - + + + + @if (context.Status == 1) + { + - - - - @if (context.Status == 1) + } + else + { + + } + + + + + + + + + + + + OnEditClick(context)"> 编辑 + + + + + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @if (context.Id > 0) { - - + + + 重置密码 + + } - else + @if (context.Id == 0) { - + + + } - - - - - - - - - + @if ((context.Id > 0 && context.SetPassword) || context.Id == 0) + { - - OnEditClick(context)"> 编辑 - - - - - 删除 - - - - - - - - - - - - - - - - + + + + } + @if ((context.Id > 0 && context.SetPassword) || context.Id == 0) + { - - - - - - - - - - - - - @if (context.Id > 0) - { - - - 重置密码 - - - } - @if (context.Id == 0) - { - - - - } - @if ((context.Id > 0 && context.SetPassword) || context.Id == 0) - { - - - - - } - @if ((context.Id > 0 && context.SetPassword) || context.Id == 0) - { - - - - - } - - - 禁用 - 启用 - - - - 保存 - - - + + + + } + + + 禁用 + 启用 + + + + 保存 + + + + + @code { + [Parameter] + public string Locale { get; set; } = string.Empty; + [SupplyParameterFromQuery] int? Page { get; set; } @@ -276,6 +292,11 @@ } } + private void OnPageChanged(PaginationEventArgs args) + { + OnSearch(args.Page); + } + void OnCreateClick() { model = new(); @@ -325,7 +346,7 @@ { CloseDrawer(); - _= LoadList(); + _ = LoadList(); await ModalService.InfoAsync(new ConfirmOptions() { Title = "提示", Content = "数据提交成功!" }); } else diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/Info.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/Info.razor new file mode 100644 index 0000000..02477c7 --- /dev/null +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/Info.razor @@ -0,0 +1,8 @@ +@page "/system/info" +@page "/{locale}/system/info" +Info + +@code { + [Parameter] + public string Locale { get; set; } = string.Empty; +} diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/PermissionEdit.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/PermissionEdit.razor index b2f2e66..174f481 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/PermissionEdit.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/PermissionEdit.razor @@ -1,90 +1,103 @@ @page "/system/role/permission/{RoleId:long}" +@page "/{locale}/system/role/permission/{RoleId:long}" @attribute [Authorize] @inject ILogger Logger -权限设置 - - 编辑角色权限 - - - - 为角色 @role?.Name 设置权限 - - - - @if (!PermissionGroups.Any()) - { - - 暂无权限可设置 - - } - else - { - @foreach (var group in PermissionGroups) - { - - - - - ToggleAllPermissions(group, (bool)e.Value!)" - checked="@group.PermissionItems.All(p => p.IsSelected)" /> - - - - - - @group.CategoryName - - - (@group.PermissionItems.Count(p => p.IsSelected)/@group.PermissionItems.Count) - - - - - - - @foreach (var permission in group.PermissionItems) + + + + 管理后台 + 系统功能 + 权限编辑 + + + + + + + + 为角色 @role?.Name 设置权限 + + + + @if (!PermissionGroups.Any()) + { + + 暂无权限可设置 + + } + else + { + @foreach (var group in PermissionGroups) { - - - - - + + + + + ToggleAllPermissions(group, (bool)e.Value!)" + checked="@group.PermissionItems.All(p => p.IsSelected)" /> + - - - @permission.Description - @permission.Name - - - + + + + @group.CategoryName + + + (@group.PermissionItems.Count(p => p.IsSelected)/@group.PermissionItems.Count) + + + + + + + @foreach (var permission in group.PermissionItems) + { + + + + + + + + + @permission.Description + @permission.Name + + + + } + } - - } - } - - - - - @if (isSaving) - { - 保存中... - } - else - { - 保存权限设置 - } + } + + + + + @if (isSaving) + { + 保存中... + } + else + { + 保存权限设置 + } - - - + + + - - + + + + @code { + [Parameter] + public string Locale { get; set; } = string.Empty; + [Parameter] public long RoleId { get; set; } diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/RoleList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/RoleList.razor index ccf3511..c15d8a1 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/RoleList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/RoleList.razor @@ -1,112 +1,123 @@ @page "/system/role/list" +@page "/{locale}/system/role/list" @attribute [Authorize] @inject ILogger Logger -角色管理 + + + + 管理后台 + 系统功能 + 角色管理 + + + + + + + + 角色列表 + + 新增 + + + + + + + + + @if (context.IsSystemRole) + { + + } + else + { + + } + + + + @if (context.Enabled) + { + -角色管理 + } + else + { + + } + - - - - - 角色列表 - - 新增 - - - - - - - - - @if (context.IsSystemRole) - { - - } - else - { - - } - - - - @if (context.Enabled) - { - + + + + + 权限管理 + + + + + - } - else - { - - } - + + OnEditClick(context)"> 编辑 + + @if (!context.IsSystemRole) + { + + + + 删除 + + + } + + + + + + + + + + + + + + + + + + - - - - - 权限管理 - - - - - - - - OnEditClick(context)"> 编辑 - - @if (!context.IsSystemRole) - { - - - - 删除 - - - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 保存 - - - + + + + + + + + + + + + + + 保存 + + + + + @code { + [Parameter] + public string Locale { get; set; } = string.Empty; + [SupplyParameterFromQuery] int? Page { get; set; } diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/Tools.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/Tools.razor new file mode 100644 index 0000000..b0a5a07 --- /dev/null +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/Tools.razor @@ -0,0 +1,9 @@ +@page "/system/tools" +@page "/{locale}/system/tools" + +Tools + +@code { + [Parameter] + public string Locale { get; set; } = string.Empty; +} diff --git a/Atomx.Admin/Atomx.Admin/Controllers/AppVersionController.cs b/Atomx.Admin/Atomx.Admin/Controllers/AppVersionController.cs index be82888..822f432 100644 --- a/Atomx.Admin/Atomx.Admin/Controllers/AppVersionController.cs +++ b/Atomx.Admin/Atomx.Admin/Controllers/AppVersionController.cs @@ -7,6 +7,7 @@ using Atomx.Data; using Atomx.Data.Services; using Atomx.Utils.Extension; using MapsterMapper; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -14,6 +15,7 @@ namespace Atomx.Admin.Controllers { [Route("api/[controller]")] [ApiController] + [Authorize] public class AppVersionController : ControllerBase { readonly ILogger _logger; diff --git a/Atomx.Admin/Atomx.Admin/wwwroot/app.css b/Atomx.Admin/Atomx.Admin/wwwroot/app.css index 0f972ff..128c0e0 100644 --- a/Atomx.Admin/Atomx.Admin/wwwroot/app.css +++ b/Atomx.Admin/Atomx.Admin/wwwroot/app.css @@ -30,7 +30,7 @@ a, .btn-link { } .btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { - box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb; + box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb; } .content { @@ -74,4 +74,90 @@ h1:focus { .form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder { text-align: start; -} \ No newline at end of file +} + + + +html, +body, +#root, +#app, +app { + height: 100%; +} + +.colorWeak { + filter: invert(80%); +} + +.ant-layout { + min-height: 100vh; +} + +canvas { + display: block; +} + +body { + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +ul, +ol { + list-style: none; +} + +.action { + cursor: pointer; +} + +.ant-page-header { + background: #f0f2f5; + padding: 12px 24px 12px; +} + +.ant-breadcrumb + .ant-page-header-heading { + padding: 0px; + margin: 0px; +} + +.ant-pro-page-container-children-content { + margin: 0 24px 0; +} + +.ant-page-header-heading-extra { + margin: 0px; +} + +.ant-page-header-content { + padding: 0px; +} + +@media (max-width: 480px) { + .ant-table { + width: 100%; + overflow-x: auto; + } + + .ant-table-thead > tr > th, + .ant-table-tbody > tr > th, + .ant-table-thead > tr > td, + .ant-table-tbody > tr > td { + white-space: pre; + } + + .ant-table-thead > tr > th > span, + .ant-table-tbody > tr > th > span, + .ant-table-thead > tr > td > span, + .ant-table-tbody > tr > td > span { + display: block; + } +} + +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + body .ant-design-pro > .ant-layout { + min-height: 100vh; + } +} diff --git a/Atomx.Common/Entities/MessageTemplate.cs b/Atomx.Common/Entities/MessageTemplate.cs index 321e7bd..5c23b13 100644 --- a/Atomx.Common/Entities/MessageTemplate.cs +++ b/Atomx.Common/Entities/MessageTemplate.cs @@ -16,6 +16,11 @@ namespace Atomx.Common.Entities [Key] public long Id { get; set; } + /// + /// 语言编码 + /// + public int LanguageId { get; set; } + /// /// 消息模板类型 ///
暂无权限可设置