"use client" import { useState } from "react" import { Button } from "@/components/ui/button" import { Card, CardContent } from "@/components/ui/card" import { Checkbox } from "@/components/ui/checkbox" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { Avatar } from "@/components/ui/avatar" import { Search } from "lucide-react" import { Input } from "@/components/ui/input" interface Device { id: string name: string status: "online" | "offline" avatar?: string } interface CustomerService { id: string name: string status: "online" | "offline" avatar?: string } interface TargetSettingsData { selectedDevices: string[] selectedCustomerServices: string[] } interface TargetSettingsStepProps { onNext: (data: TargetSettingsData) => void onBack: () => void initialData?: Partial } export default function TargetSettingsStep({ onNext, onBack, initialData = {} }: TargetSettingsStepProps) { const [selectedDevices, setSelectedDevices] = useState(initialData.selectedDevices || []) const [selectedCustomerServices, setSelectedCustomerServices] = useState( initialData.selectedCustomerServices || [], ) const [searchTerm, setSearchTerm] = useState("") // 模拟设备数据 const devices: Device[] = [ { id: "1", name: "设备 1", status: "online" }, { id: "2", name: "设备 2", status: "online" }, { id: "3", name: "设备 3", status: "offline" }, { id: "4", name: "设备 4", status: "online" }, { id: "5", name: "设备 5", status: "offline" }, ] // 模拟客服数据 const customerServices: CustomerService[] = [ { id: "1", name: "客服 A", status: "online" }, { id: "2", name: "客服 B", status: "online" }, { id: "3", name: "客服 C", status: "offline" }, { id: "4", name: "客服 D", status: "online" }, ] const filteredDevices = devices.filter((device) => device.name.toLowerCase().includes(searchTerm.toLowerCase())) const filteredCustomerServices = customerServices.filter((cs) => cs.name.toLowerCase().includes(searchTerm.toLowerCase()), ) const toggleDevice = (id: string) => { setSelectedDevices((prev) => (prev.includes(id) ? prev.filter((deviceId) => deviceId !== id) : [...prev, id])) } const toggleCustomerService = (id: string) => { setSelectedCustomerServices((prev) => (prev.includes(id) ? prev.filter((csId) => csId !== id) : [...prev, id])) } const handleSubmit = () => { onNext({ selectedDevices, selectedCustomerServices, }) } return (

目标设置

setSearchTerm(e.target.value)} className="pl-10" />
设备选择 客服选择
{filteredDevices.map((device) => (
toggleDevice(device.id)} >
{device.name.substring(0, 1)}

{device.name}

{device.status === "online" ? "在线" : "离线"}

toggleDevice(device.id)} onClick={(e) => e.stopPropagation()} />
))}
{filteredCustomerServices.map((cs) => (
toggleCustomerService(cs.id)} >
{cs.name.substring(0, 1)}

{cs.name}

{cs.status === "online" ? "在线" : "离线"}

toggleCustomerService(cs.id)} onClick={(e) => e.stopPropagation()} />
))}
) }