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) => (
}
onClick={() => navigate(`/company/customerInfo/${record.id}?edit=true`)}
>
编辑
handleDelete(record.id)}
okText="确定"
cancelText="取消"
okButtonProps={{ danger: true }}
>
}>
删除
),
},
];
return (
客户管理
{total} 个客户
}
className='h-full w-full overflow-auto'
extra={
}
onClick={() => navigate('/company/customerInfo')}
>
新增客户
}
>
`共 ${total} 条记录`,
}}
/>
);
};
export default CustomerPage;