import Header from '@/components/Header' import { useAutoTable, useContractTree, useTableExpand } from '@/utils/common/customHooks' import Slot from '@/components/Header/slot' import SvgIcon from '@/components/SvgIcon' import { tenderStore } from '@/store/mobx' import { ContractListTree } from '@/types/contract' import consts from '@/utils/consts' import { CaretDownOutlined } from '@ant-design/icons' import { Button, Dropdown, Menu, Table } from 'antd' import { ColumnsType } from 'antd/lib/table' import React, { useEffect, useState } from 'react' import { RouteComponentProps, withRouter } from 'react-router-dom' import styles from './index.module.scss' import { apiContractList } from '@/utils/common/api' import { handleIntoBidsection } from '@/utils/util' const List: React.FC = () => { const [ y ] = useAutoTable(66) const [ loading, setLoading ] = useState(false) useEffect(() => { // 清除所有的缓存页面 getTree() }, []) const getTree = async () => { setLoading(true) const { data, code = -1 } = await apiContractList(consts.BIDSECTION_TYPE.SAFE) if (code === consts.RET_CODE.SUCCESS) { setTree(data) setLoading(false) } } const [ tree, setTree ] = useContractTree() const [ expandedRowKeys, setRowKeys ] = useTableExpand(tree.children) const handleLinkClick = (id: string, name: string) => { tenderStore.saveTenderInfo({ bidsectionId: id, name }) handleIntoBidsection("safe", id, name) } const columns: ColumnsType = [ { title: '名称', dataIndex: 'name', key: 'name', width: '40%', render: (text: string, record: ContractListTree) => { if (record.isfolder) { return (
{text}
) } else { return (
{record.isEnd ? '└' : '├'} handleLinkClick(record.bidsectionId, record.name)}> {text}
) } } }, { title: '总数', dataIndex: 'safeTotal', key: 'safeTotal' }, { title: '待整改', dataIndex: 'safeRectification', key: 'safeRectification' }, { title: '整改中', dataIndex: 'safeRectificationIn', key: 'safeRectificationIn' }, { title: '已整改', dataIndex: 'safeRectificationFinish', key: 'safeRectificationFinish' } ] const handleMenuClick = ({ key }: any) => { if (key === 'expanded') { setRowKeys(true) } else { setRowKeys(false) } } const menu = ( 展开所有 收起所有 ) return (
columns={columns} loading={loading} dataSource={tree.children} pagination={false} rowKey={record => record.id} indentSize={20} scroll={{ y }} expandable={{ expandedRowKeys, onExpand: setRowKeys }} bordered />
) } export default withRouter(List)