"use client" import { useState } from "react" import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Button } from "@/components/ui/button" import { Badge } from "@/components/ui/badge" import { Search, RefreshCw } from "lucide-react" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { ScrollArea } from "@/components/ui/scroll-area" import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group" interface Device { id: string name: string imei: string wxid: string status: "online" | "offline" usedInPlans: number } interface DeviceSelectionDialogProps { open: boolean onOpenChange: (open: boolean) => void selectedDevices: string[] onSelect: (devices: string[]) => void } export function DeviceSelectionDialog({ open, onOpenChange, selectedDevices, onSelect }: DeviceSelectionDialogProps) { const [searchQuery, setSearchQuery] = useState("") const [statusFilter, setStatusFilter] = useState("all") // 模拟设备数据 const devices: Device[] = [ { id: "1", name: "设备 1", imei: "IMEI-radz6ewal", wxid: "wxid_98179ujy", status: "offline", usedInPlans: 0, }, { id: "2", name: "设备 2", imei: "IMEI-i6iszi6d", wxid: "wxid_viqnaic8", status: "online", usedInPlans: 2, }, { id: "3", name: "设备 3", imei: "IMEI-01z2izj97", wxid: "wxid_9sb23gxr", status: "online", usedInPlans: 2, }, { id: "4", name: "设备 4", imei: "IMEI-x6o9rpcr0", wxid: "wxid_k0gxzbit", status: "online", usedInPlans: 1, }, ] const filteredDevices = devices.filter((device) => { const matchesSearch = device.name.toLowerCase().includes(searchQuery.toLowerCase()) || device.imei.toLowerCase().includes(searchQuery.toLowerCase()) || device.wxid.toLowerCase().includes(searchQuery.toLowerCase()) const matchesStatus = statusFilter === "all" || (statusFilter === "online" && device.status === "online") || (statusFilter === "offline" && device.status === "offline") return matchesSearch && matchesStatus }) return ( 选择设备
setSearchQuery(e.target.value)} className="pl-9" />
onSelect([value])}> {filteredDevices.map((device) => ( ))}
) }