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 @@