Procházet zdrojové kódy

fix: 代码生成支持枚举查询、修改和显示

KidCheng před 2 roky
rodič
revize
436618967e

+ 22 - 1
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/editDialog.vue.vm

@@ -125,6 +125,17 @@
 						</el-form-item>
 						@:
 					</el-col>
+					}else if(@column.EffectType == "EnumSelector"){
+					@:<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						@:<el-form-item label="@column.ColumnComment" prop="@(@column.LowerPropertyName)">
+							@:<el-select clearable v-model="ruleForm.@(@column.LowerPropertyName)" placeholder="请选择@(@column.ColumnComment)">
+								@:<el-option v-for="(item,index) in  getEnum@(@column.PropertyName)Data"  :key="index" :value="item.value" :label="item.describe"></el-option>
+								@:
+							</el-select>
+							@:
+						</el-form-item>
+						@:
+					</el-col>
 					}else{
 
 					}
@@ -172,12 +183,19 @@
 	}
 	@if(@Model.TableField.Any(x=>x.EffectType == "Select")){
 	@:import { getDictDataList } from '/@@/api/system/admin';
-
 	}
+	@if(@Model.TableField.Any(x=>x.EffectType == "EnumSelector")){
+	@:import { getAPI } from '/@@/utils/axios-utils';
+	@:import { SysEnumApi } from '/@@/api-services/api';
+	}
+
 	@foreach (var column in Model.TableField){
 	if(@column.EffectType == "Select"){
 	@:const getEdit@(@column.LowerPropertyName)Data = ref<any>([]);
 	}
+	if(@column.EffectType == "EnumSelector"){
+	@:const getEnum@(@column.PropertyName)Data = ref<any>([]);
+	}
 	}
 	//父级传递来的参数
 	var props = defineProps({
@@ -304,6 +322,9 @@
 		if(@column.EffectType == "Select"){
 		@:getEdit@(@column.LowerPropertyName)Data.value= await dictTypeDataList('@(@column.DictTypeCode)');
 		}
+		if(@column.EffectType == "EnumSelector"){
+			@:getEnum@(@column.PropertyName)Data.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('@(@column.DictTypeCode)')).data.result ?? [];
+		}
 		}
 	});
 

+ 32 - 2
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/index.vue.vm

@@ -52,6 +52,14 @@
           </el-select>
           @:
         </el-form-item>
+        }else if(@column.EffectType == "EnumSelector"){
+        @:<el-form-item label="@column.ColumnComment">
+          @:<el-select clearable="" v-model="queryParams.@(@column.LowerPropertyName)" placeholder="请选择@(@column.ColumnComment)">
+            @:<el-option v-for="(item,index) in getEnum@(@column.LowerPropertyName)Data" :key="index" :value="item.value" :label="item.describe" />
+            @:
+          </el-select>
+          @:
+        </el-form-item>
         }else if(@column.EffectType == "DatePicker"){
         @:<el-form-item label="@column.ColumnComment">
           if(@column.QueryType == "~"){
@@ -119,6 +127,13 @@
           @:
         </el-table-column>
         }
+        else if(@column.EffectType == "EnumSelector"){
+          @:<el-table-column prop="@column.LowerPropertyName" label="@column.ColumnComment" width="@(column.ColumnComment!=null && column.ColumnComment.Length > 5 ? column.ColumnComment.Length * 15 : 140)" show-overflow-tooltip="" >
+            @:<template #default="scope">
+              @:<el-tag>{{ getEnumDesc(scope.row.@column.LowerPropertyName, getEnum@(@column.PropertyName)Data)}}</el-tag>
+            @:</template>
+          @:</el-table-column>
+        }
         else {
         @:<el-table-column prop="@column.LowerPropertyName" label="@column.ColumnComment" width="@(column.ColumnComment!=null && column.ColumnComment.Length > 5 ? column.ColumnComment.Length * 15 : 140)" show-overflow-tooltip="" />
         }
@@ -173,12 +188,24 @@
   break;
   }
   }
+  @if(@Model.QueryWhetherList.Any(x=>x.EffectType == "EnumSelector")){
+	@:import { getAPI } from '/@@/utils/axios-utils';
+	@:import { SysEnumApi } from '/@@/api-services/api';
+  @:import commonFunction from '/@@/utils/commonFunction';
+	}
 
   @foreach (var column in Model.QueryWhetherList){
   if(@column.EffectType == "Select"){
   @:const get@(@column.LowerPropertyName)Data = ref<any>([]);
-    }
-    }
+  }
+  if(@column.EffectType == "EnumSelector"){
+  @:const getEnum@(@column.PropertyName)Data = ref<any>([]);
+  }
+  }
+
+  @if(@Model.QueryWhetherList.Any(x=>x.EffectType == "EnumSelector")){
+	@:const { getEnumDesc } = commonFunction();
+	}
 
   const editDialogRef = ref();
   const loading = ref(false);
@@ -203,6 +230,9 @@
   if(@column.EffectType == "Select"){
     @:get@(@column.LowerPropertyName)Data.value = await dictTypeDataList('@(@column.DictTypeCode)');
   }
+  if(@column.EffectType == "EnumSelector"){
+    @:getEnum@(@column.PropertyName)Data.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('@(@column.DictTypeCode)')).data.result ?? [];
+  }
   }
   };
 

+ 5 - 0
Web/src/utils/commonFunction.ts

@@ -64,6 +64,10 @@ export default function () {
 	const removeHtml = (value: string) => {
 		return value.replace(/<[^>]+>/g, '');
 	};
+	//获取枚举描述
+	const getEnumDesc = (key: any, lstEnum: any) => {
+		return lstEnum.find((x: any) => x.value == key)?.describe;
+	};
 	return {
 		percentFormat,
 		dateFormatYMD,
@@ -74,5 +78,6 @@ export default function () {
 		copyText,
 		removeHtmlSub,
 		removeHtml,
+		getEnumDesc
 	};
 }