import React, { useEffect, useState } from 'react'; import { Card, Table, Button, message, Popconfirm, Tag, Space } from 'antd'; import { PlusOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons'; import { useResources } from '@/hooks/resource/useResource'; import { useNavigate } from 'react-router-dom'; const CustomerPage = () => { const navigate = useNavigate(); const [pagination, setPagination] = useState({ current: 1, pageSize: 10 }); const [sorter, setSorter] = useState({ field: 'created_at', order: 'descend' }); const { resources: customers, loading, total, fetchResources: fetchCustomers, deleteResource: deleteCustomer } = useResources(pagination, sorter, 'customer'); useEffect(() => { fetchCustomers(); }, []); const handleTableChange = (pagination, filters, sorter) => { setPagination(pagination); setSorter(sorter); fetchCustomers({ current: pagination.current, pageSize: pagination.pageSize, field: sorter.field, order: sorter.order, }); }; const handleDelete = async (id) => { try { await deleteCustomer(id); message.success('删除成功'); fetchCustomers(); } catch (error) { message.error('删除失败:' + error.message); } }; const columns = [ { title: '客户名称', dataIndex: ['attributes', 'name'], key: 'name', ellipsis: true, }, { title: '联系人', dataIndex: ['attributes', 'contact'], key: 'contact', }, { title: '电话', dataIndex: ['attributes', 'phone'], key: 'phone', }, { title: '客户等级', dataIndex: ['attributes', 'level'], key: 'level', render: (level) => { const colors = { vip: 'gold', regular: 'blue', potential: 'green' }; const labels = { vip: 'VIP客户', regular: '普通客户', potential: '潜在客户' }; return {labels[level]}; }, }, { title: '状态', dataIndex: ['attributes', 'status'], key: 'status', render: (status) => ( {status === 'active' ? '启用' : '禁用'} ), }, { title: '创建日期', dataIndex: 'created_at', key: 'created_at', sorter: true, render: (text) => ( {new Date(text).toLocaleString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' })} ), }, { title: '操作', key: 'action', fixed: 'right', render: (_, record) => ( handleDelete(record.id)} okText="确定" cancelText="取消" okButtonProps={{ danger: true }} > ), }, ]; return ( 客户管理 {total} 个客户 } className='h-full w-full overflow-auto' extra={ } > `共 ${total} 条记录`, }} /> ); }; export default CustomerPage;