diff --git a/client/src/pages/GameDeploymentPage.tsx b/client/src/pages/GameDeploymentPage.tsx index 7a029ec..cd15423 100644 --- a/client/src/pages/GameDeploymentPage.tsx +++ b/client/src/pages/GameDeploymentPage.tsx @@ -12,7 +12,8 @@ import { CheckCircle, AlertCircle, Plus, - Package + Package, + BookOpen } from 'lucide-react' import { useNotificationStore } from '@/stores/notificationStore' import apiClient from '@/utils/api' @@ -26,6 +27,7 @@ interface GameInfo { tip: string image: string url: string + docs?: string system?: string[] supportedOnCurrentPlatform?: boolean currentPlatform?: string @@ -140,6 +142,11 @@ const GameDeploymentPage: React.FC = () => { const [compatibilityModalAnimating, setCompatibilityModalAnimating] = useState(false) const [pendingGameInstall, setPendingGameInstall] = useState<{ key: string; info: GameInfo } | null>(null) + // 开服文档相关状态 + const [showDocsModal, setShowDocsModal] = useState(false) + const [docsModalAnimating, setDocsModalAnimating] = useState(false) + const [selectedGameDocs, setSelectedGameDocs] = useState(null) + const socketRef = useRef(null) const currentDownloadId = useRef(null) const currentMoreGameDeploymentId = useRef(null) @@ -1095,6 +1102,31 @@ const GameDeploymentPage: React.FC = () => { } } + // 打开开服文档 + const handleOpenDocs = (gameInfo: GameInfo) => { + if (!gameInfo.docs) { + addNotification({ + type: 'error', + title: '文档不可用', + message: '该游戏暂无开服文档' + }) + return + } + + setSelectedGameDocs(gameInfo) + setShowDocsModal(true) + setTimeout(() => setDocsModalAnimating(true), 10) + } + + // 关闭开服文档对话框 + const handleCloseDocsModal = () => { + setDocsModalAnimating(false) + setTimeout(() => { + setShowDocsModal(false) + setSelectedGameDocs(null) + }, 300) + } + // 关闭创建实例对话框 const handleCloseCreateInstanceModal = () => { setCreateInstanceModalAnimating(false) @@ -1714,26 +1746,40 @@ const GameDeploymentPage: React.FC = () => { {/* 操作按钮 */} - +
+ {/* 安装游戏按钮 */} + + + {/* 开服文档按钮 */} + {gameInfo.docs && ( + + )} +
)) @@ -3541,6 +3587,41 @@ const GameDeploymentPage: React.FC = () => { )} + + {/* 开服文档模态框 */} + {showDocsModal && selectedGameDocs && ( +
+
+
+

+ + 开服文档 - {selectedGameDocs.game_nameCN} +

+ +
+ +
+
+