"use client" import { useState } from "react" import { useRouter } from "next/navigation" import { ArrowLeft } from "lucide-react" import { Button } from "@/components/ui/button" import { StepIndicator } from "../components/step-indicator" import { BasicSettings } from "../components/basic-settings" import { GroupSelector } from "../components/group-selector" import { ContentSelector } from "../components/content-selector" import type { WechatGroup, ContentLibrary } from "@/types/group-push" import { useToast } from "@/components/ui/use-toast" import { api } from "@/lib/api" import { showToast } from "@/lib/toast" const steps = [ { id: 1, title: "步骤 1", subtitle: "基础设置" }, { id: 2, title: "步骤 2", subtitle: "选择社群" }, { id: 3, title: "步骤 3", subtitle: "选择内容库" }, { id: 4, title: "步骤 4", subtitle: "京东联盟" }, ] export default function NewGroupPushPage() { const router = useRouter() const { toast } = useToast() const [currentStep, setCurrentStep] = useState(1) const [formData, setFormData] = useState({ name: "", pushTimeStart: "06:00", pushTimeEnd: "23:59", dailyPushCount: 20, pushOrder: "latest" as "earliest" | "latest", isLoopPush: false, isImmediatePush: false, isEnabled: false, groups: [] as WechatGroup[], contentLibraries: [] as ContentLibrary[], }) const handleBasicSettingsNext = (values: any) => { setFormData((prev) => ({ ...prev, ...values })) setCurrentStep(2) } const handleGroupsChange = (groups: WechatGroup[]) => { setFormData((prev) => ({ ...prev, groups })) } const handleLibrariesChange = (contentLibraries: ContentLibrary[]) => { setFormData((prev) => ({ ...prev, contentLibraries })) } const handleSave = async () => { const loadingToast = showToast("正在保存...", "loading", true) try { const params = { name: formData.name, type: 3, pushType: 1, startTime: formData.pushTimeStart, endTime: formData.pushTimeEnd, maxPerDay: formData.dailyPushCount, pushOrder: formData.pushOrder === "latest" ? 2 : 1, isLoop: formData.isLoopPush ? 1 : 0, status: formData.isEnabled ? 1 : 0, groups: formData.groups.map(g => g.id), contentLibraries: formData.contentLibraries.map(c => c.id), } const res = await api.post("/v1/workbench/create", params) loadingToast.remove() if (res.code === 200) { showToast("保存成功", "success") router.push("/workspace/group-push") } else { showToast(res.msg || "保存失败", "error") } } catch (e) { loadingToast.remove() showToast(e?.message || "网络错误", "error") } } const handleCancel = () => { router.push("/workspace/group-push") } return (