diff --git a/Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj b/Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj
index 98305a19..a2246779 100644
--- a/Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj
+++ b/Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj
@@ -24,12 +24,6 @@
-
-
-
-
-
-
diff --git a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj
index d888fadb..9397fad9 100644
--- a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj
+++ b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj
@@ -22,6 +22,7 @@
+
@@ -39,7 +40,7 @@
-
+
diff --git a/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenConfig.cs b/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenConfig.cs
index 6a4a619c..a7722048 100644
--- a/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenConfig.cs
+++ b/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenConfig.cs
@@ -219,5 +219,6 @@ public class CodeGenConfig
/// 验证触发器
///
public string Trigger { get; set; }
- #endregion
+
+ #endregion 不在数据库中的字段
}
\ No newline at end of file
diff --git a/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/VerifyRuleItem.cs b/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/VerifyRuleItem.cs
index 339564c4..94059150 100644
--- a/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/VerifyRuleItem.cs
+++ b/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/VerifyRuleItem.cs
@@ -9,26 +9,32 @@ public class VerifyRuleItem
/// 编码
///
public long Key { get; set; }
+
///
/// 验证类型
///
public string Type { get; set; }
+
///
/// 验证错误消息
///
public string Message { get; set; }
+
///
/// 最小值
///
public string Min { get; set; }
+
///
/// 最大值
///
public string Max { get; set; }
+
///
/// 正则表达式
///
public string Pattern { get; set; }
+
///
/// 数据类型(搭配正则)
///
diff --git a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs
index cb9a6532..81606aa2 100644
--- a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs
+++ b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs
@@ -120,7 +120,9 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient
// 生成代码时,主键并不是必要输入项,故一定要排除主键字段
//codeGenConfig.WhetherRequired = (tableColumn.IsNullable || tableColumn.IsPrimarykey) ? YesNoEnum.N.ToString() : YesNoEnum.Y.ToString();
+
#region 添加校验规则
+
//添加校验规则
codeGenConfig.Id = YitIdHelper.NextId();
//验证规则
@@ -135,8 +137,9 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient
});
}
codeGenConfig.WhetherRequired = ruleItems.Any(t => t.Type == "required") ? YesNoEnum.Y.ToString() : YesNoEnum.N.ToString();
- codeGenConfig.Rules = ruleItems.ToJson();
- #endregion
+ codeGenConfig.Rules = ruleItems.ToJson();
+
+ #endregion 添加校验规则
codeGenConfig.QueryWhether = YesOrNo;
codeGenConfig.WhetherAddUpdate = YesOrNo;
diff --git a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs
index 402fd7fa..22a71766 100644
--- a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs
+++ b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs
@@ -345,7 +345,9 @@ public class SysCodeGenService : IDynamicApiController, ITransient
Directory.Delete(outputPath, true);
var tableFieldList = await _codeGenConfigService.GetList(new CodeGenConfig() { CodeGenId = input.Id }); // 字段集合
+
#region 构造前端需要验证的数据
+
foreach (var item in tableFieldList)
{
List list = new List();
@@ -365,7 +367,9 @@ public class SysCodeGenService : IDynamicApiController, ITransient
item.AnyRule = list.Count > 0;
item.RemoteVerify = list.Any(t => t.Type == "remote");
}
- #endregion
+
+ #endregion 构造前端需要验证的数据
+
var queryWhetherList = tableFieldList.Where(u => u.QueryWhether == YesNoEnum.Y.ToString()).ToList(); // 前端查询集合
var joinTableList = tableFieldList.Where(u => u.EffectType == "Upload" || u.EffectType == "fk" || u.EffectType == "ApiTreeSelect").ToList(); // 需要连表查询的字段
(string joinTableNames, string lowerJoinTableNames) = GetJoinTableStr(joinTableList); // 获取连表的实体名和别名
@@ -455,7 +459,9 @@ public class SysCodeGenService : IDynamicApiController, ITransient
public async Task> Preview(SysCodeGen input)
{
var tableFieldList = await _codeGenConfigService.GetList(new CodeGenConfig() { CodeGenId = input.Id }); // 字段集合
+
#region 构造前端需要验证的数据
+
foreach (var item in tableFieldList)
{
List list = new List();
@@ -475,7 +481,9 @@ public class SysCodeGenService : IDynamicApiController, ITransient
item.AnyRule = list.Count > 0;
item.RemoteVerify = list.Any(t => t.Type == "remote");
}
- #endregion
+
+ #endregion 构造前端需要验证的数据
+
var queryWhetherList = tableFieldList.Where(u => u.QueryWhether == YesNoEnum.Y.ToString()).ToList(); // 前端查询集合
var joinTableList = tableFieldList.Where(u => u.EffectType == "Upload" || u.EffectType == "fk" || u.EffectType == "ApiTreeSelect").ToList(); // 需要连表查询的字段
(string joinTableNames, string lowerJoinTableNames) = GetJoinTableStr(joinTableList); // 获取连表的实体名和别名
diff --git a/Admin.NET/Admin.NET.Core/Service/Message/SysSmsService.cs b/Admin.NET/Admin.NET.Core/Service/Message/SysSmsService.cs
index 7642d71b..c0e7fe6a 100644
--- a/Admin.NET/Admin.NET.Core/Service/Message/SysSmsService.cs
+++ b/Admin.NET/Admin.NET.Core/Service/Message/SysSmsService.cs
@@ -215,7 +215,6 @@ public class SysSmsService : IDynamicApiController, ITransient
SecretId = _smsOptions.Tencentyun.AccessKeyId,
SecretKey = _smsOptions.Tencentyun.AccessKeySecret
};
-
return cred;
}
}
\ No newline at end of file
diff --git a/Admin.NET/Admin.NET.Core/Service/Server/SysServerService.cs b/Admin.NET/Admin.NET.Core/Service/Server/SysServerService.cs
index d3d8f741..8f47d067 100644
--- a/Admin.NET/Admin.NET.Core/Service/Server/SysServerService.cs
+++ b/Admin.NET/Admin.NET.Core/Service/Server/SysServerService.cs
@@ -4,21 +4,6 @@
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
-using AlibabaCloud.SDK.Dysmsapi20170525.Models;
-using AngleSharp.Html.Parser;
-using AspNet.Security.OAuth.Gitee;
-using AspNet.Security.OAuth.Weixin;
-using AspNetCoreRateLimit;
-using Elastic.Clients.Elasticsearch;
-using IPTools.Core;
-using Lazy.Captcha.Core;
-using Magicodes.ExporterAndImporter.Pdf;
-using Magicodes.ExporterAndImporter.Word;
-using MailKit.Net.Smtp;
-using Novell.Directory.Ldap;
-using OnceMi.AspNetCore.OSS;
-using QRCoder;
-
namespace Admin.NET.Core.Service;
///
@@ -102,25 +87,28 @@ public class SysServerService : IDynamicApiController, ITransient
var redisAssembly = typeof(Redis).Assembly.GetName();
var jsonAssembly = typeof(NewtonsoftJsonMvcCoreBuilderExtensions).Assembly.GetName();
var excelAssembly = typeof(IExcelImporter).Assembly.GetName();
- var pdfAssembly = typeof(IPdfExporter).Assembly.GetName();
- var wordAssembly = typeof(IWordExporter).Assembly.GetName();
- var captchaAssembly = typeof(ICaptcha).Assembly.GetName();
+ var pdfAssembly = typeof(Magicodes.ExporterAndImporter.Pdf.IPdfExporter).Assembly.GetName();
+ var wordAssembly = typeof(Magicodes.ExporterAndImporter.Word.IWordExporter).Assembly.GetName();
+ var captchaAssembly = typeof(Lazy.Captcha.Core.ICaptcha).Assembly.GetName();
var wechatApiAssembly = typeof(WechatApiClient).Assembly.GetName();
var wechatTenpayAssembly = typeof(WechatTenpayClient).Assembly.GetName();
- var ossAssembly = typeof(IOSSServiceFactory).Assembly.GetName();
+ var ossAssembly = typeof(OnceMi.AspNetCore.OSS.IOSSServiceFactory).Assembly.GetName();
var parserAssembly = typeof(Parser).Assembly.GetName();
- var elasticsearchClientAssembly = typeof(ElasticsearchClient).Assembly.GetName();
- var limitAssembly = typeof(IpRateLimitMiddleware).Assembly.GetName();
- var htmlParserAssembly = typeof(HtmlParser).Assembly.GetName();
- var fluentEmailAssembly = typeof(SmtpClient).Assembly.GetName();
- var qRCodeGeneratorAssembly = typeof(QRCodeGenerator).Assembly.GetName();
- var sendSmsRequestAssembly = typeof(SendSmsRequest).Assembly.GetName();
+ var elasticsearchClientAssembly = typeof(Elastic.Clients.Elasticsearch.ElasticsearchClient).Assembly.GetName();
+ var limitAssembly = typeof(AspNetCoreRateLimit.IpRateLimitMiddleware).Assembly.GetName();
+ var htmlParserAssembly = typeof(AngleSharp.Html.Parser.HtmlParser).Assembly.GetName();
+ var fluentEmailAssembly = typeof(MailKit.Net.Smtp.SmtpClient).Assembly.GetName();
+ var qRCodeGeneratorAssembly = typeof(QRCoder.QRCodeGenerator).Assembly.GetName();
+ var alibabaSendSmsRequestAssembly = typeof(AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest).Assembly.GetName();
+ var tencentSendSmsRequestAssembly = typeof(TencentCloud.Sms.V20190711.Models.SendSmsRequest).Assembly.GetName();
var imageAssembly = typeof(Image).Assembly.GetName();
var rabbitMQAssembly = typeof(RabbitMQEventSourceStore).Assembly.GetName();
- var ldapConnectionAssembly = typeof(LdapConnection).Assembly.GetName();
- var ipToolAssembly = typeof(IpTool).Assembly.GetName();
- var weixinAuthenticationOptionsAssembly = typeof(WeixinAuthenticationOptions).Assembly.GetName();
- var giteeAuthenticationOptionsAssembly = typeof(GiteeAuthenticationOptions).Assembly.GetName();
+ var ldapConnectionAssembly = typeof(Novell.Directory.Ldap.LdapConnection).Assembly.GetName();
+ var ipToolAssembly = typeof(IPTools.Core.IpTool).Assembly.GetName();
+ var weixinAuthenticationOptionsAssembly = typeof(AspNet.Security.OAuth.Weixin.WeixinAuthenticationOptions).Assembly.GetName();
+ var giteeAuthenticationOptionsAssembly = typeof(AspNet.Security.OAuth.Gitee.GiteeAuthenticationOptions).Assembly.GetName();
+ var hashidsAssembly = typeof(HashidsNet.Hashids).Assembly.GetName();
+ var sftpClientAssembly = typeof(Renci.SshNet.SftpClient).Assembly.GetName();
return new[]
{
@@ -142,13 +130,16 @@ public class SysServerService : IDynamicApiController, ITransient
new { htmlParserAssembly.Name, htmlParserAssembly.Version },
new { fluentEmailAssembly.Name, fluentEmailAssembly.Version },
new { qRCodeGeneratorAssembly.Name, qRCodeGeneratorAssembly.Version },
- new { sendSmsRequestAssembly.Name, sendSmsRequestAssembly.Version },
+ new { alibabaSendSmsRequestAssembly.Name, alibabaSendSmsRequestAssembly.Version },
+ new { tencentSendSmsRequestAssembly.Name, tencentSendSmsRequestAssembly.Version },
new { imageAssembly.Name, imageAssembly.Version },
new { rabbitMQAssembly.Name, rabbitMQAssembly.Version },
new { ldapConnectionAssembly.Name, ldapConnectionAssembly.Version },
new { ipToolAssembly.Name, ipToolAssembly.Version },
new { weixinAuthenticationOptionsAssembly.Name, weixinAuthenticationOptionsAssembly.Version },
new { giteeAuthenticationOptionsAssembly.Name, giteeAuthenticationOptionsAssembly.Version },
+ new { hashidsAssembly.Name, hashidsAssembly.Version },
+ new { sftpClientAssembly.Name, sftpClientAssembly.Version },
};
}
}
\ No newline at end of file
diff --git a/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/service_InputDto.cs.vm b/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/service_InputDto.cs.vm
index 1cae2652..3a7272cf 100644
--- a/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/service_InputDto.cs.vm
+++ b/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/service_InputDto.cs.vm
@@ -7,15 +7,15 @@
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;
@{
- string RemoteField="";
- string PKName="";
+ string RemoteField="";
+ string PKName="";
foreach (var column in Model.TableField){
if(column.RemoteVerify){
- RemoteField=@column.PropertyName;
- }
- if(column.ColumnKey == "True"){
- PKName=column.PropertyName;
- }
+ RemoteField=@column.PropertyName;
+ }
+ if(column.ColumnKey == "True"){
+ PKName=column.PropertyName;
+ }
}
}
@@ -90,14 +90,14 @@ if (@column.WhetherAddUpdate == "Y"){
@:[StringLength(@(@column.ColumnLength), ErrorMessage = "@(@column.ColumnComment)不能超过@(@column.ColumnLength)个字符")]
}
@if(@column.AnyRule){
- @foreach(var rule in @column.RuleItems){
- @if(rule.Type=="pattern"){
- @:[RegularExpression(@@"@(@FormatPattern(rule.Pattern))", ErrorMessage = "@(@rule.Message)")]
- }
- @if(rule.Type=="length"){
- @:[StringLength(@(@rule.Max),MinimumLength = @(@rule.Min), ErrorMessage = "@(@column.ColumnComment)只能是@(@rule.Min)至@(@rule.Max)字符")]
- }
- }
+ @foreach(var rule in @column.RuleItems){
+ @if(rule.Type=="pattern"){
+ @:[RegularExpression(@@"@(@FormatPattern(rule.Pattern))", ErrorMessage = "@(@rule.Message)")]
+ }
+ @if(rule.Type=="length"){
+ @:[StringLength(@(@rule.Max),MinimumLength = @(@rule.Min), ErrorMessage = "@(@column.ColumnComment)只能是@(@rule.Min)至@(@rule.Max)字符")]
+ }
+ }
}
@:public override @column.NetType @column.PropertyName { get; set; }
@:
@@ -147,14 +147,14 @@ if (@column.WhetherAddUpdate == "Y"){
@:[StringLength(@(@column.ColumnLength), ErrorMessage = "@(@column.ColumnComment)不能超过@(@column.ColumnLength)个字符")]
}
@if(@column.AnyRule){
- @foreach(var rule in @column.RuleItems){
- @if(rule.Type=="pattern"){
- @:[RegularExpression(@@"@(@FormatPattern(rule.Pattern))", ErrorMessage = "@(@rule.Message)")]
- }
- @if(rule.Type=="length"){
- @:[StringLength(@(@rule.Max),MinimumLength = @(@rule.Min), ErrorMessage = "@(@column.ColumnComment)只能是@(@rule.Min)至@(@rule.Max)字符")]
- }
- }
+ @foreach(var rule in @column.RuleItems){
+ @if(rule.Type=="pattern"){
+ @:[RegularExpression(@@"@(@FormatPattern(rule.Pattern))", ErrorMessage = "@(@rule.Message)")]
+ }
+ @if(rule.Type=="length"){
+ @:[StringLength(@(@rule.Max),MinimumLength = @(@rule.Min), ErrorMessage = "@(@column.ColumnComment)只能是@(@rule.Min)至@(@rule.Max)字符")]
+ }
+ }
}
@:public override @column.NetType @column.PropertyName { get; set; }
@:
@@ -172,21 +172,21 @@ if (@column.WhetherAddUpdate == "Y"){
@if(@Model.RemoteVerify){
- @:///
- @:/// 检查@(RemoteField)字段参数
- @:///
- @:public class Exists@(RemoteField)Input
- @:{
- @:///
- @:/// 字段名称
- @:///
- @:public string FieldName { get; set; }
- @:
- @:///
- @:/// 旧字段名
- @:///
- @:public string OldFieldName { get; set; }
- @:}
+ @:///
+ @:/// 检查@(RemoteField)字段参数
+ @:///
+ @:public class Exists@(RemoteField)Input
+ @:{
+ @:///
+ @:/// 字段名称
+ @:///
+ @:public string FieldName { get; set; }
+ @:
+ @:///
+ @:/// 旧字段名
+ @:///
+ @:public string OldFieldName { get; set; }
+ @:}
}
@{
string FormatPattern(string pattern)
diff --git a/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/service_Service.cs.vm b/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/service_Service.cs.vm
index 92304f6b..e616a1e5 100644
--- a/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/service_Service.cs.vm
+++ b/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/service_Service.cs.vm
@@ -11,17 +11,17 @@ using Microsoft.AspNetCore.Http;
Dictionary definedObjects = new Dictionary();
bool haveLikeCdt = false;
string RemoteField="";
- string PKName="";
+ string PKName="";
foreach (var column in Model.TableField){
if (column.QueryWhether == "Y" && column.QueryType == "like"){
haveLikeCdt = true;
}
if(column.RemoteVerify){
- RemoteField=@column.PropertyName;
- }
- if(column.ColumnKey == "True"){
- PKName=column.PropertyName;
- }
+ RemoteField=@column.PropertyName;
+ }
+ if(column.ColumnKey == "True"){
+ PKName=column.PropertyName;
+ }
}
}
namespace @Model.NameSpace;
@@ -48,7 +48,7 @@ public class @(@Model.ClassName)Service : IDynamicApiController, ITransient
public async Task> Page(Page@(@Model.ClassName)Input input)
{
@if (haveLikeCdt) {
- @:input.SearchKey = input.SearchKey?.Trim();
+ @:input.SearchKey = input.SearchKey?.Trim();
}
var query = _@(@Model.LowerClassName)Rep.AsQueryable()
@{string conditionFlag = "";}
@@ -116,7 +116,7 @@ if (@column.QueryWhether == "Y"){
} else {
@:.Select<@(@Model.ClassName)Output>();
}
- return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
+ return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
}
///
@@ -136,7 +136,7 @@ if (@column.QueryWhether == "Y"){
@://已存在
@:throw Oops.Oh(ErrorCodeEnum.D1006);
@:}
- }
+ }
await _@(@Model.LowerClassName)Rep.InsertAsync(entity);
return entity.@(@PKName);
}
@@ -170,14 +170,14 @@ if (@column.ColumnKey == "True"){
{
var entity = input.Adapt<@(@Model.ClassName)>();
@if(Model.RemoteVerify){
- @://验证重复值
- @:if (await _advertsRep.IsAnyAsync(t => t.@(RemoteField) == entity.@(RemoteField) && t.@(@PKName) != entity.@(@PKName)))
- @:{
- @://已存在
- @:throw Oops.Oh(ErrorCodeEnum.D1006);
- @:}
+ @://验证重复值
+ @:if (await _advertsRep.IsAnyAsync(t => t.@(RemoteField) == entity.@(RemoteField) && t.@(@PKName) != entity.@(@PKName)))
+ @:{
+ @://已存在
+ @:throw Oops.Oh(ErrorCodeEnum.D1006);
+ @:}
}
- await _@(@Model.LowerClassName)Rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+ await _@(@Model.LowerClassName)Rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
}
///
diff --git a/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/web_views_editDialog.vue.vm b/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/web_views_editDialog.vue.vm
index 554be54b..ea75bc04 100644
--- a/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/web_views_editDialog.vue.vm
+++ b/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/web_views_editDialog.vue.vm
@@ -181,7 +181,7 @@ if(@Model.TableField.Any(x=>x.EffectType == "Upload")){
foreach (var column in Model.QueryWhetherList){
if(@column.EffectType == "fk"){
@:import { get@(@column.FkEntityName)@(@column.PropertyName)Dropdown } from '/@@/api/@(@Model.PagePath)/@(@Model.LowerClassName)';
- }
+ }
}
}
@if(@Model.TableField.Any(x=>x.EffectType == "ConstSelector")){
@@ -199,7 +199,7 @@ if(@column.EffectType == "fk"){
@foreach (var column in Model.TableField){
if(@column.EffectType == "ApiTreeSelect" && !definedObjects.ContainsKey("import__@(@column.FkEntityName)Tree")){
@{definedObjects.Add("import__@(@column.FkEntityName)Tree", 1);}
- }
+ }
}
@if(@Model.TableField.Any(x=>x.EffectType == "EnumSelector")){
@:import { SysEnumApi } from '/@@/api-services/api';
@@ -327,13 +327,13 @@ const submit = async () => {
let values = state.ruleForm;
if (state.ruleForm.@(@pkFieldName) == undefined || state.ruleForm.@(@pkFieldName) == null || state.ruleForm.@(@pkFieldName) == "" || state.ruleForm.@(@pkFieldName) == 0) {
@if (@Model.IsApiService) {
- @:await getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)AddPost(state.ruleForm);
+ @:await getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)AddPost(state.ruleForm);
} else {
@:await add@(@Model.ClassName)(values);
}
} else {
@if (@Model.IsApiService) {
- @:await getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)UpdatePost(state.ruleForm);
+ @:await getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)UpdatePost(state.ruleForm);
} else {
@:await update@(@Model.ClassName)(values);
}
@@ -352,7 +352,7 @@ const submit = async () => {
if(@column.EffectType == "fk" && @column.WhetherAddUpdate == "Y"){
@:const @LowerFirstLetter(@column.FkEntityName)@(@column.PropertyName)DropdownList = ref([]);
@:const get@(@column.FkEntityName)@(@column.PropertyName)DropdownList = async () => {
- @if (@Model.IsApiService) {
+ @if (@Model.IsApiService) {
@:let list = await getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)@(@column.FkEntityName)@(@column.PropertyName)DropdownGet();
} else {
@:let list = await get@(@column.FkEntityName)@(@column.PropertyName)Dropdown();
@@ -369,7 +369,7 @@ if(@column.EffectType == "ApiTreeSelect" && !definedObjects.ContainsKey("define_
@{definedObjects.Add("define_get@(@column.FkEntityName)TreeData", 1);}
@:const @LowerFirstLetter(@column.FkEntityName)TreeData = ref([]);
@:const get@(@column.FkEntityName)TreeData = async () => {
- @:let list = await getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)@(@column.FkEntityName)TreeGet();
+ @:let list = await getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)@(@column.FkEntityName)TreeGet();
@:@LowerFirstLetter(@column.FkEntityName)TreeData.value = list.data.result ?? [];
@:};
@:get@(@column.FkEntityName)TreeData();
@@ -391,7 +391,7 @@ if(column.WhetherAddUpdate=="N") continue;
if(@column.EffectType == "Upload"){
@:const upload@(@column.PropertyName)Handle = async (options: UploadRequestOptions) => {
@if (@Model.IsApiService) {
- @:let res = await getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)Upload@(@column.FkEntityName)PostForm(options);
+ @:let res = await getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)Upload@(@column.FkEntityName)PostForm(options);
} else {
@:let res = await upload@(@column.PropertyName)(options);
}
diff --git a/Web/src/api-services/apis/sys-code-gen-config-api.ts b/Web/src/api-services/apis/sys-code-gen-config-api.ts
index f15c86af..ec9fe18b 100644
--- a/Web/src/api-services/apis/sys-code-gen-config-api.ts
+++ b/Web/src/api-services/apis/sys-code-gen-config-api.ts
@@ -20,6 +20,7 @@ import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } fr
import { AdminResultListCodeGenConfig } from '../models';
import { AdminResultSysCodeGenConfig } from '../models';
import { CodeGenConfig } from '../models';
+import { VerifyRuleItem } from '../models';
/**
* SysCodeGenConfigApi - axios parameter creator
* @export
@@ -62,10 +63,15 @@ export const SysCodeGenConfigApiAxiosParamCreator = function (configuration?: Co
* @param {string} [valueColumn] 选中值字段
* @param {string} [pidColumn] 父级字段
* @param {number} [orderNo] 排序
+ * @param {string} [rules] 字段验证规则
+ * @param {Array} [ruleItems] 字段验证集合
+ * @param {boolean} [remoteVerify] 是否远程验证
+ * @param {boolean} [anyRule] 是否存在验证规则
+ * @param {string} [trigger] 验证触发器
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- apiSysCodeGenConfigDetailGet: async (id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, options: AxiosRequestConfig = {}): Promise => {
+ apiSysCodeGenConfigDetailGet: async (id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, ruleItems?: Array, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options: AxiosRequestConfig = {}): Promise => {
const localVarPath = `/api/sysCodeGenConfig/detail`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@@ -218,6 +224,26 @@ export const SysCodeGenConfigApiAxiosParamCreator = function (configuration?: Co
localVarQueryParameter['OrderNo'] = orderNo;
}
+ if (rules !== undefined) {
+ localVarQueryParameter['Rules'] = rules;
+ }
+
+ if (ruleItems) {
+ localVarQueryParameter['RuleItems'] = ruleItems;
+ }
+
+ if (remoteVerify !== undefined) {
+ localVarQueryParameter['RemoteVerify'] = remoteVerify;
+ }
+
+ if (anyRule !== undefined) {
+ localVarQueryParameter['AnyRule'] = anyRule;
+ }
+
+ if (trigger !== undefined) {
+ localVarQueryParameter['Trigger'] = trigger;
+ }
+
const query = new URLSearchParams(localVarUrlObj.search);
for (const key in localVarQueryParameter) {
query.set(key, localVarQueryParameter[key]);
@@ -270,10 +296,15 @@ export const SysCodeGenConfigApiAxiosParamCreator = function (configuration?: Co
* @param {string} [valueColumn] 选中值字段
* @param {string} [pidColumn] 父级字段
* @param {number} [orderNo] 排序
+ * @param {string} [rules] 字段验证规则
+ * @param {Array} [ruleItems] 字段验证集合
+ * @param {boolean} [remoteVerify] 是否远程验证
+ * @param {boolean} [anyRule] 是否存在验证规则
+ * @param {string} [trigger] 验证触发器
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- apiSysCodeGenConfigListGet: async (id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, options: AxiosRequestConfig = {}): Promise => {
+ apiSysCodeGenConfigListGet: async (id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, ruleItems?: Array, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options: AxiosRequestConfig = {}): Promise => {
const localVarPath = `/api/sysCodeGenConfig/list`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@@ -426,6 +457,26 @@ export const SysCodeGenConfigApiAxiosParamCreator = function (configuration?: Co
localVarQueryParameter['OrderNo'] = orderNo;
}
+ if (rules !== undefined) {
+ localVarQueryParameter['Rules'] = rules;
+ }
+
+ if (ruleItems) {
+ localVarQueryParameter['RuleItems'] = ruleItems;
+ }
+
+ if (remoteVerify !== undefined) {
+ localVarQueryParameter['RemoteVerify'] = remoteVerify;
+ }
+
+ if (anyRule !== undefined) {
+ localVarQueryParameter['AnyRule'] = anyRule;
+ }
+
+ if (trigger !== undefined) {
+ localVarQueryParameter['Trigger'] = trigger;
+ }
+
const query = new URLSearchParams(localVarUrlObj.search);
for (const key in localVarQueryParameter) {
query.set(key, localVarQueryParameter[key]);
@@ -535,11 +586,16 @@ export const SysCodeGenConfigApiFp = function(configuration?: Configuration) {
* @param {string} [valueColumn] 选中值字段
* @param {string} [pidColumn] 父级字段
* @param {number} [orderNo] 排序
+ * @param {string} [rules] 字段验证规则
+ * @param {Array} [ruleItems] 字段验证集合
+ * @param {boolean} [remoteVerify] 是否远程验证
+ * @param {boolean} [anyRule] 是否存在验证规则
+ * @param {string} [trigger] 验证触发器
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
- const localVarAxiosArgs = await SysCodeGenConfigApiAxiosParamCreator(configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, options);
+ async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, ruleItems?: Array, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
+ const localVarAxiosArgs = await SysCodeGenConfigApiAxiosParamCreator(configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, ruleItems, remoteVerify, anyRule, trigger, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
@@ -581,11 +637,16 @@ export const SysCodeGenConfigApiFp = function(configuration?: Configuration) {
* @param {string} [valueColumn] 选中值字段
* @param {string} [pidColumn] 父级字段
* @param {number} [orderNo] 排序
+ * @param {string} [rules] 字段验证规则
+ * @param {Array} [ruleItems] 字段验证集合
+ * @param {boolean} [remoteVerify] 是否远程验证
+ * @param {boolean} [anyRule] 是否存在验证规则
+ * @param {string} [trigger] 验证触发器
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
- const localVarAxiosArgs = await SysCodeGenConfigApiAxiosParamCreator(configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, options);
+ async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, ruleItems?: Array, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
+ const localVarAxiosArgs = await SysCodeGenConfigApiAxiosParamCreator(configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, ruleItems, remoteVerify, anyRule, trigger, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
@@ -650,11 +711,16 @@ export const SysCodeGenConfigApiFactory = function (configuration?: Configuratio
* @param {string} [valueColumn] 选中值字段
* @param {string} [pidColumn] 父级字段
* @param {number} [orderNo] 排序
+ * @param {string} [rules] 字段验证规则
+ * @param {Array} [ruleItems] 字段验证集合
+ * @param {boolean} [remoteVerify] 是否远程验证
+ * @param {boolean} [anyRule] 是否存在验证规则
+ * @param {string} [trigger] 验证触发器
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, options?: AxiosRequestConfig): Promise> {
- return SysCodeGenConfigApiFp(configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, options).then((request) => request(axios, basePath));
+ async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, ruleItems?: Array, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise> {
+ return SysCodeGenConfigApiFp(configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(axios, basePath));
},
/**
*
@@ -692,11 +758,16 @@ export const SysCodeGenConfigApiFactory = function (configuration?: Configuratio
* @param {string} [valueColumn] 选中值字段
* @param {string} [pidColumn] 父级字段
* @param {number} [orderNo] 排序
+ * @param {string} [rules] 字段验证规则
+ * @param {Array} [ruleItems] 字段验证集合
+ * @param {boolean} [remoteVerify] 是否远程验证
+ * @param {boolean} [anyRule] 是否存在验证规则
+ * @param {string} [trigger] 验证触发器
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, options?: AxiosRequestConfig): Promise> {
- return SysCodeGenConfigApiFp(configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, options).then((request) => request(axios, basePath));
+ async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, ruleItems?: Array, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise> {
+ return SysCodeGenConfigApiFp(configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(axios, basePath));
},
/**
*
@@ -754,12 +825,17 @@ export class SysCodeGenConfigApi extends BaseAPI {
* @param {string} [valueColumn] 选中值字段
* @param {string} [pidColumn] 父级字段
* @param {number} [orderNo] 排序
+ * @param {string} [rules] 字段验证规则
+ * @param {Array} [ruleItems] 字段验证集合
+ * @param {boolean} [remoteVerify] 是否远程验证
+ * @param {boolean} [anyRule] 是否存在验证规则
+ * @param {string} [trigger] 验证触发器
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysCodeGenConfigApi
*/
- public async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, options?: AxiosRequestConfig) : Promise> {
- return SysCodeGenConfigApiFp(this.configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, options).then((request) => request(this.axios, this.basePath));
+ public async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, ruleItems?: Array, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig) : Promise> {
+ return SysCodeGenConfigApiFp(this.configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(this.axios, this.basePath));
}
/**
*
@@ -797,12 +873,17 @@ export class SysCodeGenConfigApi extends BaseAPI {
* @param {string} [valueColumn] 选中值字段
* @param {string} [pidColumn] 父级字段
* @param {number} [orderNo] 排序
+ * @param {string} [rules] 字段验证规则
+ * @param {Array} [ruleItems] 字段验证集合
+ * @param {boolean} [remoteVerify] 是否远程验证
+ * @param {boolean} [anyRule] 是否存在验证规则
+ * @param {string} [trigger] 验证触发器
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysCodeGenConfigApi
*/
- public async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, options?: AxiosRequestConfig) : Promise> {
- return SysCodeGenConfigApiFp(this.configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, options).then((request) => request(this.axios, this.basePath));
+ public async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, ruleItems?: Array, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig) : Promise> {
+ return SysCodeGenConfigApiFp(this.configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(this.axios, this.basePath));
}
/**
*
diff --git a/Web/src/api-services/models/code-gen-config.ts b/Web/src/api-services/models/code-gen-config.ts
index 4c09e651..2e56b53a 100644
--- a/Web/src/api-services/models/code-gen-config.ts
+++ b/Web/src/api-services/models/code-gen-config.ts
@@ -12,6 +12,7 @@
* Do not edit the class manually.
*/
+import { VerifyRuleItem } from './verify-rule-item';
/**
* 代码生成详细配置参数
*
@@ -283,4 +284,44 @@ export interface CodeGenConfig {
* @memberof CodeGenConfig
*/
orderNo?: number;
+
+ /**
+ * 字段验证规则
+ *
+ * @type {string}
+ * @memberof CodeGenConfig
+ */
+ rules?: string | null;
+
+ /**
+ * 字段验证集合
+ *
+ * @type {Array}
+ * @memberof CodeGenConfig
+ */
+ ruleItems?: Array | null;
+
+ /**
+ * 是否远程验证
+ *
+ * @type {boolean}
+ * @memberof CodeGenConfig
+ */
+ remoteVerify?: boolean;
+
+ /**
+ * 是否存在验证规则
+ *
+ * @type {boolean}
+ * @memberof CodeGenConfig
+ */
+ anyRule?: boolean;
+
+ /**
+ * 验证触发器
+ *
+ * @type {string}
+ * @memberof CodeGenConfig
+ */
+ trigger?: string | null;
}
diff --git a/Web/src/api-services/models/index.ts b/Web/src/api-services/models/index.ts
index fcf5dca6..507778cd 100644
--- a/Web/src/api-services/models/index.ts
+++ b/Web/src/api-services/models/index.ts
@@ -404,6 +404,7 @@ export * from './user-input';
export * from './user-menu-input';
export * from './user-output';
export * from './user-role-input';
+export * from './verify-rule-item';
export * from './visual-column';
export * from './visual-db-table';
export * from './visual-table';
diff --git a/Web/src/api-services/models/sys-code-gen-config.ts b/Web/src/api-services/models/sys-code-gen-config.ts
index d149eb68..e5d5d125 100644
--- a/Web/src/api-services/models/sys-code-gen-config.ts
+++ b/Web/src/api-services/models/sys-code-gen-config.ts
@@ -307,4 +307,12 @@ export interface SysCodeGenConfig {
* @memberof SysCodeGenConfig
*/
orderNo?: number;
+
+ /**
+ * 字段验证规则
+ *
+ * @type {string}
+ * @memberof SysCodeGenConfig
+ */
+ rules?: string | null;
}
diff --git a/Web/src/api-services/models/verify-rule-item.ts b/Web/src/api-services/models/verify-rule-item.ts
new file mode 100644
index 00000000..611ae8ba
--- /dev/null
+++ b/Web/src/api-services/models/verify-rule-item.ts
@@ -0,0 +1,78 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Admin.NET 通用权限开发平台
+ * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
+ *
+ * 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 VerifyRuleItem
+ */
+export interface VerifyRuleItem {
+
+ /**
+ * 编码
+ *
+ * @type {number}
+ * @memberof VerifyRuleItem
+ */
+ key?: number;
+
+ /**
+ * 验证类型
+ *
+ * @type {string}
+ * @memberof VerifyRuleItem
+ */
+ type?: string | null;
+
+ /**
+ * 验证错误消息
+ *
+ * @type {string}
+ * @memberof VerifyRuleItem
+ */
+ message?: string | null;
+
+ /**
+ * 最小值
+ *
+ * @type {string}
+ * @memberof VerifyRuleItem
+ */
+ min?: string | null;
+
+ /**
+ * 最大值
+ *
+ * @type {string}
+ * @memberof VerifyRuleItem
+ */
+ max?: string | null;
+
+ /**
+ * 正则表达式
+ *
+ * @type {string}
+ * @memberof VerifyRuleItem
+ */
+ pattern?: string | null;
+
+ /**
+ * 数据类型(搭配正则)
+ *
+ * @type {string}
+ * @memberof VerifyRuleItem
+ */
+ dataType?: string | null;
+}
diff --git a/Web/src/hooks/setupVXETableHook.ts b/Web/src/hooks/setupVXETableHook.ts
index 90f25c3f..bc345855 100644
--- a/Web/src/hooks/setupVXETableHook.ts
+++ b/Web/src/hooks/setupVXETableHook.ts
@@ -96,7 +96,7 @@ export const setupVXETable = (app: App) => {
autoHidden: false, // 当只有一页时自动隐藏
pageSize: 50, // 每页大小
pagerCount: 10, // 显示页码按钮的数量
- pageSizes: [50, 100, 200, 500], // 每页大小选项列表
+ pageSizes: [50, 100, 200, 500, 1000, 2000], // 每页大小选项列表
layouts: ['PrevJump', 'PrevPage', 'JumpNumber', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'PageCount', 'Total'], // 自定义布局
},
});
diff --git a/Web/src/views/system/codeGen/component/editCodeGenDialog.vue b/Web/src/views/system/codeGen/component/editCodeGenDialog.vue
index 62b0fe97..f628c7cc 100644
--- a/Web/src/views/system/codeGen/component/editCodeGenDialog.vue
+++ b/Web/src/views/system/codeGen/component/editCodeGenDialog.vue
@@ -286,11 +286,6 @@ const submit = () => {
});
};
-const isOrNotSelect = () => [
- { label: '是', value: 1 },
- { label: '否', value: 0 },
-];
-
// 导出对象
defineExpose({ openDialog });
diff --git a/Web/src/views/system/codeGen/component/genConfigDialog.vue b/Web/src/views/system/codeGen/component/genConfigDialog.vue
index 00ab1b68..03f25190 100644
--- a/Web/src/views/system/codeGen/component/genConfigDialog.vue
+++ b/Web/src/views/system/codeGen/component/genConfigDialog.vue
@@ -19,7 +19,15 @@
-
+
-
+
- 规则{{ scope.row.ruleCount }}
+ 校验规则{{ scope.row.ruleCount }}
@@ -113,7 +120,7 @@ import verifyDialog from '/@/views/system/codeGen/component/verifyDialog.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysCodeGenConfigApi, SysConstApi, SysDictDataApi, SysDictTypeApi, SysEnumApi } from '/@/api-services/api';
-import { CodeGenConfig } from '/@/api-services/models/code-gen-config';
+// import { CodeGenConfig } from '/@/api-services/models/code-gen-config';
const emits = defineEmits(['handleQuery']);
const fkDialogRef = ref();
@@ -122,7 +129,7 @@ const verifyDialogRef = ref();
const state = reactive({
isShowDialog: false,
loading: false,
- tableData: [] as CodeGenConfig[],
+ tableData: [] as any, // CodeGenConfig[],
dbData: [] as any,
effectTypeList: [] as any,
dictTypeCodeList: [] as any,
@@ -198,8 +205,8 @@ const handleQuery = async (row: any) => {
if (item[key] === 'N' || (lstWhetherColumn.includes(key) && item[key] === null)) {
item[key] = false;
}
- };
- //验证规则相关
+ }
+ // 验证规则相关
let rules = new Array();
if (item.rules != '' && item.rules !== null) {
rules = JSON.parse(item.rules);
@@ -244,7 +251,7 @@ const openVerifyDialog = (row: any) => {
verifyDialogRef.value.openDialog(row);
};
-//验证提交回调
+// 验证提交回调
const submitVerifyOk = (data: any) => {
console.log('submitVerifyOk', data);
for (let i = 0; i < state.tableData.length; i++) {
@@ -255,13 +262,13 @@ const submitVerifyOk = (data: any) => {
let rules = new Array();
if (data.rules != '' && data.rules !== null) {
rules = JSON.parse(data.rules);
- let requiredRule = rules.find(t => t.type === 'required');
+ let requiredRule = rules.find((t) => t.type === 'required');
if (requiredRule) {
state.tableData[i].whetherRequired = true;
} else {
state.tableData[i].whetherRequired = false;
}
- };
+ }
break;
}
}
@@ -283,14 +290,14 @@ const submit = async () => {
state.loading = true;
var lst = state.tableData;
console.log(lst);
- let ignoreFields=['remoteVerify','anyRule','columnKey'];
- lst.forEach((item: CodeGenConfig) => {
+ let ignoreFields = ['remoteVerify', 'anyRule', 'columnKey'];
+ lst.forEach((item: any) => {
// 必填那一项转换
for (var key in item) {
- if (item[key] === true&&!ignoreFields.includes(key)) {
+ if (item[key] === true && !ignoreFields.includes(key)) {
item[key] = 'Y';
}
- if (item[key] === false&&!ignoreFields.includes(key)) {
+ if (item[key] === false && !ignoreFields.includes(key)) {
item[key] = 'N';
}
}
@@ -300,51 +307,6 @@ const submit = async () => {
closeDialog();
};
-const convertDbType = (dbType: number) => {
- let result = '';
- switch (dbType) {
- case 0:
- result = 'MySql';
- break;
- case 1:
- result = 'SqlServer';
- break;
- case 2:
- result = 'Sqlite';
- break;
- case 3:
- result = 'Oracle';
- break;
- case 4:
- result = 'PostgreSql';
- break;
- case 5:
- result = 'Dm';
- break;
- case 6:
- result = 'Kdbndp';
- break;
- case 7:
- result = 'Oscar';
- break;
- case 8:
- result = 'MySqlConnector';
- break;
- case 9:
- result = 'Access';
- break;
- default:
- result = 'Custom';
- break;
- }
- return result;
-};
-
-const isOrNotSelect = () => [
- { label: '是', value: 1 },
- { label: '否', value: 0 },
-];
-
// 导出对象
defineExpose({ openDialog });
diff --git a/Web/src/views/system/codeGen/component/patternDialog.vue b/Web/src/views/system/codeGen/component/patternDialog.vue
index 672874cb..a2a36a46 100644
--- a/Web/src/views/system/codeGen/component/patternDialog.vue
+++ b/Web/src/views/system/codeGen/component/patternDialog.vue
@@ -1,292 +1,292 @@
-
-
-
-
- 选择正则
-
-
-
-
-
{{ item.title }}
-
{{ item.info }}
-
{{ item.pattern }}
-
-
-
-
-
-
-
+
+
+
+
+
+ 选择正则
+
+
+
+
+
{{ item.title }}
+
{{ item.info }}
+
{{ item.pattern }}
+
+
+
+
+
+
+
+
+