From cc2078784301e647b454606eeb01264e54c2fa6b Mon Sep 17 00:00:00 2001 From: shangbin Date: Wed, 15 Sep 2021 10:54:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AF=AD=E6=B3=95=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/JSCodeEditorDialog.vue | 19 +++++++++++++++---- src/libs/main-panel.js | 6 ++---- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/components/JSCodeEditorDialog.vue b/src/components/JSCodeEditorDialog.vue index 1efe908..d963d05 100644 --- a/src/components/JSCodeEditorDialog.vue +++ b/src/components/JSCodeEditorDialog.vue @@ -5,8 +5,8 @@
确认修改 -
Tips: 确认修改之后将会影响最终生成的代码逻辑
- +
Tips: 确认修改之后将会影响最终生成的代码逻辑
+
请检查语法错误:{{error}}
@@ -23,6 +23,7 @@ export default { data() { return { + error: '' }; }, beforeCreate() { }, @@ -42,8 +43,18 @@ export default { }, onSave() { const code = this.$refs.codeEditor.getEditorCode(); - this.$emit("saveJSCode", code); - this.handleClose(); + // 去掉注释 + const temp = code.replace(/.+\*\/\s*/gs, ""); + try { + // 转换为对象 + const JSCodeInfo = eval(`(function(){return ${temp}})()`); + this.$emit("saveJSCode", JSCodeInfo); + this.handleClose(); + this.error = ''; + } catch (error) { + console.warn(error); + this.error = error; + } } }, watch: { diff --git a/src/libs/main-panel.js b/src/libs/main-panel.js index 54d24d0..a7ab839 100644 --- a/src/libs/main-panel.js +++ b/src/libs/main-panel.js @@ -110,10 +110,8 @@ export class MainPanelProvider { } saveJSCode(code) { - const temp = code.replace(/.+\*\/\s*/gs, ""); - const JSCodeInfo = eval(`(function(){return ${temp}})()`); - this.externalJS = JSCodeInfo; - this.codeGenerator.setExternalJS(JSCodeInfo); + this.externalJS = code; + this.codeGenerator.setExternalJS(code); this.reRender(); }