"use client" import { useState } from "react" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Badge } from "@/components/ui/badge" import { Progress } from "@/components/ui/progress" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table" import { Input } from "@/components/ui/input" import { ArrowUpRight, Download, Filter, RefreshCw, Target, TrendingUp, Users, Layers, Tag, BarChart3, Search, HelpCircle, ChevronRight, ChevronDown, } from "lucide-react" import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible" import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from "@/components/ui/dialog" // 使用通用公司名称和当天时间线的用户数据 const mockUsers = [ { id: "1", name: "张明华", company: "科技创新有限公司", recency: 1, frequency: 28, monetary: 45600, rfmScore: 95, level: "高价值", growth: "+8.5%", upgradeFromDays: 45, nextUpgrade: "VIP客户", upgradeProbability: 85, lastActive: "今天 14:30", }, { id: "2", name: "李雨婷", company: "数字营销公司", recency: 3, frequency: 22, monetary: 32800, rfmScore: 88, level: "高价值", growth: "+6.2%", upgradeFromDays: 28, nextUpgrade: "白金会员", upgradeProbability: 78, lastActive: "今天 13:45", }, { id: "3", name: "王建国", company: "软件开发工作室", recency: 2, frequency: 25, monetary: 38900, rfmScore: 91, level: "高价值", growth: "+7.8%", upgradeFromDays: 38, nextUpgrade: "企业VIP", upgradeProbability: 82, lastActive: "今天 12:20", }, { id: "4", name: "刘思琪", company: "数据分析咨询", recency: 7, frequency: 18, monetary: 25400, rfmScore: 76, level: "中高价值", growth: "+4.1%", upgradeFromDays: 12, nextUpgrade: "高价值用户", upgradeProbability: 68, lastActive: "今天 11:15", }, { id: "5", name: "陈浩然", company: "云计算服务商", recency: 4, frequency: 20, monetary: 28700, rfmScore: 82, level: "中高价值", growth: "+5.3%", upgradeFromDays: 22, nextUpgrade: "高价值用户", upgradeProbability: 72, lastActive: "今天 10:30", }, { id: "6", name: "周欣妍", company: "用户体验设计", recency: 12, frequency: 15, monetary: 18600, rfmScore: 65, level: "中等价值", growth: "+3.2%", upgradeFromDays: 8, nextUpgrade: "中高价值用户", upgradeProbability: 55, lastActive: "今天 09:45", }, { id: "7", name: "马志强", company: "企业解决方案", recency: 6, frequency: 16, monetary: 22100, rfmScore: 71, level: "中等价值", growth: "+4.8%", upgradeFromDays: 15, nextUpgrade: "中高价值用户", upgradeProbability: 61, lastActive: "今天 08:20", }, { id: "8", name: "赵丽娟", company: "品牌营销策划", recency: 15, frequency: 12, monetary: 15800, rfmScore: 58, level: "中等价值", growth: "+2.1%", upgradeFromDays: 5, nextUpgrade: "中高价值用户", upgradeProbability: 45, lastActive: "今天 07:30", }, ] export default function UserValuationPage() { const [timeRange, setTimeRange] = useState("30days") const [searchQuery, setSearchQuery] = useState("") const [showModelDialog, setShowModelDialog] = useState(false) const [showUpgradeDialog, setShowUpgradeDialog] = useState(false) const [expandedSections, setExpandedSections] = useState({ overview: true, model: false, analysis: true, upgradePaths: false, }) const filteredUsers = mockUsers.filter( (user) => user.name.toLowerCase().includes(searchQuery.toLowerCase()) || user.company.toLowerCase().includes(searchQuery.toLowerCase()), ) const getRFMLevelColor = (level: string) => { switch (level) { case "高价值": return "bg-green-100 text-green-800" case "中高价值": return "bg-blue-100 text-blue-800" case "中等价值": return "bg-yellow-100 text-yellow-800" case "低价值": return "bg-gray-100 text-gray-800" case "流失风险": return "bg-red-100 text-red-800" default: return "bg-gray-100 text-gray-800" } } const toggleSection = (section: string) => { setExpandedSections((prev) => ({ ...prev, [section]: !prev[section], })) } return (
用户价值评估与升级路径分析
时间间隔越短价值越高
频率越高价值越高
金额越高价值越高
高价值用户
85-100分
中高价值用户
70-84分
中等价值用户
55-69分
低价值用户
40-54分
流失风险用户
0-39分
{user.name}
{user.company}
R值
{user.recency}天
F值
{user.frequency}次
M值
¥{(user.monetary / 1000).toFixed(0)}K
{user.name}
{user.company}
下一级别: {user.nextUpgrade}
升级概率: {user.upgradeProbability}%