From e005e3932630fa0cef3e53f5f80b379a54f02036 Mon Sep 17 00:00:00 2001 From: shiziyuan9527 Date: Mon, 25 Jan 2021 10:59:26 +0800 Subject: [PATCH 1/6] =?UTF-8?q?fix(=E6=B5=8B=E8=AF=95=E8=AE=A1=E5=88=92):?= =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=E6=80=A7=E8=83=BD=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=8C=89=E7=85=A7=E7=8A=B6=E6=80=81=E7=AD=9B=E9=80=89=E4=B8=8D?= =?UTF-8?q?=E7=94=9F=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ext/ExtTestPlanLoadCaseMapper.xml | 20 +++++++++++++++++++ .../request/testplan/LoadCaseRequest.java | 4 ++++ .../service/TestPlanLoadCaseService.java | 10 ++++++++++ .../comonents/load/TestPlanLoadCaseList.vue | 14 ++++++------- 4 files changed, 41 insertions(+), 7 deletions(-) diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanLoadCaseMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanLoadCaseMapper.xml index 8c8e030dc9..c26e9fc31f 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanLoadCaseMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanLoadCaseMapper.xml @@ -40,6 +40,26 @@ and (lt.name like CONCAT('%', #{request.name},'%') or lt.num like CONCAT('%', #{request.name},'%')) + + + + + + and lt.status in + + #{value} + + + + + + + + order by + + tplc.${order.name} ${order.type} + + \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/track/request/testplan/LoadCaseRequest.java b/backend/src/main/java/io/metersphere/track/request/testplan/LoadCaseRequest.java index a13bb7b7a6..83ac312d9c 100644 --- a/backend/src/main/java/io/metersphere/track/request/testplan/LoadCaseRequest.java +++ b/backend/src/main/java/io/metersphere/track/request/testplan/LoadCaseRequest.java @@ -1,10 +1,12 @@ package io.metersphere.track.request.testplan; import io.metersphere.base.domain.TestPlanLoadCase; +import io.metersphere.controller.request.OrderRequest; import lombok.Getter; import lombok.Setter; import java.util.List; +import java.util.Map; @Getter @Setter @@ -12,4 +14,6 @@ public class LoadCaseRequest extends TestPlanLoadCase { private String projectId; private List caseIds; private String name; + private Map> filters; + private List orders; } diff --git a/backend/src/main/java/io/metersphere/track/service/TestPlanLoadCaseService.java b/backend/src/main/java/io/metersphere/track/service/TestPlanLoadCaseService.java index 555ceb6fae..b1a9fd0f7f 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestPlanLoadCaseService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestPlanLoadCaseService.java @@ -5,6 +5,7 @@ import io.metersphere.base.mapper.LoadTestMapper; import io.metersphere.base.mapper.LoadTestReportMapper; import io.metersphere.base.mapper.TestPlanLoadCaseMapper; import io.metersphere.base.mapper.ext.ExtTestPlanLoadCaseMapper; +import io.metersphere.controller.request.OrderRequest; import io.metersphere.performance.service.PerformanceTestService; import io.metersphere.track.dto.TestPlanLoadCaseDTO; import io.metersphere.track.request.testplan.LoadCaseReportRequest; @@ -50,6 +51,15 @@ public class TestPlanLoadCaseService { } public List list(LoadCaseRequest request) { + List orders = request.getOrders(); + if (orders == null || orders.size() < 1) { + OrderRequest orderRequest = new OrderRequest(); + orderRequest.setName("create_time"); + orderRequest.setType("desc"); + orders = new ArrayList<>(); + orders.add(orderRequest); + } + request.setOrders(orders); return extTestPlanLoadCaseMapper.selectTestPlanLoadCaseList(request); } diff --git a/frontend/src/business/components/track/plan/view/comonents/load/TestPlanLoadCaseList.vue b/frontend/src/business/components/track/plan/view/comonents/load/TestPlanLoadCaseList.vue index f0ccfc853d..89516a4d39 100644 --- a/frontend/src/business/components/track/plan/view/comonents/load/TestPlanLoadCaseList.vue +++ b/frontend/src/business/components/track/plan/view/comonents/load/TestPlanLoadCaseList.vue @@ -284,15 +284,15 @@ export default { }, sort(column) { // 每次只对一个字段排序 - // if (this.condition.orders) { - // this.condition.orders = []; - // } - // _sort(column, this.condition); - // this.initTable(); + if (this.condition.orders) { + this.condition.orders = []; + } + _sort(column, this.condition); + this.initTable(); }, filter(filters) { - // _filter(filters, this.condition); - // this.initTable(); + _filter(filters, this.condition); + this.initTable(); }, getReport(data) { const {loadReportId} = data; From 829f912d8f8111009353ecf7e2c802043fdb605f Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Mon, 25 Jan 2021 12:51:03 +0800 Subject: [PATCH 2/6] =?UTF-8?q?fix(xPack):=20=E4=BF=AE=E6=94=B9substring?= =?UTF-8?q?=E7=9A=84=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/main/java/io/metersphere/xpack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/main/java/io/metersphere/xpack b/backend/src/main/java/io/metersphere/xpack index 77a4db3ee5..e4521190f0 160000 --- a/backend/src/main/java/io/metersphere/xpack +++ b/backend/src/main/java/io/metersphere/xpack @@ -1 +1 @@ -Subproject commit 77a4db3ee59003d88aed53601d0d2bfa09ec272f +Subproject commit e4521190f0f1be113c8b84fbdcdf8ff273bf274e From 33cd6b37e86d3e03d5d71b6f156e61e6edf8763c Mon Sep 17 00:00:00 2001 From: fit2-zhao Date: Mon, 25 Jan 2021 13:49:59 +0800 Subject: [PATCH 3/6] =?UTF-8?q?feat(=E6=8E=A5=E5=8F=A3=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96):=20=E5=BE=AA=E7=8E=AF=E6=8E=A7=E5=88=B6=E5=99=A8=20?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/loop/CountController.java | 2 + .../controller/loop/MsForEachController.java | 2 + .../controller/loop/MsWhileController.java | 1 + .../api/automation/report/ApiReportDetail.vue | 1 - .../scenario/common/ApiBaseComponent.vue | 1 + .../scenario/component/LoopController.vue | 154 +++++++++++++++++- .../components/response/RequestMetric.vue | 4 + .../api/definition/model/ApiTestModel.js | 6 +- 8 files changed, 165 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/CountController.java b/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/CountController.java index 808b67cc9e..c55db9540d 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/CountController.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/CountController.java @@ -7,4 +7,6 @@ public class CountController { private int loops; private int interval; private boolean proceed; + private Object requestResult; + } diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/MsForEachController.java b/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/MsForEachController.java index 30a4a59e7f..8e97a204f2 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/MsForEachController.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/MsForEachController.java @@ -7,4 +7,6 @@ public class MsForEachController { private String inputVal; private String returnVal; private String interval; + private Object requestResult; + } diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/MsWhileController.java b/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/MsWhileController.java index 7781abbb0b..4ed9a8cc67 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/MsWhileController.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/request/controller/loop/MsWhileController.java @@ -8,4 +8,5 @@ public class MsWhileController { private String operator; private String value; private int timeout; + private Object requestResult; } diff --git a/frontend/src/business/components/api/automation/report/ApiReportDetail.vue b/frontend/src/business/components/api/automation/report/ApiReportDetail.vue index c6cd8c15d7..13aaa79791 100644 --- a/frontend/src/business/components/api/automation/report/ApiReportDetail.vue +++ b/frontend/src/business/components/api/automation/report/ApiReportDetail.vue @@ -110,7 +110,6 @@ if (this.isNotRunning) { try { this.content = JSON.parse(this.report.content); - console.log(this.content) if (!this.content) { this.content = {scenarios: []}; } diff --git a/frontend/src/business/components/api/automation/scenario/common/ApiBaseComponent.vue b/frontend/src/business/components/api/automation/scenario/common/ApiBaseComponent.vue index 9b0a3f362a..45b2211e7c 100644 --- a/frontend/src/business/components/api/automation/scenario/common/ApiBaseComponent.vue +++ b/frontend/src/business/components/api/automation/scenario/common/ApiBaseComponent.vue @@ -24,6 +24,7 @@
+ diff --git a/frontend/src/business/components/api/automation/scenario/component/LoopController.vue b/frontend/src/business/components/api/automation/scenario/component/LoopController.vue index a8d5fb7e07..bccb5c6766 100644 --- a/frontend/src/business/components/api/automation/scenario/component/LoopController.vue +++ b/frontend/src/business/components/api/automation/scenario/component/LoopController.vue @@ -7,7 +7,7 @@ :draggable="true" color="#02A7F0" background-color="#F4F4F5" - :title="$t('api_test.automation.loop_controller')"> + :title="$t('api_test.automation.loop_controller')" v-loading="loading"> + + +
@@ -69,17 +78,34 @@ ms
+

{{$t('api_test.definition.request.res_param')}}

+ + +
+ +
+
+
+ + + @@ -180,6 +322,14 @@ font-weight: normal; } + .tip { + padding: 3px 5px; + font-size: 16px; + border-radius: 4px; + border-left: 4px solid #783887; + margin: 20px 0; + } + .icon.is-active { transform: rotate(90deg); } diff --git a/frontend/src/business/components/api/definition/components/response/RequestMetric.vue b/frontend/src/business/components/api/definition/components/response/RequestMetric.vue index 660da3ecae..3d7f5af105 100644 --- a/frontend/src/business/components/api/definition/components/response/RequestMetric.vue +++ b/frontend/src/business/components/api/definition/components/response/RequestMetric.vue @@ -1,6 +1,10 @@ - + + + + + + + + + @@ -25,9 +42,6 @@ - - - @@ -56,13 +70,16 @@ import {getCurrentProjectID} from "../../../../../common/js/utils"; import TestPlanReportView from "@/business/components/track/report/components/TestPlanReportView"; import ReportTriggerModeItem from "@/business/components/common/tableItem/ReportTriggerModeItem"; import MsTag from "@/business/components/common/components/MsTag"; +import ShowMoreBtn from "@/business/components/track/case/components/ShowMoreBtn"; +import MsTableSelectAll from "@/business/components/common/components/table/MsTableSelectAll"; export default { name: "TestPlanReportList", components: { TestPlanReportView, MsTableOperator, MsTableOperatorButton, MsTableHeader, MsTablePagination, - ReportTriggerModeItem,MsTag + ReportTriggerModeItem,MsTag, + ShowMoreBtn,MsTableSelectAll, }, data() { return { @@ -75,6 +92,7 @@ export default { currentPage: 1, pageSize: 10, isTestManagerOrTestUser: false, + selectRows: new Set(), total: 0, tableData: [], statusFilters: [ @@ -87,13 +105,16 @@ export default { {text: this.$t('test_track.plan.system_test'), value: 'system'}, {text: this.$t('test_track.plan.regression_test'), value: 'regression'}, ], + buttons: [ + {name: this.$t('api_test.definition.request.batch_delete'), handleClick: this.handleDeleteBatch}, + ], + selectAll: false, + unSelection: [], + selectDataCounts: 0, } }, watch: { '$route'(to, from) { - // if (to.path.indexOf("/track/plan/all") >= 0) { - // this.initTableData(); - // } } }, activated() { @@ -106,6 +127,10 @@ export default { }, methods: { initTableData() { + this.selectRows = new Set(); + this.selectAll = false; + this.unSelection = []; + this.selectDataCounts = 0; if (this.planId) { this.condition.planId = this.planId; } @@ -119,19 +144,52 @@ export default { let data = response.data; this.total = data.itemCount; this.tableData = data.listObject; - // for (let i = 0; i < this.tableData.length; i++) { - // let path = "/test/plan/project"; - // this.$post(path, {planId: this.tableData[i].id}, res => { - // let arr = res.data; - // let projectIds = arr.filter(d => d.id !== this.tableData[i].projectId).map(data => data.id); - // this.$set(this.tableData[i], "projectIds", projectIds); - // }) - // } + this.unSelection = data.listObject.map(s => s.id); }); }, buildPagePath(path) { return path + "/" + this.currentPage + "/" + this.pageSize; }, + handleSelect(selection, row) { + row.hashTree = []; + if (this.selectRows.has(row)) { + this.$set(row, "showMore", false); + this.selectRows.delete(row); + } else { + this.$set(row, "showMore", true); + this.selectRows.add(row); + } + let arr = Array.from(this.selectRows); + // 选中1个以上的用例时显示更多操作 + if (this.selectRows.size === 1) { + this.$set(arr[0], "showMore", true); + } else if (this.selectRows.size === 2) { + arr.forEach(row => { + this.$set(row, "showMore", true); + }) + } + this.selectRowsCount(this.selectRows) + }, + handleSelectAll(selection) { + if (selection.length > 0) { + if (selection.length === 1) { + selection.hashTree = []; + this.selectRows.add(selection[0]); + } else { + this.tableData.forEach(item => { + item.hashTree = []; + this.$set(item, "showMore", true); + this.selectRows.add(item); + }); + } + } else { + this.selectRows.clear(); + this.tableData.forEach(row => { + this.$set(row, "showMore", false); + }) + } + this.selectRowsCount(this.selectRows) + }, handleDelete(testPlanReport) { this.$alert(this.$t('report.delete_confirm') + ' ' + testPlanReport.name + " ?", '', { confirmButtonText: this.$t('commons.confirm'), @@ -146,7 +204,32 @@ export default { } }); }, - + handleDeleteBatch(){ + this.$alert(this.$t('report.delete_batch_confirm') + ' ' + " ?", '', { + confirmButtonText: this.$t('commons.confirm'), + callback: (action) => { + if (action === 'confirm') { + let deleteParam = {}; + let ids = Array.from(this.selectRows).map(row => row.id); + deleteParam.dataIds = ids; + deleteParam.projectId = getCurrentProjectID(); + deleteParam.selectAllDate = this.isSelectAllDate; + deleteParam.unSelectIds = this.unSelection; + deleteParam = Object.assign(deleteParam, this.condition); + this.$post('/test/plan/report/deleteBatchByParams/', deleteParam, () => { + this.$success(this.$t('commons.delete_success')); + this.initTableData(); + this.selectRows.clear(); + }); + } + } + }); + }, + getIds(rowSets) { + let rowArray = Array.from(rowSets) + let ids = rowArray.map(s => s.id); + return ids; + }, filter(filters) { _filter(filters, this.condition); this.initTableData(); @@ -160,6 +243,26 @@ export default { this.$refs.testPlanReportView.open(planId); } }, + isSelectDataAll(dataType) { + this.isSelectAllDate = dataType; + this.selectRowsCount(this.selectRows) + //如果已经全选,不需要再操作了 + if (this.selectRows.size != this.tableData.length) { + this.$refs.testPlanReportTable.toggleAllSelection(true); + } + }, + selectRowsCount(selection) { + let selectedIDs = this.getIds(selection); + let allIDs = this.tableData.map(s => s.id); + this.unSelection = allIDs.filter(function (val) { + return selectedIDs.indexOf(val) === -1 + }); + if (this.isSelectAllDate) { + this.selectDataCounts = this.total - this.unSelection.length; + } else { + this.selectDataCounts = selection.size; + } + }, } } @@ -175,4 +278,22 @@ export default { .el-table { cursor: pointer; } + +.operate-button > div { + display: inline-block; + margin-left: 10px; +} + +.request-method { + padding: 0 5px; + color: #1E90FF; +} + +.ms-select-all >>> th:first-child { + margin-top: 20px; +} + +.ms-select-all >>> th:nth-child(2) .el-icon-arrow-down { + top: -2px; +} From 68f4ca38f9623f9a3d47c879dcb429ab40e6b162 Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Mon, 25 Jan 2021 14:34:43 +0800 Subject: [PATCH 5/6] =?UTF-8?q?refactor(xPack):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E8=AE=A4=E8=AF=81=E6=BA=90=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/business/components/xpack | 2 +- frontend/src/i18n/en-US.js | 7 ++++--- frontend/src/i18n/zh-CN.js | 5 +++-- frontend/src/i18n/zh-TW.js | 9 +++++---- frontend/src/login/Login.vue | 20 ++------------------ 5 files changed, 15 insertions(+), 28 deletions(-) diff --git a/frontend/src/business/components/xpack b/frontend/src/business/components/xpack index 9e64da8467..5abe43dc1f 160000 --- a/frontend/src/business/components/xpack +++ b/frontend/src/business/components/xpack @@ -1 +1 @@ -Subproject commit 9e64da846793401150260fc50262d82932cf5d8a +Subproject commit 5abe43dc1f65b529ad59c17bfdc58aea33d23cad diff --git a/frontend/src/i18n/en-US.js b/frontend/src/i18n/en-US.js index 0cee15ed36..ecc7f370f6 100644 --- a/frontend/src/i18n/en-US.js +++ b/frontend/src/i18n/en-US.js @@ -129,6 +129,7 @@ export default { validate: "Validate", batch_add: "Batch add", check_project_tip: "Create or select the project first", + auth_redirect_tip: 'Jump to the authentication source page for authentication', table: { select_tip: "Item {0} data is selected" }, @@ -831,8 +832,8 @@ export default { swagger_export_tip: "Export jSON-formatted files via Swagger website", suffixFormatErr: "The file format does not meet the requirements", swagger_url_import: "Import using URL", - timing_synchronization:"Timing synchronization", - next_synchronization_time:"Next synchronization time", + timing_synchronization: "Timing synchronization", + next_synchronization_time: "Next synchronization time", }, home_page: { @@ -1493,6 +1494,6 @@ export default { format: "Output format", }, auth_source: { - delete_prompt:'This operation will delete the authentication source, do you want to continue? ' + delete_prompt: 'This operation will delete the authentication source, do you want to continue? ' } }; diff --git a/frontend/src/i18n/zh-CN.js b/frontend/src/i18n/zh-CN.js index badbaab6d0..85d73e703d 100644 --- a/frontend/src/i18n/zh-CN.js +++ b/frontend/src/i18n/zh-CN.js @@ -129,6 +129,7 @@ export default { validate: "校验", batch_add: "批量添加", check_project_tip: "请先创建或选择项目", + auth_redirect_tip: '即将跳转到认证源页面进行认证', table: { select_tip: "已选中 {0} 条数据" }, @@ -833,8 +834,8 @@ export default { swagger_export_tip: "通过 Swagger 页面导出", suffixFormatErr: "文件格式不符合要求", swagger_url_import: "使用URL导入", - timing_synchronization:"定时同步", - next_synchronization_time:"下次同步时间" + timing_synchronization: "定时同步", + next_synchronization_time: "下次同步时间" }, diff --git a/frontend/src/i18n/zh-TW.js b/frontend/src/i18n/zh-TW.js index bc2a68bd91..47ede5346e 100644 --- a/frontend/src/i18n/zh-TW.js +++ b/frontend/src/i18n/zh-TW.js @@ -129,6 +129,7 @@ export default { validate: "校驗", batch_add: "批量添加", check_project_tip: "請先創建或選擇項目", + auth_redirect_tip: '即將跳轉到認證源頁面進行認證', table: { select_tip: "已选中 {0} 条数据" }, @@ -256,8 +257,8 @@ export default { nail_robot: '釘釘機器人', enterprise_wechat_robot: '企業微信機器人', notes: '1.釘釘和企業群裏新建壹個自定義機器人,然後復制 webhook 地址在我們平臺上;\n' + - ' 2.機器人選擇為群機器人,安全驗證選擇“自定義關鍵詞” :"任務通知";\n' + - ' 3.選擇接收人時必須是妳所建的群裏包含的人,接收人手機號為必填項且為釘釘企業所使用的手機號,', + ' 2.機器人選擇為群機器人,安全驗證選擇“自定義關鍵詞” :"任務通知";\n' + + ' 3.選擇接收人時必須是妳所建的群裏包含的人,接收人手機號為必填項且為釘釘企業所使用的手機號,', message: '事件,接收人,接收方式為必填項', message_webhook: '接收方式為釘釘和企業機器人時,webhook為必填項', template: "模版" @@ -832,8 +833,8 @@ export default { swagger_export_tip: "通過 Swagger 頁面導出", suffixFormatErr: "文件格式不符合要求", swagger_url_import: "使用URL導入", - timing_synchronization:"定時同步", - next_synchronization_time:"下次同步時間", + timing_synchronization: "定時同步", + next_synchronization_time: "下次同步時間", }, home_page: { diff --git a/frontend/src/login/Login.vue b/frontend/src/login/Login.vue index aa502fddcf..50a9a14d0a 100644 --- a/frontend/src/login/Login.vue +++ b/frontend/src/login/Login.vue @@ -174,25 +174,9 @@ export default { } }, redirectAuth(authId) { - if (authId === 'LDAP' || authId === 'LOCAL') { - return; + if (auth.default) { + auth.default.redirectAuth(this, authId); } - let source = this.authSources.filter(auth => auth.id === authId)[0]; - if (source.type === 'CAS') { - return; - } - this.$confirm(this.$t('即将跳转到认证源页面进行认证'), '', { - confirmButtonText: this.$t('commons.confirm'), - cancelButtonText: this.$t('commons.cancel'), - type: 'warning' - }).then(() => { - let config = JSON.parse(source.configuration); - let url = config.authUrl + "/auth?client_id=" + config.clientId + "&redirect_uri=" + config.redirectUrl + - "&response_type=code&scope=openid+profile+email+offline_access&state=" + authId; - window.location.href = url; - }).catch(() => { - this.form.authenticate = 'LOCAL'; - }); } } } From 0b8651b1d8b8e14631dd36f36d19c361d681260a Mon Sep 17 00:00:00 2001 From: "song.tianyang" Date: Mon, 25 Jan 2021 14:51:57 +0800 Subject: [PATCH 6/6] =?UTF-8?q?fix:=20=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95?= =?UTF-8?q?-=E9=A6=96=E9=A1=B5-=E6=8E=A5=E5=8F=A3=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1-=E6=9C=AA=E5=BC=80=E5=A7=8B/=E5=B7=B2?= =?UTF-8?q?=E5=AE=8C=E6=88=90/=E8=BF=9B=E8=A1=8C=E4=B8=AD=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 解决接口测试-首页-接口数量统计-未开始/已完成/进行中跳转错误的问题 --- .../api/definition/components/list/ApiList.vue | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/frontend/src/business/components/api/definition/components/list/ApiList.vue b/frontend/src/business/components/api/definition/components/list/ApiList.vue index 429e4aaee0..fed69a9dc9 100644 --- a/frontend/src/business/components/api/definition/components/list/ApiList.vue +++ b/frontend/src/business/components/api/definition/components/list/ApiList.vue @@ -317,6 +317,15 @@ case 'coverage': this.condition.apiCaseCoverage = 'coverage'; break; + case 'Prepare': + this.condition.filters.status = [this.selectDataRange]; + break; + case 'Completed': + this.condition.filters.status = [this.selectDataRange]; + break; + case 'Underway': + this.condition.filters.status = [this.selectDataRange]; + break; } if (this.condition.projectId) { this.result = this.$post("/api/definition/list/" + this.currentPage + "/" + this.pageSize, this.condition, response => {