Просмотр исходного кода

代码生成中,editDialog加入生成 树型选择框 控件的功能。

yzp 2 лет назад
Родитель
Сommit
820c763851
1 измененных файлов с 40 добавлено и 2 удалено
  1. 40 2
      Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/editDialog.vue.vm

+ 40 - 2
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/editDialog.vue.vm

@@ -1,4 +1,5 @@
-<template>
+@{Dictionary<string, int> definedObjects = new Dictionary<string, int>();}
+<template>
 	<div class="@(@Model.LowerClassName)-container">
 		<el-dialog v-model="isShowDialog" :title="props.title" :width="800" draggable="">
 			<el-form :model="ruleForm" ref="ruleFormRef" size="default" label-width="130px" :rules="rules">
@@ -21,6 +22,26 @@
 						</el-form-item>
 						@:
 					</el-col>
+					}else if(@column.EffectType == "ApiTreeSelect"){
+					@:<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						@:<el-form-item label="@column.ColumnComment" prop="@(@column.LowerColumnName)">
+							<el-cascader
+								@:options="@LowerFirstLetter(@column.FkEntityName)TreeData"
+								@:props="{ checkStrictly: true, emitPath: false, value: '@LowerFirstLetter(@column.ValueColumn)', label: '@LowerFirstLetter(@column.DisplayColumn)' }"
+								placeholder="请选择@(column.ColumnComment)"
+								clearable=""
+								class="w100"
+								@:v-model="ruleForm.@(column.LowerColumnName)"
+							>
+								<template #default="{ node, data }">
+									<span>{{ data.name }}</span>
+									<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
+								</template>
+							</el-cascader>
+							@:
+						</el-form-item>
+						@:
+					</el-col>
 					}else if(@column.EffectType == "Input"){
 					@:<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						@:<el-form-item label="@column.ColumnComment" prop="@(@column.LowerColumnName)">
@@ -131,6 +152,10 @@
 	}
 	import { add@(@Model.ClassName), update@(@Model.ClassName) } from "/@@/api/main/@(@Model.LowerClassName)";
 	@foreach (var column in Model.TableField){
+	if(@column.EffectType == "ApiTreeSelect" && !definedObjects.ContainsKey("import__@(@column.FkEntityName)Tree")){
+	@{definedObjects.Add("import__@(@column.FkEntityName)Tree", 1);}
+	@:import { get@(@column.FkEntityName)Tree } from '/@@/api/main/@(@Model.LowerClassName)';
+	}
 	if(@column.EffectType == "fk"){
 	@:import { get@(@column.FkEntityName)@(@column.ColumnName)Dropdown } from '/@@/api/main/@(@Model.LowerClassName)';
 	}
@@ -228,6 +253,19 @@ const submit = async () => {
   }
 }
 
+@foreach (var column in Model.TableField){
+  if(@column.EffectType == "ApiTreeSelect" && !definedObjects.ContainsKey("define_get@(@column.FkEntityName)TreeData")){
+	@{definedObjects.Add("define_get@(@column.FkEntityName)TreeData", 1);}
+@:const @LowerFirstLetter(@column.FkEntityName)TreeData = ref<any>([]); 
+@:const get@(@column.FkEntityName)TreeData = async () => {
+    @:let list = await get@(@column.FkEntityName)Tree();
+    @:@LowerFirstLetter(@column.FkEntityName)TreeData.value = list.data.result ?? [];
+@:};
+@:get@(@column.FkEntityName)TreeData();
+@:
+  }
+}
+
 @foreach (var column in Model.TableField){ 
 if(column.WhetherAddUpdate=="N") continue;
 if(@column.EffectType == "Upload"){
@@ -243,7 +281,7 @@ if(@column.EffectType == "Upload"){
 onMounted(async () => {
 	@foreach (var column in Model.TableField){
 	if(@column.EffectType == "Select"){
-	     @:getEdit@(@column.LowerColumnName)Data.value= await dictTypeDataList('@(@column.DictTypeCode)');
+	@:getEdit@(@column.LowerColumnName)Data.value= await dictTypeDataList('@(@column.DictTypeCode)');
 	 }
 	}
 });