From 7fdd2b2465cc2d4931c190a72d6fc9941b72ed08 Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Thu, 31 Oct 2024 16:02:37 +0800 Subject: [PATCH] Fix(View & Execute): Fixed the bug of being able to open Desktop tools in the web environment --- src/renderer/src/pages/System/Tools/Code.tsx | 5 +++-- .../src/pages/System/Tools/Execute.tsx | 20 +++++++++++++++---- src/renderer/src/pages/Tools/View.tsx | 19 ++++++++++++++---- 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/renderer/src/pages/System/Tools/Code.tsx b/src/renderer/src/pages/System/Tools/Code.tsx index b3392fc..18d1a75 100644 --- a/src/renderer/src/pages/System/Tools/Code.tsx +++ b/src/renderer/src/pages/System/Tools/Code.tsx @@ -64,8 +64,9 @@ const Code = () => { render(response.data!) break case DATABASE_NO_RECORD_FOUND: - void message.error('未找到指定工具') - navigateToRepository(navigate) + message.error('未找到指定工具').then(() => { + navigateToRepository(navigate) + }) break default: void message.error('获取工具信息失败,请稍后重试') diff --git a/src/renderer/src/pages/System/Tools/Execute.tsx b/src/renderer/src/pages/System/Tools/Execute.tsx index 7cc8df6..396ec94 100644 --- a/src/renderer/src/pages/System/Tools/Execute.tsx +++ b/src/renderer/src/pages/System/Tools/Execute.tsx @@ -1,6 +1,6 @@ import useStyles from '@/assets/css/pages/system/tools/execute.style' import { DATABASE_NO_RECORD_FOUND, DATABASE_SELECT_SUCCESS } from '@/constants/common.constants' -import { message } from '@/util/common' +import { checkDesktop, message } from '@/util/common' import { navigateToTools } from '@/util/navigation' import { r_sys_tool_get_one } from '@/services/system' import FitFullscreen from '@/components/common/FitFullscreen' @@ -20,7 +20,18 @@ const Execute = () => { const render = (toolVo: ToolVo) => { try { - setIsMobileMode(toolVo.platform === 'ANDROID') + switch (toolVo.platform) { + case 'ANDROID': + setIsMobileMode(true) + break + case 'DESKTOP': + if (!checkDesktop()) { + message.warning('此应用需要桌面端环境,请在桌面端打开').then(() => { + navigateToTools(navigate) + }) + return + } + } const baseDist = base64ToStr(toolVo.base.dist.data!) const files = base64ToFiles(toolVo.source.data!) @@ -58,8 +69,9 @@ const Execute = () => { render(response.data!) break case DATABASE_NO_RECORD_FOUND: - void message.error('未找到指定工具') - navigateToTools(navigate) + message.error('未找到指定工具').then(() => { + navigateToTools(navigate) + }) break default: void message.error('获取工具信息失败,请稍后重试') diff --git a/src/renderer/src/pages/Tools/View.tsx b/src/renderer/src/pages/Tools/View.tsx index 7da099b..0b4754f 100644 --- a/src/renderer/src/pages/Tools/View.tsx +++ b/src/renderer/src/pages/Tools/View.tsx @@ -1,6 +1,6 @@ import useStyles from '@/assets/css/pages/tools/view.style' import { DATABASE_NO_RECORD_FOUND, DATABASE_SELECT_SUCCESS } from '@/constants/common.constants' -import { message } from '@/util/common' +import { checkDesktop, message } from '@/util/common' import { getLoginStatus } from '@/util/auth' import { navigateToInstall, @@ -25,10 +25,21 @@ const View = () => { }) const [isLoading, setIsLoading] = useState(false) const [compiledCode, setCompiledCode] = useState('') - const [isAndroid, setIsAndroid] = useState(false) + const [isMobileMode, setIsMobileMode] = useState(false) const render = (toolVo: ToolVo) => { - setIsAndroid(toolVo.platform === 'ANDROID') + switch (toolVo.platform) { + case 'ANDROID': + setIsMobileMode(true) + break + case 'DESKTOP': + if (!checkDesktop()) { + message.warning('此应用需要桌面端环境,请在桌面端打开').then(() => { + navigateToRepository(navigate) + }) + return + } + } if (username === '!') { try { const baseDist = base64ToStr(toolVo.base.dist.data!) @@ -145,7 +156,7 @@ const View = () => {