Explorar el Código

常量下拉框,支持代码生成

Tony hace 3 años
padre
commit
290f633eb0

+ 13 - 0
Admin.NET/Admin.NET.Core/Attribute/ConstSelectorAttribute.cs

@@ -0,0 +1,13 @@
+namespace Admin.NET.Core;
+
+/// <summary>
+/// 枚举下拉框
+/// </summary>
+public class EnumSelectorAttribute : Attribute
+{
+    public EnumSelectorAttribute(string name)
+    {
+        Name = name;
+    }
+    public string Name { get; set; }
+}

+ 5 - 0
Admin.NET/Admin.NET.Core/Const/CacheConst.cs

@@ -44,4 +44,9 @@ public class CacheConst
     /// 在线用户缓存
     /// </summary>
     public const string KeyOnlineUser = "onlineuser";
+
+    /// <summary>
+    /// 常量下拉框
+    /// </summary>
+    public const string KeyConstSelector = "const_selector:";
 }

+ 15 - 0
Admin.NET/Admin.NET.Core/Const/ConstSelector/OrderStatus.cs

@@ -0,0 +1,15 @@
+namespace Admin.NET.Core.ConstSelector;
+
+/// <summary>
+/// 示例 类型下拉框
+/// </summary>
+[EnumSelector("订单状态")]
+public class OrderStatus
+{
+    public const string 待支付 = "待支付1";
+    public const string 已支付 = "已支付2";
+    public const string 已发货 = "已发货3";
+    public const string 已签收 = "已签收4";
+    public const string 已评价 = "已评价5";
+}
+

+ 23 - 0
Admin.NET/Admin.NET.Core/Const/ConstSelector/SyncStatusEnum.cs

@@ -0,0 +1,23 @@
+namespace Admin.NET.Core.ConstSelector;
+/// <summary>
+/// 示例 枚举下拉框
+/// </summary>
+[EnumSelector("同步状态")]
+public enum SyncStatusEnum
+{
+    /// <summary>
+    /// 未同步
+    /// </summary>
+    [Description("未同步")]
+    未同步 = 0,
+    /// <summary>
+    /// 同步成功
+    /// </summary>
+    [Description("同步成功")]
+    同步成功 = 1,
+    /// <summary>
+    /// 同步失败
+    /// </summary>
+    [Description("同步失败")]
+    同步失败 = 2
+}

+ 40 - 39
Admin.NET/Admin.NET.Core/SeedData/SysDictDataSeedData.cs

