import React, { FC, useState } from 'react'; import { Tree, Badge, TreeDataNode, Space, TreeProps } from 'antd'; import theme from 'antd/es/theme' import { CloseOutlined, EditOutlined, SettingOutlined } from '@ant-design/icons' import { ModalForm, ProFormText } from '@ant-design/pro-components'; import './index.less' const componentName = 'zhst-biz-tree' const { useToken } = theme export interface BoxTreeProps extends TreeProps { data: TreeDataNode[] treeCheckable?: boolean showItemOption?: boolean customOptions?: any; onItemCheck?: TreeProps['onCheck'] onItemSelect?: TreeProps['onSelect'] onItemSetting?: (_data: any) => void onItemDelete?: (_data: any) => void onItemRename?: (_nodeData: any) => void onItemRenameFinish?: (_data: any, _nodeData: any) => Promise } const boxTree: FC = (props) => { const { onItemSelect, onItemCheck, onItemSetting, onItemDelete, data = [], showItemOption = true, treeCheckable = false, onItemRename, onItemRenameFinish, customOptions } = props const { token } = useToken() const [checkedItem, setCheckedItem] = useState('') const cameraStatus = new Map([ ['0', 'error'], ['1', 'success'], ['3', 'processing'], ['4', 'default'], ]) return ( { setCheckedItem(selectedKeys[0]) onItemSelect?.(selectedKeys, info) }} onCheck={onItemCheck} treeData={data} titleRender={(_nodeData) => { return (
{/* @ts-ignore */} {!_nodeData.children && _nodeData.isCamera && } {_nodeData.title as any} {showItemOption && ( {customOptions || ( <> { e.preventDefault(); e.stopPropagation(); onItemRename?.(_nodeData) }} />} submitter={{ searchConfig: { submitText: '确定', resetText: '取消', }, }} onFinish={async (value) => onItemRenameFinish?.(value, _nodeData)} > { e.preventDefault(); e.stopPropagation(); onItemSetting?.(_nodeData)} } /> { e.preventDefault(); e.stopPropagation(); onItemDelete?.(_nodeData) }} /> )} )}
) }} {...props} /> ); }; export default boxTree;