"use client"
import { useState } from "react"
import {
Box,
Combobox,
Input,
ScrollArea,
Text,
TreeNodeData,
useCombobox,
} from "@mantine/core"
const TreeSelect = ({ treeData }: { treeData: TreeNodeData[] }) => {
const combobox = useCombobox()
const [value, setValue] = useState("")
const renderTreeNodes = (nodes: TreeNodeData[]) =>
nodes.map((node) => (
{/* 这里的点击事件需要自己处理,例如展开子节点,更新输入框值 */}
{
setValue(node.label as string)
// combobox.closeDropdown()
}}
style={{
padding: "8px",
cursor: "pointer",
"&:hover": { backgroundColor: "#f0f0f0" },
}}>
{node.label}
{node.children && {renderTreeNodes(node.children)}}
))
return (
setValue(val)}
withinPortal={false}>
}
onClick={() => combobox.openDropdown()}
style={{ width: 250 }}>
{value || "请选择..."}
{renderTreeNodes(treeData)}
)
}
export default TreeSelect