From e1e54b5666491e54028bcc31bb891d85035f5cc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AC=94=E8=AE=B0=E6=9C=AC=E9=87=8C=E7=9A=84=E6=B0=B8?= =?UTF-8?q?=E5=B9=B3?= Date: Wed, 16 Jul 2025 15:36:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9C=AC=E6=AC=A1=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=86=85=E5=AE=B9=E5=A6=82=E4=B8=8B=20?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E5=AE=9A=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nkebao/src/api/scenarios.ts | 8 +++- nkebao/src/pages/scenarios/new/page.tsx | 38 ++++++++++--------- .../scenarios/new/steps/MessageSettings.tsx | 21 +++++----- 3 files changed, 37 insertions(+), 30 deletions(-) diff --git a/nkebao/src/api/scenarios.ts b/nkebao/src/api/scenarios.ts index 79d49e55..accae31b 100644 --- a/nkebao/src/api/scenarios.ts +++ b/nkebao/src/api/scenarios.ts @@ -1,4 +1,4 @@ -import { get, del } from './request'; +import { get, del, post } from './request'; import type { ApiResponse } from '@/types/common'; // 服务器返回的场景数据类型 @@ -239,4 +239,8 @@ export const transformSceneItem = (item: SceneItem): Channel => { }; }; -export const getPlanScenes = () => get('/v1/plan/scenes'); \ No newline at end of file +export const getPlanScenes = () => get('/v1/plan/scenes'); + +export async function createScenarioPlan(data: any) { + return post('/v1/plan/create', data); +} \ No newline at end of file diff --git a/nkebao/src/pages/scenarios/new/page.tsx b/nkebao/src/pages/scenarios/new/page.tsx index ff64477d..ec7e5ba4 100644 --- a/nkebao/src/pages/scenarios/new/page.tsx +++ b/nkebao/src/pages/scenarios/new/page.tsx @@ -1,14 +1,14 @@ import { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; -import { ChevronLeft, Settings } from "lucide-react"; +import { ChevronLeft } from "lucide-react"; import { Button } from "@/components/ui/button"; -import { toast } from "@/components/ui/use-toast"; +import { Message } from "tdesign-mobile-react"; import { Steps, StepItem } from "tdesign-mobile-react"; import { BasicSettings } from "./steps/BasicSettings"; import { FriendRequestSettings } from "./steps/FriendRequestSettings"; import { MessageSettings } from "./steps/MessageSettings"; import Layout from "@/components/Layout"; -import { getPlanScenes } from "@/api/scenarios"; +import { getPlanScenes, createScenarioPlan } from "@/api/scenarios"; // 步骤定义 - 只保留三个步骤 const steps = [ @@ -24,14 +24,17 @@ export default function NewPlan() { planName: "", scenario: "haibao", posters: [], - device: "", + device: [], remarkType: "phone", greeting: "你好,请通过", addInterval: 1, startTime: "09:00", endTime: "18:00", enabled: true, - // 移除tags字段 + sceneId: "", + planNameEdited: false, + remarkFormat: "", + addFriendInterval: 1, }); const [sceneList, setSceneList] = useState([]); const [sceneLoading, setSceneLoading] = useState(true); @@ -52,21 +55,20 @@ export default function NewPlan() { // 处理保存 const handleSave = async () => { - try { - // 这里应该是实际的API调用 - await new Promise((resolve) => setTimeout(resolve, 1000)); + console.log("保存数据:", formData); - toast({ - title: "创建成功", - description: "获客计划已创建", - }); - router("/plans"); + try { + await createScenarioPlan(formData); + Message.success("获客计划已创建"); + // router("/scenarios"); } catch (error) { - toast({ - title: "创建失败", - description: "创建计划失败,请重试", - variant: "destructive", - }); + Message.error( + error instanceof Error + ? error.message + : typeof error === "string" + ? error + : "创建计划失败,请重试" + ); } }; diff --git a/nkebao/src/pages/scenarios/new/steps/MessageSettings.tsx b/nkebao/src/pages/scenarios/new/steps/MessageSettings.tsx index 99d00e8b..4dbf96fc 100644 --- a/nkebao/src/pages/scenarios/new/steps/MessageSettings.tsx +++ b/nkebao/src/pages/scenarios/new/steps/MessageSettings.tsx @@ -250,16 +250,17 @@ export function MessageSettings({ {plan.day === 0 ? ( <>
间隔
- - handleUpdateMessage(dayIndex, messageIndex, { - sendInterval: Number(e.target.value), - }) - } - /> +
+ + handleUpdateMessage(dayIndex, messageIndex, { + sendInterval: Number(e.target.value), + }) + } + /> +