Przeglądaj źródła

【修复】代码生成 模板页面SELECT选择器生成的代码异常修复
【新增】字典列表 import { getDictDataDropdown } from '/@/api/system/admin';

黄榆超 3 lat temu
rodzic
commit
810b474a8f

+ 28 - 4
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/editDialog.vue.vm

@@ -14,7 +14,7 @@
 					@:<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						@:<el-form-item label="@column.ColumnComment" prop="@(@column.LowerColumnName)">
 							@:<el-select clearable="" v-model="ruleForm.@(@column.LowerColumnName)" placeholder="请选择@(@column.ColumnComment)">
-								@:<el-select-option v-for="(item,index) in get@(@column.FkEntityName)DropdownList" :key="index" :value="item.code">{{ item.name }}</el-select-option>
+								@:<el-option v-for="(item,index) in get@(@column.FkEntityName)DropdownList" :key="index" :value="item.code">{{ item.name }}</el-option>
 								@:
 							</el-select>
 							@:
@@ -49,7 +49,7 @@
 					@:<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						@:<el-form-item label="@column.ColumnComment" prop="@(@column.LowerColumnName)">
 							@:<el-select clearable="" v-model="ruleForm.@(@column.LowerColumnName)" placeholder="请选择@(@column.ColumnComment)">
-								@:<el-select-option v-for="(item,index) in getDictDataDropdownList('@column.DictTypeCode')" :key="index" :value="item.value">{{ item.label }}</el-select-option>
+								@:<el-option v-for="(item,index) in  getEdit@(@column.LowerColumnName)Data"  :key="index" :value="item.value" :label="item.label">{{ item.label }}</el-option>
 								@:
 							</el-select>
 							@:
@@ -60,7 +60,7 @@
 					@:<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						@:<el-form-item label="@column.ColumnComment" prop="@(@column.LowerColumnName)">
 							@:<el-select clearable="" v-model="ruleForm.@(@column.LowerColumnName)" placeholder="请选择@(@column.ColumnComment)">
-								@:<el-select-option v-for="(item,index) in getSelectorList('@column.DictTypeCode')" :key="index" :value="item.code">{{ item.name }}</el-select-option>
+								@:<el-option v-for="(item,index) in getSelectorList('@column.DictTypeCode')" :key="index" :value="item.code">{{ item.name }}</el-option>
 								@:
 							</el-select>
 							@:
@@ -104,7 +104,7 @@
 </template>
 
 <script lang="ts" setup>
-	import { ref } from "vue";
+	import { ref,onMounted } from "vue";
 	import { ElMessage } from "element-plus";
 	import type { FormRules } from "element-plus";
 	import { add@(@Model.ClassName), update@(@Model.ClassName) } from "/@@/api/main/@(@Model.LowerClassName)";
@@ -116,6 +116,12 @@
 	@foreach (var column in Model.TableField){
 	if(@column.EffectType == "Select"){
 	@:import { getDictDataDropdown } from '/@@/api/system/admin';
+
+	}
+	}
+	@foreach (var column in Model.TableField){
+	if(@column.EffectType == "Select"){
+	@:const getEdit@(@column.LowerColumnName)Data = ref<any>([]);
 	}
 	}
 	//父级传递来的参数
@@ -178,6 +184,24 @@ const submit = async () => {
   });
 };
 
+@foreach (var column in Model.TableField){
+  if(@column.EffectType == "Select"){
+    @:const getDictDataDropdownList = async (val: any) => {
+      @:let list = await getDictDataDropdown(val);
+      @:return list.data.result ?? [];
+    @:};
+    break;
+  }
+}
+// 页面加载时
+onMounted(async () => {
+	@foreach (var column in Model.TableField){
+	if(@column.EffectType == "Select"){
+	     @:getEdit@(@column.LowerColumnName)Data.value= await getDictDataDropdownList('@(@column.DictTypeCode)');
+	 }
+	}
+});
+
 //将属性或者函数暴露给父组件
 defineExpose({ openDialog });
 </script>

+ 38 - 26
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/index.vue.vm

@@ -35,7 +35,7 @@
               @:<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" >
               @:<el-form-item label="@column.ColumnComment">
               @:<el-select clearable v-model="queryParams.@(@column.LowerColumnName)" placeholder="请选择@(@column.ColumnComment)">
