diff --git a/src/components/composer/MultiParams.vue b/src/components/composer/MultiParams.vue
index a9cb9ad..10138bd 100644
--- a/src/components/composer/MultiParams.vue
+++ b/src/components/composer/MultiParams.vue
@@ -14,7 +14,7 @@
import { defineComponent } from "vue";
import OperationCard from "components/composer/common/OperationCard.vue";
import ParamInput from "components/composer/param/ParamInput.vue";
-import { stringifyArgv, parseFunction } from "js/composer/formatString";
+import { stringifyArgv } from "js/composer/formatString";
import {
newVarInputVal,
isVarInputVal,
@@ -68,7 +68,7 @@ export default defineComponent({
},
argvs() {
return (
- this.modelValue.argvs || this.parseCodeToArgvs(this.modelValue.code)
+ this.modelValue.argvs || window.lodashM.cloneDeep(this.defaultArgvs)
);
},
hasSubCommands() {
@@ -143,42 +143,6 @@ export default defineComponent({
return `${subCommand}(${finalArgvs.join(",")})`;
},
- parseCodeToArgvs(code) {
- let argvs = window.lodashM.cloneDeep(this.defaultArgvs);
- if (!code) return argvs;
-
- if (this.localCommand.isExpression) {
- return [code];
- }
-
- const variableFormatPaths = [];
-
- const addVariableFormatPath = (prefix, config) => {
- if (config.component === "VariableInput") {
- variableFormatPaths.push(prefix);
- } else if (config.component === "ArrayEditor") {
- variableFormatPaths.push(`${prefix}[*].**`, `${prefix}[*]`);
- } else if (config.component === "DictEditor") {
- variableFormatPaths.push(`${prefix}.**`);
- }
- };
-
- this.localConfig.forEach((item, index) => {
- if (item.component === "OptionEditor") {
- Object.entries(item.options).forEach(([key, config]) => {
- addVariableFormatPath(`arg${index}.${key}`, config);
- });
- } else {
- addVariableFormatPath(`arg${index}`, item);
- }
- });
- try {
- argvs = parseFunction(code, { variableFormatPaths }).argvs;
- } catch (e) {
- console.log("解析参数失败:", e);
- }
- return argvs;
- },
getAllInputValues(argvs) {
const flatArgvs = [];
if (!argvs) return flatArgvs;
@@ -237,9 +201,8 @@ export default defineComponent({
},
},
mounted() {
- const argvs = this.modelValue.argvs || this.defaultArgvs;
- if (!this.modelValue.code && Array.isArray(argvs)) {
- this.updateModelValue(this.subCommand, argvs);
+ if (Array.isArray(this.argvs)) {
+ this.updateModelValue(this.subCommand, this.argvs);
}
},
});
diff --git a/src/components/composer/coding/AsymmetricCryptoEditor.vue b/src/components/composer/coding/AsymmetricCryptoEditor.vue
index fa36612..93cea47 100644
--- a/src/components/composer/coding/AsymmetricCryptoEditor.vue
+++ b/src/components/composer/coding/AsymmetricCryptoEditor.vue
@@ -189,7 +189,7 @@
diff --git a/src/components/composer/coding/SymmetricCryptoEditor.vue b/src/components/composer/coding/SymmetricCryptoEditor.vue
index c9f47bd..9f83ad1 100644
--- a/src/components/composer/coding/SymmetricCryptoEditor.vue
+++ b/src/components/composer/coding/SymmetricCryptoEditor.vue
@@ -190,7 +190,7 @@
diff --git a/src/components/composer/control/ControlCommand.vue b/src/components/composer/control/ControlCommand.vue
index 981ed29..208209c 100644
--- a/src/components/composer/control/ControlCommand.vue
+++ b/src/components/composer/control/ControlCommand.vue
@@ -87,7 +87,7 @@ export default defineComponent({
},
argvs() {
return (
- this.modelValue.argvs || this.parseCodeToArgvs(this.modelValue.code)
+ this.modelValue.argvs || window.lodashM.cloneDeep(this.defaultArgvs)
);
},
},
@@ -123,44 +123,7 @@ export default defineComponent({
return code;
},
- parseCodeToArgvs(code) {
- if (!code) return this.defaultArgvs;
- if (!this.currentFunction?.codeTemplate) return {};
- const template = this.currentFunction.codeTemplate;
- const argvs = {};
-
- // 如果没有变量模板,直接返回空对象
- if (!template.includes("${")) return {};
-
- // 将模板转换为正则表达式
- const escapeRegExp = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
- let pattern = escapeRegExp(template);
-
- // 收集所有变量名
- const variables = [];
- const variablePattern = /\${(\w+)}/g;
- let match;
-
- while ((match = variablePattern.exec(template)) !== null) {
- variables.push(match[1]);
- pattern = pattern.replace(escapeRegExp(`\${${match[1]}}`), "([^}]*?)");
- }
-
- // 创建正则表达式并匹配代码
- const regex = new RegExp(`^${pattern}$`);
- const matches = code.match(regex);
-
- if (matches) {
- // 从第二个元素开始,依次赋值给变量
- variables.forEach((variable, index) => {
- argvs[variable] = matches[index + 1] || "";
- });
- return argvs;
- }
-
- return this.defaultArgvs;
- },
updateModelValue(argvs) {
const code = this.generateCode(argvs);
@@ -180,9 +143,7 @@ export default defineComponent({
}
},
mounted() {
- if (!this.modelValue.code) {
- this.updateModelValue(this.defaultArgvs);
- }
+ this.updateModelValue(this.argvs);
},
});
diff --git a/src/components/composer/data/ZlibEditor.vue b/src/components/composer/data/ZlibEditor.vue
index 9806e3f..c306f8b 100644
--- a/src/components/composer/data/ZlibEditor.vue
+++ b/src/components/composer/data/ZlibEditor.vue
@@ -128,7 +128,7 @@
diff --git a/src/components/composer/data/regex/RegexEditor.vue b/src/components/composer/data/regex/RegexEditor.vue
index a1ec7f6..106986b 100644
--- a/src/components/composer/data/regex/RegexEditor.vue
+++ b/src/components/composer/data/regex/RegexEditor.vue
@@ -97,7 +97,6 @@ import VariableInput from "components/composer/common/VariableInput.vue";
import RegexInput from "./RegexInput.vue";
import RegexBuilder from "./RegexBuilder.vue";
import RegexTester from "./RegexTester.vue";
-import { parseToHasType } from "js/composer/formatString";
import { newVarInputVal } from "js/composer/varInputValManager";
export default defineComponent({
@@ -141,7 +140,7 @@ export default defineComponent({
},
argvs() {
return (
- this.modelValue.argvs || this.parseCodeToArgvs(this.modelValue.code)
+ this.modelValue.argvs || window.lodashM.cloneDeep(this.defaultArgvs)
);
},
},
@@ -230,31 +229,6 @@ export default defineComponent({
this.updateArgvs("regexValue", newContent);
}
},
- parseCodeToArgvs(code) {
- const argvs = window.lodashM.cloneDeep(this.defaultArgvs);
- if (!code) return argvs;
- const match = code.match(/^.*?\((.*)\)$/);
- if (!match) return argvs;
- const params = match[1];
- const parts = params.split(",");
- const text = parts[0];
- const regexPart = parts[1];
- const replace = parts[2];
- if (regexPart) {
- const [_, pattern, flags] = regexPart.match(/\/(.*?)\/(.*)/) || [];
- return {
- textValue: parseToHasType(text),
- regexValue: pattern,
- replaceValue: parseToHasType(replace),
- flags: {
- ignoreCase: flags.includes("i"),
- multiline: flags.includes("m"),
- global: flags.includes("g"),
- },
- isReplace: !!replace,
- };
- }
- },
getSummary(argvs) {
return argvs.isReplace
? argvs.textValue.value +
@@ -274,10 +248,7 @@ export default defineComponent({
},
},
mounted() {
- const argvs = this.modelValue.argvs || this.defaultArgvs;
- if (!this.modelValue.code) {
- this.updateModelValue(argvs);
- }
+ this.updateModelValue(this.argvs);
},
});
diff --git a/src/components/composer/script/ReturnEditor.vue b/src/components/composer/script/ReturnEditor.vue
index 03fa298..469917f 100644
--- a/src/components/composer/script/ReturnEditor.vue
+++ b/src/components/composer/script/ReturnEditor.vue
@@ -14,7 +14,7 @@
import { defineComponent } from "vue";
import { newVarInputVal } from "js/composer/varInputValManager";
import VariableInput from "components/composer/common/VariableInput.vue";
-import { parseFunction, stringifyArgv } from "js/composer/formatString";
+import { stringifyArgv } from "js/composer/formatString";
export default defineComponent({
name: "ReturnEditor",
@@ -34,32 +34,15 @@ export default defineComponent({
},
computed: {
argvs() {
- return (
- this.modelValue.argvs || this.parseCodeToArgvs(this.modelValue.code)
- );
+ return this.modelValue.argvs || window.lodashM.cloneDeep(this.defaultArgvs);
},
},
methods: {
- parseCodeToArgvs(code) {
- const argvs = window.lodashM.cloneDeep(this.defaultArgvs);
- if (!code) return argvs;
- code = code.trim().replace(/^return\s(.*)/, "tempFunc($1)");
- try {
- const variableFormatPaths = ["arg0"];
- const params = parseFunction(code, { variableFormatPaths });
- return {
- returnValue: params.argvs[0],
- };
- } catch (e) {
- console.error("解析参数失败:", e);
- }
- return argvs;
- },
generateCode(argvs = this.argvs) {
return `${this.modelValue.value} ${stringifyArgv(argvs.returnValue)}`;
},
getSummary(argvs) {
- return "返回" + " " + argvs.returnValue.value;
+ return "返回" + " " + stringifyArgv(argvs.returnValue);
},
updateArgvs(key, newValue) {
this.argvs[key] = newValue;
@@ -75,10 +58,7 @@ export default defineComponent({
},
},
mounted() {
- const argvs = this.modelValue.argvs || this.defaultArgvs;
- if (!this.modelValue.code) {
- this.updateModelValue(argvs);
- }
+ this.updateModelValue(this.argvs);
},
});
diff --git a/src/components/composer/script/ScriptEditor.vue b/src/components/composer/script/ScriptEditor.vue
index 9a79e8e..6ec9373 100644
--- a/src/components/composer/script/ScriptEditor.vue
+++ b/src/components/composer/script/ScriptEditor.vue
@@ -156,7 +156,7 @@ import VariableInput from "components/composer/common/VariableInput.vue";
import ArrayEditor from "components/composer/common/ArrayEditor.vue";
import BorderLabel from "components/composer/common/BorderLabel.vue";
import CheckButton from "components/composer/common/CheckButton.vue";
-import { parseFunction, stringifyArgv } from "js/composer/formatString";
+import { stringifyArgv } from "js/composer/formatString";
import programs from "js/options/programs";
import VariableList from "components/composer/common/varinput/VariableList.vue";
@@ -197,9 +197,7 @@ export default defineComponent({
computed: {
argvs() {
return (
- this.modelValue.argvs ||
- this.parseCodeToArgvs(this.modelValue.code) ||
- this.defaultArgvs
+ this.modelValue.argvs || window.lodashM.cloneDeep(this.defaultArgvs)
);
},
isCodeSnippet() {
@@ -211,29 +209,6 @@ export default defineComponent({
},
},
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 });
- if (!result) return this.defaultArgvs;
-
- const [scriptCode, options] = result.argvs;
- return {
- code: scriptCode,
- ...options,
- };
- } catch (e) {
- console.error("解析参数失败:", e);
- return this.defaultArgvs;
- }
- },
generateCode(argvs = this.argvs) {
const variables = argvs.code.match(/"?___([^_]+?)___"?/g);
const replaceStr =
@@ -317,10 +292,7 @@ export default defineComponent({
},
},
mounted() {
- const argvs = this.modelValue.argvs || this.defaultArgvs;
- if (!this.modelValue.code) {
- this.updateModelValue(argvs);
- }
+ this.updateModelValue(this.argvs);
},
});
diff --git a/src/components/composer/simulate/ImageSearchEditor.vue b/src/components/composer/simulate/ImageSearchEditor.vue
index 8249b4a..6f2d39e 100644
--- a/src/components/composer/simulate/ImageSearchEditor.vue
+++ b/src/components/composer/simulate/ImageSearchEditor.vue
@@ -132,7 +132,7 @@ export default defineComponent({
computed: {
argvs() {
return (
- this.modelValue.argvs || this.parseCodeToArgvs(this.modelValue.code)
+ this.modelValue.argvs || window.lodashM.cloneDeep(this.defaultArgvs)
);
},
},
@@ -208,35 +208,6 @@ export default defineComponent({
return `${this.modelValue.value}("data:image/png;base64,${config.imageData}", { threshold: ${config.threshold}, mouseAction: "${config.mouseAction}" })`;
},
- parseCodeToArgvs(code) {
- const argvs = window.lodashM.cloneDeep(this.defaultArgvs);
- if (!code) return argvs;
-
- // 从代码字符串解析配置
- try {
- const imageDataMatch = code.match(/"data:image\/png;base64,([^"]+)"/);
- const thresholdMatch = code.match(/threshold:\s*([\d.]+)/);
- const mouseActionMatch = code.match(/mouseAction:\s*"([^"]+)"/);
- let { imagePreview, threshold, mouseAction } = argvs;
-
- if (imageDataMatch) {
- imagePreview = `data:image/png;base64,${imageDataMatch[1]}`;
- }
- if (thresholdMatch) {
- threshold = parseFloat(thresholdMatch[1]);
- }
- if (mouseActionMatch) {
- mouseAction = mouseActionMatch[1];
- }
- return {
- imagePreview,
- threshold,
- mouseAction,
- };
- } catch (e) {
- return argvs;
- }
- },
updateModelValue(argvs) {
this.$emit("update:modelValue", {
...this.modelValue,
@@ -246,10 +217,7 @@ export default defineComponent({
},
},
mounted() {
- const argvs = this.modelValue.argvs || this.defaultArgvs;
- if (!this.modelValue.code) {
- this.updateModelValue(argvs);
- }
+ this.updateModelValue(this.argvs);
},
});
diff --git a/src/components/composer/simulate/KeyEditor.vue b/src/components/composer/simulate/KeyEditor.vue
index a4896f5..268116c 100644
--- a/src/components/composer/simulate/KeyEditor.vue
+++ b/src/components/composer/simulate/KeyEditor.vue
@@ -150,7 +150,6 @@