fix(测试跟踪、接口测试): 更换router跳转的传参方式,解决跳转时param参数丢失的问题 (#17968)

--bug=1016776 --user=宋天阳 【接口测试】接口测试首页统计数字跳转后没有进行筛选
https://www.tapd.cn/55049933/s/1244622;--bug=1016490 --user=宋天阳
【测试跟踪】github#17588,之前已覆盖点进去会筛选已经关联的用例现在不行了
https://www.tapd.cn/55049933/s/1244624

Co-authored-by: song-tianyang <tianyang.song@fit2cloud.com>
This commit is contained in:
MeterSphere Bot 2022-09-19 11:31:28 +08:00 committed by GitHub
parent aab7a50b7f
commit 5ea7ef7f2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 52 additions and 116 deletions

View File

@ -1200,7 +1200,7 @@ export default {
isRedirectFilter() {
this.selectDataRange = "all";
this.selectDataType = "all";
let routeParamObj = this.$route.params.paramObj;
let routeParamObj = this.$route.params;
if (routeParamObj) {
let dataRange = routeParamObj.dataSelectRange;
let dataType = routeParamObj.dataType;

View File

@ -33,7 +33,8 @@
class="ms-api-button"
ref="environmentSelect"/>
<!-- 主框架列表 -->
<el-tabs v-model="apiDefaultTab" @edit="closeConfirm" @tab-click="addTab" @tab-remove="removeTab" ref="mainTabs">
<el-tabs v-model="apiDefaultTab" @edit="closeConfirm" @tab-click="addTab" @tab-remove="removeTab"
ref="mainTabs">
<el-tab-pane
name="trash" :closable="true"
:label="$t('commons.trash')" v-if="trashEnable">
@ -287,7 +288,7 @@ export default {
},
isSelectDefaultProtocol() {
let selectDefaultProtocol = true;
let routeParamObj = this.$route.params.paramObj;
let routeParamObj = this.$route.params;
if (routeParamObj) {
let dataRange = routeParamObj.dataSelectRange;
let dataType = routeParamObj.dataType;
@ -391,7 +392,7 @@ export default {
},
activated() {
this.$nextTick(() => {
let routeParamObj = this.$route.params.paramObj;
let routeParamObj = this.$route.params;
if (routeParamObj) {
let dataRange = routeParamObj.dataSelectRange;
if (dataRange && dataRange.length > 0) {
@ -466,7 +467,7 @@ export default {
}
},
created() {
let routeParamObj = this.$route.params.paramObj;
let routeParamObj = this.$route.params;
if (routeParamObj) {
let workspaceId = routeParamObj.workspaceId;
if (workspaceId) {
@ -792,35 +793,17 @@ export default {
this.handleTabsEdit(this.$t('api_test.definition.request.fast_debug'), "debug", id);
},
init() {
let routeParamObj = this.$route.params.paramObj;
if (routeParamObj) {
let dataRange = routeParamObj.dataSelectRange;
let dataType = routeParamObj.dataType;
if (dataRange && typeof dataRange === 'string') {
let selectParamArr = dataRange.split("edit:");
if (selectParamArr.length === 2) {
let scenarioId = selectParamArr[1];
if (dataType === 'api') {
this.$get('/api/definition/get/' + scenarioId, (response) => {
this.defaultProtocol = response.data.protocol;
this.editApi(response.data);
});
}
}
}
} else {
let dataRange = this.$route.params.dataSelectRange;
let dataType = this.$route.params.dataType;
if (dataRange && typeof dataRange === 'string') {
let selectParamArr = dataRange.split("edit:");
if (selectParamArr.length === 2) {
let scenarioId = selectParamArr[1];
if (dataType === 'api') {
this.$get('/api/definition/get/' + scenarioId, (response) => {
this.defaultProtocol = response.data.protocol;
this.editApi(response.data);
});
}
let dataRange = this.$route.params.dataSelectRange;
let dataType = this.$route.params.dataType;
if (dataRange && typeof dataRange === 'string') {
let selectParamArr = dataRange.split("edit:");
if (selectParamArr.length === 2) {
let scenarioId = selectParamArr[1];
if (dataType === 'api') {
this.$get('/api/definition/get/' + scenarioId, (response) => {
this.defaultProtocol = response.data.protocol;
this.editApi(response.data);
});
}
}
}
@ -969,8 +952,8 @@ export default {
this.nodeTree = data;
},
changeSelectDataRangeAll(tableType) {
if (this.$route.params.paramObj) {
this.$route.params.paramObj.dataSelectRange = 'all';
if (this.$route.params) {
this.$route.params.dataSelectRange = 'all';
}
},
enableTrash(data) {

View File

@ -1200,19 +1200,10 @@ export default {
//
isRedirectFilter() {
this.selectDataRange = "all";
let routeParamObj = this.$route.params.paramObj;
if (routeParamObj) {
let routeParam = routeParamObj.dataSelectRange;
let dataType = routeParamObj.dataType;
if (dataType === 'apiTestCase') {
this.selectDataRange = routeParam;
}
} else {
let routeParam = this.$route.params.dataSelectRange;
let dataType = this.$route.params.dataType;
if (dataType === 'apiTestCase') {
this.selectDataRange = routeParam;
}
let routeParam = this.$route.params.dataSelectRange;
let dataType = this.$route.params.dataType;
if (dataType === 'apiTestCase') {
this.selectDataRange = routeParam;
}
},
changeSelectDataRangeAll() {

View File

@ -968,33 +968,16 @@ export default {
},
//
getSelectDataRange() {
let routeParamObj = this.$route.params.paramObj;
if (routeParamObj) {
let dataRange = routeParamObj.dataSelectRange;
let dataType = routeParamObj.dataType;
this.selectDataRange = dataType === 'api' ? dataRange : "all";
if (this.selectDataRange &&
Object.prototype.toString.call(this.selectDataRange).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'object'
&& this.selectDataRange.indexOf(":") !== -1) {
let selectParamArr = this.selectDataRange.split(":");
if (selectParamArr.length === 2) {
if (selectParamArr[0] === "apiList") {
this.condition.name = selectParamArr[1];
}
}
}
} else {
let dataRange = this.$route.params.dataSelectRange;
let dataType = this.$route.params.dataType;
this.selectDataRange = dataType === 'api' ? dataRange : "all";
if (this.selectDataRange &&
Object.prototype.toString.call(this.selectDataRange).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'object'
&& this.selectDataRange.indexOf(":") !== -1) {
let selectParamArr = this.selectDataRange.split(":");
if (selectParamArr.length === 2) {
if (selectParamArr[0] === "apiList") {
this.condition.name = selectParamArr[1];
}
let dataRange = this.$route.params.dataSelectRange;
let dataType = this.$route.params.dataType;
this.selectDataRange = dataType === 'api' ? dataRange : "all";
if (this.selectDataRange &&
Object.prototype.toString.call(this.selectDataRange).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'object'
&& this.selectDataRange.indexOf(":") !== -1) {
let selectParamArr = this.selectDataRange.split(":");
if (selectParamArr.length === 2) {
if (selectParamArr[0] === "apiList") {
this.condition.name = selectParamArr[1];
}
}
}

View File

@ -187,25 +187,12 @@ export default {
},
isRedirect() {
let isRedirectPage = false;
let routeParamObj = this.$route.params.paramObj;
if (routeParamObj) {
if (routeParamObj.dataSelectRange) {
let item = JSON.parse(JSON.stringify(routeParamObj.dataSelectRange)).param;
if (item !== undefined) {
let type = item.taskGroup.toString();
if (type === "SWAGGER_IMPORT") {
isRedirectPage = true;
}
}
}
} else {
if (this.$route.params.dataSelectRange) {
let item = JSON.parse(JSON.stringify(this.$route.params.dataSelectRange)).param;
if (item !== undefined) {
let type = item.taskGroup.toString();
if (type === "SWAGGER_IMPORT") {
isRedirectPage = true;
}
if (this.$route.params.dataSelectRange) {
let item = JSON.parse(JSON.stringify(this.$route.params.dataSelectRange)).param;
if (item !== undefined) {
let type = item.taskGroup.toString();
if (type === "SWAGGER_IMPORT") {
isRedirectPage = true;
}
}
}

View File

@ -291,8 +291,8 @@ export default {
switch (page) {
case "api":
this.$router.push({
name: 'ApiDefinition',
params: {paramObj: redirectObj}
name: 'ApiDefinitionWithQuery',
params: {redirectID: uuid, dataType: dataType, dataSelectRange: selectType}
});
break;
case "apiWithQuery":
@ -303,8 +303,8 @@ export default {
break;
case "scenario":
this.$router.push({
name: 'ApiAutomationSingle',
params: {paramObj: redirectObj}
name: 'ApiAutomationWithQuery',
params: {redirectID: uuid, dataType: dataType, dataSelectRange: selectType}
});
break;
case "scenarioWithQuery":

View File

@ -47,11 +47,6 @@ export default {
name: "ApiAutomation",
component: () => import('@/business/components/api/automation/ApiAutomation'),
},
{
path: "automation",
name: "ApiAutomationSingle",
component: () => import('@/business/components/api/automation/ApiAutomation'),
},
{
path: 'monitor/view',
name: 'ApiMonitor',

View File

@ -218,7 +218,6 @@ import MsTag from "@/business/components/common/components/MsTag";
import ApiStatus from "@/business/components/api/definition/components/list/ApiStatus.vue";
import {
buildBatchParam,
deepClone,
getCustomFieldBatchEditOption,
getCustomFieldFilter,
getCustomFieldValue,
@ -236,7 +235,8 @@ import {
getCurrentProjectID,
getCurrentWorkspaceId,
getUUID,
hasLicense, operationConfirm,
hasLicense,
operationConfirm,
parseTag
} from "@/common/js/utils";
import {getTestTemplate} from "@/network/custom-field-template";
@ -632,12 +632,9 @@ export default {
});
},
getSelectDataRange() {
let routeParamObj = this.$route.params.paramObj;
this.selectDataRange = 'all';
if (routeParamObj) {
let dataRange = routeParamObj.dataSelectRange;
this.selectDataRange = dataRange;
}
let dataRange = this.$route.params.dataSelectRange;
this.selectDataRange = dataRange;
},
initTableData(nodeIds) {
this.condition.planId = "";
@ -800,7 +797,7 @@ export default {
this.$refs.apiDeleteConfirm.open(testCase, this.$t('test_track.case.delete_confirm'));
} else {
operationConfirm(this.$t('test_track.case.delete_confirm') + '\'' + testCase.name + '\'', () => {
this._handleDeleteVersion(testCase, false);
this._handleDeleteVersion(testCase, false);
});
}
});

View File

@ -172,7 +172,7 @@ export default {
case "testCase":
this.$router.push({
name: 'testCaseRedirect',
params: {paramObj: redirectObj}
params: {redirectID: uuid, dataType: dataType, dataSelectRange: selectType}
});
break;
case "testPlanEdit":
@ -186,8 +186,8 @@ export default {
break;
case "api":
this.$router.push({
name: 'ApiDefinition',
params: {paramObj: redirectObj}
name: 'ApiDefinitionWithQuery',
params: {redirectID: uuid, dataType: dataType, dataSelectRange: selectType}
});
break;
}

View File

@ -33,7 +33,7 @@ export default {
component: TestCase,
},
{
path: 'case/all',
path: 'case/all/:redirectID?/:dataType?/:dataSelectRange?/:projectId?/:workspaceId?',
name: 'testCaseRedirect',
component: TestCase,
},