diff --git a/Admin.NET/Admin.NET.Core/Enum/GenderEnum.cs b/Admin.NET/Admin.NET.Core/Enum/GenderEnum.cs index 6cdd89dd5a735067127a05c4de200bbe09f126ff..ceea59140c8c5dbc6b43c3fbda50bb612675b586 100644 --- a/Admin.NET/Admin.NET.Core/Enum/GenderEnum.cs +++ b/Admin.NET/Admin.NET.Core/Enum/GenderEnum.cs @@ -13,9 +13,9 @@ namespace Admin.NET.Core; public enum GenderEnum { /// - /// 未知的性别 + /// 未知 /// - [Description("未知的性别"), Theme("info")] + [Description("未知"), Theme("info")] Unknown = 0, /// @@ -30,9 +30,9 @@ public enum GenderEnum [Description("女性"), Theme("danger")] Female = 2, - /// - /// 未说明的性别 - /// - [Description("未说明的性别"), Theme("warning")] - Unspecified = 9 + ///// + ///// 未说明的性别 + ///// + //[Description("未说明的性别"), Theme("warning")] + //Unspecified = 9 } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/APIJSON/SelectTable.cs b/Admin.NET/Admin.NET.Core/Service/APIJSON/SelectTable.cs index 9b6f0ecd830cc1f9875f3621aa05acd7721d2c4e..8b83cb9de8d85be9dd9b60355422708f7137cb1d 100644 --- a/Admin.NET/Admin.NET.Core/Service/APIJSON/SelectTable.cs +++ b/Admin.NET/Admin.NET.Core/Service/APIJSON/SelectTable.cs @@ -473,12 +473,17 @@ public class SelectTable : ISingleton // 判断列表是否有权限 sum(1)、sum(*)、Count(1)这样的值直接有效 if (colName == "*" || int.TryParse(colName, out int colNumber) || (IsCol(subtable, colName) && _identitySvc.ColIsRole(colName, selectrole.Split(',')))) { + // 字段名加引号,防止和SQL关键字冲突(mysql为反引号) + string qm = "\""; + if (tb.Context.CurrentConnectionConfig.DbType is SqlSugar.DbType.MySql) + qm = "`"; + if (ziduan.Length > 1) { if (ziduan[1].Length > 20) throw new Exception("别名不能超过20个字符"); - str.Append(ziduan[0] + " as `" + ReplaceSQLChar(ziduan[1]) + "`,"); + str.Append(ziduan[0] + " as " + qm + ReplaceSQLChar(ziduan[1]) + qm + ","); } // 不对函数加``,解决sum(*)、Count(1)等不能使用的问题 else if (ziduan[0].Contains('(')) @@ -486,7 +491,7 @@ public class SelectTable : ISingleton str.Append(ziduan[0] + ","); } else - str.Append("`" + ziduan[0] + "`" + ","); + str.Append(qm + ziduan[0] + qm + ","); } } if (string.IsNullOrEmpty(str.ToString())) diff --git a/Admin.NET/Admin.NET.Core/Service/Config/SysTenantConfigService.cs b/Admin.NET/Admin.NET.Core/Service/Config/SysTenantConfigService.cs index 7aca210f3926f03d028d0728eba64011f8008974..b92e4efbdade9ae7aa3d28a3514cf427480ae173 100644 --- a/Admin.NET/Admin.NET.Core/Service/Config/SysTenantConfigService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Config/SysTenantConfigService.cs @@ -27,8 +27,14 @@ public class SysTenantConfigService : IDynamicApiController, ITransient _sysCacheService = sysCacheService; _sysConfigRep = sysConfigRep; _sysConfigDataRep = sysConfigDataRep; - VSysConfig = _sysConfigRep.AsQueryable().InnerJoin(_sysConfigDataRep.AsQueryable().WhereIF(!_userManager.SuperAdmin, cv => cv.TenantId == _userManager.TenantId), - (c, cv) => c.Id == cv.ConfigId).Select().MergeTable(); + VSysConfig = _sysConfigRep.AsQueryable() + .InnerJoin( + _sysConfigDataRep.AsQueryable().WhereIF(!_userManager.SuperAdmin, cv => cv.TenantId == _userManager.TenantId), + (c, cv) => c.Id == cv.ConfigId + ) + //.Select().MergeTable(); + // 解决PostgreSQL下并启用驼峰转下划线时,报字段不存在,SqlSugar在Select后生成的sql, as后没转下划线导致. + .SelectMergeTable((c, cv) => new SysConfig { Id = c.Id.SelectAll(), Value = cv.Value }); } /// diff --git a/Admin.NET/Admin.NET.Core/Service/Config/SysUserConfigService.cs b/Admin.NET/Admin.NET.Core/Service/Config/SysUserConfigService.cs index 259650ab18f4809c107a4180d1d97050071502d6..897f31be91fd6dec61eca2a377f1997a43056bf4 100644 --- a/Admin.NET/Admin.NET.Core/Service/Config/SysUserConfigService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Config/SysUserConfigService.cs @@ -27,8 +27,14 @@ public class SysUserConfigService : IDynamicApiController, ITransient _sysCacheService = sysCacheService; _sysConfigRep = sysConfigRep; _sysConfigDataRep = sysConfigDataRep; - VSysConfig = _sysConfigRep.AsQueryable().LeftJoin(_sysConfigDataRep.AsQueryable().WhereIF(_userManager.SuperAdmin, cv => cv.UserId == _userManager.UserId), - (c, cv) => c.Id == cv.ConfigId).Select().MergeTable(); + VSysConfig = _sysConfigRep.AsQueryable() + .LeftJoin( + _sysConfigDataRep.AsQueryable().WhereIF(_userManager.SuperAdmin, cv => cv.UserId == _userManager.UserId), + (c, cv) => c.Id == cv.ConfigId + ) + //.Select().MergeTable(); + // 解决PostgreSQL下并启用驼峰转下划线时,报字段不存在,SqlSugar在Select后生成的sql, as后没转下划线导致. + .SelectMergeTable((c, cv) => new SysConfig { Id = c.Id.SelectAll(), Value = cv.Value }); } /// diff --git a/Web/src/api-services/models/sys-menu.ts b/Web/src/api-services/models/sys-menu.ts index e65e0b5be31eac59d003f7628cb81aeb71a3434a..5e6f3ba1d015688b4bd8e8e9c95d90a94742cb51 100644 --- a/Web/src/api-services/models/sys-menu.ts +++ b/Web/src/api-services/models/sys-menu.ts @@ -14,7 +14,6 @@ import { MenuTypeEnum } from './menu-type-enum'; import { StatusEnum } from './status-enum'; -import { SysMenu } from './sys-menu'; /** * 系统菜单表 * @@ -22,7 +21,6 @@ import { SysMenu } from './sys-menu'; * @interface SysMenu */ export interface SysMenu { - /** * 雪花Id * diff --git a/Web/src/views/system/codeGen/component/editCodeGenDialog.vue b/Web/src/views/system/codeGen/component/editCodeGenDialog.vue index aab6ed6d9ce9a6eb4f2466edc478b1adf2211b93..e8ffb446f9d45507b61780a0492923ff44e111d9 100644 --- a/Web/src/views/system/codeGen/component/editCodeGenDialog.vue +++ b/Web/src/views/system/codeGen/component/editCodeGenDialog.vue @@ -117,12 +117,12 @@ - + - + @@ -136,29 +136,24 @@ 数据唯一性配置 - state.ruleForm.tableUniqueList?.push({})"> 增加配置 + state.ruleForm.tableUniqueList?.push({})"> 增加配置 保证字段值的唯一性,排除null值 - + - - - - - state.ruleForm.tableUniqueList?.splice(k, 1)" /> - 字段 - - changeTableUniqueColumn(val, k)" multiple filterable clearable collapse-tags collapse-tags-tooltip class="w100"> - - - - - - - - - - + + + changeTableUniqueColumn(val, k)" multiple filterable clearable collapse-tags collapse-tags-tooltip class="w100"> + + + + + + + + state.ruleForm.tableUniqueList?.splice(k, 1)" /> + + @@ -299,4 +294,24 @@ defineExpose({ openDialog }); :deep(.el-dialog__body) { min-height: 450px; } + +.unique-box { + display: grid; + gap: 20px; +} +.unique-line { + display: flex; + gap: 20px; + + .el-form-item { + margin-bottom: 0; + flex: 1; + } + + .delete-btn { + align-self: center; + width: 24px; + margin-left: -10px; + } +} diff --git a/Web/src/views/system/codeGen/component/genConfigDialog.vue b/Web/src/views/system/codeGen/component/genConfigDialog.vue index 701b229c810a0cbe95cdba9399c8d0f7f95f9d30..fe6bf5c64be16b6b9b7825484f12e918e9302b44 100644 --- a/Web/src/views/system/codeGen/component/genConfigDialog.vue +++ b/Web/src/views/system/codeGen/component/genConfigDialog.vue @@ -7,7 +7,7 @@ 生成配置 - + @@ -40,7 +40,7 @@ - + @@ -182,9 +182,13 @@ const submit = async () => { // 导出对象 defineExpose({ openDialog }); - diff --git a/Web/src/views/system/codeGen/component/previewDialog.vue b/Web/src/views/system/codeGen/component/previewDialog.vue index f9ea56e621ea66ae1dfe3a0251c4ef739974515a..6b6802eb09a5af2b267239e00dfbeb4e8fe470ae 100644 --- a/Web/src/views/system/codeGen/component/previewDialog.vue +++ b/Web/src/views/system/codeGen/component/previewDialog.vue @@ -17,7 +17,7 @@ - + 关 闭 @@ -125,7 +125,7 @@ const handleCopy = () => { defineExpose({ openDialog }); - diff --git a/Web/src/views/system/database/index.vue b/Web/src/views/system/database/index.vue index b497a58437c73c9e9e2f4e9e1b9c4ed169bd9ca6..42c1fa663a99ca5790216e41fdc2829e2619714f 100644 --- a/Web/src/views/system/database/index.vue +++ b/Web/src/views/system/database/index.vue @@ -46,7 +46,7 @@ - + diff --git a/Web/src/views/system/role/component/editRole.vue b/Web/src/views/system/role/component/editRole.vue index 7c4d3e027f94c202691aee9a42b88dad2e5ca3e1..a326015d7b53a8a22d24e98a7fefbf34d0edd2e2 100644 --- a/Web/src/views/system/role/component/editRole.vue +++ b/Web/src/views/system/role/component/editRole.vue @@ -38,7 +38,7 @@ - +