From 672b6ba89fc6735afb609ed3ff4118097651959f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9F=B3=E6=B8=85=E7=88=BD?= Date: Mon, 19 May 2025 17:25:31 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=81=E5=9F=9F=E6=93=8D=E7=9B=98=E6=89=8B?= =?UTF-8?q?=20-=20=E6=96=B0=E5=BB=BA=E8=8E=B7=E5=AE=A2=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E5=AF=B9=E6=AF=8F=E4=B8=80=E6=AD=A5=E7=9A=84=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E6=A0=A1=E9=AA=8C=EF=BC=8C=E6=9B=B4=E5=8F=8B?= =?UTF-8?q?=E5=A5=BD=E7=9A=84=E4=BA=A4=E4=BA=92=E5=92=8C=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cunkebao/app/layout.tsx | 2 +- Cunkebao/app/plans/new/page.tsx | 2 +- .../app/plans/new/steps/BasicSettings.tsx | 45 +++++++++---------- 3 files changed, 22 insertions(+), 27 deletions(-) diff --git a/Cunkebao/app/layout.tsx b/Cunkebao/app/layout.tsx index 1a8a4b89..2eea113b 100644 --- a/Cunkebao/app/layout.tsx +++ b/Cunkebao/app/layout.tsx @@ -6,7 +6,7 @@ import ErrorBoundary from "./components/ErrorBoundary" import { AuthProvider } from "@/app/components/AuthProvider" import LayoutWrapper from "./components/LayoutWrapper" import { AuthCheck } from "@/app/components/auth-check" -import { Toaster } from "sonner" +import { Toaster } from "react-hot-toast" export const metadata: Metadata = { title: "存客宝", diff --git a/Cunkebao/app/plans/new/page.tsx b/Cunkebao/app/plans/new/page.tsx index 0d6cc4fb..b8c2e04c 100644 --- a/Cunkebao/app/plans/new/page.tsx +++ b/Cunkebao/app/plans/new/page.tsx @@ -294,7 +294,7 @@ export default function NewAcquisitionPlan() {
-

{formData.sourceWechatId ? "好友转移" : "新建获客计划"}

diff --git a/Cunkebao/app/plans/new/steps/BasicSettings.tsx b/Cunkebao/app/plans/new/steps/BasicSettings.tsx index 4e583774..085135e9 100644 --- a/Cunkebao/app/plans/new/steps/BasicSettings.tsx +++ b/Cunkebao/app/plans/new/steps/BasicSettings.tsx @@ -169,12 +169,11 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps const response = await fetchScenes({ limit: 30 }) if (response.code === 200 && Array.isArray(response.data)) { - const formattedScenes = response.data.map(scene => ({ - id: scene.id.toString(), + const formattedScenes = response.data.map((scene: SceneItem) => ({ + id: scene.id, name: scene.name, image: scene.image, status: scene.status, - sort: scene.sort, createTime: scene.createTime, updateTime: scene.updateTime, deleteTime: scene.deleteTime @@ -196,23 +195,6 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps loadScenes() }, []) - // 初始化时,如果没有选择场景,默认选择海报获客 - useEffect(() => { - if (!formData.scenario) { - onChange({ ...formData, scenario: "haibao" }) - } - - // 只在初始化时设置默认计划名称 - if (!formData.planName && !formData._initialized) { - if (formData.materials?.length > 0) { - const today = new Date().toLocaleDateString("zh-CN").replace(/\//g, "") - onChange({ ...formData, planName: `海报${today}`, _initialized: true }) - } else { - onChange({ ...formData, planName: "场景", _initialized: true }) - } - } - }, []) // 移除 formData 依赖,只在组件挂载时执行一次 - // 处理本地场景选择 const handleScenarioSelect = (scenarioId: string) => { onChange({ ...formData, scenario: scenarioId }) @@ -268,10 +250,6 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps setSelectedMaterials(updatedMaterials) onChange({ ...formData, materials: updatedMaterials }) setIsMaterialDialogOpen(false) - - // 更新计划名称 - const today = new Date().toLocaleDateString("zh-CN").replace(/\//g, "") - onChange({ ...formData, planName: `海报${today}`, materials: updatedMaterials }) } const handleRemoveAccount = (accountId: string) => { @@ -377,6 +355,23 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps } }; + // 下一步校验逻辑 + const handleNextStep = () => { + if (!formData.scenario) { + toast.error("请选择获客场景") + return + } + if (!formData.planName || !formData.planName.trim()) { + toast.error("请输入计划名称") + return + } + if (formData.scenario === "haibao" && (!formData.materials || formData.materials.length === 0)) { + toast.error("请选择海报") + return + } + onNext && onNext() + } + return (
{/* 错误提示,只在 sceneError 存在且不为 'success' 时显示 */} @@ -685,7 +680,7 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps />
-