import React, { useState } from 'react'; import type { ProColumns } from '@ant-design/pro-table'; import { EditableProTable } from '@ant-design/pro-table'; import ProField from '@ant-design/pro-field'; import ProCard from '@ant-design/pro-card'; import { Button } from 'antd'; type DataSourceType = { id: React.Key; title?: string; decs?: string; state?: string; created_at?: string; children?: DataSourceType[]; }; const defaultData: DataSourceType[] = new Array(20).fill(1).map((_, index) => { return { id: (Date.now() + index).toString(), title: `活动名称${index}`, decs: '这个活动真好玩', state: 'open', created_at: '2020-05-26T09:42:56Z', }; }); export default () => { const [editableKeys, setEditableRowKeys] = useState(() => defaultData.map((item) => item.id), ); const [dataSource, setDataSource] = useState(() => defaultData); const columns: ProColumns[] = [ { title: '活动名称', dataIndex: 'title', width: '30%', formItemProps: { rules: [ { required: true, whitespace: true, message: '此项是必填项', }, { max: 16, whitespace: true, message: '最长为 16 位', }, { min: 6, whitespace: true, message: '最小为 6 位', }, ], }, }, { title: '状态', key: 'state', dataIndex: 'state', valueType: 'select', valueEnum: { all: { text: '全部', status: 'Default' }, open: { text: '未解决', status: 'Error', }, closed: { text: '已解决', status: 'Success', }, }, }, { title: '描述', dataIndex: 'decs', }, { title: '操作', valueType: 'option', width: 250, render: () => { return null; }, }, ]; return ( <> headerTitle="可编辑表格" columns={columns} rowKey="id" value={dataSource} onChange={setDataSource} recordCreatorProps={{ newRecordType: 'dataSource', record: () => ({ id: Date.now(), }), }} toolBarRender={() => { return [ , ]; }} editable={{ type: 'multiple', editableKeys, actionRender: (row, config, defaultDoms) => { return [defaultDoms.delete]; }, onValuesChange: (record, recordList) => { setDataSource(recordList); }, onChange: setEditableRowKeys, }} /> ); };