@@ -5,47 +5,48 @@
 /// </summary>
 public class SysDictDataSeedData : ISqlSugarEntitySeedData<SysDictData>
 {
-    /// <summary>
-    /// 种子数据
-    /// </summary>
-    /// <returns></returns>
-    public IEnumerable<SysDictData> HasData()
+  /// <summary>
+  /// 种子数据
+  /// </summary>
+  /// <returns></returns>
+  public IEnumerable<SysDictData> HasData()
+  {
+    return new[]
     {
-        return new[]
-        {
-            new SysDictData{ Id=269037953100001, DictTypeId=269037954100001, Value="输入框", Code="Input", Order=100, Remark="输入框", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953100002, DictTypeId=269037954100001, Value="外键", Code="fk", Order=100, Remark="外键", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953100003, DictTypeId=269037954100001, Value="时间选择", Code="DatePicker", Order=100, Remark="时间选择", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953100004, DictTypeId=269037954100001, Value="选择器", Code="Select", Order=100, Remark="选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953100005, DictTypeId=269037954100001, Value="数字输入框", Code="InputNumber", Order=100, Remark="数字输入框", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953100006, DictTypeId=269037954100001, Value="文本域", Code="InputTextArea", Order=100, Remark="文本域", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953100007, DictTypeId=269037954100001, Value="上传", Code="Upload", Order=100, Remark="上传", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953100008, DictTypeId=269037954100001, Value="树选择", Code="ApiTreeSelect", Order=100, Remark="树选择", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953100009, DictTypeId=269037954100001, Value="开关", Code="Switch", Order=100, Remark="开关", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953100001, DictTypeId=269037954100001, Value="输入框", Code="Input", Order=100, Remark="输入框", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953100002, DictTypeId=269037954100001, Value="外键", Code="fk", Order=100, Remark="外键", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953100003, DictTypeId=269037954100001, Value="时间选择", Code="DatePicker", Order=100, Remark="时间选择", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953100004, DictTypeId=269037954100001, Value="选择器", Code="Select", Order=100, Remark="选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953100005, DictTypeId=269037954100001, Value="数字输入框", Code="InputNumber", Order=100, Remark="数字输入框", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953100006, DictTypeId=269037954100001, Value="文本域", Code="InputTextArea", Order=100, Remark="文本域", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953100007, DictTypeId=269037954100001, Value="上传", Code="Upload", Order=100, Remark="上传", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953100008, DictTypeId=269037954100001, Value="树选择", Code="ApiTreeSelect", Order=100, Remark="树选择", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953100009, DictTypeId=269037954100001, Value="开关", Code="Switch", Order=100, Remark="开关", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953100010, DictTypeId=269037954100001, Value="常量选择器", Code="ConstSelector", Order=100, Remark="常量选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
 
-            new SysDictData{ Id=269037953110001, DictTypeId=269037954100002, Value="等于", Code="==", Order=1, Remark="等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953110002, DictTypeId=269037954100002, Value="模糊", Code="like", Order=1, Remark="模糊", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953110003, DictTypeId=269037954100002, Value="大于", Code=">", Order=1, Remark="大于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953110004, DictTypeId=269037954100002, Value="小于", Code="<", Order=1, Remark="小于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953110005, DictTypeId=269037954100002, Value="不等于", Code="!=", Order=1, Remark="不等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953110006, DictTypeId=269037954100002, Value="大于等于", Code=">=", Order=1, Remark="大于等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953110007, DictTypeId=269037954100002, Value="小于等于", Code="<=", Order=1, Remark="小于等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953110008, DictTypeId=269037954100002, Value="不为空", Code="isNotNull", Order=1, Remark="不为空", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953110009, DictTypeId=269037954100002, Value="时间范围", Code="~", Order=1, Remark="时间范围", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953110001, DictTypeId=269037954100002, Value="等于", Code="==", Order=1, Remark="等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953110002, DictTypeId=269037954100002, Value="模糊", Code="like", Order=1, Remark="模糊", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953110003, DictTypeId=269037954100002, Value="大于", Code=">", Order=1, Remark="大于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953110004, DictTypeId=269037954100002, Value="小于", Code="<", Order=1, Remark="小于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953110005, DictTypeId=269037954100002, Value="不等于", Code="!=", Order=1, Remark="不等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953110006, DictTypeId=269037954100002, Value="大于等于", Code=">=", Order=1, Remark="大于等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953110007, DictTypeId=269037954100002, Value="小于等于", Code="<=", Order=1, Remark="小于等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953110008, DictTypeId=269037954100002, Value="不为空", Code="isNotNull", Order=1, Remark="不为空", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953110009, DictTypeId=269037954100002, Value="时间范围", Code="~", Order=1, Remark="时间范围", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
 
-            new SysDictData{ Id=269037953120001, DictTypeId=269037954100003, Value="long", Code="long", Order=1, Remark="long", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953120002, DictTypeId=269037954100003, Value="string", Code="string", Order=1, Remark="string", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953120003, DictTypeId=269037954100003, Value="DateTime", Code="DateTime", Order=1, Remark="DateTime", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953120004, DictTypeId=269037954100003, Value="bool", Code="bool", Order=1, Remark="bool", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953120005, DictTypeId=269037954100003, Value="int", Code="int", Order=1, Remark="int", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953120006, DictTypeId=269037954100003, Value="double", Code="double", Order=1, Remark="double", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953120007, DictTypeId=269037954100003, Value="float", Code="float", Order=1, Remark="float", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953120008, DictTypeId=269037954100003, Value="decimal", Code="decimal", Order=1, Remark="decimal", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953120009, DictTypeId=269037954100003, Value="Guid", Code="Guid", Order=1, Remark="Guid", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953120010, DictTypeId=269037954100003, Value="DateTimeOffset", Code="DateTimeOffset", Order=1, Remark="DateTimeOffset", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953120001, DictTypeId=269037954100003, Value="long", Code="long", Order=1, Remark="long", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953120002, DictTypeId=269037954100003, Value="string", Code="string", Order=1, Remark="string", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953120003, DictTypeId=269037954100003, Value="DateTime", Code="DateTime", Order=1, Remark="DateTime", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953120004, DictTypeId=269037954100003, Value="bool", Code="bool", Order=1, Remark="bool", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953120005, DictTypeId=269037954100003, Value="int", Code="int", Order=1, Remark="int", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953120006, DictTypeId=269037954100003, Value="double", Code="double", Order=1, Remark="double", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953120007, DictTypeId=269037954100003, Value="float", Code="float", Order=1, Remark="float", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953120008, DictTypeId=269037954100003, Value="decimal", Code="decimal", Order=1, Remark="decimal", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953120009, DictTypeId=269037954100003, Value="Guid", Code="Guid", Order=1, Remark="Guid", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953120010, DictTypeId=269037954100003, Value="DateTimeOffset", Code="DateTimeOffset", Order=1, Remark="DateTimeOffset", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
 
-            new SysDictData{ Id=269037953130001, DictTypeId=269037954100004, Value="下载压缩包", Code="1", Order=1, Remark="下载压缩包", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysDictData{ Id=269037953130002, DictTypeId=269037954100004, Value="生成到本项目", Code="2", Order=1, Remark="生成到本项目", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-        };
-    }
+      new SysDictData{ Id=269037953130001, DictTypeId=269037954100004, Value="下载压缩包", Code="1", Order=1, Remark="下载压缩包", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+      new SysDictData{ Id=269037953130002, DictTypeId=269037954100004, Value="生成到本项目", Code="2", Order=1, Remark="生成到本项目", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+    };
+  }
 }

+ 84 - 0
Admin.NET/Admin.NET.Core/Service/ConstSelector/ConstSelectorService.cs

@@ -0,0 +1,84 @@
+namespace Admin.NET.Core.Service;
+
+/// <summary>
+/// 常量下拉框服务
+/// </summary>
+[ApiDescriptionSettings(Name = "常量下拉框服务", Order = 193)]
+public class ConstSelectorService : IDynamicApiController, ITransient
+{
+
+    private readonly IDistributedCache _cache;
+    public ConstSelectorService(IDistributedCache cache)
+    {
+        _cache = cache;
+    }
+
+    /// <summary>
+    /// 获取所有常量下拉框列表
+    /// </summary>
+    /// <returns></returns>
+    [HttpGet("/constSelector/allConstSelector")]
+    public async Task<dynamic> GetAllConstSelector()
+    {
+        var key = $"{CacheConst.KeyConstSelector}AllSelector";
+        var json = await _cache.GetStringAsync(key);
+        if (!string.IsNullOrWhiteSpace(json))
+        {
+            return json.ToObject<List<SelectorDto>>();
+        }
+        var typeList = await GetAllTypesAsync();
+        var selectData = typeList.Select(x => new SelectorDto
+        {
+            Name = x.CustomAttributes.ToList().FirstOrDefault()?.ConstructorArguments.ToList().FirstOrDefault().Value?.ToString() ?? x.Name,
+            Code = x.Name
+        }).ToList();
+        await _cache.SetStringAsync(key, selectData.ToJson());
+        return selectData;
+    }
+
+    /// <summary>
+    /// 根据类名获取下拉框数据
+    /// </summary>
+    /// <param name="typeName"></param>
+    /// <returns></returns>
+    [HttpGet("/constSelector/constSelector")]
+    public async Task<dynamic> GetConstSelector(string typeName)
+    {
+        var key = $"{CacheConst.KeyConstSelector}{typeName.ToUpper()}";
+        var json = await _cache.GetStringAsync(key);
+        if (!string.IsNullOrWhiteSpace(json))
+        {
+            return json.ToObject<List<SelectorDto>>();
+        }
+        var typeList = await GetAllTypesAsync();
+        var type = typeList.FirstOrDefault(x => x.Name == typeName);
+
+        var isEnum = type.BaseType.Name == "Enum";
+        var selectData = type.GetFields()?
+            .Where(isEnum, x => x.FieldType.Name == typeName)
+            .Select(x => new SelectorDto
+            {
+                Name = x.Name,
+                Code = isEnum ? (int)x.GetValue(BindingFlags.Instance) : x.GetValue(BindingFlags.Instance)
+            }).ToList();
+        await _cache.SetStringAsync(key, selectData.ToJson());
+        return selectData;
+    }
+
+    /// <summary>
+    /// 获取所有常量
+    /// </summary>
+    /// <returns></returns>
+    private async Task<List<Type>> GetAllTypesAsync()
+    {
+        return await Task.Run(() =>
+      {
+          var typeList = AppDomain.CurrentDomain.GetAssemblies()
+         .SelectMany(x => x.GetTypes())
+         .Where(x => x.CustomAttributes.Any(y => y.AttributeType == typeof(EnumSelectorAttribute)))
+         .ToList();
+          return typeList;
+      });
+    }
+}
+

+ 17 - 0
Admin.NET/Admin.NET.Core/Service/ConstSelector/Dto/SelectorDto.cs

@@ -0,0 +1,17 @@
+
+
+namespace Admin.NET.Core.Service;
+
+public class SelectorDto
+{
+    public string Name { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public dynamic Code { get; set; }
+    //public long IntValue { get; set; }
+    /// <summary>
+    /// 扩展字段 
+    /// </summary>
+    public dynamic Data { get; set; }
+}

+ 22 - 0
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/data.data.ts.vm

@@ -9,6 +9,8 @@ if(@column.EffectType == "Upload"){
 @:import { getDictDataDropdown } from '/@@/api/sys/admin';
 }else if(@column.EffectType == "ApiTreeSelect"){
 @:import { get@(@column.FkEntityName)Tree } from '/@@/api/main/@(@Model.ClassName)';
+}else if(@column.EffectType == "ConstSelector"){
+@:import { getConstSelector } from '/@@/api/sys/admin';
 }else if(@column.EffectType == "Switch"){
 @:import { Switch } from 'ant-design-vue';
 }
@@ -60,6 +62,16 @@ if(@column.EffectType == "fk"){
         @:value: 'value',
       @:},
     @:},
+}else if(@column.EffectType == "ConstSelector"){
+    @:component: 'ApiSelect',
+    @:componentProps: {
+      @:api: getConstSelector,
+      @:params: '@(@column.DictTypeCode)',
+      @:fieldNames: {
+        @:label: 'name',
+        @:value: 'code',
+      @:},
+    @:},
 }else if(@column.EffectType == "ApiTreeSelect"){
     @:component: '@(@column.EffectType)',
     @:componentProps: {
@@ -102,6 +114,16 @@ if(@column.EffectType == "fk"){
         @:value: 'value',
       @:},
     @:},
+}else if(@column.EffectType == "ConstSelector"){
+    @:component: 'ApiSelect',
+    @:componentProps: {
+      @:api: getConstSelector,
+      @:params: '@(@column.DictTypeCode)',
+      @:fieldNames: {
+        @:label: 'name',
+        @:value: 'code',
+      @:},
+    @:},
 }else if(@column.EffectType == "ApiTreeSelect"){
     @:component: '@(@column.EffectType)',
     @:componentProps: {

+ 11 - 0
Vben2/src/api/sys/admin.ts

@@ -132,6 +132,10 @@ enum Api {
   AddDataResource = '/sysDataResource/add',
   DeleteDataResource = '/sysDataResource/delete',
   UpdateDataResource = '/sysDataResource/update',
+
+  //常量下拉框接口
+  AllConstSelector = '/constSelector/allConstSelector',
+  ConstSelector = '/constSelector/constSelector',
 }
 
 ////////// 账号管理接口 //////////
@@ -422,3 +426,10 @@ export const deleteDataResource = (id: number) =>
 // 更新数据资源
 export const updateDataResource = (params: any) =>
   defHttp.post({ url: Api.UpdateDataResource, params });
+
+////////// 常量下拉框管理接口 //////////
+// 获取所有常量下拉框列表
+export const getAllConstSelector = () => defHttp.get<any>({ url: Api.AllConstSelector });
+// 根据类名获取下拉框数据
+export const getConstSelector = (typeName?: string) =>
+  defHttp.get<any>({ url: Api.ConstSelector, params: { typeName } });

+ 16 - 2
Vben2/src/views/sys/admin/code/GenerateConfigModal.vue

@@ -40,7 +40,8 @@
           :disabled="
             record.effectType !== 'Radio' &&
             record.effectType !== 'Select' &&
-            record.effectType !== 'Checkbox'
+            record.effectType !== 'Checkbox' &&
+            record.effectType !== 'ConstSelector'
           "
         />
       </template>
@@ -88,6 +89,7 @@
     updateGenerateConfig,
     getDictTypeList,
     getDictDataDropdown,
+    getAllConstSelector,
   } from '/@/api/sys/admin';
 
   export default defineComponent({
@@ -98,6 +100,8 @@
       const effectTypeData = ref<any[]>();
       const dictDataAll = ref<any[]>();
       const codeGenQueryTypeData = ref<any[]>();
+      const dictTypeList = ref<any[]>();
+      const allConstSelector = ref<any[]>();
       onMounted(async () => {
         // 初始化下拉框数据源
         await loadDictTypeDropDown();
@@ -142,11 +146,20 @@
           openFkModal(true, { data });
         } else if (value === 'ApiTreeSelect') {
           openTreeModal(true, { data });
+        } else if (value === 'Select') {
+          data.dictTypeCode = '';
+          dictDataAll.value = dictTypeList.value;
+        } else if (value === 'ConstSelector') {
+          data.dictTypeCode = '';
+          dictDataAll.value = allConstSelector.value;
         }
       }
       async function loadDictTypeDropDown() {
         effectTypeData.value = await getDictDataDropdown('code_gen_effect_type');
-        dictDataAll.value = await await getDictTypeList();
+        const data = await getDictTypeList();
+        dictTypeList.value = data;
+        dictDataAll.value = data;
+        allConstSelector.value = await getAllConstSelector();
         codeGenQueryTypeData.value = await getDictDataDropdown('code_gen_query_type');
       }
 
@@ -193,6 +206,7 @@
         registerFkModal,
         registerTreeModal,
         fkHandleSuccess,
+        dictTypeList,
       };
     },
   });