import React, { useEffect, useState } from 'react'; import { observer } from 'mobx-react'; import { Modal, Row, Col, Tree, Table } from 'antd'; import styles from './index.module.css'; import store from './store'; export default observer(function (props) { const [loading, setLoading] = useState(false); const [group, setGroup] = useState({}); const [dataSource, setDataSource] = useState([]); const [selectedRowKeys, setSelectedRowKeys] = useState([]); useEffect(() => { if (!store.treeData.length) { store.fetchRecords() store.fetchGroups() .then(() => setGroup(store.treeData[0])) } else { setGroup(store.treeData[0]) } }, []) useEffect(() => { if (group.key) { const records = store.records.filter(x => group.self_host_ids.includes(x.id)); setDataSource(records) } }, [group]) function treeRender(nodeData) { return ( {nodeData.title}{nodeData.self_host_ids && nodeData.self_host_ids.length ? `(${nodeData.self_host_ids.length})` : null} ) } function handleClickRow(record) { const index = selectedRowKeys.indexOf(record.id); if (index !== -1) { selectedRowKeys.splice(index, 1) } else { selectedRowKeys.push(record.id) } setSelectedRowKeys([...selectedRowKeys]) } function handleSubmit() { if (props.onOk) { setLoading(true) props.onOk(group, selectedRowKeys) .then(props.onCancel, () => setLoading(false)) } } return ( setGroup(node)} /> { return { onClick: () => handleClickRow(record) } }} rowSelection={{ selectedRowKeys, onChange: (keys) => setSelectedRowKeys(keys) }}> a.name.localeCompare(b.name)}/> a.name.localeCompare(b.name)}/>
) })