From 5ca8050fc5c025ab4c542af544f88c676d43622b 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: Mon, 7 Jul 2025 16:06:33 +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?=E5=85=A8=E5=B1=80=E7=BB=84=E4=BB=B6=E6=A2=B3=E7=90=86=E5=BC=80?= =?UTF-8?q?=E5=A7=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Layout.css | 10 +++++ Layout.tsx | 35 +++++++++++++++++ nkebao/src/App.tsx | 11 ++++++ nkebao/src/pages/scenarios/NewPlan.tsx | 3 +- .../pages/scenarios/douyin/DouyinScenario.tsx | 3 +- .../gongzhonghao/GongzhonghaoScenario.tsx | 38 ++++++------------- .../pages/scenarios/haibao/HaibaoScenario.tsx | 7 ++-- .../xiaohongshu/XiaohongshuScenario.tsx | 3 +- 8 files changed, 77 insertions(+), 33 deletions(-) create mode 100644 Layout.css create mode 100644 Layout.tsx diff --git a/Layout.css b/Layout.css new file mode 100644 index 00000000..b1af68a6 --- /dev/null +++ b/Layout.css @@ -0,0 +1,10 @@ +.container { + display: flex; + height: 100vh; + flex-direction: column; +} + +.container main { + flex: 1; + overflow: auto; +} \ No newline at end of file diff --git a/Layout.tsx b/Layout.tsx new file mode 100644 index 00000000..5ea387ef --- /dev/null +++ b/Layout.tsx @@ -0,0 +1,35 @@ +import React from 'react'; + +interface LayoutProps { + loading?: boolean; + children?: React.ReactNode; + header?: React.ReactNode; + footer?: React.ReactNode; +} + +const Layout: React.FC = ({ + loading, + children, + header, + footer +}) => { + return ( +
+ {header && ( +
+ {header} +
+ )} +
+ {children} +
+ {footer && ( +
+ {footer} +
+ )} +
+ ); +}; + +export default Layout; \ No newline at end of file diff --git a/nkebao/src/App.tsx b/nkebao/src/App.tsx index ca6d6ec0..a12caac0 100644 --- a/nkebao/src/App.tsx +++ b/nkebao/src/App.tsx @@ -21,6 +21,11 @@ import TrafficDistributionDetail from './pages/workspace/traffic-distribution/De import Scenarios from './pages/scenarios/Scenarios'; import NewPlan from './pages/scenarios/NewPlan'; import ScenarioDetail from './pages/scenarios/ScenarioDetail'; +// 导入具体场景组件 +import DouyinScenario from './pages/scenarios/douyin/DouyinScenario'; +import XiaohongshuScenario from './pages/scenarios/xiaohongshu/XiaohongshuScenario'; +import GongzhonghaoScenario from './pages/scenarios/gongzhonghao/GongzhonghaoScenario'; +import HaibaoScenario from './pages/scenarios/haibao/HaibaoScenario'; import Profile from './pages/profile/Profile'; import Plans from './pages/plans/Plans'; import PlanDetail from './pages/plans/PlanDetail'; @@ -58,6 +63,12 @@ function App() { } /> } /> } /> + {/* 具体场景路由 - 必须在通用路由之前 */} + } /> + } /> + } /> + } /> + {/* 通用场景路由 */} } /> } /> } /> diff --git a/nkebao/src/pages/scenarios/NewPlan.tsx b/nkebao/src/pages/scenarios/NewPlan.tsx index 50ee4cca..fb734578 100644 --- a/nkebao/src/pages/scenarios/NewPlan.tsx +++ b/nkebao/src/pages/scenarios/NewPlan.tsx @@ -405,7 +405,8 @@ export default function NewPlan() { } /> -
+ {/* 添加pt-16来避免被固定导航栏遮挡 */} +
diff --git a/nkebao/src/pages/scenarios/douyin/DouyinScenario.tsx b/nkebao/src/pages/scenarios/douyin/DouyinScenario.tsx index bbf12c4f..da79a968 100644 --- a/nkebao/src/pages/scenarios/douyin/DouyinScenario.tsx +++ b/nkebao/src/pages/scenarios/douyin/DouyinScenario.tsx @@ -137,7 +137,8 @@ export default function DouyinScenario() { } /> -
+ {/* 添加pt-16来避免被固定导航栏遮挡 */} +
{tasks.map((task) => (
{/* 任务头部 */} diff --git a/nkebao/src/pages/scenarios/gongzhonghao/GongzhonghaoScenario.tsx b/nkebao/src/pages/scenarios/gongzhonghao/GongzhonghaoScenario.tsx index 9098b0c0..89c0cba8 100644 --- a/nkebao/src/pages/scenarios/gongzhonghao/GongzhonghaoScenario.tsx +++ b/nkebao/src/pages/scenarios/gongzhonghao/GongzhonghaoScenario.tsx @@ -21,7 +21,6 @@ import { fetchPlanList, copyPlan, deletePlan, - fetchPlanDetail, type Task } from '@/api/scenarios'; @@ -181,33 +180,17 @@ export default function GongzhonghaoScenario() { }); }; - const handleOpenApiSettings = async (taskId: string) => { + const handleOpenApiSettings = (taskId: string) => { const task = tasks.find((t) => t.id === taskId); if (task) { - try { - const res = await fetchPlanDetail(taskId); - if (res.code === 200 && res.data) { - setCurrentApiSettings({ - apiKey: res.data.apiKey || '', // 使用接口返回的 API 密钥 - webhookUrl: `${API_BASE_URL}/v1/api/scenarios`, - fullUrl: res.data.textUrl.fullUrl || '', - taskId, - }); - setShowApiDialog(true); - } else { - toast({ - title: "获取 API 密钥失败", - description: res.message || "请重试", - variant: "destructive", - }); - } - } catch (err: any) { - toast({ - title: "获取 API 密钥失败", - description: err?.message || "请重试", - variant: "destructive", - }); - } + // 直接使用列表数据,不调用详情API + setCurrentApiSettings({ + apiKey: `api_key_${taskId}`, // 使用任务ID生成API密钥 + webhookUrl: `${API_BASE_URL}/v1/api/scenarios/${taskId}`, + fullUrl: `${API_BASE_URL}/v1/api/scenarios/${taskId}/text`, + taskId, + }); + setShowApiDialog(true); } }; @@ -241,7 +224,8 @@ export default function GongzhonghaoScenario() { } /> -
+ {/* 添加pt-16来避免被固定导航栏遮挡 */} +
{loading ? (
加载中...
diff --git a/nkebao/src/pages/scenarios/haibao/HaibaoScenario.tsx b/nkebao/src/pages/scenarios/haibao/HaibaoScenario.tsx index 53b7ba98..6b6d3d44 100644 --- a/nkebao/src/pages/scenarios/haibao/HaibaoScenario.tsx +++ b/nkebao/src/pages/scenarios/haibao/HaibaoScenario.tsx @@ -122,14 +122,14 @@ export default function HaibaoScenario() { }; return ( -
+
navigate('/scenarios/new?scenario=haibao')} - className="flex items-center px-3 py-2 bg-orange-600 text-white rounded-md hover:bg-orange-700 transition-colors text-sm" + className="flex items-center px-3 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 transition-colors text-sm" > 新建计划 @@ -137,7 +137,8 @@ export default function HaibaoScenario() { } /> -
+ {/* 添加pt-16来避免被固定导航栏遮挡 */} +
{tasks.map((task) => (
{/* 任务头部 */} diff --git a/nkebao/src/pages/scenarios/xiaohongshu/XiaohongshuScenario.tsx b/nkebao/src/pages/scenarios/xiaohongshu/XiaohongshuScenario.tsx index a0cc6384..4f400497 100644 --- a/nkebao/src/pages/scenarios/xiaohongshu/XiaohongshuScenario.tsx +++ b/nkebao/src/pages/scenarios/xiaohongshu/XiaohongshuScenario.tsx @@ -137,7 +137,8 @@ export default function XiaohongshuScenario() { } /> -
+ {/* 添加pt-16来避免被固定导航栏遮挡 */} +
{tasks.map((task) => (
{/* 任务头部 */}