From 0d5534dbcaa0885f60b4e5d0888b646c19950876 Mon Sep 17 00:00:00 2001
From: wwwwwwwww <526125649@qq.com>
Date: Thu, 2 Jul 2026 17:17:32 +0800
Subject: [PATCH] 1
---
video-gen-api/app/main.py | 2 ++
video-gen-app/src/components/Layout/AppLayout.tsx | 2 ++
2 files changed, 4 insertions(+)
diff --git a/video-gen-api/app/main.py b/video-gen-api/app/main.py
index 1f3cea5b..20b31be7 100644
--- a/video-gen-api/app/main.py
+++ b/video-gen-api/app/main.py
@@ -189,6 +189,8 @@ async def _seed_data():
("user_register_credits", "100", "用户注册赠送积分"),
("user_login_credits", "0", "用户每日登录赠送积分"),
("user_login_credits_enabled", "false", "启用每日登录赠送积分"),
+ # Operation manual
+ ("operation_manual", "", "操作手册链接"),
]
for key, value, desc in configs:
existing = await db.execute(
diff --git a/video-gen-app/src/components/Layout/AppLayout.tsx b/video-gen-app/src/components/Layout/AppLayout.tsx
index 329f0a4d..63f29069 100644
--- a/video-gen-app/src/components/Layout/AppLayout.tsx
+++ b/video-gen-app/src/components/Layout/AppLayout.tsx
@@ -600,6 +600,7 @@ const AppLayout: React.FC = () => {
{ key: 'myCredits', icon: , label: '积分明细' },
{ key: 'orderRecords', icon: , label: '订单记录' },
{ key: 'messages', icon: , label: `消息中心${unreadCount > 0 ? `(${unreadCount})` : ''}` },
+ ...(operationManualUrl ? [{ key: 'manual' as const, icon: , label: '操作手册' }] : []),
{ type: 'divider' as const },
{ key: 'changePwd', icon: , label: '修改密码' },
{ type: 'divider' as const },
@@ -613,6 +614,7 @@ const AppLayout: React.FC = () => {
else if (key === 'recharge') { setRechargeModalOpen(true); }
else if (key === 'myCredits') { navigate('/user-center?tab=credits'); }
else if (key === 'orderRecords') { navigate('/user-center?tab=orders'); }
+ else if (key === 'manual') { window.open(operationManualUrl, '_blank'); }
};
const handleChangePwd = async () => {