generateCode作为模块代码

This commit is contained in:
fofolee 2024-12-28 12:39:22 +08:00
parent 1dafacf3f1
commit 41484991ab
2 changed files with 26 additions and 23 deletions

View File

@ -22,7 +22,7 @@
<q-icon name="timeline" size="20px" class="q-mr-sm text-primary" /> <q-icon name="timeline" size="20px" class="q-mr-sm text-primary" />
<span class="text-subtitle1">命令流程</span> <span class="text-subtitle1">命令流程</span>
<q-space /> <q-space />
<CodePreview :generate-code="generateCode" /> <CodePreview :generate-code="generateFlowCode" />
</div> </div>
<q-scroll-area class="command-scroll"> <q-scroll-area class="command-scroll">
<ComposerFlow v-model="commandFlow" @add-command="addCommand" /> <ComposerFlow v-model="commandFlow" @add-command="addCommand" />
@ -48,7 +48,7 @@ import ComposerList from "./ComposerList.vue";
import ComposerFlow from "./ComposerFlow.vue"; import ComposerFlow from "./ComposerFlow.vue";
import CodePreview from "./CodePreview.vue"; import CodePreview from "./CodePreview.vue";
import { commandCategories } from "js/composer/composerConfig"; import { commandCategories } from "js/composer/composerConfig";
import { generateCode } from "js/composer/generateCode";
// commandCategories // commandCategories
const availableCommands = commandCategories.reduce((commands, category) => { const availableCommands = commandCategories.reduce((commands, category) => {
return commands.concat( return commands.concat(
@ -116,29 +116,11 @@ export default defineComponent({
value: action.value || action.cmd, value: action.value || action.cmd,
}); });
}, },
generateCode() { generateFlowCode() {
let code = []; return generateCode(this.commandFlow);
this.commandFlow.forEach((cmd) => {
let line = "";
if (cmd.outputVariable) {
line += `let ${cmd.outputVariable} = `;
}
if (cmd.value === "ubrowser") {
line += cmd.argv;
} else {
line += `${cmd.value}(${cmd.argv})`;
}
code.push(line);
});
return code.join("\n");
}, },
handleComposer(type) { handleComposer(type) {
const code = this.generateCode(); const code = this.generateFlowCode();
this.$emit("use-composer", { type, code }); this.$emit("use-composer", { type, code });
if (type !== "run") this.$emit("update:modelValue", false); if (type !== "run") this.$emit("update:modelValue", false);
}, },

View File

@ -0,0 +1,21 @@
export function generateCode(commandFlow) {
let code = [];
commandFlow.forEach((cmd) => {
let line = "";
if (cmd.outputVariable) {
line += `let ${cmd.outputVariable} = `;
}
if (cmd.value === "ubrowser") {
line += cmd.argv;
} else {
line += `${cmd.value}(${cmd.argv})`;
}
code.push(line);
});
return code.join("\n");
}