From b7a37b09c70c4743147bd06c0b4e36886067d76f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E9=B9=B0?= Date: Sun, 5 Oct 2025 18:49:00 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E3=80=81=E6=9C=AA=E8=AE=BE=E7=BD=AE=E7=94=A8=E6=88=B7=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E6=97=B6=EF=BC=8C=E4=BB=8E=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6(App.json)=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Admin.NET/Admin.NET.Core/Entity/SysLang.cs | 2 +- Admin.NET/Admin.NET.Core/Entity/SysUser.cs | 4 ++-- .../Service/LangText/SysLangTextCacheService.cs | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Admin.NET/Admin.NET.Core/Entity/SysLang.cs b/Admin.NET/Admin.NET.Core/Entity/SysLang.cs index 54ffd6ce4..8be07069a 100644 --- a/Admin.NET/Admin.NET.Core/Entity/SysLang.cs +++ b/Admin.NET/Admin.NET.Core/Entity/SysLang.cs @@ -19,7 +19,7 @@ public class SysLang : EntityBase public string Name { get; set; } /// - /// 语言代码(如 zh_CN) + /// 语言代码(如 zh-CN) /// [SugarColumn(ColumnDescription = "语言代码")] public string Code { get; set; } diff --git a/Admin.NET/Admin.NET.Core/Entity/SysUser.cs b/Admin.NET/Admin.NET.Core/Entity/SysUser.cs index 1e0e63486..fb0943d66 100644 --- a/Admin.NET/Admin.NET.Core/Entity/SysUser.cs +++ b/Admin.NET/Admin.NET.Core/Entity/SysUser.cs @@ -314,10 +314,10 @@ public partial class SysUser : EntityBaseTenantOrg public string? Signature { get; set; } /// - /// 语言代码(如 zh_CN) + /// 语言代码(如 zh-CN) /// [SugarColumn(ColumnDescription = "语言代码")] - public string LangCode { get; set; } = "zh_CN"; + public string LangCode { get; set; } = App.GetOptions().DefaultCulture; /// /// 验证超级管理员类型,若账号类型为超级管理员则报错 diff --git a/Admin.NET/Admin.NET.Core/Service/LangText/SysLangTextCacheService.cs b/Admin.NET/Admin.NET.Core/Service/LangText/SysLangTextCacheService.cs index a41b38e25..d6c39a627 100644 --- a/Admin.NET/Admin.NET.Core/Service/LangText/SysLangTextCacheService.cs +++ b/Admin.NET/Admin.NET.Core/Service/LangText/SysLangTextCacheService.cs @@ -50,12 +50,12 @@ public class SysLangTextCacheService : IDynamicApiController, ITransient /// 适用于:小表(如菜单、字典),可设置较长缓存时间。
///
/// 【示例】
- /// var content = await _sysLangTextCacheService.GetTranslation("Product", "Name", 123, "en_US"); + /// var content = await _sysLangTextCacheService.GetTranslation("Product", "Name", 123, "en-US"); ///
/// 实体名称,如 "Product" /// 字段名称,如 "Name" /// 实体主键ID - /// 语言编码,如 "zh_CN" + /// 语言编码,如 "zh-CN" /// 翻译后的内容(若无则返回 null 或空) [NonAction] public async Task GetTranslation(string entityName, string fieldName, long entityId, string langCode) @@ -166,7 +166,7 @@ public class SysLangTextCacheService : IDynamicApiController, ITransient /// 按配置把同一字段的翻译写回到实体列表中。内部会调用批量翻译接口。
///
/// 【示例】
- /// await _sysLangTextCacheService.TranslateList(products, "Product", "Name", p => p.Id, (p, val) => p.Name = val, "zh_CN"); + /// await _sysLangTextCacheService.TranslateList(products, "Product", "Name", p => p.Id, (p, val) => p.Name = val, "zh-CN"); /// /// 实体类型 /// 待翻译的实体列表 @@ -219,13 +219,13 @@ public class SysLangTextCacheService : IDynamicApiController, ITransient /// SetTranslatedValue = (p, val) => p.Description = val /// } /// }; - /// await _sysLangTextCacheService.TranslateMultiFields(products, fields, "zh_CN"); + /// await _sysLangTextCacheService.TranslateMultiFields(products, fields, "zh-CN"); /// /// /// 要翻译的实体类型,如 Product/Menu/SKU 等 /// 需要翻译的实体对象列表 /// 需要翻译的字段映射集合,支持多个字段 - /// 语言编码,如 "zh_CN"、"en_US"、"it_IT" 等 + /// 语言编码,如 "zh-CN"、"en-US"、"it-IT" 等 /// 翻译后的实体列表(引用传递,原对象已直接赋值) [NonAction] public async Task> TranslateMultiFields( -- Gitee From ef04af287d0319bb648114a372577798f50693e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E9=B9=B0?= Date: Sun, 5 Oct 2025 18:50:32 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=B0=E5=A2=9E/?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7=E6=A0=B7=E5=BC=8F=E7=BB=86?= =?UTF-8?q?=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Web/package.json | 2 +- .../views/system/user/component/editUser.vue | 65 ++++++++++++------- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/Web/package.json b/Web/package.json index ac9344e05..673db83e8 100644 --- a/Web/package.json +++ b/Web/package.json @@ -25,7 +25,7 @@ "dependencies": { "@element-plus/icons-vue": "^2.3.2", "@logicflow/core": "^2.1.2", - "@logicflow/extension": "^2.1.3", + "@logicflow/extension": "^2.1.4", "@microsoft/signalr": "^9.0.6", "@vue-office/docx": "^1.6.3", "@vue-office/excel": "^1.7.14", diff --git a/Web/src/views/system/user/component/editUser.vue b/Web/src/views/system/user/component/editUser.vue index fe2e3d28a..4bd8b00eb 100644 --- a/Web/src/views/system/user/component/editUser.vue +++ b/Web/src/views/system/user/component/editUser.vue @@ -97,36 +97,31 @@
附属机构
- 增加附属机构 + 增加附属机构 具有相应组织机构的数据权限 - + diff --git a/Web/src/views/system/menu/index.vue b/Web/src/views/system/menu/index.vue index f32efb2bc..5e38aea53 100644 --- a/Web/src/views/system/menu/index.vue +++ b/Web/src/views/system/menu/index.vue @@ -32,10 +32,12 @@ - + @@ -184,3 +186,10 @@ const changeStatus = async (row: any) => { }); }; + + \ No newline at end of file -- Gitee From adc192ab1e3af4852ac6df28b5b38026848cfa75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E9=B9=B0?= Date: Wed, 8 Oct 2025 02:28:27 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20ts=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Web/src/layout/navBars/tagsView/tagsView.vue | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Web/src/layout/navBars/tagsView/tagsView.vue b/Web/src/layout/navBars/tagsView/tagsView.vue index 5984cb1e9..94696a064 100644 --- a/Web/src/layout/navBars/tagsView/tagsView.vue +++ b/Web/src/layout/navBars/tagsView/tagsView.vue @@ -154,8 +154,8 @@ const solveAddTagsView = async (path: string, to?: RouteToFrom) => { (v: RouteItem) => v.path === isDynamicPath && isObjectValueEqual( - to?.meta?.isDynamic ? (v.params ? v.params : null) : v.query ? v.query : null, - to?.meta?.isDynamic ? (to?.params ? to?.params : null) : to?.query ? to?.query : null + to?.meta?.isDynamic ? (v.params ? v.params : {}) : v.query ? v.query : {}, + to?.meta?.isDynamic ? (to?.params ? to?.params : {}) : to?.query ? to?.query : {} ) ); if (current.length <= 0) { @@ -689,12 +689,12 @@ watch( .tags-style-five { align-items: flex-end; .tags-style-five-svg { - -webkit-mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzAiIGhlaWdodD0iNzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSI+CgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxwYXRoIHRyYW5zZm9ybT0icm90YXRlKC0wLjEzMzUwNiA1MC4xMTkyIDUwKSIgaWQ9InN2Z18xIiBkPSJtMTAwLjExOTE5LDEwMGMtNTUuMjI4LDAgLTEwMCwtNDQuNzcyIC0xMDAsLTEwMGwwLDEwMGwxMDAsMHoiIG9wYWNpdHk9InVuZGVmaW5lZCIgc3Ryb2tlPSJudWxsIiBmaWxsPSIjRjhFQUU3Ii8+CiAgPHBhdGggZD0ibS0wLjYzNzY2LDcuMzEyMjhjMC4xMTkxOSwwIDAuMjE3MzcsMC4wNTc5NiAwLjQ3Njc2LDAuMTE5MTljMC4yMzIsMC4wNTQ3NyAwLjI3MzI5LDAuMDM0OTEgMC4zNTc1NywwLjExOTE5YzAuMDg0MjgsMC4wODQyOCAwLjM1NzU3LDAgMC40NzY3NiwwbDAuMTE5MTksMGwwLjIzODM4LDAiIGlkPSJzdmdfMiIgc3Ryb2tlPSJudWxsIiBmaWxsPSJub25lIi8+CiAgPHBhdGggZD0ibTI4LjkyMTM0LDY5LjA1MjQ0YzAsMC4xMTkxOSAwLDAuMjM4MzggMCwwLjM1NzU3bDAsMC4xMTkxOWwwLDAuMTE5MTkiIGlkPSJzdmdfMyIgc3Ryb2tlPSJudWxsIiBmaWxsPSJub25lIi8+CiAgPHJlY3QgaWQ9InN2Z180IiBoZWlnaHQ9IjAiIHdpZHRoPSIxLjMxMTA4IiB5PSI2LjgzNTUyIiB4PSItMC4wNDE3MSIgc3Ryb2tlPSJudWxsIiBmaWxsPSJub25lIi8+CiAgPHJlY3QgaWQ9InN2Z181IiBoZWlnaHQ9IjEuNzg3ODQiIHdpZHRoPSIwLjExOTE5IiB5PSI2OC40NTY1IiB4PSIyOC45MjEzNCIgc3Ryb2tlPSJudWxsIiBmaWxsPSJub25lIi8+CiAgPHJlY3QgaWQ9InN2Z182IiBoZWlnaHQ9IjQuODg2NzciIHdpZHRoPSIxOS4wNzAzMiIgeT0iNTEuMjkzMjEiIHg9IjM2LjY2ODY2IiBzdHJva2U9Im51bGwiIGZpbGw9Im5vbmUiLz4KIDwvZz4KPC9zdmc+'), + mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzAiIGhlaWdodD0iNzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSI+CgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxwYXRoIHRyYW5zZm9ybT0icm90YXRlKC0wLjEzMzUwNiA1MC4xMTkyIDUwKSIgaWQ9InN2Z18xIiBkPSJtMTAwLjExOTE5LDEwMGMtNTUuMjI4LDAgLTEwMCwtNDQuNzcyIC0xMDAsLTEwMGwwLDEwMGwxMDAsMHoiIG9wYWNpdHk9InVuZGVmaW5lZCIgc3Ryb2tlPSJudWxsIiBmaWxsPSIjRjhFQUU3Ii8+CiAgPHBhdGggZD0ibS0wLjYzNzY2LDcuMzEyMjhjMC4xMTkxOSwwIDAuMjE3MzcsMC4wNTc5NiAwLjQ3Njc2LDAuMTE5MTljMC4yMzIsMC4wNTQ3NyAwLjI3MzI5LDAuMDM0OTEgMC4zNTc1NywwLjExOTE5YzAuMDg0MjgsMC4wODQyOCAwLjM1NzU3LDAgMC40NzY3NiwwbDAuMTE5MTksMGwwLjIzODM4LDAiIGlkPSJzdmdfMiIgc3Ryb2tlPSJudWxsIiBmaWxsPSJub25lIi8+CiAgPHBhdGggZD0ibTI4LjkyMTM0LDY5LjA1MjQ0YzAsMC4xMTkxOSAwLDAuMjM4MzggMCwwLjM1NzU3bDAsMC4xMTkxOWwwLDAuMTE5MTkiIGlkPSJzdmdfMyIgc3Ryb2tlPSJudWxsIiBmaWxsPSJub25lIi8+CiAgPHJlY3QgaWQ9InN2Z180IiBoZWlnaHQ9IjAiIHdpZHRoPSIxLjMxMTA4IiB5PSI2LjgzNTUyIiB4PSItMC4wNDE3MSIgc3Ryb2tlPSJudWxsIiBmaWxsPSJub25lIi8+CiAgPHJlY3QgaWQ9InN2Z181IiBoZWlnaHQ9IjEuNzg3ODQiIHdpZHRoPSIwLjExOTE5IiB5PSI2OC40NTY1IiB4PSIyOC45MjEzNCIgc3Ryb2tlPSJudWxsIiBmaWxsPSJub25lIi8+CiAgPHJlY3QgaWQ9InN2Z182IiBoZWlnaHQ9IjQuODg2NzciIHdpZHRoPSIxOS4wNzAzMiIgeT0iNTEuMjkzMjEiIHg9IjM2LjY2ODY2IiBzdHJva2U9Im51bGwiIGZpbGw9Im5vbmUiLz4KIDwvZz4KPC9zdmc+'), url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzAiIGhlaWdodD0iNzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSI+CiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTg5Ljc2MjQgNy4zMzAxNCA1NS4xMjUyKSIgc3Ryb2tlPSJudWxsIiBpZD0ic3ZnXzEiIGZpbGw9IiNGOEVBRTciIGQ9Im02Mi41NzQ0OSwxMTcuNTIwODZjLTU1LjIyOCwwIC0xMDAsLTQ0Ljc3MiAtMTAwLC0xMDBsMCwxMDBsMTAwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDxwYXRoIGQ9Im0tMC42Mzc2Niw3LjMxMjI4YzAuMTE5MTksMCAwLjIxNzM3LDAuMDU3OTYgMC40NzY3NiwwLjExOTE5YzAuMjMyLDAuMDU0NzcgMC4yNzMyOSwwLjAzNDkxIDAuMzU3NTcsMC4xMTkxOWMwLjA4NDI4LDAuMDg0MjggMC4zNTc1NywwIDAuNDc2NzYsMGwwLjExOTE5LDBsMC4yMzgzOCwwIiBpZD0ic3ZnXzIiIHN0cm9rZT0ibnVsbCIgZmlsbD0ibm9uZSIvPgogIDxwYXRoIGQ9Im0yOC45MjEzNCw2OS4wNTI0NGMwLDAuMTE5MTkgMCwwLjIzODM4IDAsMC4zNTc1N2wwLDAuMTE5MTlsMCwwLjExOTE5IiBpZD0ic3ZnXzMiIHN0cm9rZT0ibnVsbCIgZmlsbD0ibm9uZSIvPgogIDxyZWN0IGlkPSJzdmdfNCIgaGVpZ2h0PSIwIiB3aWR0aD0iMS4zMTEwOCIgeT0iNi44MzU1MiIgeD0iLTAuMDQxNzEiIHN0cm9rZT0ibnVsbCIgZmlsbD0ibm9uZSIvPgogIDxyZWN0IGlkPSJzdmdfNSIgaGVpZ2h0PSIxLjc4Nzg0IiB3aWR0aD0iMC4xMTkxOSIgeT0iNjguNDU2NSIgeD0iMjguOTIxMzQiIHN0cm9rZT0ibnVsbCIgZmlsbD0ibm9uZSIvPgogIDxyZWN0IGlkPSJzdmdfNiIgaGVpZ2h0PSI0Ljg4Njc3IiB3aWR0aD0iMTkuMDcwMzIiIHk9IjUxLjI5MzIxIiB4PSIzNi42Njg2NiIgc3Ryb2tlPSJudWxsIiBmaWxsPSJub25lIi8+CiA8L2c+Cjwvc3ZnPg=='), url("data:image/svg+xml,"); - -webkit-mask-size: 18px 30px, 20px 30px, calc(100% - 30px) calc(100% + 17px); - -webkit-mask-position: right bottom, left bottom, center top; - -webkit-mask-repeat: no-repeat; + mask-size: 18px 30px, 20px 30px, calc(100% - 30px) calc(100% + 17px); + mask-position: right bottom, left bottom, center top; + mask-repeat: no-repeat; } .layout-navbars-tagsview-ul-li { padding: 0 5px; -- Gitee From 84e89dbbb2bc8b0b429b3c9c07839a691ae615ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E9=B9=B0?= Date: Thu, 9 Oct 2025 01:10:13 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E5=9B=BE=E6=A0=87=E5=A4=A7=E5=B0=8F=E3=80=81=E5=9E=82?= =?UTF-8?q?=E7=9B=B4=E5=B1=85=E4=B8=AD=E5=AD=98=E5=9C=A8=E8=BD=BB=E5=BE=AE?= =?UTF-8?q?=E5=81=8F=E7=A7=BB=E9=97=AE=E9=A2=98,=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E5=85=B6=E4=B8=8Eel-icon=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Web/src/components/iconSelector/list.vue | 2 + Web/src/layout/navBars/tagsView/tagsView.vue | 8 +-- Web/src/layout/navMenu/subItem.vue | 6 +- Web/src/layout/navMenu/vertical.vue | 4 +- Web/src/theme/element.scss | 60 +++++-------------- .../iconfont/font_2298093_rnp72ifj3ba.scss | 2 +- Web/src/theme/mixins/index.scss | 7 +-- Web/src/views/system/menu/index.vue | 18 +++++- 8 files changed, 44 insertions(+), 63 deletions(-) diff --git a/Web/src/components/iconSelector/list.vue b/Web/src/components/iconSelector/list.vue index 8bf837b0f..8712423b6 100644 --- a/Web/src/components/iconSelector/list.vue +++ b/Web/src/components/iconSelector/list.vue @@ -60,7 +60,9 @@ const onColClick = (v: unknown | string) => { border-radius: 5px; margin-bottom: 10px; height: 30px; + width: 30px; i { + display: inline-flex; font-size: 20px; color: var(--el-text-color-regular); } diff --git a/Web/src/layout/navBars/tagsView/tagsView.vue b/Web/src/layout/navBars/tagsView/tagsView.vue index 94696a064..7cda3e12e 100644 --- a/Web/src/layout/navBars/tagsView/tagsView.vue +++ b/Web/src/layout/navBars/tagsView/tagsView.vue @@ -18,24 +18,24 @@ " > - + {{ setTagsViewNameI18n(v) }} diff --git a/Web/src/layout/navMenu/subItem.vue b/Web/src/layout/navMenu/subItem.vue index ce298e608..ba64168c1 100644 --- a/Web/src/layout/navMenu/subItem.vue +++ b/Web/src/layout/navMenu/subItem.vue @@ -2,7 +2,7 @@