import { useState } from "react"; import { Search, Plus, MapPin, Building2, User, Phone, X, Clock, FileText, Mail, Calendar } from "lucide-react"; import { motion, AnimatePresence } from "motion/react"; export default function Expansion() { const [activeTab, setActiveTab] = useState<"sales" | "channel">("sales"); const [selectedItem, setSelectedItem] = useState(null); const salesData = [ { id: 1, type: "sales", name: "李四", phone: "13812345678", email: "lisi@example.com", dept: "华东大区", industry: "教育", title: "高级销售", intent: "高", stage: "初步沟通", hasExp: true, inProgress: true, active: true, expectedJoinDate: "2024-05-01", notes: "候选人对提成机制比较关注,在教育行业有5年以上的客户资源积累。" }, { id: 2, type: "sales", name: "王五", phone: "13987654321", email: "wangwu@example.com", dept: "华北大区", industry: "医疗", title: "销售经理", intent: "中", stage: "方案交流", hasExp: false, inProgress: false, active: true, expectedJoinDate: "待定", notes: "需要进一步沟通产品线细节,目前在看其他几家竞品的机会。" }, ]; const channelData = [ { id: 1, type: "channel", name: "某某科技代理商", province: "浙江", industry: "政府", revenue: "500万", size: 50, contact: "张总", contactTitle: "总经理", phone: "13800138000", stage: "合作洽谈", landed: true, expectedSignDate: "2024-04-15", notes: "对方在政务云桌面领域有深厚资源,希望能拿到省级独家代理权。" }, { id: 2, type: "channel", name: "云端服务提供商", province: "江苏", industry: "金融", revenue: "1000万", size: 120, contact: "李总", contactTitle: "业务总监", phone: "13900139000", stage: "初步接触", landed: false, expectedSignDate: "待定", notes: "初步接触,对方正在评估多家供应商,对我们的售后响应速度有较高要求。" }, ]; const followUpRecords = [ { id: 1, date: "2024-03-15 14:30", type: "电话沟通", content: "初步沟通了合作意向,对方对我们的产品比较感兴趣,约定下周进行详细的产品演示。", user: "张三" }, { id: 2, date: "2024-03-10 10:00", type: "微信沟通", content: "发送了公司介绍和产品白皮书,对方表示会内部评估。", user: "张三" }, ]; return (

拓展管理

{/* Tabs */}
{/* Search */}
{/* List */}
{activeTab === "sales" ? ( salesData.map((item, i) => ( setSelectedItem(item)} className="cursor-pointer rounded-2xl border border-slate-100 dark:border-slate-800 bg-white dark:bg-slate-900/50 p-5 shadow-sm backdrop-blur-sm transition-all hover:shadow-md hover:border-violet-100 dark:hover:border-violet-900/50" >

{item.name}

{item.dept} · {item.title}

{item.active ? '在职' : '离职'}
{item.industry}
意向: {item.intent}
阶段: {item.stage}
云桌面经验: {item.hasExp ? '有' : '无'}
)) ) : ( channelData.map((item, i) => ( setSelectedItem(item)} className="cursor-pointer rounded-2xl border border-slate-100 dark:border-slate-800 bg-white dark:bg-slate-900/50 p-5 shadow-sm backdrop-blur-sm transition-all hover:shadow-md hover:border-violet-100 dark:hover:border-violet-900/50" >

{item.name}

{item.province}
{item.landed ? '已落地' : '未落地'}
{item.industry}
{item.contact}
{item.phone}
阶段: {item.stage}
)) )}
{/* Detail Slide-over Panel */} {selectedItem && ( <> setSelectedItem(null)} className="fixed inset-0 bg-slate-900/20 dark:bg-slate-900/60 backdrop-blur-sm z-40" /> {/* Header */}

{selectedItem.type === 'sales' ? '销售拓展详情' : '渠道拓展详情'}

{/* Content */}
{/* Header Info */}

{selectedItem.name}

{selectedItem.type === 'sales' ? `${selectedItem.dept} · ${selectedItem.title}` : `${selectedItem.province} · ${selectedItem.industry}`}

{selectedItem.stage} {selectedItem.type === 'sales' ? ( {selectedItem.active ? '在职' : '离职'} ) : ( {selectedItem.landed ? '已落地' : '未落地'} )}
{/* Basic Info Grid */}

基本信息

{selectedItem.type === 'sales' ? ( <>

联系电话

{selectedItem.phone}

邮箱

{selectedItem.email}

负责行业

{selectedItem.industry}

云桌面经验

{selectedItem.hasExp ? '有' : '无'}

意向度

{selectedItem.intent}

预计入职

{selectedItem.expectedJoinDate}

) : ( <>

联系人

{selectedItem.contact} ({selectedItem.contactTitle})

联系电话

{selectedItem.phone}

营收规模

{selectedItem.revenue}

公司人数

{selectedItem.size}人

预计签约

{selectedItem.expectedSignDate}

)}

备注说明

{selectedItem.notes}

{/* Timeline */}

跟进记录

{followUpRecords.map((record) => (
{record.type} {record.date}

{record.content}

跟进人: {record.user}

))}
{/* Footer */}
)}
); }