From bf4a8543ca9f4e9ef6d13f78385f5c0f30255dc0 Mon Sep 17 00:00:00 2001 From: LiuHao <liuhaoai545@gmail.com> Date: 星期六, 06 五月 2023 09:25:05 +0800 Subject: [PATCH] Merge branch 'ts' into dev --- src/views/tool/gen/genInfoForm.vue | 164 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 86 insertions(+), 78 deletions(-) diff --git a/src/views/tool/gen/genInfoForm.vue b/src/views/tool/gen/genInfoForm.vue index 70fb36f..ab6e714 100644 --- a/src/views/tool/gen/genInfoForm.vue +++ b/src/views/tool/gen/genInfoForm.vue @@ -1,76 +1,3 @@ -<script setup lang="ts"> -import { listMenu } from '@/api/system/menu'; -import { ComponentInternalInstance, PropType } from 'vue'; - -interface MenuOptionsType { - menuId: number; - menuName: string; - children: MenuOptionsType[] | undefined; -} - -const subColumns = ref<any>([]); -const menuOptions = ref<Array<MenuOptionsType>>([]); -const { proxy } = getCurrentInstance() as ComponentInternalInstance; - -const props = defineProps({ - info: { - type: Object as PropType<any>, - default: null - }, - tables: { - type: Array as PropType<any[]>, - default: null - } -}); - -const infoForm = computed(() => props.info); - -const table = computed(() => props.tables); - -// 琛ㄥ崟鏍¢獙 -const rules = ref({ - tplCategory: [{ required: true, message: "璇烽�夋嫨鐢熸垚妯℃澘", trigger: "blur" }], - packageName: [{ required: true, message: "璇疯緭鍏ョ敓鎴愬寘璺緞", trigger: "blur" }], - moduleName: [{ required: true, message: "璇疯緭鍏ョ敓鎴愭ā鍧楀悕", trigger: "blur" }], - businessName: [{ required: true, message: "璇疯緭鍏ョ敓鎴愪笟鍔″悕", trigger: "blur" }], - functionName: [{ required: true, message: "璇疯緭鍏ョ敓鎴愬姛鑳藉悕", trigger: "blur" }] -}); -const subSelectChange = () => { - infoForm.value.subTableFkName = ""; -} -const tplSelectChange = (value: string) => { - if (value !== "sub") { - infoForm.value.subTableName = ""; - infoForm.value.subTableFkName = ""; - } -} -const setSubTableColumns = (value: string) => { - table.value.forEach(item => { - const name = item.tableName; - if (value === name) { - subColumns.value = item.columns; - return; - } - }) -} -/** 鏌ヨ鑿滃崟涓嬫媺鏍戠粨鏋� */ -const getMenuTreeselect = async () => { - const res = await listMenu(); - const data = proxy?.handleTree<MenuOptionsType>(res.data, "menuId"); - if (data) { - menuOptions.value = data - } -} - -watch(() => props.info.subTableName, val => { - setSubTableColumns(val); -}); - -onMounted(() => { - getMenuTreeselect(); -}) -</script> - <template> <el-form ref="genInfoForm" :model="infoForm" :rules="rules" label-width="150px"> <el-row> @@ -140,11 +67,17 @@ <el-icon><question-filled /></el-icon> </el-tooltip> </template> - <tree-select - v-model:value="infoForm.parentMenuId" - :options="menuOptions" - :objMap="{ value: 'menuId', label: 'menuName', children: 'children' }" - placeholder="璇烽�夋嫨绯荤粺鑿滃崟" + <el-tree-select + v-model="infoForm.parentMenuId" + :data="menuOptions" + :props="{ value: 'menuId', label: 'menuName', children: 'children' }" + value-key="menuId" + node-key="menuId" + placeholder="閫夋嫨涓婄骇鑿滃崟" + check-strictly + filterable + clearable + highlight-current /> </el-form-item> </el-col> @@ -287,3 +220,78 @@ </template> </el-form> </template> + +<script setup lang="ts"> +import { listMenu } from '@/api/system/menu'; +import { ComponentInternalInstance, PropType } from 'vue'; + +interface MenuOptionsType { + menuId: number | string; + menuName: string; + children: MenuOptionsType[] | undefined; +} + +const subColumns = ref<any>([]); +const menuOptions = ref<Array<MenuOptionsType>>([]); +const { proxy } = getCurrentInstance() as ComponentInternalInstance; + +const props = defineProps({ + info: { + type: Object as PropType<any>, + default: null + }, + tables: { + type: Array as PropType<any[]>, + default: null + } +}); + +const infoForm = computed(() => props.info); + +const table = computed(() => props.tables); + +// 琛ㄥ崟鏍¢獙 +const rules = ref({ + tplCategory: [{required: true, message: "璇烽�夋嫨鐢熸垚妯℃澘", trigger: "blur"}], + packageName: [{required: true, message: "璇疯緭鍏ョ敓鎴愬寘璺緞", trigger: "blur"}], + moduleName: [{required: true, message: "璇疯緭鍏ョ敓鎴愭ā鍧楀悕", trigger: "blur"}], + businessName: [{required: true, message: "璇疯緭鍏ョ敓鎴愪笟鍔″悕", trigger: "blur"}], + functionName: [{required: true, message: "璇疯緭鍏ョ敓鎴愬姛鑳藉悕", trigger: "blur"}] +}); +const subSelectChange = () => { + infoForm.value.subTableFkName = ""; +} +const tplSelectChange = (value: string) => { + if (value !== "sub") { + infoForm.value.subTableName = ""; + infoForm.value.subTableFkName = ""; + } +} +const setSubTableColumns = (value: string) => { + table.value.forEach(item => { + const name = item.tableName; + if (value === name) { + subColumns.value = item.columns; + return; + } + }) +} + +/** 鏌ヨ鑿滃崟涓嬫媺鏍戠粨鏋� */ +const getMenuTreeselect = async () => { + const res = await listMenu(); + res.data.forEach(m => m.menuId = m.menuId.toString()); + const data = proxy?.handleTree<MenuOptionsType>(res.data, "menuId"); + if (data) { + menuOptions.value = data + } +} + +watch(() => props.info.subTableName, val => { + setSubTableColumns(val); +}); + +onMounted(() => { + getMenuTreeselect(); +}) +</script> -- Gitblit v1.9.3