"use client" import type React from "react" import { useState } from "react" import { Upload } from "lucide-react" import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "@/components/ui/dialog" import { Button } from "@/components/ui/button" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { toast } from "@/components/ui/use-toast" interface PhoneImportDialogProps { open: boolean onOpenChange: (open: boolean) => void onImport: (numbers: string[]) => void } export function PhoneImportDialog({ open, onOpenChange, onImport }: PhoneImportDialogProps) { const [manualInput, setManualInput] = useState("") const [importing, setImporting] = useState(false) const handleManualImport = () => { const numbers = manualInput .split(/[\n,,]/) .map((n) => n.trim()) .filter((n) => n && /^1[3-9]\d{9}$/.test(n)) if (numbers.length === 0) { toast({ title: "没有有效的电话号码", description: "请输入正确格式的手机号码", variant: "destructive", }) return } onImport(numbers) setManualInput("") toast({ title: "导入成功", description: `成功导入 ${numbers.length} 个电话号码`, }) } const handleFileUpload = async (event: React.ChangeEvent) => { const file = event.target.files?.[0] if (!file) return setImporting(true) try { // 这里应该解析Excel/CSV文件 // 模拟导入过程 await new Promise((resolve) => setTimeout(resolve, 1000)) // 模拟导入的号码 const mockNumbers = ["13800138000", "13900139000", "13700137000"] onImport(mockNumbers) toast({ title: "导入成功", description: `成功导入 ${mockNumbers.length} 个电话号码`, }) } catch (error) { toast({ title: "导入失败", description: "文件解析失败,请检查文件格式", variant: "destructive", }) } finally { setImporting(false) } } return ( 导入电话号码 支持批量导入Excel/CSV文件或手动输入 手动输入 文件导入