import React, { useState } from "react"; import { useNavigate } from "react-router-dom"; import { Button } from "antd-mobile"; import { NavBar } from "antd-mobile"; import { ArrowLeftOutlined } from "@ant-design/icons"; import { createGroupPushTask } from "@/pages/workspace/group-push/detail/groupPush"; import Layout from "@/components/Layout/Layout"; import StepIndicator from "./components/StepIndicator"; import BasicSettings from "./components/BasicSettings"; import GroupSelector from "./components/GroupSelector"; import ContentSelector from "./components/ContentSelector"; import type { WechatGroup, ContentLibrary, FormData } from "./index.data"; const steps = [ { id: 1, title: "步骤 1", subtitle: "基础设置" }, { id: 2, title: "步骤 2", subtitle: "选择社群" }, { id: 3, title: "步骤 3", subtitle: "选择内容库" }, { id: 4, title: "步骤 4", subtitle: "京东联盟" }, ]; const NewGroupPush: React.FC = () => { const navigate = useNavigate(); const [currentStep, setCurrentStep] = useState(1); const [loading, setLoading] = useState(false); const [formData, setFormData] = useState({ name: "", pushTimeStart: "06:00", pushTimeEnd: "23:59", dailyPushCount: 20, pushOrder: "latest", isLoopPush: false, isImmediatePush: false, isEnabled: false, groups: [], contentLibraries: [], }); const [isEditMode, setIsEditMode] = useState(false); const handleBasicSettingsNext = (values: Partial) => { 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 () => { if (!formData.name.trim()) { window.alert("请输入任务名称"); return; } if (formData.groups.length === 0) { window.alert("请选择至少一个社群"); return; } if (formData.contentLibraries.length === 0) { window.alert("请选择至少一个内容库"); return; } setLoading(true); try { const apiData = { name: formData.name, timeRange: { start: formData.pushTimeStart, end: formData.pushTimeEnd, }, maxPushPerDay: formData.dailyPushCount, pushOrder: formData.pushOrder, isLoopPush: formData.isLoopPush, isImmediatePush: formData.isImmediatePush, isEnabled: formData.isEnabled, targetGroups: formData.groups.map((g) => g.name), contentLibraries: formData.contentLibraries.map((c) => c.name), pushMode: formData.isImmediatePush ? ("immediate" as const) : ("scheduled" as const), messageType: "text" as const, messageContent: "", targetTags: [], pushInterval: 60, }; const response = await createGroupPushTask(apiData); if (response.code === 200) { window.alert("保存成功"); navigate("/workspace/group-push"); } else { window.alert("保存失败,请稍后重试"); } } catch (error) { window.alert("保存失败,请稍后重试"); } finally { setLoading(false); } }; const handleCancel = () => { navigate("/workspace/group-push"); }; return ( navigate(-1)} /> } > {isEditMode ? "编辑任务" : "新建任务"} } >
{currentStep === 1 && ( )} {currentStep === 2 && ( setCurrentStep(1)} onNext={() => setCurrentStep(3)} onSave={handleSave} onCancel={handleCancel} loading={loading} /> )} {currentStep === 3 && ( setCurrentStep(2)} onNext={() => setCurrentStep(4)} onSave={handleSave} onCancel={handleCancel} loading={loading} /> )} {currentStep === 4 && (
京东联盟设置(此步骤为占位,实际功能待开发)
)}
); }; export default NewGroupPush;