From f6384b935c5a8c85d81c6732783102c395cb8492 Mon Sep 17 00:00:00 2001 From: fit2-zhao Date: Wed, 7 Apr 2021 16:18:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E6=96=B0=E9=9C=80=E6=B1=82=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../automation/scenario/EditApiScenario.vue | 61 +++- .../scenario/maximize/MaximizeScenario.vue | 55 +++- .../test/components/ApiEnvironmentConfig.vue | 2 +- .../environment/EnvironmentEdit.vue | 6 +- .../environment/EnvironmentHttpConfig.vue | 281 ++++++++++++++---- .../api/test/model/EnvironmentModel.js | 2 +- frontend/src/i18n/en-US.js | 3 + frontend/src/i18n/zh-CN.js | 3 + frontend/src/i18n/zh-TW.js | 3 + 9 files changed, 350 insertions(+), 66 deletions(-) diff --git a/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue b/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue index 61cb5ea46..b807c61f4 100644 --- a/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue +++ b/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue @@ -126,7 +126,7 @@ {{$t('api_test.request.debug')}} - + @@ -134,13 +134,19 @@
+ + {{$t('api_test.automation.open_expansion')}} + + + {{$t('api_test.automation.close_expansion')}} + + :allow-drop="allowDrop" @node-drag-end="allowDrag" @node-click="nodeClick" v-if="!loading" draggable ref="stepTree"> 1) { arr[i].countController.proceed = true; } @@ -623,6 +631,7 @@ for (let i in this.scenarioDefinition) { // 排序 this.scenarioDefinition[i].index = Number(i) + 1; + this.scenarioDefinition[i].active = this.expandedStatus; // 设置循环控制 if (this.scenarioDefinition[i].type === ELEMENT_TYPE.LoopController && this.scenarioDefinition[i].hashTree && this.scenarioDefinition[i].hashTree.length > 1) { @@ -1149,6 +1158,44 @@ this.getEnv(JSON.stringify(definition)).then(() => { this.$refs.envPopover.openEnvSelect(); }) + }, + shrinkTreeNode() { + //改变每个节点的状态 + for (let i in this.scenarioDefinition) { + if (this.scenarioDefinition[i]) { + if (this.expandedStatus) { + this.expandedNode.push(this.scenarioDefinition[i].resourceId); + } + this.scenarioDefinition[i].active = this.expandedStatus; + if (this.scenarioDefinition[i].hashTree && this.scenarioDefinition[i].hashTree.length > 0) { + this.changeNodeStatus(this.scenarioDefinition[i].hashTree); + } + } + } + }, + changeNodeStatus(nodes) { + for (let i in nodes) { + if (nodes[i]) { + if (this.expandedStatus) { + this.expandedNode.push(nodes[i].resourceId); + } + nodes[i].active = this.expandedStatus; + if (nodes[i].hashTree != undefined && nodes[i].hashTree.length > 0) { + this.changeNodeStatus(nodes[i].hashTree); + } + } + } + }, + openExpansion() { + this.expandedNode = []; + this.expandedStatus = true; + this.shrinkTreeNode(); + }, + closeExpansion() { + this.expandedStatus = false; + this.expandedNode = []; + this.shrinkTreeNode(); + this.reload(); } } } @@ -1309,4 +1356,12 @@ white-space: nowrap; width: 200px; } + + .ms-open-btn { + margin: 5px 5px 0px; + } + + .ms-open-btn-left { + margin-left: 30px; + } diff --git a/frontend/src/business/components/api/automation/scenario/maximize/MaximizeScenario.vue b/frontend/src/business/components/api/automation/scenario/maximize/MaximizeScenario.vue index bd670d739..ecbad6aeb 100644 --- a/frontend/src/business/components/api/automation/scenario/maximize/MaximizeScenario.vue +++ b/frontend/src/business/components/api/automation/scenario/maximize/MaximizeScenario.vue @@ -2,9 +2,15 @@
- +
+ + {{$t('api_test.automation.open_expansion')}} + + + {{$t('api_test.automation.close_expansion')}} + 0) { + this.changeNodeStatus(this.scenarioDefinition[i].hashTree); + } + } + } + }, + changeNodeStatus(nodes) { + for (let i in nodes) { + if (nodes[i]) { + if (this.expandedStatus) { + this.expandedNode.push(nodes[i].resourceId); + } + nodes[i].active = this.expandedStatus; + if (nodes[i].hashTree != undefined && nodes[i].hashTree.length > 0) { + this.changeNodeStatus(nodes[i].hashTree); + } + } + } + }, + openExpansion() { + this.expandedNode = []; + this.expandedStatus = true; + this.shrinkTreeNode(); + }, + closeExpansion() { + this.expandedStatus = false; + this.expandedNode = []; + this.shrinkTreeNode(); + this.reload(); } } } @@ -1111,4 +1156,12 @@ .father:hover .child { display: block; } + + .ms-open-btn { + margin: 5px 5px 0px; + } + + .ms-open-btn-left { + margin-left: 30px; + } diff --git a/frontend/src/business/components/api/test/components/ApiEnvironmentConfig.vue b/frontend/src/business/components/api/test/components/ApiEnvironmentConfig.vue index 3c22c4b94..2df2c071e 100644 --- a/frontend/src/business/components/api/test/components/ApiEnvironmentConfig.vue +++ b/frontend/src/business/components/api/test/components/ApiEnvironmentConfig.vue @@ -6,7 +6,7 @@ - + diff --git a/frontend/src/business/components/api/test/components/environment/EnvironmentEdit.vue b/frontend/src/business/components/api/test/components/environment/EnvironmentEdit.vue index f603d6ed7..5cd490268 100644 --- a/frontend/src/business/components/api/test/components/environment/EnvironmentEdit.vue +++ b/frontend/src/business/components/api/test/components/environment/EnvironmentEdit.vue @@ -15,7 +15,7 @@ - + @@ -52,9 +52,11 @@ MsTcpConfig, MsEnvironmentCommonConfig, MsEnvironmentHttpConfig, - MsDatabaseConfig, MsApiHostTable, MsDialogFooter, MsApiKeyValue, MsApiScenarioVariables}, + MsDatabaseConfig, MsApiHostTable, MsDialogFooter, MsApiKeyValue, MsApiScenarioVariables + }, props: { environment: new Environment(), + projectId: String, }, data() { diff --git a/frontend/src/business/components/api/test/components/environment/EnvironmentHttpConfig.vue b/frontend/src/business/components/api/test/components/environment/EnvironmentHttpConfig.vue index 00f39b75e..0500c7db5 100644 --- a/frontend/src/business/components/api/test/components/environment/EnvironmentHttpConfig.vue +++ b/frontend/src/business/components/api/test/components/environment/EnvironmentHttpConfig.vue @@ -1,80 +1,238 @@ diff --git a/frontend/src/business/components/api/test/model/EnvironmentModel.js b/frontend/src/business/components/api/test/model/EnvironmentModel.js index 1b0c41480..4cc6d40ee 100644 --- a/frontend/src/business/components/api/test/model/EnvironmentModel.js +++ b/frontend/src/business/components/api/test/model/EnvironmentModel.js @@ -69,7 +69,7 @@ export class HttpConfig extends BaseConfig { this.headers = []; this.protocol = 'https'; this.port = undefined; - + this.conditions = []; this.set(options); this.sets({headers: KeyValue}, options); } diff --git a/frontend/src/i18n/en-US.js b/frontend/src/i18n/en-US.js index 5da889c3f..3d864f6e3 100644 --- a/frontend/src/i18n/en-US.js +++ b/frontend/src/i18n/en-US.js @@ -711,6 +711,8 @@ export default { } }, automation: { + open_expansion: "One-click expansion", + close_expansion: "One-click storage", constant: "constant", counter: "counter", random: "random", @@ -774,6 +776,7 @@ export default { environment: { name: "Environment Name", socket: "Socket", + condition_enable: "Activation conditions", globalVariable: "Global Variable", environment_list: "Environment List", environment_config: "Environment Config", diff --git a/frontend/src/i18n/zh-CN.js b/frontend/src/i18n/zh-CN.js index c23c7ad2c..514581e8e 100644 --- a/frontend/src/i18n/zh-CN.js +++ b/frontend/src/i18n/zh-CN.js @@ -712,6 +712,8 @@ export default { } }, automation: { + open_expansion: "一键展开", + close_expansion: "一键收起", constant: "常量", counter: "计数器", random: "随机数", @@ -775,6 +777,7 @@ export default { environment: { name: "环境名称", socket: "环境域名", + condition_enable: "启用条件", globalVariable: "全局变量", environment_list: "环境列表", environment_config: "环境配置", diff --git a/frontend/src/i18n/zh-TW.js b/frontend/src/i18n/zh-TW.js index 554e2e83f..f41cea3ef 100644 --- a/frontend/src/i18n/zh-TW.js +++ b/frontend/src/i18n/zh-TW.js @@ -711,6 +711,8 @@ export default { } }, automation: { + open_expansion: "一鍵展開", + close_expansion: "一鍵收起", constant: "常量", counter: "計數器", random: "随机器", @@ -774,6 +776,7 @@ export default { environment: { name: "環境名稱", socket: "環境域名", + condition_enable: "啟用條件", globalVariable: "全局變量", environment_list: "環境列表", environment_config: "環境配置", -- GitLab