-              @:<el-select-option v-for="(item,index) in getDictDataDropdownList('@(@column.DictTypeCode)')" :key="index" :value="item.code">{{ item.name }}</el-select-option>
+              @:<el-option v-for="(item,index) in get@(@column.LowerColumnName)Data" :key="index" :value="item.value" :label="item.label" >{{ item.label }}</el-option>
               @:</el-select>
               @:</el-form-item>
               @:</el-col>
@@ -135,13 +135,13 @@
 </template>
 
 <script lang="ts" setup>
-import { ref } from "vue";
-import { ElMessageBox, ElMessage } from "element-plus";
-import { auth } from '/@@/utils/authFunction';
-import { formatDate } from '/@@/utils/formatTime';
+	import { ref } from "vue";
+	import { ElMessageBox, ElMessage } from "element-plus";
+	import { auth } from '/@@/utils/authFunction';
+	import { formatDate } from '/@@/utils/formatTime';
 
-import editDialog from '/@@/views/main/@(@Model.LowerClassName)/component/editDialog.vue'
-import { get@(@Model.ClassName)PageList, delete@(@Model.ClassName) } from '/@@/api/main/@(@Model.LowerClassName)';
+	import editDialog from '/@@/views/main/@(@Model.LowerClassName)/component/editDialog.vue'
+	import { get@(@Model.ClassName)PageList, delete@(@Model.ClassName) } from '/@@/api/main/@(@Model.LowerClassName)';
 	@foreach (var column in Model.QueryWhetherList){
 	if(@column.EffectType == "fk"){
 	@:import { get@(@column.FkEntityName)Dropdown } from '/@@/api/main/@(@Model.LowerClassName)';
@@ -154,25 +154,37 @@ import { get@(@Model.ClassName)PageList, delete@(@Model.ClassName) } from '/@@/a
 	}
 	}
 
-const editDialogRef = ref();
-const loading = ref(false);
-const tableData = ref<any>([]);
-const queryParams = ref<any>({});
-const tableParams = ref({
-  page: 1,
-  pageSize: 10,
-  total: 0,
-});
-const edit@(@Model.ClassName)Title = ref("");
+	@foreach (var column in Model.QueryWhetherList){
+	if(@column.EffectType == "Select"){
+	@:const get@(@column.LowerColumnName)Data = ref<any>([]);
+		}
+	}
+
+		const editDialogRef = ref();
+		const loading = ref(false);
+		const tableData = ref<any>([]);
+const queryParams = ref<any>
+	({});
+	const tableParams = ref({
+	page: 1,
+	pageSize: 10,
+	total: 0,
+	});
+	const edit@(@Model.ClassName)Title = ref("");
 
 
-// 查询操作
-const handleQuery = async () => {
-  loading.value = true;
-  var res = await get@(@Model.ClassName)PageList(Object.assign(queryParams.value, tableParams.value));
-  tableData.value = res.data.result?.items ?? [];
-  tableParams.value.total = res.data.result?.total;
-  loading.value = false;
+	// 查询操作
+	const handleQuery = async () => {
+	loading.value = true;
+	var res = await get@(@Model.ClassName)PageList(Object.assign(queryParams.value, tableParams.value));
+	tableData.value = res.data.result?.items ?? [];
+	tableParams.value.total = res.data.result?.total;
+	loading.value = false;
+	@foreach (var column in Model.QueryWhetherList){
+	if(@column.EffectType == "Select"){
+	@:get@(@column.LowerColumnName)Data.value = await getDictDataDropdownList('@(@column.DictTypeCode)');
+		}
+	}
 };
 
 // 打开新增页面
@@ -226,8 +238,8 @@ const handleCurrentChange = (val: number) => {
 
 @foreach (var column in Model.QueryWhetherList){
   if(@column.EffectType == "Select"){
-    @:const getDictDataDropdownList = await (val: any) => {
-      @:let list = await getDictDataDropdownList(val);
+    @:const getDictDataDropdownList = async (val: any) => {
+      @:let list = await getDictDataDropdown(val);
       @:return list.data.result ?? [];
     @:};
     break;

+ 12 - 0
Web/src/api/system/admin.ts

@@ -0,0 +1,12 @@
+import request from '/@/utils/request';
+enum Api {
+    DictTypeDataList = '/sysDictData/DictDataDropdown',
+}
+
+// 增加配置金蝶云信息
+export const getDictDataDropdown = (params?: any) =>
+	request({
+		url: `${Api.DictTypeDataList}/${params}`,
+		method: 'get'
+	});
+