import React, { useState, useRef, useEffect } from 'react';
import { Button, message, Modal, Tag } from 'antd';
import {
FooterToolbar,
PageContainer,
ProTable,
LightFilter,
} from '@ant-design/pro-components';
import { FormattedMessage, useIntl } from '@umijs/max';
import { PlusOutlined, ExportOutlined } from '@ant-design/icons';
import Http from '@/utils/http';
import Edit from './components/edit'
import { TextFilter, SelectFilter, DatetimeRangeFilter, LinkFilter } from '@/components/TableSearch'
import { statusMap } from '@/utils/enum-util'
import { repairBug } from '@/utils/common-util';
const TABLE_KEY = 'pro-table-@{SIMPLEENTITYNAME}';
const handleSave = async (val, intl) => {
const hide = message.loading(intl.formatMessage({ id: 'page.adding', defaultMessage: '正在添加' }));
try {
const resp = await Http.doPost('api/@{SIMPLEENTITYNAME}/save', val);
if (resp.code === 200) {
message.success(intl.formatMessage({ id: 'page.add.success', defaultMessage: '添加成功' }));
return true;
} else {
message.error(resp.msg);
return false;
}
} catch (error) {
message.error(intl.formatMessage({ id: 'page.add.fail', defaultMessage: '添加失败请重试!' }));
return false;
} finally {
hide();
}
};
const handleUpdate = async (val, intl) => {
const hide = message.loading(intl.formatMessage({ id: 'page.updating', defaultMessage: '正在更新' }));
try {
const resp = await Http.doPost('api/@{SIMPLEENTITYNAME}/update', val);
if (resp.code === 200) {
message.success(intl.formatMessage({ id: 'page.update.success', defaultMessage: '更新成功' }));
return true;
} else {
message.error(resp.msg);
return false;
}
} catch (error) {
message.error(intl.formatMessage({ id: 'page.update.fail', defaultMessage: '更新失败请重试!' }));
return false;
} finally {
hide();
}
};
const handleRemove = async (rows, intl) => {
if (!rows) return true;
const hide = message.loading(intl.formatMessage({ id: 'page.deleting', defaultMessage: '正在删除' }));
try {
const resp = await Http.doPost('api/@{SIMPLEENTITYNAME}/remove/' + rows.map((row) => row.id).join(','));
if (resp.code === 200) {
message.success(intl.formatMessage({ id: 'page.delete.success', defaultMessage: '删除成功' }));
return true;
} else {
message.error(resp.msg);
return false;
}
} catch (error) {
message.error(intl.formatMessage({ id: 'page.delete.fail', defaultMessage: '删除失败,请重试!' }));
return false;
} finally {
hide();
}
};
const handleExport = async (intl) => {
const hide = message.loading(intl.formatMessage({ id: 'page.exporting', defaultMessage: '正在导出' }));
try {
const resp = await Http.doPostBlob('api/@{SIMPLEENTITYNAME}/export');
const blob = new Blob([resp], { type: 'application/vnd.ms-excel' });
window.location.href = window.URL.createObjectURL(blob);
message.success(intl.formatMessage({ id: 'page.export.success', defaultMessage: '导出成功' }));
return true;
} catch (error) {
message.error(intl.formatMessage({ id: 'page.export.fail', defaultMessage: '导出失败,请重试' }));
return false;
} finally {
hide();
}
};
const Main = () => {
const intl = useIntl();
const formTableRef = useRef();
const actionRef = useRef();
const [selectedRows, setSelectedRows] = useState([]);
const [modalVisible, setModalVisible] = useState(false);
const [currentRow, setCurrentRow] = useState();
const [searchParam, setSearchParam] = useState({});
useEffect(() => {
}, []);
const columns = [
{
title: intl.formatMessage({
id: 'page.table.no',
defaultMessage: 'No'
}),
dataIndex: 'index',
valueType: 'indexBorder',
width: 48,
},
@{TABLECOLUMNS}
{
title: '操作',
dataIndex: 'option',
width: 140,
valueType: 'option',
render: (_, record) => [
,
,
],
},
];
return (
{
setSearchParam(prevState => ({
...prevState,
condition: value
}));
actionRef.current?.reload();
},
},
filter: (
{
}}
>
),
actions: [
,
,
],
}}
request={(params, sorter, filter) =>
Http.doPostPromise('/api/@{SIMPLEENTITYNAME}/page', { ...params, ...searchParam }, (res) => {
return {
data: res.data.records,
total: res.data.total,
success: true,
}
})
}
rowSelection={{
onChange: (ids, rows) => {
setSelectedRows(rows);
}
}}
columnsState={{
persistenceKey: TABLE_KEY,
persistenceType: 'localStorage',
defaultValue: {
// memo: { show: repairBug(TABLE_KEY, 'memo', false) },
option: { fixed: 'right', disable: true },
},
onChange(value) {
},
}}
/>
{selectedRows?.length > 0 && (
{selectedRows.length}