diff --git a/src/pages/crontab/detail.tsx b/src/pages/crontab/detail.tsx index 1f6f3374..37b8e949 100644 --- a/src/pages/crontab/detail.tsx +++ b/src/pages/crontab/detail.tsx @@ -30,7 +30,7 @@ import config from '@/utils/config'; import CronLogModal from './logModal'; import Editor from '@monaco-editor/react'; import IconFont from '@/components/iconfont'; -import { getCommandScript } from '@/utils'; +import { getCommandScript, getEditorMode } from '@/utils'; import VirtualList from 'rc-virtual-list'; import useScrollHeight from '@/hooks/useScrollHeight'; @@ -46,13 +46,6 @@ const tabList = [ tab: intl.get('脚本'), }, ]; -const LangMap: any = { - '.py': 'python', - '.js': 'javascript', - '.mjs': 'typescript', - '.sh': 'shell', - '.ts': 'typescript', -}; interface LogItem { directory: string; @@ -110,7 +103,7 @@ const CronDetailModal = ({ ), script: scriptInfo.filename && ( { enabledOrDisabledEnv(record, index)}> @@ -232,10 +232,10 @@ const Env = () => { const enabledOrDisabledEnv = (record: any, index: number) => { Modal.confirm({ - title: `确认${record.status === Status.已intl.get('禁用') ? intl.get('启用') : intl.get('禁用')}`, + title: `确认${record.status === Status.已禁用 ? intl.get('启用') : intl.get('禁用')}`, content: ( <> - {intl.get('确认')}{record.status === Status.已intl.get('禁用') ? intl.get('启用') : intl.get('禁用')} + {intl.get('确认')}{record.status === Status.已禁用 ? intl.get('启用') : intl.get('禁用')} Env{' '} {record.value} @@ -254,7 +254,7 @@ const Env = () => { .then(({ code, data }) => { if (code === 200) { message.success( - `${record.status === Status.已intl.get('禁用') ? intl.get('启用') : intl.get('禁用')}成功`, + `${record.status === Status.已禁用 ? intl.get('启用') : intl.get('禁用')}${intl.get('成功')}`, ); const newStatus = record.status === Status.已禁用 ? Status.已启用 : Status.已禁用; diff --git a/src/pages/script/editModal.tsx b/src/pages/script/editModal.tsx index 7479de07..e6995d86 100644 --- a/src/pages/script/editModal.tsx +++ b/src/pages/script/editModal.tsx @@ -8,22 +8,9 @@ import Editor from '@monaco-editor/react'; import SaveModal from './saveModal'; import SettingModal from './setting'; import { useTheme } from '@/utils/hooks'; -import { logEnded } from '@/utils'; +import { getEditorMode, logEnded } from '@/utils'; const { Option } = Select; -const LangMap: any = { - '.py': 'python', - '.js': 'javascript', - '.mjs': 'typescript', - '.sh': 'shell', - '.ts': 'typescript', -}; -const prefixMap: any = { - python: '.py', - javascript: '.js', - shell: '.sh', - typescript: '.ts', -}; const EditModal = ({ treeData, @@ -66,7 +53,7 @@ const EditModal = ({ return; } - const newMode = LangMap[value.slice(-3)] || ''; + const newMode = getEditorMode(value); setCNode(node); setLanguage(newMode); getDetail(node); @@ -146,7 +133,7 @@ const EditModal = ({ setCNode(currentNode); setValue(content as string); setSelectedKey(currentNode.key); - const newMode = LangMap[currentNode.title.slice(-3)] || ''; + const newMode = getEditorMode(currentNode.title); setLanguage(newMode); } }, [content, currentNode]); diff --git a/src/pages/script/index.tsx b/src/pages/script/index.tsx index e009401e..5901cb1d 100644 --- a/src/pages/script/index.tsx +++ b/src/pages/script/index.tsx @@ -37,7 +37,7 @@ import EditScriptNameModal from './editNameModal'; import debounce from 'lodash/debounce'; import { history, useOutletContext, useLocation } from '@umijs/max'; import { parse } from 'query-string'; -import { depthFirstSearch, findNode } from '@/utils'; +import { depthFirstSearch, findNode, getEditorMode } from '@/utils'; import { SharedContext } from '@/layouts'; import useFilterTreeData from '@/hooks/useFilterTreeData'; import uniq from 'lodash/uniq'; @@ -46,14 +46,6 @@ import RenameModal from './renameModal'; const { Text } = Typography; -const LangMap: any = { - '.py': 'python', - '.js': 'javascript', - '.mjs': 'typescript', - '.sh': 'shell', - '.ts': 'typescript', -}; - const Script = () => { const { headerStyle, isPhone, theme, socketMessage } = useOutletContext(); @@ -134,7 +126,7 @@ const Script = () => { return; } - const newMode = value ? LangMap[value.slice(-3)] : ''; + const newMode = getEditorMode(value); setMode(isPhone && newMode === 'typescript' ? 'javascript' : newMode); setValue(intl.get('加载中...')); getDetail(node); diff --git a/src/utils/const.ts b/src/utils/const.ts index 51f1fe0b..dd45e08d 100644 --- a/src/utils/const.ts +++ b/src/utils/const.ts @@ -1 +1,9 @@ export const LOG_END_SYMBOL = '     '; + +export const LANG_MAP = { + '.py': 'python', + '.js': 'javascript', + '.mjs': 'javascript', + '.sh': 'shell', + '.ts': 'typescript', +}; diff --git a/src/utils/index.ts b/src/utils/index.ts index a96262b4..28866e71 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,5 +1,5 @@ import intl from 'react-intl-universal'; -import { LOG_END_SYMBOL } from './const'; +import { LANG_MAP, LOG_END_SYMBOL } from './const'; import cron_parser from 'cron-parser'; export default function browserType() { @@ -154,9 +154,9 @@ export default function browserType() { shell === 'none' ? {} : { - shell, // wechat qq uc 360 2345 sougou liebao maxthon - shellVs, - }, + shell, // wechat qq uc 360 2345 sougou liebao maxthon + shellVs, + }, ); console.log( @@ -335,7 +335,18 @@ export function parseCrontab(schedule: string): Date { if (time) { return time.next().toDate(); } - } catch (error) {} + } catch (error) { } return new Date('1970'); } + +export function getExtension(filename: string) { + if (!filename) return ''; + const arr = filename.split('.'); + return `.${arr[arr.length - 1]}`; +} + +export function getEditorMode(filename: string) { + const extension = getExtension(filename) as keyof typeof LANG_MAP; + return LANG_MAP[extension]; +} \ No newline at end of file