From 2fcad53ef9775b58763fef5be3b1dde8a43407f3 Mon Sep 17 00:00:00 2001 From: fofolee Date: Sun, 12 Jan 2025 12:44:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=92=88=E5=AF=B9=E6=9F=90=E4=BA=9B=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E8=BE=83=E6=85=A2=E7=9A=84=E5=91=BD=E4=BB=A4=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=BD=E5=85=A5=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/composer/CommandComposer.vue | 36 ++++++++++++++++++--- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/src/components/composer/CommandComposer.vue b/src/components/composer/CommandComposer.vue index 65bba2b..1fa6e53 100644 --- a/src/components/composer/CommandComposer.vue +++ b/src/components/composer/CommandComposer.vue @@ -17,6 +17,9 @@ /> + + + @@ -70,6 +73,7 @@ export default defineComponent({ data() { return { availableCommands, + hasCommandNeedLoading: false, }; }, emits: ["use-composer", "update:modelValue"], @@ -87,11 +91,23 @@ export default defineComponent({ return generateCode(this.commandFlow); }, handleComposer(type, flow) { - if (type === "save") return this.saveFlow(); - if (type === "load") return this.loadFlow(); - const code = flow ? generateCode(flow) : generateCode(this.commandFlow); - this.$emit("use-composer", { type, code }); - if (type !== "run") return this.$emit("update:modelValue", false); + switch (type) { + case "save": + return this.saveFlow(); + case "load": + return this.loadFlow(); + case "run": + return this.runFlow(flow); + default: + this.$emit("use-composer", { type, code }); + return this.$emit("update:modelValue", false); + } + }, + // 传入临时flow说明是运行单独的命令,否则是运行整个命令流 + runFlow(flow) { + this.hasCommandNeedLoading = this.findCommandNeedLoading(flow); + const code = generateCode(flow || this.commandFlow); + this.$emit("use-composer", { type: "run", code }); if (!code.includes("console.log")) quickcommand.showMessageBox("已运行"); }, saveFlow() { @@ -129,6 +145,16 @@ export default defineComponent({ }; }); }, + findCommandNeedLoading(flow) { + // 暂时只在运行单独命令时显示载入界面,因为运行整个命令流时,如果不打印输出,是无法判断什么时候运行结束的, + // 运行单独命令时,添加了打印流程,且showLoading参数可控 + if (!flow) return; + return flow.some( + (cmd) => + cmd.showLoading || + cmd.subCommands?.find((c) => c.value === cmd.value)?.showLoading + ); + }, }, });