"use client" import TreeSelect from "@/components/tree-select" import { getCityTree } from "@/components/tree-select/api" import { TreeNode } from "@/components/tree-select/api/type" import { VirtualTreeSelect } from "@/components/tree-select/tree" import { Breadcrumbs, Flex, Paper, Stack, TreeNodeData, UnstyledButton, } from "@mantine/core" import { useCallback, useEffect, useState } from "react" const convertTreeNodeToTreeNodeData = ( list: TreeNode[], level: number = 1 ): TreeNodeData[] => list.map((g) => ({ label: g.label, value: g.value, nodeProps: { level: level }, children: g.children && g.children.length ? convertTreeNodeToTreeNodeData(g.children, level + 1) : [], })) export default function ComponentBaseSelectPage() { const items = [{ title: "选择组件" }].map((item) => ( {item.title} )) const [value, setValue] = useState("") const [treeData, setTreeData] = useState([]) const asyncGetCityTree = useCallback(async () => { const res = await getCityTree() setTreeData(convertTreeNodeToTreeNodeData(res)) }, []) useEffect(() => { queueMicrotask(() => asyncGetCityTree()) }, [asyncGetCityTree]) return ( <> {items} {}} w={"200px"} /> {value} ) }