From cd3fdef13442de7155e0c57a6bff556ee3ff1ef5 Mon Sep 17 00:00:00 2001 From: zhf <1204297681@qq.com> Date: Thu, 11 Sep 2025 11:10:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85diff=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=BC=96=E8=BE=91=E6=A1=86=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/monaco-differ/CHANGELOG.md | 8 + packages/monaco-differ/ibiz.config.ts | 64 ++++++ packages/monaco-differ/package.json | 86 +++++++ packages/monaco-differ/scripts/link.sh | 7 + packages/monaco-differ/src/index.ts | 16 ++ .../src/monaco-differ.controller.ts | 26 +++ .../src/monaco-differ.provider.ts | 21 ++ packages/monaco-differ/src/monaco-differ.scss | 40 ++++ packages/monaco-differ/src/monaco-differ.tsx | 210 ++++++++++++++++++ packages/monaco-differ/tsconfig.json | 15 ++ 10 files changed, 493 insertions(+) create mode 100644 packages/monaco-differ/CHANGELOG.md create mode 100644 packages/monaco-differ/ibiz.config.ts create mode 100644 packages/monaco-differ/package.json create mode 100755 packages/monaco-differ/scripts/link.sh create mode 100644 packages/monaco-differ/src/index.ts create mode 100644 packages/monaco-differ/src/monaco-differ.controller.ts create mode 100644 packages/monaco-differ/src/monaco-differ.provider.ts create mode 100644 packages/monaco-differ/src/monaco-differ.scss create mode 100644 packages/monaco-differ/src/monaco-differ.tsx create mode 100644 packages/monaco-differ/tsconfig.json diff --git a/packages/monaco-differ/CHANGELOG.md b/packages/monaco-differ/CHANGELOG.md new file mode 100644 index 00000000..dc3846ce --- /dev/null +++ b/packages/monaco-differ/CHANGELOG.md @@ -0,0 +1,8 @@ +# 版本变更日志 + +这个项目的所有关键变化都将记录在此文件中. + +此日志格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/), +并且此项目遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/). + +## [Unreleased] diff --git a/packages/monaco-differ/ibiz.config.ts b/packages/monaco-differ/ibiz.config.ts new file mode 100644 index 00000000..f406994f --- /dev/null +++ b/packages/monaco-differ/ibiz.config.ts @@ -0,0 +1,64 @@ +/* eslint-disable import/no-extraneous-dependencies */ +import path from 'path'; +import { defineConfig } from '@ibiz-template/cli'; + +const cwd = process.cwd(); + +export default defineConfig({ + bundles: [ + { + input: 'index.ts', + output: [ + { + format: 'system', + dir: 'dist', + entryFileNames: '[name].system.min.js', + sourcemap: false, + }, + ], + }, + ], + eslint: true, + stylelint: true, + theme: { + prefix: `@import "${path.resolve( + cwd, + 'node_modules/@ibiz-template/theme/style/global.scss', + )}";`, + }, + isCustomElement: tag => tag.startsWith('ion-'), + external: [ + 'vue', + 'vue-router', + 'vue-i18n', + 'element-plus', + 'async-validator', + 'dayjs', + 'dayjs/plugin/minMax', + 'dayjs/plugin/isSameOrBefore', + 'dayjs/plugin/quarterOfYear', + 'dayjs/plugin/weekOfYear', + 'dayjs/plugin/isoWeek', + 'echarts', + 'axios', + 'qs', + 'ramda', + 'interactjs', + 'lodash-es', + 'qx-util', + 'vuedraggable', + 'pinia', + 'cherry-markdown', + '@floating-ui/dom', + '@ibiz-template/core', + '@ibiz-template/runtime', + '@ibiz-template/vue3-util', + '@ibiz-template/model-helper', + '@ibiz-template/vue3-components', + '@wangeditor/editor', + '@wangeditor/editor-for-vue', + '@imengyu/vue3-context-menu', + '@ibiz-template-plugin/ai-chat', + 'monaco-editor', + ], +}); diff --git a/packages/monaco-differ/package.json b/packages/monaco-differ/package.json new file mode 100644 index 00000000..3a1f74ef --- /dev/null +++ b/packages/monaco-differ/package.json @@ -0,0 +1,86 @@ +{ + "name": "@ibiz-template-plugin/monaco-differ", + "version": "0.0.3-alpha.113", + "description": "diff代码编辑框", + "author": "chitanda", + "license": "MIT", + "main": "lib/index.cjs", + "module": "es/index.mjs", + "types": "es/index.d.ts", + "system": "dist/index.system.min.js", + "styles": [ + "dist/index.min.css" + ], + "files": [ + "dist", + "es", + "lit", + "src", + "CHANGELOG.md", + "README.md" + ], + "publishConfig": { + "registry": "http://172.16.240.221:8081/repository/local/" + }, + "scripts": { + "dev": "ibiz-temp build -w", + "lint": "vue-tsc --noEmit && eslint 'src/**/*.tsx' 'src/**/*.ts'", + "build": "ibiz-temp build -c && vue-tsc --declaration --emitDeclarationOnly", + "preview": "vite preview", + "publish:next": "npm run build && npm publish --access public --tag=next --registry=http://172.16.240.221:8081/repository/local/", + "publish:dev": "npm run build && npm publish --access public --tag=dev --registry=http://172.16.240.221:8081/repository/local/", + "publish:beta": "npm run build && npm publish --access public --tag=beta --registry=http://172.16.240.221:8081/repository/local/", + "publish:npm": "npm run build && npm publish --access public --registry=http://172.16.240.221:8081/repository/local/" + }, + "dependencies": { + "@ibiz-template/core": "0.7.39-alpha.2", + "@ibiz-template/model-helper": "0.7.39-alpha.2", + "@ibiz-template/runtime": "0.7.39-alpha.2", + "@ibiz-template/theme": "^0.7.0", + "@ibiz-template/vue3-util": "0.7.39-alpha.2", + "@ibiz/model-core": "^0.1.58", + "@imengyu/vue3-context-menu": "^1.3.3", + "@monaco-editor/loader": "^1.4.0", + "async-validator": "^4.2.5", + "axios": "^1.6.2", + "cherry-markdown": "0.8.26", + "dayjs": "^1.11.10", + "element-plus": "^2.4.2", + "lodash-es": "^4.17.21", + "monaco-editor": "^0.45.0", + "pluralize": "^8.0.0", + "qs": "^6.11.2", + "qx-util": "^0.4.8", + "ramda": "^0.29.1", + "sortablejs": "^1.15.1", + "vue": "^3.3.8", + "vue-router": "^4.2.5", + "vuedraggable": "^4.1.0" + }, + "peerDependencies": { + "@ibiz-template/core": "^0.7.0", + "@ibiz-template/model-helper": "^0.7.0", + "@ibiz-template/runtime": "^0.7.0", + "@ibiz-template/theme": "^0.7.0", + "@ibiz-template/vue3-util": "^0.7.0", + "@ibiz/model-core": "^0.1.3", + "async-validator": "^4.2.5", + "axios": "^1.6.1", + "dayjs": "^1.11.10", + "element-plus": "^2.4.2", + "lodash-es": "^4.17.21", + "pluralize": "^8.0.0", + "qs": "^6.11.2", + "qx-util": "^0.4.8", + "ramda": "^0.29.1", + "vue": "^3.3.8", + "vue-router": "^4.2.5", + "vuedraggable": "^4.1.0" + }, + "devDependencies": { + "@types/lodash-es": "^4.17.12", + "@types/pluralize": "^0.0.33", + "@types/ramda": "^0.29.9", + "@types/sortablejs": "^1.15.7" + } +} diff --git a/packages/monaco-differ/scripts/link.sh b/packages/monaco-differ/scripts/link.sh new file mode 100755 index 00000000..abb93429 --- /dev/null +++ b/packages/monaco-differ/scripts/link.sh @@ -0,0 +1,7 @@ +pnpm link --global "@ibiz-template/vue3-util" +pnpm link --global "@ibiz-template/model-helper" +pnpm link --global "@ibiz-template/runtime" +pnpm link --global "@ibiz-template/core" +pnpm link --global "@ibiz-template/theme" +pnpm link --global "@ibiz-template/vue3-components" +pnpm link --global "@ibiz-template/web-theme" diff --git a/packages/monaco-differ/src/index.ts b/packages/monaco-differ/src/index.ts new file mode 100644 index 00000000..59a7ff00 --- /dev/null +++ b/packages/monaco-differ/src/index.ts @@ -0,0 +1,16 @@ +import { registerEditorProvider } from '@ibiz-template/runtime'; +import { App } from 'vue'; +import { MonacoDiffer } from './monaco-differ'; +import { MonacoDifferProvider } from './monaco-differ.provider'; + +export default { + install(app: App): void { + // 全局注册编辑器插件组件 + app.component(MonacoDiffer.name!, MonacoDiffer); + // 全局注册编辑器插件适配器,EDITOR_CUSTOMSTYLE是插件类型,MONACO_DIFFER是插件标识 + registerEditorProvider( + 'EDITOR_CUSTOMSTYLE_MONACO_DIFFER', + () => new MonacoDifferProvider(), + ); + }, +}; diff --git a/packages/monaco-differ/src/monaco-differ.controller.ts b/packages/monaco-differ/src/monaco-differ.controller.ts new file mode 100644 index 00000000..eabb9824 --- /dev/null +++ b/packages/monaco-differ/src/monaco-differ.controller.ts @@ -0,0 +1,26 @@ +import { EditorController } from '@ibiz-template/runtime'; +import { ICode } from '@ibiz/model-core'; + +export class MonacoDifferController extends EditorController { + /** + * @description 语言类型 + * @readonly + * @type {string} + * @memberof MonacoDifferController + */ + get language(): string { + return ( + this.editorParams.codeType || this.editorParams.language || 'typescript' + ); + } + + /** + * @description 主题 + * @readonly + * @type {string} + * @memberof MonacoDifferController + */ + get theme(): string { + return this.editorParams.theme || 'vs-dark'; + } +} diff --git a/packages/monaco-differ/src/monaco-differ.provider.ts b/packages/monaco-differ/src/monaco-differ.provider.ts new file mode 100644 index 00000000..434fc093 --- /dev/null +++ b/packages/monaco-differ/src/monaco-differ.provider.ts @@ -0,0 +1,21 @@ +import { + IEditorContainerController, + IEditorProvider, +} from '@ibiz-template/runtime'; +import { ICode } from '@ibiz/model-core'; +import { MonacoDifferController } from './monaco-differ.controller'; + +export class MonacoDifferProvider implements IEditorProvider { + formEditor: string = 'IBizMonacoDiffer'; + + gridEditor: string = 'IBizMonacoDiffer'; + + async createController( + editorModel: ICode, + parentController: IEditorContainerController, + ): Promise { + const c = new MonacoDifferController(editorModel, parentController); + await c.init(); + return c; + } +} diff --git a/packages/monaco-differ/src/monaco-differ.scss b/packages/monaco-differ/src/monaco-differ.scss new file mode 100644 index 00000000..691a25ac --- /dev/null +++ b/packages/monaco-differ/src/monaco-differ.scss @@ -0,0 +1,40 @@ +/* stylelint-disable selector-class-pattern */ +@include b(monaco-differ) { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + min-height: 200px; + padding-top: 36px; + + .monaco-diff-editor .gutter .gutterItem { + opacity: 1; + } +} + +@include b(monaco-differ-editor) { + flex: 1 1 0; + border: 1px solid getCssVar('color', 'border'); + + @include when(loading) { + border: none; + } +} + +@include b(monaco-differ-editor-header) { + position: absolute; + top: -36px; + display: flex; + align-items: center; + width: 100%; + height: 36px; + font-size: getCssVar('font-size', 'header-6'); + line-height: normal; + color: getCssVar(color, white); +} + +@include b(monaco-differ-editor-header-text) { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} diff --git a/packages/monaco-differ/src/monaco-differ.tsx b/packages/monaco-differ/src/monaco-differ.tsx new file mode 100644 index 00000000..4e909705 --- /dev/null +++ b/packages/monaco-differ/src/monaco-differ.tsx @@ -0,0 +1,210 @@ +import { defineComponent, onMounted, onUnmounted, ref, watch } from 'vue'; +import { + getCodeProps, + getEditorEmits, + useNamespace, + useUIStore, +} from '@ibiz-template/vue3-util'; +import { FormItemController } from '@ibiz-template/runtime'; +import * as monaco from 'monaco-editor'; +import loader from '@monaco-editor/loader'; +import { MonacoDifferController } from './monaco-differ.controller'; +import './monaco-differ.scss'; + +export const MonacoDiffer = defineComponent({ + name: 'IBizMonacoDiffer', + props: getCodeProps(), + emits: getEditorEmits(), + setup(props, { emit }) { + const ns = useNamespace('monaco-differ'); + + // 是否正在加载 + const isLoading = ref(false); + + // diff编辑器元素 + const diffEditorRef = ref(); + + // monaco编辑器 + let monacoEditor: typeof monaco.editor | undefined; + + // diff编辑器 + let diffEditor: monaco.editor.IStandaloneDiffEditor | undefined; + + // 原始模型 + let originalModel: monaco.editor.ITextModel | undefined; + + // 比对模型 + let modifiedModel: monaco.editor.ITextModel | undefined; + + // 元素尺寸变化监听器 + let resizeObserver: ResizeObserver | undefined; + + // 控制器 + const c = props.controller; + + // 值项 + const editorItems = c.model.editorItems; + + // 原始值 + let originalValue = ''; + + // 比对值 + let modifiedValue = ''; + + // UI主题 + const { UIStore } = useUIStore(); + + // 获取monaco主题 + const getMonacoTheme = (name: string): string => { + return name === 'dark' ? `vs-${UIStore.theme}` : 'vs'; + }; + + watch( + () => UIStore.theme, + newVal => { + monacoEditor?.setTheme(getMonacoTheme(newVal)); + diffEditor?.layout(); + }, + ); + + if (editorItems?.length) { + watch( + () => props.data[editorItems[0].id!], + value => { + originalValue = value || ''; + originalModel?.setValue(originalValue); + }, + { immediate: true }, + ); + } + + watch( + () => props.value, + value => { + if (value === modifiedValue) { + return; + } + modifiedValue = value || ''; + modifiedModel?.setValue(modifiedValue); + }, + { immediate: true }, + ); + + // 初始化编辑器标题 + const initEditorTitle = () => { + if (!diffEditor) { + return; + } + const originalContainer = diffEditor + .getOriginalEditor() + .getContainerDomNode(); + const modifiedContainer = diffEditor + .getModifiedEditor() + .getContainerDomNode(); + const modifiedItem = props.controller.parent as FormItemController; + const originalItem = modifiedItem.form.formItems.find( + item => item.model.id === editorItems?.[0]?.id, + ); + const originalEl = document.createElement('div'); + originalEl.className = ns.b('editor-header'); + const originalTextEl = document.createElement('div'); + originalTextEl.className = ns.b('editor-header-text'); + originalTextEl.textContent = originalItem?.labelCaption || ''; + originalEl.appendChild(originalTextEl); + originalContainer.appendChild(originalEl); + const modifiedEl = document.createElement('div'); + modifiedEl.className = ns.b('editor-header'); + const modifiedTextEl = document.createElement('div'); + modifiedTextEl.className = ns.b('editor-header-text'); + modifiedTextEl.textContent = modifiedItem.labelCaption || ''; + modifiedEl.appendChild(modifiedTextEl); + modifiedContainer.appendChild(modifiedEl); + }; + + // 初始化编辑器 + const initEditor = async () => { + if (!diffEditorRef.value) { + return; + } + try { + isLoading.value = true; + loader.config({ + paths: { + vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.52.2/min/vs`, + }, + }); + const loaderMonaco = await loader.init(); + monacoEditor = loaderMonaco.editor; + diffEditor = monacoEditor.createDiffEditor(diffEditorRef.value, { + theme: getMonacoTheme(UIStore.theme), + renderMarginRevertIcon: true, // 启用回退图标 + originalEditable: false, // 左侧原始区域建议设为只读 + readOnly: props.readonly || props.disabled || false, // 右侧修改区域必须可编辑 + readOnlyMessage: { + value: ibiz.i18n.t('editor.code.readOnlyPrompt'), + }, + renderSideBySide: true, // 并排模式 + ignoreTrimWhitespace: false, // 避免空白差异被忽略 + automaticLayout: true, + }); + originalModel = monacoEditor.createModel( + originalValue, + props.language || props.controller.language, + ); + modifiedModel = monacoEditor.createModel( + modifiedValue, + props.language || props.controller.language, + ); + diffEditor.setModel({ + original: originalModel, + modified: modifiedModel, + }); + diffEditor.onDidUpdateDiff(() => { + modifiedValue = modifiedModel?.getValue() || ''; + emit('change', modifiedValue); + }); + initEditorTitle(); + } finally { + isLoading.value = false; + } + }; + + onMounted(() => { + initEditor(); + if (diffEditorRef.value) { + resizeObserver = new ResizeObserver(() => { + diffEditor?.layout(); + }); + resizeObserver.observe(diffEditorRef.value); + } + }); + + onUnmounted(() => { + resizeObserver?.disconnect(); + }); + + return { + ns, + isLoading, + diffEditorRef, + }; + }, + render() { + const isLoading = !this.controller.view?.state?.isLoading && this.isLoading; + return ( +
+
+
+ ); + }, +}); diff --git a/packages/monaco-differ/tsconfig.json b/packages/monaco-differ/tsconfig.json new file mode 100644 index 00000000..94ab90a8 --- /dev/null +++ b/packages/monaco-differ/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "jsx": "preserve", + "declarationDir": "es", + "noImplicitAny": false, + }, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "node_modules", + "test" + ] +} -- Gitee From b14f33b3f06f175b9085946439490b894f0d8bcf Mon Sep 17 00:00:00 2001 From: zhf <1204297681@qq.com> Date: Thu, 11 Sep 2025 11:11:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0monaco-editor?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BC=96=E8=BE=91=E5=99=A8=E7=9A=84=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/ai-code/src/monaco-editor/monaco-editor.tsx | 2 +- .../src/components/code-editor/code-editor.tsx | 2 +- .../form-logic-event-script/form-logic-event-script.tsx | 2 +- .../src/components/local-version-diff/local-version-diff.tsx | 3 ++- .../src/components/design-code-editor/design-code-editor.scss | 1 + .../src/components/design-code-editor/design-code-editor.tsx | 2 +- packages/search-criteria/src/code-editor/code-editor.scss | 1 + packages/search-criteria/src/code-editor/code-editor.tsx | 2 +- 8 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/ai-code/src/monaco-editor/monaco-editor.tsx b/packages/ai-code/src/monaco-editor/monaco-editor.tsx index dc095f79..b504bdfd 100644 --- a/packages/ai-code/src/monaco-editor/monaco-editor.tsx +++ b/packages/ai-code/src/monaco-editor/monaco-editor.tsx @@ -517,7 +517,7 @@ export const IBizAICode = defineComponent({ isLoading.value = true; loader.config({ paths: { - vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.45.0/min/vs`, + vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.52.2/min/vs`, }, }); loader diff --git a/packages/data-query-design/src/components/code-editor/code-editor.tsx b/packages/data-query-design/src/components/code-editor/code-editor.tsx index bf8e8211..d89d6fb2 100644 --- a/packages/data-query-design/src/components/code-editor/code-editor.tsx +++ b/packages/data-query-design/src/components/code-editor/code-editor.tsx @@ -91,7 +91,7 @@ export default defineComponent({ isLoading.value = true; loader.config({ paths: { - vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.45.0/min/vs`, + vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.52.2/min/vs`, }, }); loader diff --git a/packages/dnd-design/src/plugins/form-logic-event-script/form-logic-event-script.tsx b/packages/dnd-design/src/plugins/form-logic-event-script/form-logic-event-script.tsx index c56be528..64037e05 100644 --- a/packages/dnd-design/src/plugins/form-logic-event-script/form-logic-event-script.tsx +++ b/packages/dnd-design/src/plugins/form-logic-event-script/form-logic-event-script.tsx @@ -454,7 +454,7 @@ export const FormLogicEventScript: ReturnType = isLoading.value = true; loader.config({ paths: { - vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.45.0/min/vs`, + vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.52.2/min/vs`, }, }); loader diff --git a/packages/local-version-control/src/components/local-version-diff/local-version-diff.tsx b/packages/local-version-control/src/components/local-version-diff/local-version-diff.tsx index e4666757..119d6b11 100644 --- a/packages/local-version-control/src/components/local-version-diff/local-version-diff.tsx +++ b/packages/local-version-control/src/components/local-version-diff/local-version-diff.tsx @@ -77,7 +77,7 @@ export default defineComponent({ isLoading.value = true; loader.config({ paths: { - vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.45.0/min/vs`, + vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.52.2/min/vs`, }, }); const loaderMonaco = await loader.init(); @@ -88,6 +88,7 @@ export default defineComponent({ readOnlyMessage: { value: ibiz.i18n.t('editor.code.readOnlyPrompt'), }, + automaticLayout: true, }); originalModel = monacoEditor.createModel( props.current.data ? JSON.stringify(props.current.data, null, 2) : '', diff --git a/packages/model-design/src/components/design-code-editor/design-code-editor.scss b/packages/model-design/src/components/design-code-editor/design-code-editor.scss index 6146c467..7287c7ef 100644 --- a/packages/model-design/src/components/design-code-editor/design-code-editor.scss +++ b/packages/model-design/src/components/design-code-editor/design-code-editor.scss @@ -9,6 +9,7 @@ @include b(design-code-editor-content) { flex: 1 1 0; + overflow: hidden; } @include b(design-code-editor-toolbar) { diff --git a/packages/model-design/src/components/design-code-editor/design-code-editor.tsx b/packages/model-design/src/components/design-code-editor/design-code-editor.tsx index fb615bb3..4e575f59 100644 --- a/packages/model-design/src/components/design-code-editor/design-code-editor.tsx +++ b/packages/model-design/src/components/design-code-editor/design-code-editor.tsx @@ -165,7 +165,7 @@ export default defineComponent({ isLoading.value = true; loader.config({ paths: { - vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.45.0/min/vs`, + vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.52.2/min/vs`, }, }); loader diff --git a/packages/search-criteria/src/code-editor/code-editor.scss b/packages/search-criteria/src/code-editor/code-editor.scss index 5efcbbb1..72f6c576 100644 --- a/packages/search-criteria/src/code-editor/code-editor.scss +++ b/packages/search-criteria/src/code-editor/code-editor.scss @@ -80,6 +80,7 @@ $search-criteria-code: ( .monaco-editor { padding-top: getCssVar('search-criteria-code', 'toolbar-height'); + outline: none; } } } diff --git a/packages/search-criteria/src/code-editor/code-editor.tsx b/packages/search-criteria/src/code-editor/code-editor.tsx index 9a3038e4..65e8df75 100644 --- a/packages/search-criteria/src/code-editor/code-editor.tsx +++ b/packages/search-criteria/src/code-editor/code-editor.tsx @@ -77,7 +77,7 @@ export const CodeEditor = defineComponent({ isLoading.value = true; loader.config({ paths: { - vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.45.0/min/vs`, + vs: `${ibiz.env.pluginBaseUrl}/monaco-editor@0.52.2/min/vs`, }, }); loader -- Gitee