"use client" import { useState, useEffect } from "react" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Card } from "@/components/ui/card" import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group" import { Search, Smartphone } from "lucide-react" interface Device { id: string name: string status: "online" | "offline" wechatAccounts: { id: string nickname: string wechatId: string }[] } interface DeviceSelectionProps { formData: any updateFormData: (data: any) => void onNext: () => void } export function DeviceSelection({ formData, updateFormData, onNext }: DeviceSelectionProps) { const [devices, setDevices] = useState([]) const [isLoading, setIsLoading] = useState(true) const [searchQuery, setSearchQuery] = useState("") const [selectedDevice, setSelectedDevice] = useState(formData.deviceId || "") const [selectedWechatAccount, setSelectedWechatAccount] = useState(formData.wechatId || "") useEffect(() => { // 模拟加载设备数据 const fetchDevices = async () => { await new Promise((resolve) => setTimeout(resolve, 1000)) const mockDevices: Device[] = [ { id: "device-1", name: "iPhone 13", status: "online", wechatAccounts: [ { id: "wx-1", nickname: "张小明", wechatId: "wxid_zhang123" }, { id: "wx-2", nickname: "李业务", wechatId: "wxid_libiz456" }, ], }, { id: "device-2", name: "华为 P40", status: "online", wechatAccounts: [{ id: "wx-3", nickname: "王经理", wechatId: "wxid_wang789" }], }, { id: "device-3", name: "小米 12", status: "offline", wechatAccounts: [ { id: "wx-4", nickname: "赵销售", wechatId: "wxid_zhao321" }, { id: "wx-5", nickname: "陈顾问", wechatId: "wxid_chen654" }, ], }, ] setDevices(mockDevices) setIsLoading(false) } fetchDevices() }, []) const filteredDevices = devices.filter( (device) => device.name.toLowerCase().includes(searchQuery.toLowerCase()) || device.wechatAccounts.some( (account) => account.nickname.toLowerCase().includes(searchQuery.toLowerCase()) || account.wechatId.toLowerCase().includes(searchQuery.toLowerCase()), ), ) const handleDeviceSelect = (deviceId: string) => { setSelectedDevice(deviceId) setSelectedWechatAccount("") // 重置微信账号选择 const selectedDeviceData = devices.find((d) => d.id === deviceId) if (selectedDeviceData) { updateFormData({ deviceId, deviceName: selectedDeviceData.name, wechatId: "", wechatName: "", }) } } const handleWechatSelect = (wechatId: string) => { setSelectedWechatAccount(wechatId) const selectedDeviceData = devices.find((d) => d.id === selectedDevice) if (selectedDeviceData) { const selectedWechatData = selectedDeviceData.wechatAccounts.find((w) => w.id === wechatId) if (selectedWechatData) { updateFormData({ wechatId: wechatId, wechatName: selectedWechatData.nickname, }) } } } const handleContinue = () => { if (selectedDevice && selectedWechatAccount) { onNext() } } return (

选择设备与微信号

选择要进行AI数据分析的设备和微信账号

setSearchQuery(e.target.value)} className="pl-9" />
{isLoading ? (
) : (
{filteredDevices.map((device) => ( device.status === "online" && handleDeviceSelect(device.id)} >
{device.name}
{device.wechatAccounts.length} 个微信账号
{device.status === "online" ? "在线" : "离线"}
))} {filteredDevices.length === 0 && (

未找到匹配的设备

)}
{selectedDevice && (
{devices .find((d) => d.id === selectedDevice) ?.wechatAccounts.map((account) => (
))}
)}
)}
) }