import { PlusOutlined } from '@ant-design/icons'; import type { ActionType, ProColumns, ProCoreActionType, } from '@ant-design/pro-components'; import { message, Popconfirm } from 'antd'; import React, { useCallback, useRef, useState } from 'react'; import ConfigurableDrawerForm, { type ConfigurableDrawerFormRef, } from '@/components/DrawerForm'; import EnhancedProTable from '@/components/EnhancedProTable'; import type { ToolbarAction } from '@/components/EnhancedProTable/types'; import { formStatusType } from '@/constants'; import { createMailAccount, deleteMailAccount, getMailAccount, getMailAccountPage, type MailAccountVO, updateMailAccount, } from '@/services/system/message/mail/account'; import { baseTenantColumns, formColumns, formTestColumns } from './config'; const SyStemMessageSmsTemplate = () => { const tableRef = useRef(null); const configurableDrawerRef = useRef(null); const [type, setType] = useState<'create' | 'update' | 'test'>('create'); const testRef = useRef(null); const [currentItem, setCurrentItem] = useState(); const onFetch = async ( params: MailAccountVO & { pageSize?: number; current?: number; }, ) => { const data = await getMailAccountPage({ ...params, pageNo: params.current, pageSize: params.pageSize, }); return { data: data.list, success: true, total: data.total, }; }; const handleSend = async (record: MailAccountVO) => { setType('test'); setCurrentItem(record); testRef.current?.open(record); }; const handleEdit = (record: MailAccountVO) => { setType('update'); setCurrentItem(record); configurableDrawerRef.current?.open(record); }; const handleAdd = () => { setType('create'); configurableDrawerRef.current?.open(); }; const handleSubmit = useCallback( async (values: MailAccountVO) => { if (type === 'create') { await createMailAccount(values); message.success('创建成功'); } else { await updateMailAccount({ ...values, id: currentItem!.id, }); message.success('编辑成功'); } tableRef.current?.reload(); return true; }, [type, currentItem], ); const toolbarActions: ToolbarAction[] = [ { key: 'add', label: '新建', type: 'primary', icon: , onClick: handleAdd, }, ]; const actionColumns: ProColumns = { title: '操作', dataIndex: 'option', valueType: 'option', fixed: 'right', width: 120, render: ( text: React.ReactNode, record: MailAccountVO, _: number, action: ProCoreActionType | undefined, ) => [ handleEdit(record)}> 编辑 , // handleSend(record)}> // 详情 // , { await deleteMailAccount(record.id); message.success('删除成功'); action?.reload?.(); }} okText="是" cancelText="否" > 删除 , ], }; const columns = [...baseTenantColumns, actionColumns]; return ( <> ref={tableRef} columns={columns} request={onFetch} headerTitle="登录日志" showIndex={false} toolbarActions={toolbarActions} showSelection={false} /> ); }; export default SyStemMessageSmsTemplate;