diff --git a/src/pages/sys/menus/Menus.vue b/src/pages/sys/menus/Menus.vue
index fe50bd5..dd2d1e2 100644
--- a/src/pages/sys/menus/Menus.vue
+++ b/src/pages/sys/menus/Menus.vue
@@ -17,14 +17,21 @@
新建
-
-
+
@@ -84,12 +91,14 @@ import { elIcons } from '@/common/element/element.ts'
import MenuForm from '@/pages/sys/menus/MenuForm.vue'
import Strings from '@/common/utils/strings.ts'
import AIcon from '@/components/a-icon/AIcon.tsx'
+import type { TableInstance } from 'element-plus'
const tableData = ref([])
const searchForm = reactive({})
const searching = ref(false)
const showSearchForm = ref(true)
const menuFormIns = useTemplateRef>('menuForm')
+const dataTableIns = useTemplateRef>('dataTable')
const deling = ref(false)
function showDialog(data?: MenuTypes.MenuForm) {
@@ -131,6 +140,7 @@ function listAll() {
tableData.value = []
tableData.value = res.data?.map(it => {
it.hasChildren = true
+ it.children = []
return it
}) ?? []
})
@@ -139,18 +149,27 @@ function listAll() {
})
}
-function treeLoad(row: MenuTypes.SysMenu, _: any, resolve: (data: MenuTypes.SysMenu[]) => void) {
+function treeLoad(row: MenuTypes.SysMenu, expanded: boolean, resolve: (data: MenuTypes.SysMenu[]) => void) {
+ if (resolve == null && !expanded) return
searching.value = true
- MenuApi.listAll({...searchForm, pid: row.id})
- .then(res => {
- resolve(res.data?.map(it => {
- it.hasChildren = true
- return it
- }) ?? [])
- })
- .finally(() => {
- searching.value = false
- })
+ MenuApi.listAll({...searchForm, pid: row.id})
+ .then(res => {
+ if (resolve!=null){
+ resolve(res.data?.map(it => {
+ it.hasChildren = true
+ return it
+ }) ?? [])
+ } else {
+ dataTableIns.value.updateKeyChildren(row.id,res.data?.map(it => {
+ it.hasChildren = true
+ it.children = []
+ return it
+ }) ?? [])
+ }
+ })
+ .finally(() => {
+ searching.value = false
+ })
}
onMounted(() => {