mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-08 05:55:34 +08:00
可视化编排新增代码片段功能
This commit is contained in:
parent
e6afc60f49
commit
a6c4016831
@ -11,11 +11,11 @@
|
||||
<q-select
|
||||
:model-value="argvs.language"
|
||||
@update:modelValue="updateArgvs('language', $event)"
|
||||
:options="Object.keys(programs).slice(2, -1)"
|
||||
:options="programOptions"
|
||||
label="编程语言"
|
||||
filled
|
||||
dense
|
||||
class="col-6"
|
||||
class="col"
|
||||
>
|
||||
<template v-slot:append>
|
||||
<q-avatar size="sm" square>
|
||||
@ -39,6 +39,7 @@
|
||||
class="col-3"
|
||||
filled
|
||||
dense
|
||||
v-if="!isCodeSnippet"
|
||||
:model-value="argvs.scriptCode"
|
||||
@update:modelValue="updateArgvs('scriptCode', $event)"
|
||||
label="脚本文件编码"
|
||||
@ -50,6 +51,7 @@
|
||||
class="col-3"
|
||||
filled
|
||||
dense
|
||||
v-if="!isCodeSnippet"
|
||||
:model-value="argvs.outputCode"
|
||||
@update:modelValue="updateArgvs('outputCode', $event)"
|
||||
label="命令行输出编码"
|
||||
@ -59,7 +61,7 @@
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="row q-col-gutter-sm">
|
||||
<div class="row q-col-gutter-sm" v-if="!isCodeSnippet">
|
||||
<div class="col-6">
|
||||
<ArrayEditor
|
||||
topLabel="脚本参数"
|
||||
@ -176,10 +178,23 @@ export default defineComponent({
|
||||
this.defaultArgvs
|
||||
);
|
||||
},
|
||||
isCodeSnippet() {
|
||||
return this.modelValue.value === "createCodeSnippet";
|
||||
},
|
||||
programOptions() {
|
||||
const startIndex = this.isCodeSnippet ? 1 : 2;
|
||||
return Object.keys(programs).slice(startIndex, -1);
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
parseCodeToArgvs(code) {
|
||||
if (!code) return this.defaultArgvs;
|
||||
if (this.isCodeSnippet) {
|
||||
const result = parseFunction(code);
|
||||
return {
|
||||
code: quickcomposer.coding.base64Decode(result.argvs?.[0]),
|
||||
};
|
||||
}
|
||||
try {
|
||||
const variableFormatPaths = ["arg1.args[*]"];
|
||||
const result = parseFunction(code, { variableFormatPaths });
|
||||
@ -196,6 +211,11 @@ export default defineComponent({
|
||||
}
|
||||
},
|
||||
generateCode(argvs = this.argvs) {
|
||||
if (this.isCodeSnippet) {
|
||||
return `quickcomposer.coding.base64Decode("${quickcomposer.coding.base64Encode(
|
||||
argvs.code
|
||||
)}")`;
|
||||
}
|
||||
const options = {
|
||||
language: argvs.language,
|
||||
};
|
||||
|
@ -23,7 +23,7 @@ export const scriptCommands = {
|
||||
value: "quickcommand.runCode",
|
||||
label: "运行脚本",
|
||||
component: "ScriptEditor",
|
||||
desc: "运行各种编程语言的代码",
|
||||
description: "运行各种编程语言的代码,需要预安装对应的执行环境",
|
||||
asyncMode: "await",
|
||||
outputs: {
|
||||
label: "运行结果",
|
||||
@ -31,6 +31,17 @@ export const scriptCommands = {
|
||||
typeName: "字符串",
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "createCodeSnippet",
|
||||
label: "新建代码片段",
|
||||
component: "ScriptEditor",
|
||||
description: "单纯将代码片段赋值到变量中,不会执行",
|
||||
outputs: {
|
||||
label: "代码片段",
|
||||
suggestName: "codeSnippet",
|
||||
typeName: "字符串",
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "return",
|
||||
label: "函数返回",
|
||||
|
Loading…
x
Reference in New Issue
Block a user