"use client" import { useState } from "react" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Textarea } from "@/components/ui/textarea" import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@/components/ui/dialog" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { QrCode, Upload } from "lucide-react" import { DeviceType, DeviceCategory } from "@/types/device" import { toast } from "@/components/ui/use-toast" interface AddDeviceDialogProps { open: boolean onOpenChange: (open: boolean) => void onDeviceAdded?: (device: any) => void } export function AddDeviceDialog({ open, onOpenChange, onDeviceAdded }: AddDeviceDialogProps) { const [activeTab, setActiveTab] = useState("qr") const [formData, setFormData] = useState({ name: "", imei: "", type: DeviceType.ANDROID, category: DeviceCategory.ACQUISITION, model: "", remark: "", tags: [] as string[], location: "", operator: "", }) const [loading, setLoading] = useState(false) const handleSubmit = async () => { if (!formData.name || !formData.imei) { toast({ title: "请填写必填信息", description: "设备名称和IMEI是必填项", variant: "destructive", }) return } setLoading(true) try { // 模拟API调用 await new Promise((resolve) => setTimeout(resolve, 1000)) const newDevice = { id: `device-${Date.now()}`, ...formData, status: "offline", battery: 100, friendCount: 0, todayAdded: 0, lastActive: new Date().toLocaleString(), addFriendStatus: "normal", totalTasks: 0, completedTasks: 0, activePlans: [], planNames: [], } onDeviceAdded?.(newDevice) toast({ title: "设备添加成功", description: `设备 ${formData.name} 已成功添加`, }) // 重置表单 setFormData({ name: "", imei: "", type: DeviceType.ANDROID, category: DeviceCategory.ACQUISITION, model: "", remark: "", tags: [], location: "", operator: "", }) onOpenChange(false) } catch (error) { toast({ title: "添加失败", description: "设备添加失败,请重试", variant: "destructive", }) } finally { setLoading(false) } } return ( 添加设备 扫码添加 手动添加 批量导入

请使用设备扫描二维码进行添加

setFormData({ ...formData, name: e.target.value })} placeholder="输入设备名称" />
setFormData({ ...formData, imei: e.target.value })} placeholder="输入IMEI" />
setFormData({ ...formData, model: e.target.value })} placeholder="输入设备型号" />
setFormData({ ...formData, location: e.target.value })} placeholder="输入设备位置" />