import {useEffect, useState} from "react"; import Taro from '@tarojs/taro'; import {View, Text} from '@tarojs/components'; import {Space, Tabs, Button, Empty} from '@nutui/nutui-react-taro'; import {Phone} from '@nutui/icons-react-taro'; import './list.scss'; import {pageUsers} from "@/api/system/user"; import {ShopDealerUser} from "@/api/shop/shopDealerUser/model"; const CustomerList = () => { const [activeTab, setActiveTab] = useState('all'); const [loading, setLoading] = useState(false); const [list, setList] = useState([]); const tabList = [ {title: '全部', value: 'all'}, {title: '跟进中', value: 'pending'}, {title: '已签约', value: 'confirmed'}, {title: '已取消', value: 'cancelled'} ]; const reload = async () => { setLoading(true); try { const res = await pageUsers({status: 0}); console.log(res, '客户列表'); if(res?.list){ // 为每个用户添加默认状态 const customersWithStatus: ShopDealerUser[] = res.list.map(user => ({ ...user, status: 'pending' // 默认状态为跟进中 })); setList(customersWithStatus); } } catch (error) { console.error('获取客户列表失败:', error); Taro.showToast({ title: '获取客户列表失败', icon: 'error' }); } finally { setLoading(false); } }; const getStatusText = (status: string) => { switch (status) { case 'pending': return '跟进中'; case 'confirmed': return '已签约'; case 'cancelled': return '已取消'; default: return ''; } }; const getStatusColor = (status: string) => { switch (status) { case 'pending': return '#ff6b35'; case 'confirmed': return '#52c41a'; case 'cancelled': return '#999'; default: return '#999'; } }; const handleCall = (phone: string) => { Taro.makePhoneCall({ phoneNumber: phone }); }; const handleAction = (customer: ShopDealerUser, action: 'sign' | 'cancel' | 'detail') => { switch (action) { case 'sign': // 跳转到签约页面 Taro.navigateTo({ url: `/pages/customer/sign?customerId=${customer.userId}` }); break; case 'cancel': Taro.showModal({ title: '确认取消', content: '确定要取消该客户吗?', success: (res) => { if (res.confirm) { // 这里应该调用取消客户的API Taro.showToast({ title: '已取消', icon: 'success' }); // 刷新列表 reload().then(); } } }); break; case 'detail': // 跳转到客户详情页面 Taro.navigateTo({ url: `/pages/customer/detail?customerId=${customer.userId}` }); break; } }; const handleReport = () => { // 跳转到邀请页面 Taro.navigateTo({ url: '/pages/customer/invite' }); }; useEffect(() => { reload().then(); }, []); return ( {/* 头部背景 */} {/* 标签页 */} setActiveTab(value as string)} > {tabList.map(tab => ( ))} {/* 客户列表 */} {loading ? ( 加载中... ) : list.length > 0 ? ( list.map((record) => ( {record.realName || '未知客户'} {getStatusText('pending')} 联系人: {record.realName || '未知'} 联系电话: {record.mobile || '未提供'} handleCall(`${record?.mobile}`)} /> 地址: {'地址未提供'} 添加时间:{record.createTime || '未知'} {/* 操作按钮 */} {record.payPassword === 'pending' && ( )} {record.payPassword === 'confirmed' && ( )} )) ) : ( )} {/* 底部邀请好友按钮 */} ); }; export default CustomerList;