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