Fix(View & Execute): Fixed the bug of being able to open Desktop tools in the web environment

This commit is contained in:
2024-10-31 11:48:36 +08:00
parent 53f6680dfd
commit 550383bfec
3 changed files with 34 additions and 10 deletions

View File

@@ -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('获取工具信息失败,请稍后重试')

View File

@@ -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('获取工具信息失败,请稍后重试')

View File

@@ -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 { navigateToRepository, navigateToRoot, navigateToView } from '@/util/navigation'
import { r_tool_detail } from '@/services/tool'
@@ -20,10 +20,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!)
@@ -122,7 +133,7 @@ const View = () => {
<Playground.Output.Preview.Render
iframeKey={`${username}:${toolId}:${ver}`}
compiledCode={compiledCode}
mobileMode={isAndroid}
mobileMode={isMobileMode}
/>
</Card>
</FitFullscreen>