"use client" import { useState } from "react" import { useRouter } from "next/navigation" import { ChevronLeft, Search, Users } from "lucide-react" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { StepIndicator } from "../components/step-indicator" import { BasicSettings } from "../components/basic-settings" import { DeviceSelectionDialog } from "../components/device-selection-dialog" import { TagSelector } from "../components/tag-selector" import { api, ApiResponse } from "@/lib/api" import { showToast } from "@/lib/toast" import { WechatFriendSelector, WechatFriend } from "@/components/WechatFriendSelector" export default function NewAutoLikePage() { const router = useRouter() const [currentStep, setCurrentStep] = useState(1) const [deviceDialogOpen, setDeviceDialogOpen] = useState(false) const [isFriendSelectorOpen, setIsFriendSelectorOpen] = useState(false) const [selectedFriends, setSelectedFriends] = useState([]) const [formData, setFormData] = useState({ taskName: "", likeInterval: 5, // 默认5秒 maxLikesPerDay: 200, // 默认200次 timeRange: { start: "08:00", end: "22:00" }, contentTypes: ["text", "image", "video"], enabled: true, selectedDevices: [] as number[], selectedTags: [] as string[], tagOperator: "and" as "and" | "or", friends: [] as string[], }) const handleUpdateFormData = (data: Partial) => { setFormData((prev) => ({ ...prev, ...data })) } const handleNext = () => { setCurrentStep((prev) => Math.min(prev + 1, 3)) } const handlePrev = () => { setCurrentStep((prev) => Math.max(prev - 1, 1)) } const handleSelectFriends = () => { if (formData.selectedDevices.length === 0) { showToast("请先选择设备", "error") return } setIsFriendSelectorOpen(true) } const handleSaveSelectedFriends = (friends: WechatFriend[]) => { const ids = friends.map(f => f.id) setSelectedFriends(friends) handleUpdateFormData({ friends: ids }) setIsFriendSelectorOpen(false) } const handleComplete = async () => { try { const response = await api.post('/v1/workbench/create', { type: 1, name: formData.taskName, interval: formData.likeInterval, maxLikes: formData.maxLikesPerDay, startTime: formData.timeRange.start, endTime: formData.timeRange.end, contentTypes: formData.contentTypes, enabled: formData.enabled, devices: formData.selectedDevices, friends: formData.friends, }); if (response.code === 200) { showToast(response.msg, "success"); router.push("/workspace/auto-like"); } else { showToast(response.msg || "请稍后再试", "error"); } } catch (error: any) { console.error("创建自动点赞任务失败:", error); showToast(error?.message || "请检查网络连接或稍后再试", "error"); } }; return (

新建自动点赞

{currentStep === 1 && ( )} {currentStep === 2 && (
setDeviceDialogOpen(true)} readOnly value={formData.selectedDevices.length > 0 ? `已选择 ${formData.selectedDevices.length} 个设备` : ""} />
{formData.selectedDevices.length > 0 && (
已选设备:{formData.selectedDevices.length} 个
)}
{ handleUpdateFormData({ selectedDevices: devices }) setDeviceDialogOpen(false) }} />
)} {currentStep === 3 && (
0 ? `已选择 ${formData.friends.length} 个好友` : ""} />
{formData.friends.length > 0 && (
已选好友:{formData.friends.length} 个
)}
)}
) }