diff --git a/src/components/Form/src/components/ApiTreeSelect.vue b/src/components/Form/src/components/ApiTreeSelect.vue index 71974e0..d029372 100644 --- a/src/components/Form/src/components/ApiTreeSelect.vue +++ b/src/components/Form/src/components/ApiTreeSelect.vue @@ -22,7 +22,8 @@ const props = defineProps({ params: { type: Object }, immediate: { type: Boolean, default: true }, resultField: propTypes.string.def(''), - handleTree: { type: String, default: '' } + handleTree: { type: String, default: '' }, + parent: { type: String, default: '' } }) const emit = defineEmits(['options-change', 'change']) const attrs = useAttrs() @@ -79,7 +80,13 @@ async function fetch() { if (props.handleTree) { result = handleTree(result, props.handleTree) } - treeData.value = (result as Recordable[]) || [] + if (props.parent) { + treeData.value = [{ id: 0, name: props.parent, children: [] }] + treeData.value[0].children = (result as Recordable[]) || [] + } else { + treeData.value = (result as Recordable[]) || [] + } + isFirstLoaded.value = true emit('options-change', treeData.value) } diff --git a/src/views/system/menu/menu.data.ts b/src/views/system/menu/menu.data.ts index 83d2487..3080de0 100644 --- a/src/views/system/menu/menu.data.ts +++ b/src/views/system/menu/menu.data.ts @@ -85,6 +85,7 @@ export const formSchema: FormSchema[] = [ component: 'ApiTreeSelect', componentProps: { api: () => listSimpleMenus(), + parent: '主类目', fieldNames: { label: 'name', key: 'id',