"use client" import { useState } from "react" import { useRouter } from "next/navigation" import { ChevronLeft, Search } from "lucide-react" import { Button } from "@/components/ui/button" import { StepIndicator } from "../components/step-indicator" import { BasicSettings } from "../components/basic-settings" import { DeviceSelectionDialog } from "../components/device-selection-dialog" import { ContentLibrarySelectionDialog } from "../components/content-library-selection-dialog" import { Input } from "@/components/ui/input" import { api, ApiResponse } from "@/lib/api" import { showToast } from "@/lib/toast" // 定义基本设置表单数据类型,与BasicSettings组件的formData类型匹配 interface BasicSettingsFormData { taskName: string startTime: string endTime: string syncCount: number syncInterval: number accountType: "business" | "personal" enabled: boolean } export default function NewMomentsSyncPage() { const router = useRouter() const [currentStep, setCurrentStep] = useState(1) const [deviceDialogOpen, setDeviceDialogOpen] = useState(false) const [libraryDialogOpen, setLibraryDialogOpen] = useState(false) const [formData, setFormData] = useState({ taskName: "", startTime: "06:00", endTime: "23:59", syncCount: 5, syncInterval: 30, // 同步间隔,默认30分钟 accountType: "business" as "business" | "personal", enabled: true, selectedDevices: [] as string[], selectedLibraries: [] as string[], }) const handleUpdateFormData = (data: Partial) => { setFormData((prev) => ({ ...prev, ...data })) } // 专门用于基本设置的更新函数 const handleBasicSettingsUpdate = (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 handleComplete = async () => { try { const response = await api.post('/v1/workbench/create', { type: 2, // 朋友圈同步任务类型为2 name: formData.taskName, syncInterval: formData.syncInterval, syncCount: formData.syncCount, syncType: formData.accountType === "business" ? 1 : 2, // 业务号为1,人设号为2 startTime: formData.startTime, endTime: formData.endTime, accountType: formData.accountType === "business" ? 1 : 2, status: formData.enabled ? 1 : 0, // 状态:0=禁用,1=启用 devices: formData.selectedDevices, contentLibraries: formData.selectedLibraries }); if (response.code === 200) { showToast(response.msg || "创建成功", "success"); router.push("/workspace/moments-sync"); } 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 && (
setLibraryDialogOpen(true)} readOnly value={formData.selectedLibraries.length > 0 ? `已选择 ${formData.selectedLibraries.length} 个内容库` : ""} />
{formData.selectedLibraries.length > 0 && (
已选内容库:{formData.selectedLibraries.length} 个
)}
{ handleUpdateFormData({ selectedLibraries: libraries }) setLibraryDialogOpen(false) }} />
)}
) }