/* eslint-disable no-param-reassign */ import { PlusOutlined } from '@ant-design/icons'; import { ActionType, ProColumns, ProTable } from '@ant-design/pro-components'; import { PageContainer } from '@ant-design/pro-layout'; import { Button, message, Popconfirm, Switch } from 'antd'; import React, { useRef, useState } from 'react'; import { Access, useAccess } from 'umi'; import UpdateForm from './components/UpdateForm'; import { addOrUpdateScreenAdvertisementUsingPost, changeAdStateUsingGet, getScreenAdPageUsingPost, removeAdUsingPost } from '@/services/pop-b2b2c/pbcScreenAdvertisementController'; /** * 查询表格 * @param param0 */ const fetchData = async (params: API.PbcScreenAdvertisement) => { const msg = await getScreenAdPageUsingPost(params); return { data: msg.data?.records, total: msg.data?.total, success: msg.retcode, } as any; }; /** * 更新节点 * @param fields */ const handleUpdate = async (fields: API.PbcScreenAdvertisement) => { const hide = message.loading('正在保存'); try { const msg = await addOrUpdateScreenAdvertisementUsingPost(fields); hide(); if (msg.retcode) { message.success(!fields.pbcId ? '添加成功' : '保存成功'); return true; } message.error(msg.retmsg); return false; } catch (error) { hide(); message.error(!fields.pbcId ? '添加失败' : '保存失败'); return false; } }; const handleUpdateState = async (id: number, state: number) => { const hide = message.loading('正在保存'); if (!id) return false; try { const msg = await changeAdStateUsingGet({ pbcId: id, pbcBusinessState: state }); hide(); if (msg.retcode) { message.success(!id ? '新增成功!' : '保存成功!'); return true; } message.error(msg.retmsg); return false; } catch (error) { hide(); message.error(!id ? '新增失败,请重试!' : '保存失败,请重试!'); return false; } }; /** * 删除节点 * @param id */ const handleRemove = async (id?: number) => { const hide = message.loading('正在删除'); if (!id) return false; try { const msg = await removeAdUsingPost({ pbcId: id, }); hide(); if (msg.retcode) { message.success('删除成功,即将刷新'); } else { message.error(msg.retmsg ?? '删除失败,请重试'); } return true; } catch (error) { hide(); message.error('删除失败,请重试'); return false; } }; // eslint-disable-next-line @typescript-eslint/ban-types const TableList: React.FC<{}> = () => { const access: any = useAccess(); const actionRef = useRef(); const [stepFormValues, setStepFormValues] = useState({}); const [updateModalVisible, handleUpdateModalVisible] = useState(false); const columns: ProColumns[] = [ { title: '标题', dataIndex: 'pbcTitle', }, { title: '预览', dataIndex: 'pbcAdvertisement', }, { title: '创建时间', dataIndex: 'pbcCreateAt', valueType: 'dateTime', search: false, }, { title: '操作', fixed: 'right', valueType: 'option', render: (text, record) => ( { const success = await handleUpdateState(record.pbcId || 0, value ? 1 : 0); if (success) { if (actionRef.current) { actionRef.current.reload(); } } }} /> { const success = await handleRemove(record.pbcId); if (success) { actionRef.current?.reload(); } }} > ), }, ]; return ( columns={columns} actionRef={actionRef} request={fetchData} rowKey="pbcId" size="small" bordered search={{ labelWidth: 'auto', span: 6, optionRender: ({ searchText }, { form }) => { return [ , , ]; }, }} pagination={{ defaultPageSize: 20, showSizeChanger: true, }} scroll={{ y: 'calc(100vh - 320px)', }} dateFormatter="string" options={false} toolBarRender={() => []} /> {stepFormValues && Object.keys(stepFormValues).length ? ( { const success = await handleUpdate(value); if (success) { handleUpdateModalVisible(false); setStepFormValues({}); actionRef.current?.reload(); } }} onCancel={() => { message.destroy(); handleUpdateModalVisible(false); }} afterClose={() => { setStepFormValues({}); }} updateModalVisible={updateModalVisible} values={stepFormValues} /> ) : null} ); }; export default TableList;