From e082304c56d6535facf84c4a649c7e2c081f5a00 Mon Sep 17 00:00:00 2001 From: fofolee Date: Sun, 5 Jan 2025 09:51:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84ubrowser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../composer/ubrowser/UBrowserBasic.vue | 75 ++- .../composer/ubrowser/UBrowserEditor.vue | 173 +++-- .../composer/ubrowser/UBrowserOperations.vue | 50 +- .../composer/ubrowser/UBrowserRun.vue | 36 +- .../operations/UBrowserButtonToggle.vue | 50 -- .../ubrowser/operations/UBrowserCheckbox.vue | 37 -- .../operations/UBrowserCheckboxGroup.vue | 31 - .../operations/UBrowserCookieList.vue | 48 +- .../operations/UBrowserDeviceName.vue | 10 +- .../operations/UBrowserDeviceSize.vue | 60 -- .../ubrowser/operations/UBrowserFileList.vue | 9 +- .../operations/UBrowserNamedParamList.vue | 35 +- .../ubrowser/operations/UBrowserOperation.vue | 231 +++---- .../ubrowser/operations/UBrowserSelect.vue | 43 -- .../ubrowser/operations/UBrowserTextarea.vue | 38 -- src/js/composer/customComponentGuide.js | 1 + src/js/composer/generateUBrowserCode.js | 619 ++++++++++-------- src/js/composer/ubrowserConfig.js | 154 ++++- 18 files changed, 857 insertions(+), 843 deletions(-) delete mode 100644 src/components/composer/ubrowser/operations/UBrowserButtonToggle.vue delete mode 100644 src/components/composer/ubrowser/operations/UBrowserCheckbox.vue delete mode 100644 src/components/composer/ubrowser/operations/UBrowserCheckboxGroup.vue delete mode 100644 src/components/composer/ubrowser/operations/UBrowserDeviceSize.vue delete mode 100644 src/components/composer/ubrowser/operations/UBrowserSelect.vue delete mode 100644 src/components/composer/ubrowser/operations/UBrowserTextarea.vue diff --git a/src/components/composer/ubrowser/UBrowserBasic.vue b/src/components/composer/ubrowser/UBrowserBasic.vue index a3025ff..ec64bbd 100644 --- a/src/components/composer/ubrowser/UBrowserBasic.vue +++ b/src/components/composer/ubrowser/UBrowserBasic.vue @@ -33,7 +33,8 @@
diff --git a/src/components/composer/ubrowser/UBrowserEditor.vue b/src/components/composer/ubrowser/UBrowserEditor.vue index 0a504e2..944b6dc 100644 --- a/src/components/composer/ubrowser/UBrowserEditor.vue +++ b/src/components/composer/ubrowser/UBrowserEditor.vue @@ -15,7 +15,7 @@ - + @@ -23,8 +23,9 @@ @@ -37,7 +38,7 @@ - diff --git a/src/components/composer/ubrowser/UBrowserOperations.vue b/src/components/composer/ubrowser/UBrowserOperations.vue index e3cd92e..602ab1f 100644 --- a/src/components/composer/ubrowser/UBrowserOperations.vue +++ b/src/components/composer/ubrowser/UBrowserOperations.vue @@ -106,20 +106,21 @@ export default defineComponent({ required: true, }, }, - data() { + emits: ["remove-action", "update:selectedActions", "update:configs"], + setup() { return { - ubrowserOperationConfigs: ubrowserOperationConfigs, + ubrowserOperationConfigs, }; }, - emits: ["remove-action", "update:selectedActions", "update:configs"], methods: { moveAction(index, direction) { const newIndex = index + direction; if (newIndex >= 0 && newIndex < this.selectedActions.length) { const actions = [...this.selectedActions]; - const temp = actions[index]; - actions[index] = actions[newIndex]; - actions[newIndex] = temp; + [actions[index], actions[newIndex]] = [ + actions[newIndex], + actions[index], + ]; this.$emit("update:selectedActions", actions); } }, @@ -127,19 +128,22 @@ export default defineComponent({ const index = this.selectedActions.findIndex( (a) => a.value === action.value ); + if (index === -1) { // 添加操作 + const newAction = { + ...action, + id: this.$root.getUniqueId(), + argv: "", + saveOutput: false, + useOutput: null, + cmd: action.value || action.cmd, + value: action.value || action.cmd, + }; + this.$emit("update:selectedActions", [ ...this.selectedActions, - { - ...action, - id: this.$root.getUniqueId(), - argv: "", - saveOutput: false, - useOutput: null, - cmd: action.value || action.cmd, - value: action.value || action.cmd, - }, + newAction, ]); // 初始化配置对象 @@ -148,14 +152,14 @@ export default defineComponent({ const newConfigs = { ...this.configs }; if (!newConfigs[action.value]) { newConfigs[action.value] = {}; + // 设置默认值 + config.forEach((field) => { + if (field.defaultValue !== undefined) { + newConfigs[action.value][field.key] = field.defaultValue; + } + }); + this.$emit("update:configs", newConfigs); } - // 设置默认值 - config.forEach((field) => { - if (field.defaultValue !== undefined) { - newConfigs[action.value][field.key] = field.defaultValue; - } - }); - this.$emit("update:configs", newConfigs); } } else { // 移除操作 @@ -167,7 +171,7 @@ export default defineComponent({ getActionProps(action, key) { return this.ubrowserOperationConfigs.find( (a) => a.value === action.value - )[key]; + )?.[key]; }, }, }); diff --git a/src/components/composer/ubrowser/UBrowserRun.vue b/src/components/composer/ubrowser/UBrowserRun.vue index f594389..71ad773 100644 --- a/src/components/composer/ubrowser/UBrowserRun.vue +++ b/src/components/composer/ubrowser/UBrowserRun.vue @@ -155,7 +155,7 @@ diff --git a/src/components/composer/ubrowser/operations/UBrowserButtonToggle.vue b/src/components/composer/ubrowser/operations/UBrowserButtonToggle.vue deleted file mode 100644 index f4043bc..0000000 --- a/src/components/composer/ubrowser/operations/UBrowserButtonToggle.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - diff --git a/src/components/composer/ubrowser/operations/UBrowserCheckbox.vue b/src/components/composer/ubrowser/operations/UBrowserCheckbox.vue deleted file mode 100644 index c368d48..0000000 --- a/src/components/composer/ubrowser/operations/UBrowserCheckbox.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/src/components/composer/ubrowser/operations/UBrowserCheckboxGroup.vue b/src/components/composer/ubrowser/operations/UBrowserCheckboxGroup.vue deleted file mode 100644 index adb26f7..0000000 --- a/src/components/composer/ubrowser/operations/UBrowserCheckboxGroup.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/components/composer/ubrowser/operations/UBrowserCookieList.vue b/src/components/composer/ubrowser/operations/UBrowserCookieList.vue index 6be6450..e5d916d 100644 --- a/src/components/composer/ubrowser/operations/UBrowserCookieList.vue +++ b/src/components/composer/ubrowser/operations/UBrowserCookieList.vue @@ -11,7 +11,7 @@ [{ name: "", value: "" }], + default: () => [ + { + name: { + value: "", + isString: true, + __varInputVal__: true, + }, + value: { + value: "", + isString: true, + __varInputVal__: true, + }, + }, + ], }, }, emits: ["update:modelValue"], methods: { addCookie() { - const newValue = [...this.modelValue, { name: "", value: "" }]; + const newValue = [ + ...this.modelValue, + { + name: { + value: "", + isString: true, + __varInputVal__: true, + }, + value: { + value: "", + isString: true, + __varInputVal__: true, + }, + }, + ]; this.$emit("update:modelValue", newValue); }, removeCookie(index) { const newValue = [...this.modelValue]; newValue.splice(index, 1); if (newValue.length === 0) { - newValue.push({ name: "", value: "" }); + newValue.push({ + name: { + value: "", + isString: true, + __varInputVal__: true, + }, + value: { + value: "", + isString: true, + __varInputVal__: true, + }, + }); } this.$emit("update:modelValue", newValue); }, diff --git a/src/components/composer/ubrowser/operations/UBrowserDeviceName.vue b/src/components/composer/ubrowser/operations/UBrowserDeviceName.vue index c541d5b..342b2a8 100644 --- a/src/components/composer/ubrowser/operations/UBrowserDeviceName.vue +++ b/src/components/composer/ubrowser/operations/UBrowserDeviceName.vue @@ -2,7 +2,7 @@
({ + value: "", + isString: true, + __varInputVal__: true, + }), }, label: { type: String, diff --git a/src/components/composer/ubrowser/operations/UBrowserDeviceSize.vue b/src/components/composer/ubrowser/operations/UBrowserDeviceSize.vue deleted file mode 100644 index c10d3ca..0000000 --- a/src/components/composer/ubrowser/operations/UBrowserDeviceSize.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/src/components/composer/ubrowser/operations/UBrowserFileList.vue b/src/components/composer/ubrowser/operations/UBrowserFileList.vue index d307be2..ce8f1de 100644 --- a/src/components/composer/ubrowser/operations/UBrowserFileList.vue +++ b/src/components/composer/ubrowser/operations/UBrowserFileList.vue @@ -58,7 +58,14 @@ export default defineComponent({ emits: ["update:modelValue"], methods: { addFile() { - const newValue = [...(this.modelValue || []), ""]; + const newValue = [ + ...(this.modelValue || []), + { + value: "", + isString: true, + __varInputVal__: true, + }, + ]; this.$emit("update:modelValue", newValue); }, removeFile(index) { diff --git a/src/components/composer/ubrowser/operations/UBrowserNamedParamList.vue b/src/components/composer/ubrowser/operations/UBrowserNamedParamList.vue index a498b3b..dec538e 100644 --- a/src/components/composer/ubrowser/operations/UBrowserNamedParamList.vue +++ b/src/components/composer/ubrowser/operations/UBrowserNamedParamList.vue @@ -10,7 +10,7 @@
@@ -18,7 +18,7 @@
@@ -56,14 +56,41 @@ export default defineComponent({ props: { modelValue: { type: Array, - default: () => [{ name: "", value: "" }], + default: () => [ + { + name: { + value: "", + isString: true, + __varInputVal__: true, + }, + value: { + value: "", + isString: true, + __varInputVal__: true, + }, + }, + ], }, label: String, }, emits: ["update:modelValue"], methods: { addParam() { - const newValue = [...(this.modelValue || []), { name: "", value: "" }]; + const newValue = [ + ...(this.modelValue || []), + { + name: { + value: "", + isString: true, + __varInputVal__: true, + }, + value: { + value: "", + isString: true, + __varInputVal__: true, + }, + }, + ]; this.$emit("update:modelValue", newValue); }, removeParam(index) { diff --git a/src/components/composer/ubrowser/operations/UBrowserOperation.vue b/src/components/composer/ubrowser/operations/UBrowserOperation.vue index 91bbd65..1c134a6 100644 --- a/src/components/composer/ubrowser/operations/UBrowserOperation.vue +++ b/src/components/composer/ubrowser/operations/UBrowserOperation.vue @@ -7,20 +7,37 @@ > - -