|
@@ -1,19 +1,107 @@
|
|
|
import Header from '@/components/Header'
|
|
|
import Slot from '@/components/Header/slot'
|
|
|
-import { FolderOutlined } from '@ant-design/icons'
|
|
|
-import { Button } from 'antd'
|
|
|
-import React from 'react'
|
|
|
-export default function Tender(props: any) {
|
|
|
- console.log(props)
|
|
|
+import SvgIcon from '@/components/SvgIcon'
|
|
|
+import { TenderTree } from '@/types/tender'
|
|
|
+import consts from '@/utils/consts'
|
|
|
+import { FolderAddFilled } from '@ant-design/icons'
|
|
|
+import { Button, Table } from 'antd'
|
|
|
+import { ColumnsType } from 'antd/lib/table'
|
|
|
+import React, { useEffect, useState } from 'react'
|
|
|
+import { Link } from 'react-router-dom'
|
|
|
+import { apiTree } from './api'
|
|
|
+import styles from './index.module.scss'
|
|
|
+import './index.scss'
|
|
|
+const Tender: React.FC<{}> = () =>{
|
|
|
|
|
|
return (
|
|
|
<div className="content-wrap">
|
|
|
<Header title="标段管理">
|
|
|
<Slot position="right">
|
|
|
- <Button type="primary" size="small" icon={<FolderOutlined />}>新建文件夹</Button>
|
|
|
+ <Button type="primary" size="small" icon={<FolderAddFilled />}>新建文件夹</Button>
|
|
|
</Slot>
|
|
|
</Header>
|
|
|
+ <Content/>
|
|
|
</div>
|
|
|
)
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+const Content: React.FC<{}> = () => {
|
|
|
+ const [ tree, setTree ] = useState<TenderTree[]>([])
|
|
|
+ // const column_name_render = (text: string, record: any, index: number) => {
|
|
|
+ // console.log(1)
|
|
|
+ // return (<span>{text}</span>)
|
|
|
+ // }
|
|
|
+ const columns: ColumnsType<TenderTree> = [
|
|
|
+ {
|
|
|
+ title: '名称',
|
|
|
+ dataIndex: 'name',
|
|
|
+ key: 'name',
|
|
|
+ // eslint-disable-next-line react/display-name
|
|
|
+ render: (text: string, record: TenderTree) => {
|
|
|
+ if (record.isfolder) {
|
|
|
+ return <div style={{ verticalAlign: "baseline" }}><SvgIcon iconClass="folder" fontSize="12" /><span className="pi-mg-left-5">{text}</span></div>
|
|
|
+ } else {
|
|
|
+ return <div><span style={{ color: '#6c757d', marginRight: '.5rem' }}>{record.isEnd ? '└' : '├'}</span><span>{text}</span></div>
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '成员',
|
|
|
+ dataIndex: 'member',
|
|
|
+ key: 'member',
|
|
|
+ width: 200,
|
|
|
+ // eslint-disable-next-line react/display-name
|
|
|
+ render: (text:string, record: TenderTree, index: number) => {
|
|
|
+ if (record.leaf) {
|
|
|
+ return <div><span className="pi-mg-right-5">{record.ancounts} 成员</span><Link className={styles.treeBtn} to="/">成员管理</Link></div>
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ dataIndex: 'opreate',
|
|
|
+ key: 'opreate',
|
|
|
+ width: 80
|
|
|
+ // eslint-disable-next-line react/display-name
|
|
|
+ // render: (text:string, record: TenderTree, index: number) => {
|
|
|
+ // return <Dropdown overlay={(record: TenderTree, index: number) => {
|
|
|
+ // return (
|
|
|
+ // <Menu>
|
|
|
+ // <Menu.Item key="0"></Menu.Item>
|
|
|
+ // <Menu.Item key="1"></Menu.Item>
|
|
|
+ // <Menu.Item key="2"></Menu.Item>
|
|
|
+ // <Menu.Item key="3"></Menu.Item>
|
|
|
+ // </Menu>
|
|
|
+ // )
|
|
|
+ // }} trigger={['click']}>
|
|
|
+ // <span>
|
|
|
+ // <SvgIcon iconClass="align-center" fill="#007bff" fontSize="12"></SvgIcon>
|
|
|
+ // <CaretDownOutlined style={{ fontSize: "12px", color: "#007bff" }}/>
|
|
|
+ // </span>
|
|
|
+ // </Dropdown>
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ useEffect(() => {
|
|
|
+ getTree()
|
|
|
+ }, [])
|
|
|
+ const getTree = async () => {
|
|
|
+ const { data: { children = [] } = [], code = -1 } = await apiTree()
|
|
|
+ if (code === consts.RET_CODE.SUCCESS) {
|
|
|
+ setTree(children)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return (
|
|
|
+ <div className="pi-flex-column">
|
|
|
+ <div className="pi-mg-16 pi-pd-tb-64 pi-pd-lr-32 jumbotron">
|
|
|
+ <h3>没有标段数据</h3>
|
|
|
+ </div>
|
|
|
+ <div className={styles.tableContent}>
|
|
|
+ <Table<TenderTree> columns={columns} dataSource={tree} pagination={false} rowKey={record => record.id} bordered></Table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+}
|
|
|
+export default Tender
|