213 lines
5.9 KiB
TypeScript
213 lines
5.9 KiB
TypeScript
![]() |
import React, { useRef, useState } from 'react';
|
||
|
import ProTable from '@ant-design/pro-table';
|
||
|
import type { ProColumns, ActionType } from '@ant-design/pro-table';
|
||
|
import { Form, Input, Button, Row, Col, DatePicker, Tabs, Space } from 'antd';
|
||
|
import { SearchOutlined, ReloadOutlined, PlusOutlined } from '@ant-design/icons';
|
||
|
|
||
|
const { RangePicker } = DatePicker;
|
||
|
|
||
|
// 示例数据
|
||
|
const tableData = [
|
||
|
{
|
||
|
id: 1,
|
||
|
name: '中山市合创展包装材料有限公司',
|
||
|
type: '经销商',
|
||
|
unit: '重工',
|
||
|
dept: '采购部',
|
||
|
createTime: '2025-03-03',
|
||
|
},
|
||
|
{
|
||
|
id: 2,
|
||
|
name: '深圳市欧阳华斯电源有限公司',
|
||
|
type: '服务商',
|
||
|
unit: '重工二级单位XXX',
|
||
|
dept: '采购部',
|
||
|
createTime: '2023-10-26',
|
||
|
},
|
||
|
{
|
||
|
id: 3,
|
||
|
name: '广东振兴塑胶机械有限公司',
|
||
|
type: '代理商',
|
||
|
unit: '重工',
|
||
|
dept: '采购部',
|
||
|
createTime: '2023-10-18',
|
||
|
},
|
||
|
{
|
||
|
id: 4,
|
||
|
name: '上海硕建建筑技术工程有限公司',
|
||
|
type: '服务商',
|
||
|
unit: '重工二级单位XXX',
|
||
|
dept: '采购部',
|
||
|
createTime: '2023-09-12',
|
||
|
},
|
||
|
{
|
||
|
id: 5,
|
||
|
name: '中山市合创展包装材料有限公司',
|
||
|
type: '经销商',
|
||
|
unit: '重工',
|
||
|
dept: '采购部',
|
||
|
createTime: '2023-08-30',
|
||
|
},
|
||
|
{
|
||
|
id: 6,
|
||
|
name: '深圳市欧阳华斯电源有限公司',
|
||
|
type: '服务商',
|
||
|
unit: '重工二级单位XXX',
|
||
|
dept: '采购部',
|
||
|
createTime: '2023-07-31',
|
||
|
},
|
||
|
{
|
||
|
id: 7,
|
||
|
name: '广东振兴塑胶机械有限公司',
|
||
|
type: '代理商',
|
||
|
unit: '重工',
|
||
|
dept: '采购部',
|
||
|
createTime: '2023-07-25',
|
||
|
},
|
||
|
{
|
||
|
id: 8,
|
||
|
name: '上海硕建建筑技术工程有限公司',
|
||
|
type: '服务商',
|
||
|
unit: '重工二级单位XXX',
|
||
|
dept: '采购部',
|
||
|
createTime: '2023-07-19',
|
||
|
},
|
||
|
{
|
||
|
id: 9,
|
||
|
name: '广东振兴塑胶机械有限公司',
|
||
|
type: '代理商',
|
||
|
unit: '重工',
|
||
|
dept: '采购部',
|
||
|
createTime: '2023-07-17',
|
||
|
},
|
||
|
{
|
||
|
id: 10,
|
||
|
name: '上海硕建建筑技术工程有限公司',
|
||
|
type: '服务商',
|
||
|
unit: '重工二级单位XXX',
|
||
|
dept: '采购部',
|
||
|
createTime: '2023-07-10',
|
||
|
},
|
||
|
];
|
||
|
|
||
|
const columns: ProColumns<any>[] = [
|
||
|
{
|
||
|
title: '序号',
|
||
|
dataIndex: 'index',
|
||
|
valueType: 'index',
|
||
|
width: 48,
|
||
|
align: 'center',
|
||
|
},
|
||
|
{
|
||
|
title: '供应商名称',
|
||
|
dataIndex: 'name',
|
||
|
align: 'center',
|
||
|
ellipsis: true,
|
||
|
},
|
||
|
{
|
||
|
title: '供应商类型',
|
||
|
dataIndex: 'type',
|
||
|
align: 'center',
|
||
|
},
|
||
|
{
|
||
|
title: '创建单位',
|
||
|
dataIndex: 'unit',
|
||
|
align: 'center',
|
||
|
ellipsis: true,
|
||
|
},
|
||
|
{
|
||
|
title: '创建部门',
|
||
|
dataIndex: 'dept',
|
||
|
align: 'center',
|
||
|
},
|
||
|
{
|
||
|
title: '创建时间',
|
||
|
dataIndex: 'createTime',
|
||
|
align: 'center',
|
||
|
sorter: (a, b) => new Date(a.createTime).getTime() - new Date(b.createTime).getTime(),
|
||
|
},
|
||
|
{
|
||
|
title: '操作',
|
||
|
dataIndex: 'option',
|
||
|
align: 'center',
|
||
|
valueType: 'option',
|
||
|
render: (_, record) => (
|
||
|
<Space>
|
||
|
<a>查看</a>
|
||
|
<a>编辑</a>
|
||
|
</Space>
|
||
|
),
|
||
|
},
|
||
|
];
|
||
|
|
||
|
|
||
|
|
||
|
const SupplierRegisterAgent: React.FC = () => {
|
||
|
const actionRef = useRef<ActionType>();
|
||
|
const [tabKey, setTabKey] = useState('inland');
|
||
|
|
||
|
// 查询区
|
||
|
const searchFormRender = (
|
||
|
<Form layout="vertical">
|
||
|
<Row gutter={16}>
|
||
|
<Col span={6}>
|
||
|
<Form.Item name="keyword" label="名称">
|
||
|
<Input placeholder="请输入供应商名称或个人姓名关键字" allowClear />
|
||
|
</Form.Item>
|
||
|
</Col>
|
||
|
<Col span={12}>
|
||
|
<Form.Item name="dateRange" label="创建时间">
|
||
|
<RangePicker style={{ width: '100%' }} />
|
||
|
</Form.Item>
|
||
|
</Col>
|
||
|
<Col span={6} style={{ display: 'flex', alignItems: 'flex-end', gap: 8 }}>
|
||
|
<Button type="primary" icon={<SearchOutlined />}>查询</Button>
|
||
|
<Button icon={<ReloadOutlined />}>重置</Button>
|
||
|
</Col>
|
||
|
</Row>
|
||
|
</Form>
|
||
|
);
|
||
|
|
||
|
return (
|
||
|
<div>
|
||
|
{/* 查询区 */}
|
||
|
{searchFormRender}
|
||
|
<Row align="middle" justify="space-between" style={{ marginBottom: 16, marginTop: 8 }}>
|
||
|
<Col flex="auto">
|
||
|
<Tabs
|
||
|
activeKey={tabKey}
|
||
|
onChange={setTabKey}
|
||
|
style={{ marginBottom: 0 }} // 防止双距
|
||
|
>
|
||
|
<Tabs.TabPane tab="境内供应商" key="inland" />
|
||
|
<Tabs.TabPane tab="境外供应商" key="overseas" />
|
||
|
<Tabs.TabPane tab="个人" key="personal" />
|
||
|
</Tabs>
|
||
|
</Col>
|
||
|
<Col>
|
||
|
<Button type="primary" icon={<PlusOutlined />}>新增</Button>
|
||
|
</Col>
|
||
|
</Row>
|
||
|
{/* 表格 */}
|
||
|
<ProTable
|
||
|
columns={columns}
|
||
|
actionRef={actionRef}
|
||
|
dataSource={tableData}
|
||
|
rowKey="id"
|
||
|
search={false}
|
||
|
pagination={{
|
||
|
showQuickJumper: true,
|
||
|
showSizeChanger: true,
|
||
|
pageSize: 10,
|
||
|
total: 188,
|
||
|
current: 1,
|
||
|
}}
|
||
|
options={false}
|
||
|
bordered
|
||
|
/>
|
||
|
</div>
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export default SupplierRegisterAgent;
|