import { fetchInitialCredentials, fetchProductList, fetchUpdateProduct } from '@/services/product'; import { ActionType, PageContainer, ProColumns, ProTable } from '@ant-design/pro-components'; import { useIntl, useNavigate } from '@umijs/max'; import { Button, Popconfirm, Tag, message } from 'antd'; import { useRef, useState } from 'react'; import { ProductForm } from './components/Form'; import { CredentialModal } from './Detail/components/CredentialModal'; export default function ProductPage() { const intl = useIntl(); const navigate = useNavigate(); const actionRef = useRef(); const [credData, setCredData] = useState(null); const [credOpen, setCredOpen] = useState(false); const handleCreateSuccess = async (ticket?: string) => { actionRef.current?.reload(); if (!ticket) return; const res = await fetchInitialCredentials({ ticket }); setCredData(res.data ?? null); setCredOpen(true); }; const handleToggleStatus = async (record: API.ProductItem) => { await fetchUpdateProduct({ id: record.id, name: record.name, status: record.status === 1 ? 0 : 1, }); message.success('操作成功'); actionRef.current?.reload(); }; const columns: ProColumns[] = [ { title: '名称', dataIndex: 'name', render: (_, r) => navigate(`/admin/products/${r.id}`)}>{r.name}, }, { title: 'Code', dataIndex: 'code', copyable: true }, { title: 'App Key', dataIndex: 'appKey', copyable: true }, { title: '状态', dataIndex: 'status', render: (_, r) => ( {r.status === 1 ? '启用' : '禁用'} ), }, { title: '创建时间', dataIndex: 'createTime', valueType: 'dateTime' }, { title: '操作', valueType: 'option', render: (_, r) => [ actionRef.current?.reload()} trigger={编辑} />, handleToggleStatus(r)} > {r.status === 1 ? '禁用' : '启用'} , ], }, ]; return ( actionRef={actionRef} columns={columns} rowKey="id" search={false} request={fetchProductList} toolBarRender={() => [ {intl.formatMessage({ id: 'admin.product.create' })} } />, ]} /> setCredOpen(false)} /> ); }