Эх сурвалжийг харах

!1290 增加生成种子的提示
Merge pull request !1290 from KaneLeung/next

zuohuaijun 2 жил өмнө
parent
commit
a83837412d

+ 28 - 0
Admin.NET/Admin.NET.Core/Attribute/NotEmptyAttribute.cs

@@ -0,0 +1,28 @@
+// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
+//
+// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
+//
+// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
+
+namespace Admin.NET.Core;
+
+/// <summary>
+/// 校验集合不能为空
+/// </summary>
+[SuppressSniffer]
+public class NotEmptyAttribute : ValidationAttribute
+{
+    /// <summary>
+    /// 校验集合不能为空
+    /// </summary>
+    /// <param name="value"></param>
+    /// <returns></returns>
+    public override bool IsValid(object value) => (value as IEnumerable)?.GetEnumerator().MoveNext() ?? false;
+
+    /// <summary>
+    /// 错误信息
+    /// </summary>
+    /// <param name="name"></param>
+    /// <returns></returns>
+    public override string FormatErrorMessage(string name) => base.FormatErrorMessage(name);
+}

+ 6 - 0
Admin.NET/Admin.NET.Core/Enum/ErrorCodeEnum.cs

@@ -655,6 +655,12 @@ public enum ErrorCodeEnum
     [ErrorCodeItemMetadata("不允许添加相同字段名")]
     db1002,
 
+    /// <summary>
+    /// 实体文件不存在或匹配不到,如果是刚刚生成的实体,请重启服务后再试
+    /// </summary>
+    [ErrorCodeItemMetadata("实体文件不存在或匹配不到,如果是刚刚生成的实体,请重启服务后再试")]
+    db1003,
+
     /// <summary>
     /// 父节点不存在
     /// </summary>

+ 2 - 2
Admin.NET/Admin.NET.Core/Service/DataBase/SysDatabaseService.cs

@@ -316,7 +316,7 @@ public class SysDatabaseService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     [ApiDescriptionSettings(Name = "CreateSeedData"), HttpPost]
     [DisplayName("创建种子数据")]
-    public async void CreateSeedData(CreateSeedDataInput input)
+    public async Task CreateSeedData(CreateSeedDataInput input)
     {
         var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId.ToString() == input.ConfigId);
         input.Position = string.IsNullOrWhiteSpace(input.Position) ? "Admin.NET.Core" : input.Position;
@@ -333,7 +333,7 @@ public class SysDatabaseService : IDynamicApiController, ITransient
             entityType = item.Type;
             break;
         }
-        if (entityType == null) return;
+        if (entityType == null) throw Oops.Oh(ErrorCodeEnum.db1003);
 
         input.EntityName = entityType.Name;
         input.SeedDataName = entityType.Name + "SeedData";

+ 5 - 1
Web/src/views/system/database/index.vue

@@ -22,7 +22,11 @@
 					<el-button-group style="padding-left: 10px">
 						<el-button icon="ele-Plus" @click="openAddColumn"> 增加列 </el-button>
 						<el-button icon="ele-Plus" @click="openGenDialog"> 生成实体 </el-button>
-						<el-button icon="ele-Plus" @click="openGenSeedDataDialog"> 生成种子 </el-button>
+						<el-popover placement="bottom" title="温馨提示" :width="200" trigger="hover" content="如果是刚刚生成的实体,请重启服务后再生成种子">
+							<template #reference>
+								<el-button icon="ele-Plus" @click="openGenSeedDataDialog"> 生成种子 </el-button>
+							</template>
+						</el-popover>
 					</el-button-group>
 				</el-form-item>
 			</el-form>