"use client" import { useState, useEffect } from "react" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Button } from "@/components/ui/button" import { Badge } from "@/components/ui/badge" import { Avatar } from "@/components/ui/avatar" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Search, Filter, SortAsc, User, Tag, Database, BrainCircuit, Phone, Mail, MapPin, Calendar, TrendingUp, Eye, RefreshCw, } from "lucide-react" export default function SearchPage() { const [searchQuery, setSearchQuery] = useState("") const [searchType, setSearchType] = useState("all") const [sortBy, setSortBy] = useState("relevance") const [isSearching, setIsSearching] = useState(false) const [searchResults, setSearchResults] = useState([]) // 模拟搜索数据 const mockSearchData = [ { id: "user_001", type: "user", name: "张明华", phone: "13800138000", email: "zhangsan@example.com", company: "科技创新有限公司", tags: ["高价值", "技术决策者", "活跃用户", "iOS用户"], aiInsights: ["科技爱好者", "决策影响者", "高消费潜力"], lastActive: "2小时前", location: "北京市", avatar: "/placeholder.svg?height=40&width=40", rfmScore: 95, sources: ["抖音", "微信", "表单提交"], joinDate: "2023-06-15", relevanceScore: 98, }, { id: "user_002", type: "user", name: "李雨婷", phone: "13900139001", email: "lisi@example.com", company: "数字营销公司", tags: ["中高价值", "产品经理", "内容创作者"], aiInsights: ["创意思维", "社交活跃", "品牌敏感"], lastActive: "1天前", location: "上海市", avatar: "/placeholder.svg?height=40&width=40", rfmScore: 78, sources: ["小红书", "微信", "客服咨询"], joinDate: "2023-08-22", relevanceScore: 85, }, { id: "tag_001", type: "tag", name: "高价值用户", description: "RFM评分超过80分的用户", userCount: 12456, category: "价值分类", createdDate: "2023-05-10", relevanceScore: 92, }, { id: "insight_001", type: "insight", title: "用户行为模式分析", description: "基于AI分析的用户行为偏好洞察", confidence: 94.5, affectedUsers: 8765, createdDate: "2023-12-01", relevanceScore: 88, }, ] // 搜索处理 const handleSearch = async (query: string) => { if (!query.trim()) { setSearchResults([]) return } setIsSearching(true) // 模拟搜索延迟 setTimeout(() => { const filtered = mockSearchData.filter((item) => { const searchText = query.toLowerCase() if (searchType !== "all" && item.type !== searchType) { return false } // 根据不同类型进行搜索 switch (item.type) { case "user": return ( item.name.toLowerCase().includes(searchText) || item.phone.includes(searchText) || item.email.toLowerCase().includes(searchText) || item.company.toLowerCase().includes(searchText) || item.tags.some((tag: string) => tag.toLowerCase().includes(searchText)) || item.aiInsights.some((insight: string) => insight.toLowerCase().includes(searchText)) || item.location.toLowerCase().includes(searchText) ) case "tag": return ( item.name.toLowerCase().includes(searchText) || item.description.toLowerCase().includes(searchText) || item.category.toLowerCase().includes(searchText) ) case "insight": return item.title.toLowerCase().includes(searchText) || item.description.toLowerCase().includes(searchText) default: return false } }) // 排序 if (sortBy === "relevance") { filtered.sort((a, b) => b.relevanceScore - a.relevanceScore) } else if (sortBy === "date") { filtered.sort( (a, b) => new Date(b.createdDate || b.joinDate).getTime() - new Date(a.createdDate || a.joinDate).getTime(), ) } else if (sortBy === "name") { filtered.sort((a, b) => (a.name || a.title).localeCompare(b.name || b.title)) } setSearchResults(filtered) setIsSearching(false) }, 800) } // 搜索输入处理 useEffect(() => { const timeoutId = setTimeout(() => { if (searchQuery) { handleSearch(searchQuery) } }, 500) return () => clearTimeout(timeoutId) }, [searchQuery, searchType, sortBy]) const getTypeIcon = (type: string) => { switch (type) { case "user": return case "tag": return case "insight": return default: return } } const getTypeBadgeColor = (type: string) => { switch (type) { case "user": return "bg-blue-100 text-blue-700" case "tag": return "bg-green-100 text-green-700" case "insight": return "bg-purple-100 text-purple-700" default: return "bg-gray-100 text-gray-700" } } return (
{/* 页面标题 */}

智能搜索

AI驱动的全局智能搜索引擎

{/* 搜索栏 */}
{/* 主搜索框 */}
setSearchQuery(e.target.value)} /> {isSearching && (
)}
{/* 搜索选项 */}
{/* 搜索结果 */} {searchQuery && ( 搜索结果 {searchResults.length} 个结果 搜索关键词: "{searchQuery}"{searchType !== "all" && ` · 类型: ${searchType}`} {searchResults.length > 0 ? (
{searchResults.map((result) => (
{/* 类型图标 */}
{result.type === "user" ? ( {result.name} ) : (
{getTypeIcon(result.type)}
)}
{/* 内容 */}

{result.name || result.title}

{result.type === "user" ? "用户" : result.type === "tag" ? "标签" : "洞察"} {result.relevanceScore && ( 相关性: {result.relevanceScore}% )}
{/* 用户信息 */} {result.type === "user" && (
{result.phone} {result.email} {result.location}
公司: {result.company} RFM: {result.rfmScore}
{result.aiInsights.slice(0, 3).map((insight: string, index: number) => ( {insight} ))}
)} {/* 标签信息 */} {result.type === "tag" && (

{result.description}

{result.userCount.toLocaleString()} 用户 {result.category} {result.createdDate}
)} {/* 洞察信息 */} {result.type === "insight" && (

{result.description}

置信度: {result.confidence}% 影响用户: {result.affectedUsers.toLocaleString()} {result.createdDate}
)}
{/* 操作按钮 */}
))}
) : (

未找到相关结果

尝试使用其他关键词或调整搜索条件

)}
)} {/* 搜索建议 */} {!searchQuery && ( 搜索建议 热门搜索和智能推荐

热门搜索

{["高价值用户", "技术决策者", "活跃用户", "流失风险", "新用户"].map((term) => ( ))}

智能推荐

• 搜索特定用户: 输入姓名、手机号或邮箱
• 查找标签: 输入标签名称或描述
• 发现洞察: 输入行为模式或分析结果
)}
) }