diff --git a/Cunkebao/api/scenarios.ts b/Cunkebao/api/scenarios.ts index e2f7a708..ed77aeb5 100644 --- a/Cunkebao/api/scenarios.ts +++ b/Cunkebao/api/scenarios.ts @@ -21,12 +21,7 @@ export interface SceneItem { export interface ScenesResponse { code: number; msg: string; - data: { - list: SceneItem[]; - total: number; - page: number; - limit: number; - }; + data: SceneItem[]; } // 前端使用的场景数据类型 @@ -80,12 +75,7 @@ export const fetchScenes = async (params: { return { code: 500, msg: "获取场景列表失败", - data: { - list: [], - total: 0, - page: 1, - limit: 10 - } + data: [] }; } }; diff --git a/Cunkebao/app/plans/new/steps/BasicSettings.tsx b/Cunkebao/app/plans/new/steps/BasicSettings.tsx index 0e38f476..4e583774 100644 --- a/Cunkebao/app/plans/new/steps/BasicSettings.tsx +++ b/Cunkebao/app/plans/new/steps/BasicSettings.tsx @@ -168,8 +168,19 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps const response = await fetchScenes({ limit: 30 }) - if (response.code === 200 && response.data?.list) { - setScenes(response.data.list) + if (response.code === 200 && Array.isArray(response.data)) { + const formattedScenes = response.data.map(scene => ({ + id: scene.id.toString(), + name: scene.name, + image: scene.image, + status: scene.status, + sort: scene.sort, + createTime: scene.createTime, + updateTime: scene.updateTime, + deleteTime: scene.deleteTime + })) + setScenes(formattedScenes) + setSceneError(null) // 成功时清空错误 } else { setSceneError(response.msg || "获取场景列表失败") console.error("获取场景列表失败:", response.msg) @@ -191,15 +202,27 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps onChange({ ...formData, scenario: "haibao" }) } - if (!formData.planName) { + // 只在初始化时设置默认计划名称 + if (!formData.planName && !formData._initialized) { if (formData.materials?.length > 0) { const today = new Date().toLocaleDateString("zh-CN").replace(/\//g, "") - onChange({ ...formData, planName: `海报${today}` }) + onChange({ ...formData, planName: `海报${today}`, _initialized: true }) } else { - onChange({ ...formData, planName: "场景" }) + onChange({ ...formData, planName: "场景", _initialized: true }) } } - }, [formData, onChange]) + }, []) // 移除 formData 依赖,只在组件挂载时执行一次 + + // 处理本地场景选择 + const handleScenarioSelect = (scenarioId: string) => { + onChange({ ...formData, scenario: scenarioId }) + + // 如果选择了电话获客,自动更新计划名称 + if (scenarioId === "phone") { + const today = new Date().toLocaleDateString("zh-CN").replace(/\//g, "") + onChange({ ...formData, planName: `电话${today}` }) + } + } // 处理从API获取的场景选择 const handleSceneSelect = (scene: SceneItem) => { @@ -220,17 +243,6 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps } } - // 处理本地场景选择 - const handleScenarioSelect = (scenarioId: string) => { - onChange({ ...formData, scenario: scenarioId }) - - // 如果选择了电话获客,自动更新计划名称 - if (scenarioId === "phone") { - const today = new Date().toLocaleDateString("zh-CN").replace(/\//g, "") - onChange({ ...formData, planName: `电话${today}` }) - } - } - // 根据场景名称推断本地场景类型 const getLocalScenarioType = (name: string): string => { if (name.includes("海报")) return "haibao"; @@ -366,311 +378,318 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps }; return ( -
- 提示:电话获客功能将自动记录来电信息,并根据设置执行相应操作 -
-+ 提示:电话获客功能将自动记录来电信息,并根据设置执行相应操作 +
+ + )} - {importedTags.length > 0 && ( -