diff --git a/src/components/composer/MultiParams.vue b/src/components/composer/MultiParams.vue index 79f7714..836a763 100644 --- a/src/components/composer/MultiParams.vue +++ b/src/components/composer/MultiParams.vue @@ -102,6 +102,9 @@ export default defineComponent({ this.updateModelValue(this.funcName, newArgvs); }, generateCode(funcName, argvs) { + if (this.localCommand.isExpression) { + return argvs.join(""); + } /** * 字符串模式stringfiy后,null会变成'"null"', ''变成'""' * 变量模式stringify后,null变成'null', ''保持'' @@ -140,6 +143,10 @@ export default defineComponent({ let argvs = window.lodashM.cloneDeep(this.defaultArgvs); if (!code) return argvs; + if (this.localCommand.isExpression) { + return [code]; + } + const variableFormatPaths = []; const addVariableFormatPath = (prefix, config) => { diff --git a/src/components/composer/card/CommandButtons.vue b/src/components/composer/card/CommandButtons.vue index 7c894f7..a1364b3 100644 --- a/src/components/composer/card/CommandButtons.vue +++ b/src/components/composer/card/CommandButtons.vue @@ -21,6 +21,7 @@ diff --git a/src/components/composer/script/ReturnEditor.vue b/src/components/composer/script/ReturnEditor.vue new file mode 100644 index 0000000..03fa298 --- /dev/null +++ b/src/components/composer/script/ReturnEditor.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/src/js/composer/cardComponents.js b/src/js/composer/cardComponents.js index d9f8933..c317c28 100644 --- a/src/js/composer/cardComponents.js +++ b/src/js/composer/cardComponents.js @@ -50,3 +50,8 @@ export const SystemCommandEditor = defineAsyncComponent(() => export const SelectListEditor = defineAsyncComponent(() => import("components/composer/ui/SelectListEditor.vue") ); + +// 编程组件 +export const ReturnEditor = defineAsyncComponent(() => + import("components/composer/script/ReturnEditor.vue") +); diff --git a/src/js/composer/commands/scriptCommands.js b/src/js/composer/commands/scriptCommands.js index f33a5f7..c468cf6 100644 --- a/src/js/composer/commands/scriptCommands.js +++ b/src/js/composer/commands/scriptCommands.js @@ -17,9 +17,11 @@ export const scriptCommands = { ], }, { - value: "(function(code){new Function(code)()})", + value: "injectJs", label: "注入JS脚本", icon: "script", + neverHasOutput: true, + isExpression: true, config: [ { label: "JS脚本", @@ -29,11 +31,10 @@ export const scriptCommands = { ], }, { - value: "quickcommand.runAppleScript", - label: "执行 AppleScript", + value: "quickcommand.runCode", + label: "执行代码", icon: "script", outputVariable: "result", - saveOutput: true, config: [ { label: "脚本", @@ -42,5 +43,11 @@ export const scriptCommands = { }, ], }, + { + value: "return", + label: "函数返回", + neverHasOutput: true, + component: "ReturnEditor", + }, ], };