From 5e7093c8ece6948897d86aea4d888fd62db20306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Wed, 31 Dec 2025 00:30:32 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4monaco-editor?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E4=B8=BAace-editor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/package.json | 4 +- web/pnpm-lock.yaml | 106 ++++-------- web/src/components/common/CodeEditor.vue | 68 -------- web/src/components/common/CommonEditor.vue | 141 ++++++++++++++++ web/src/components/common/FileEditor.vue | 171 ++++++++++++++++++++ web/src/main.ts | 59 ------- web/src/views/apps/codeserver/IndexView.vue | 13 +- web/src/views/apps/docker/IndexView.vue | 13 +- web/src/views/apps/frp/IndexView.vue | 25 +-- web/src/views/apps/gitea/IndexView.vue | 13 +- web/src/views/apps/memcached/IndexView.vue | 13 +- web/src/views/apps/minio/IndexView.vue | 13 +- web/src/views/apps/mysql/IndexView.vue | 13 +- web/src/views/apps/nginx/IndexView.vue | 13 +- web/src/views/apps/php/PhpView.vue | 25 +-- web/src/views/apps/phpmyadmin/IndexView.vue | 13 +- web/src/views/apps/podman/IndexView.vue | 25 +-- web/src/views/apps/postgresql/IndexView.vue | 25 +-- web/src/views/apps/redis/IndexView.vue | 13 +- web/src/views/apps/rsync/IndexView.vue | 13 +- web/src/views/apps/supervisor/IndexView.vue | 25 +-- web/src/views/cert/CertView.vue | 23 +-- web/src/views/container/ContainerView.vue | 14 +- web/src/views/file/EditModal.vue | 3 +- web/src/views/task/CreateModal.vue | 13 +- web/src/views/task/CronView.vue | 13 +- web/src/views/toolbox/SystemView.vue | 13 +- web/src/views/website/EditView.vue | 13 +- web/src/views/website/SettingView.vue | 37 +---- web/types/monaco.d.ts | 25 --- 30 files changed, 374 insertions(+), 584 deletions(-) delete mode 100644 web/src/components/common/CodeEditor.vue create mode 100644 web/src/components/common/CommonEditor.vue create mode 100644 web/src/components/common/FileEditor.vue delete mode 100644 web/types/monaco.d.ts diff --git a/web/package.json b/web/package.json index 75020d5d..990ce676 100644 --- a/web/package.json +++ b/web/package.json @@ -28,7 +28,6 @@ "@alova/adapter-xhr": "^2.2.1", "@eslint/eslintrc": "^3.3.1", "@fontsource-variable/jetbrains-mono": "^5.2.8", - "@guolao/vue-monaco-editor": "^1.6.0", "@vavt/copy2clipboard": "^1.0.3", "@vue-js-cron/naive-ui": "^2.0.13", "@vueuse/core": "^14.0.0", @@ -39,6 +38,7 @@ "@xterm/addon-web-links": "^0.12.0", "@xterm/addon-webgl": "^0.19.0", "@xterm/xterm": "^6.0.0", + "ace-builds": "^1.43.5", "alova": "^3.3.4", "cronstrue": "^3.3.0", "echarts": "^6.0.0", @@ -47,7 +47,6 @@ "luxon": "^3.7.2", "marked": "^17.0.0", "mitt": "^3.0.1", - "monaco-editor": "^0.55.1", "node-forge": "^1.3.1", "pinia": "^3.0.3", "pinia-plugin-persistedstate": "^4.5.0", @@ -55,6 +54,7 @@ "vue": "^3.5.22", "vue-echarts": "^8.0.1", "vue-router": "^4.6.3", + "vue3-ace-editor": "^2.2.4", "vue3-gettext": "4.0.0-beta.1" }, "devDependencies": { diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index 3bef0ef8..f848a503 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -17,9 +17,6 @@ importers: '@fontsource-variable/jetbrains-mono': specifier: ^5.2.8 version: 5.2.8 - '@guolao/vue-monaco-editor': - specifier: ^1.6.0 - version: 1.6.0(monaco-editor@0.55.1)(vue@3.5.26(typescript@5.9.3)) '@vavt/copy2clipboard': specifier: ^1.0.3 version: 1.0.3 @@ -50,6 +47,9 @@ importers: '@xterm/xterm': specifier: ^6.0.0 version: 6.0.0 + ace-builds: + specifier: ^1.43.5 + version: 1.43.5 alova: specifier: ^3.3.4 version: 3.4.1 @@ -74,9 +74,6 @@ importers: mitt: specifier: ^3.0.1 version: 3.0.1 - monaco-editor: - specifier: ^0.55.1 - version: 0.55.1 node-forge: specifier: ^1.3.1 version: 1.3.3 @@ -98,6 +95,9 @@ importers: vue-router: specifier: ^4.6.3 version: 4.6.4(vue@3.5.26(typescript@5.9.3)) + vue3-ace-editor: + specifier: ^2.2.4 + version: 2.2.4(ace-builds@1.43.5)(vue@3.5.26(typescript@5.9.3)) vue3-gettext: specifier: 4.0.0-beta.1 version: 4.0.0-beta.1(@vue/compiler-sfc@3.5.26)(vue@3.5.26(typescript@5.9.3)) @@ -667,16 +667,6 @@ packages: '@fontsource-variable/jetbrains-mono@5.2.8': resolution: {integrity: sha512-WBA9elru6Jdp5df2mES55wuOO0WIrn3kpXnI4+W2ek5u3ZgLS9XS4gmIlcQhiZOWEKl95meYdvK7xI+ETLCq/Q==} - '@guolao/vue-monaco-editor@1.6.0': - resolution: {integrity: sha512-w2IiJ6eJGGeuIgCK6EKZOAfhHTTUB5aZwslzwGbZ5e89Hb4avx6++GkLTW8p84Sng/arFMjLPPxSBI56cFudyQ==} - peerDependencies: - '@vue/composition-api': ^1.7.2 - monaco-editor: '>=0.43.0' - vue: ^2.6.14 || >=3.0.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -795,9 +785,6 @@ packages: '@marijn/find-cluster-break@1.0.2': resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} - '@monaco-editor/loader@1.7.0': - resolution: {integrity: sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1058,9 +1045,6 @@ packages: '@types/node@24.10.4': resolution: {integrity: sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==} - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} @@ -1378,6 +1362,9 @@ packages: '@xterm/xterm@6.0.0': resolution: {integrity: sha512-TQwDdQGtwwDt+2cgKDLn0IRaSxYu1tSUjgKarSDkUM0ZNiSRXFpjxEsvc/Zgc5kq5omJ+V0a8/kIM2WD3sMOYg==} + ace-builds@1.43.5: + resolution: {integrity: sha512-iH5FLBKdB7SVn9GR37UgA/tpQS8OTWIxWAuq3Ofaw+Qbc69FfPXsXd9jeW7KRG2xKpKMqBDnu0tHBrCWY5QI7A==} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1745,9 +1732,6 @@ packages: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} engines: {node: '>= 4'} - dompurify@3.2.7: - resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} - domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} @@ -2446,11 +2430,6 @@ packages: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true - marked@14.0.0: - resolution: {integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==} - engines: {node: '>= 18'} - hasBin: true - marked@17.0.1: resolution: {integrity: sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==} engines: {node: '>= 20'} @@ -2518,9 +2497,6 @@ packages: resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} hasBin: true - monaco-editor@0.55.1: - resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==} - mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -2824,6 +2800,9 @@ packages: remove@0.1.5: resolution: {integrity: sha512-AJMA9oWvJzdTjwIGwSQZsjGQiRx73YTmiOWmfCp1fpLa/D4n7jKcpoA+CZiVLJqKcEKUuh1Suq80c5wF+L/qVQ==} + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -2956,9 +2935,6 @@ packages: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} - state-local@1.0.7: - resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} - statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -3324,17 +3300,6 @@ packages: vscode-uri@3.1.0: resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - vue-demi@0.14.10: - resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} - engines: {node: '>=12'} - hasBin: true - peerDependencies: - '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue-echarts@8.0.1: resolution: {integrity: sha512-23rJTFLu1OUEGRWjJGmdGt8fP+8+ja1gVgzMYPIPaHWpXegcO1viIAaeu2H4QHESlVeHzUAHIxKXGrwjsyXAaA==} peerDependencies: @@ -3361,6 +3326,12 @@ packages: peerDependencies: typescript: '>=5.0.0' + vue3-ace-editor@2.2.4: + resolution: {integrity: sha512-FZkEyfpbH068BwjhMyNROxfEI8135Sc+x8ouxkMdCNkuj/Tuw83VP/gStFQqZHqljyX9/VfMTCdTqtOnJZGN8g==} + peerDependencies: + ace-builds: '*' + vue: ^3 + vue3-gettext@4.0.0-beta.1: resolution: {integrity: sha512-1A46SmubgTMyy7i5hj8ay50NFl6/vzwoIVZPuGCin/X3a/NVCAs99G0EbcnfJiR7NZNTJgUjvBzppufC7Kq+4A==} engines: {node: '>= 20.19.0'} @@ -4054,13 +4025,6 @@ snapshots: '@fontsource-variable/jetbrains-mono@5.2.8': {} - '@guolao/vue-monaco-editor@1.6.0(monaco-editor@0.55.1)(vue@3.5.26(typescript@5.9.3))': - dependencies: - '@monaco-editor/loader': 1.7.0 - monaco-editor: 0.55.1 - vue: 3.5.26(typescript@5.9.3) - vue-demi: 0.14.10(vue@3.5.26(typescript@5.9.3)) - '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.7': @@ -4225,10 +4189,6 @@ snapshots: '@marijn/find-cluster-break@1.0.2': {} - '@monaco-editor/loader@1.7.0': - dependencies: - state-local: 1.0.7 - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4418,9 +4378,6 @@ snapshots: dependencies: undici-types: 7.16.0 - '@types/trusted-types@2.0.7': - optional: true - '@types/web-bluetooth@0.0.21': {} '@typescript-eslint/eslint-plugin@8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': @@ -4907,6 +4864,8 @@ snapshots: '@xterm/xterm@6.0.0': {} + ace-builds@1.43.5: {} + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -5270,10 +5229,6 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.2.7: - optionalDependencies: - '@types/trusted-types': 2.0.7 - domutils@2.8.0: dependencies: dom-serializer: 1.4.1 @@ -6027,8 +5982,6 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 - marked@14.0.0: {} - marked@17.0.1: {} math-intrinsics@1.1.0: {} @@ -6106,11 +6059,6 @@ snapshots: dependencies: commander: 14.0.2 - monaco-editor@0.55.1: - dependencies: - dompurify: 3.2.7 - marked: 14.0.0 - mrmime@2.0.1: {} ms@2.0.0: {} @@ -6402,6 +6350,8 @@ snapshots: dependencies: seq: 0.3.5 + resize-observer-polyfill@1.5.1: {} + resolve-from@4.0.0: {} resolve-pkg-maps@1.0.0: {} @@ -6569,8 +6519,6 @@ snapshots: speakingurl@14.0.1: {} - state-local@1.0.7: {} - statuses@1.5.0: {} stop-iteration-iterator@1.1.0: @@ -7007,10 +6955,6 @@ snapshots: vscode-uri@3.1.0: {} - vue-demi@0.14.10(vue@3.5.26(typescript@5.9.3)): - dependencies: - vue: 3.5.26(typescript@5.9.3) - vue-echarts@8.0.1(echarts@6.0.0)(vue@3.5.26(typescript@5.9.3)): dependencies: echarts: 6.0.0 @@ -7041,6 +6985,12 @@ snapshots: '@vue/language-core': 3.2.1 typescript: 5.9.3 + vue3-ace-editor@2.2.4(ace-builds@1.43.5)(vue@3.5.26(typescript@5.9.3)): + dependencies: + ace-builds: 1.43.5 + resize-observer-polyfill: 1.5.1 + vue: 3.5.26(typescript@5.9.3) + vue3-gettext@4.0.0-beta.1(@vue/compiler-sfc@3.5.26)(vue@3.5.26(typescript@5.9.3)): dependencies: '@vue/compiler-sfc': 3.5.26 diff --git a/web/src/components/common/CodeEditor.vue b/web/src/components/common/CodeEditor.vue deleted file mode 100644 index ae90b2dd..00000000 --- a/web/src/components/common/CodeEditor.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - - diff --git a/web/src/components/common/CommonEditor.vue b/web/src/components/common/CommonEditor.vue new file mode 100644 index 00000000..92db8200 --- /dev/null +++ b/web/src/components/common/CommonEditor.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/web/src/components/common/FileEditor.vue b/web/src/components/common/FileEditor.vue new file mode 100644 index 00000000..dbefaab8 --- /dev/null +++ b/web/src/components/common/FileEditor.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/web/src/main.ts b/web/src/main.ts index 9c8f2001..684f78fd 100644 --- a/web/src/main.ts +++ b/web/src/main.ts @@ -13,61 +13,6 @@ import { gettext, setCurrent, setupNaiveDiscreteApi } from '@/utils' import home from '@/api/panel/home' import CronNaivePlugin from '@vue-js-cron/naive-ui' -async function loadMonacoLocale(locale: string) { - try { - switch (locale) { - case 'zh_CN': - await import('monaco-editor/esm/nls.messages.zh-cn.js') - break - case 'zh_TW': - await import('monaco-editor/esm/nls.messages.zh-tw.js') - break - default: - // 英语不需要加载 - break - } - } catch (error) { - console.warn(`Failed to load monaco-editor locale: ${locale}`, error) - } -} - -async function setupMonacoEditor(app: any) { - const [editorWorker, jsonWorker, cssWorker, htmlWorker, tsWorker] = await Promise.all([ - import('monaco-editor/esm/vs/editor/editor.worker?worker'), - import('monaco-editor/esm/vs/language/json/json.worker?worker'), - import('monaco-editor/esm/vs/language/css/css.worker?worker'), - import('monaco-editor/esm/vs/language/html/html.worker?worker'), - import('monaco-editor/esm/vs/language/typescript/ts.worker?worker') - ]) - - self.MonacoEnvironment = { - getWorker(_: any, label: string) { - if (label === 'json') { - return new jsonWorker.default() - } - if (label === 'css' || label === 'scss' || label === 'less') { - return new cssWorker.default() - } - if (label === 'html' || label === 'handlebars' || label === 'razor') { - return new htmlWorker.default() - } - if (label === 'typescript' || label === 'javascript') { - return new tsWorker.default() - } - return new editorWorker.default() - } - } - - const [{ install: VueMonacoEditorPlugin }, monaco] = await Promise.all([ - import('@guolao/vue-monaco-editor'), - import('monaco-editor') - ]) - - app.use(VueMonacoEditorPlugin, { - monaco - }) -} - async function setupApp() { const app = createApp(App) app.use(CronNaivePlugin) @@ -78,8 +23,6 @@ async function setupApp() { app.use(gettext) }) - await setupMonacoEditor(app) - await setupRouter(app) app.mount('#app') } @@ -95,8 +38,6 @@ const setupPanel = async () => { locale: 'en' } }).onSuccess(async ({ data }: { data: any }) => { - await loadMonacoLocale(data.locale) - setCurrent(data.locale) themeStore.setLocale(data.locale) themeStore.setName(data.name) diff --git a/web/src/views/apps/codeserver/IndexView.vue b/web/src/views/apps/codeserver/IndexView.vue index ff5fa3ac..75966301 100644 --- a/web/src/views/apps/codeserver/IndexView.vue +++ b/web/src/views/apps/codeserver/IndexView.vue @@ -3,7 +3,6 @@ defineOptions({ name: 'apps-codeserver-index' }) -import Editor from '@guolao/vue-monaco-editor' import { NButton } from 'naive-ui' import { useGettext } from 'vue3-gettext' @@ -41,17 +40,7 @@ const handleSaveConfig = () => { ) }} - + {{ $gettext('Save') }} diff --git a/web/src/views/apps/docker/IndexView.vue b/web/src/views/apps/docker/IndexView.vue index 6fcc2b1b..31abfb47 100644 --- a/web/src/views/apps/docker/IndexView.vue +++ b/web/src/views/apps/docker/IndexView.vue @@ -3,7 +3,6 @@ defineOptions({ name: 'apps-docker-index' }) -import Editor from '@guolao/vue-monaco-editor' import { NButton } from 'naive-ui' import { useGettext } from 'vue3-gettext' @@ -37,17 +36,7 @@ const handleSaveConfig = () => { {{ $gettext('This modifies the Docker configuration file (/etc/docker/daemon.json)') }} - + {{ $gettext('Save') }} diff --git a/web/src/views/apps/frp/IndexView.vue b/web/src/views/apps/frp/IndexView.vue index fe9439fe..c9c7d44c 100644 --- a/web/src/views/apps/frp/IndexView.vue +++ b/web/src/views/apps/frp/IndexView.vue @@ -3,7 +3,6 @@ defineOptions({ name: 'apps-frp-index' }) -import Editor from '@guolao/vue-monaco-editor' import { NButton } from 'naive-ui' import { useGettext } from 'vue3-gettext' @@ -47,17 +46,7 @@ onMounted(() => { {{ $gettext('Save') }} - + @@ -70,17 +59,7 @@ onMounted(() => { {{ $gettext('Save') }} - + diff --git a/web/src/views/apps/gitea/IndexView.vue b/web/src/views/apps/gitea/IndexView.vue index f7a6bf32..077686fb 100644 --- a/web/src/views/apps/gitea/IndexView.vue +++ b/web/src/views/apps/gitea/IndexView.vue @@ -3,7 +3,6 @@ defineOptions({ name: 'apps-gitea-index' }) -import Editor from '@guolao/vue-monaco-editor' import { NButton } from 'naive-ui' import { useGettext } from 'vue3-gettext' @@ -39,17 +38,7 @@ const handleSaveConfig = () => { ) }} - + {{ $gettext('Save') }} diff --git a/web/src/views/apps/memcached/IndexView.vue b/web/src/views/apps/memcached/IndexView.vue index 6ca411b8..3a281e95 100644 --- a/web/src/views/apps/memcached/IndexView.vue +++ b/web/src/views/apps/memcached/IndexView.vue @@ -3,7 +3,6 @@ defineOptions({ name: 'apps-memcached-index' }) -import Editor from '@guolao/vue-monaco-editor' import { NButton, NDataTable } from 'naive-ui' import { useGettext } from 'vue3-gettext' @@ -54,17 +53,7 @@ const handleSaveConfig = () => { - + {{ $gettext('Save') }} diff --git a/web/src/views/apps/minio/IndexView.vue b/web/src/views/apps/minio/IndexView.vue index 445e4ced..ae3933a3 100644 --- a/web/src/views/apps/minio/IndexView.vue +++ b/web/src/views/apps/minio/IndexView.vue @@ -3,7 +3,6 @@ defineOptions({ name: 'apps-minio-index' }) -import Editor from '@guolao/vue-monaco-editor' import { NButton } from 'naive-ui' import { useGettext } from 'vue3-gettext' @@ -39,17 +38,7 @@ const handleSaveEnv = () => { ) }} - + {{ $gettext('Save') }} diff --git a/web/src/views/apps/mysql/IndexView.vue b/web/src/views/apps/mysql/IndexView.vue index e046da4a..11b83575 100644 --- a/web/src/views/apps/mysql/IndexView.vue +++ b/web/src/views/apps/mysql/IndexView.vue @@ -3,7 +3,6 @@ defineOptions({ name: 'apps-mysql-index' }) -import Editor from '@guolao/vue-monaco-editor' import { NButton, NDataTable, NInput } from 'naive-ui' import { useGettext } from 'vue3-gettext' @@ -91,17 +90,7 @@ const handleSetRootPassword = async () => { ) }} - + {{ $gettext('Save') }} diff --git a/web/src/views/apps/nginx/IndexView.vue b/web/src/views/apps/nginx/IndexView.vue index 125f19ed..449755b2 100644 --- a/web/src/views/apps/nginx/IndexView.vue +++ b/web/src/views/apps/nginx/IndexView.vue @@ -3,7 +3,6 @@ defineOptions({ name: 'apps-nginx-index' }) -import Editor from '@guolao/vue-monaco-editor' import { NButton, NDataTable } from 'naive-ui' import { useGettext } from 'vue3-gettext' @@ -67,17 +66,7 @@ const handleClearErrorLog = () => { ) }} - + {{ $gettext('Save') }} diff --git a/web/src/views/apps/php/PhpView.vue b/web/src/views/apps/php/PhpView.vue index d652f369..5abdae1a 100644 --- a/web/src/views/apps/php/PhpView.vue +++ b/web/src/views/apps/php/PhpView.vue @@ -1,5 +1,4 @@