fix(测试跟踪): 测试计划用例不显示下一页用例名称
--bug=1010551 --user=陈建星 测试计划-功能用例执行用例时,翻页时不显示下一页用例名称 https://www.tapd.cn/55049933/s/1109313
This commit is contained in:
parent
aac1261bb9
commit
f3d2310680
|
@ -25,8 +25,6 @@ public interface ExtTestCaseMapper {
|
|||
|
||||
int moduleCount(@Param("request") QueryTestCaseRequest request);
|
||||
|
||||
List<TestCaseDTO> listIds(@Param("request") QueryTestCaseRequest request);
|
||||
|
||||
List<TestCaseDTO> listByMethod(@Param("request") QueryTestCaseRequest request);
|
||||
|
||||
List<TestCaseDTO> listByTestCaseIds(@Param("request") TestCaseBatchRequest request);
|
||||
|
|
|
@ -336,20 +336,6 @@
|
|||
<include refid="queryWhereCondition"/>
|
||||
GROUP BY node_id
|
||||
</select>
|
||||
<select id="listIds" resultType="io.metersphere.track.dto.TestCaseDTO">
|
||||
select
|
||||
<if test="request.selectFields != null and request.selectFields.size() > 0">
|
||||
<foreach collection="request.selectFields" item="field" separator=",">
|
||||
${field}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="request.selectFields == null or request.selectFields.size() == 0">
|
||||
<include refid="io.metersphere.base.mapper.TestCaseMapper.Base_Column_List"/>
|
||||
</if>
|
||||
from test_case left join project on test_case.project_id = project.id
|
||||
<include refid="queryWhereConditionWidthProject"/>
|
||||
<include refid="io.metersphere.base.mapper.ext.ExtBaseMapper.orders"/>
|
||||
</select>
|
||||
<select id="listByMethod" resultType="io.metersphere.track.dto.TestCaseDTO">
|
||||
select load_test.id, load_test.name, load_test.project_id,'性能测试' as type, project_version.name as version_name
|
||||
from load_test inner join project_version on project_version.project_id = load_test.project_id and project_version.id = load_test.version_id
|
||||
|
|
|
@ -1,28 +1,38 @@
|
|||
<template>
|
||||
<span class="previous-next-button">
|
||||
<span class="head-right-tip" v-if="countNum === total">
|
||||
{{ $t('test_track.plan_view.pre_case') }} : {{list[index - 1] ? list[index - 1].name : ''}}
|
||||
<span v-if="countNum === total"
|
||||
class="head-right-tip">
|
||||
{{ $t('test_track.plan_view.pre_case') }} : {{list[index - 1] ? list[index - 1].name : (prePageData ? prePageData.name : '')}}
|
||||
</span>
|
||||
<span class="head-right-tip" v-if="countNum !== total">
|
||||
{{ $t('test_track.plan_view.next_case') }} : {{list[index + 1] ? list[index + 1].name : ''}}
|
||||
<span
|
||||
v-else
|
||||
class="head-right-tip">
|
||||
{{ $t('test_track.plan_view.next_case') }} : {{list[index + 1] ? list[index + 1].name : (nextPageData ? nextPageData.name : '')}}
|
||||
</span>
|
||||
|
||||
<el-button plain size="mini" icon="el-icon-arrow-up" :disabled="countNum <= 1" @click="handlePre()"/>
|
||||
<el-button
|
||||
plain
|
||||
size="mini"
|
||||
icon="el-icon-arrow-up"
|
||||
:disabled="countNum <= 1"
|
||||
@click="handlePre()"/>
|
||||
|
||||
<span>
|
||||
{{ countNum }}/{{ total }}
|
||||
</span>
|
||||
<el-button plain size="mini" icon="el-icon-arrow-down" :disabled="countNum >= total" @click="handleNext()"/>
|
||||
|
||||
<el-button
|
||||
plain
|
||||
size="mini"
|
||||
icon="el-icon-arrow-down"
|
||||
:disabled="countNum >= total"
|
||||
@click="handleNext()"/>
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "MsPreviousNextButton",
|
||||
data() {
|
||||
return {
|
||||
countNum: 1
|
||||
}
|
||||
},
|
||||
props: {
|
||||
list: {
|
||||
type: Array,
|
||||
|
@ -59,20 +69,22 @@ export default {
|
|||
default() {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
},
|
||||
nextPageData: Object,
|
||||
prePageData: Object
|
||||
},
|
||||
watch: {
|
||||
index() {
|
||||
this.countNum = this.pageSize * (this.pageNum - 1) + this.index + 1;
|
||||
computed: {
|
||||
countNum() {
|
||||
return this.pageSize * (this.pageNum - 1) + this.index + 1;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handlePre() {
|
||||
this.$emit('pre');
|
||||
},
|
||||
handleNext() {
|
||||
this.$emit('next');
|
||||
}
|
||||
handlePre() {
|
||||
this.$emit('pre');
|
||||
},
|
||||
handleNext() {
|
||||
this.$emit('next');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -33,6 +33,8 @@
|
|||
:page-size="pageSize"
|
||||
:page-total="pageTotal"
|
||||
:total="total"
|
||||
:next-page-data="nextPageData"
|
||||
:pre-page-data="prePageData"
|
||||
@pre="handlePre"
|
||||
@next="saveCase(true, true)"
|
||||
:list="testCases"/>
|
||||
|
@ -228,7 +230,9 @@ export default {
|
|||
pageSize: {
|
||||
type: Number,
|
||||
default: 1
|
||||
}
|
||||
},
|
||||
nextPageData: Object,
|
||||
prePageData: Object
|
||||
},
|
||||
computed: {
|
||||
projectId() {
|
||||
|
|
|
@ -250,6 +250,8 @@
|
|||
:search-param.sync="condition"
|
||||
:page-num="currentPage"
|
||||
:page-size="pageSize"
|
||||
:next-page-data="nextPageData"
|
||||
:pre-page-data="prePageData"
|
||||
@nextPage="nextPage"
|
||||
@prePage="prePage"
|
||||
@refresh="initTableData"
|
||||
|
@ -300,6 +302,7 @@ import {getProjectMember} from "@/network/user";
|
|||
import {getTestTemplate} from "@/network/custom-field-template";
|
||||
import {editTestPlanTestCaseOrder} from "@/network/test-plan";
|
||||
import {SYSTEM_FIELD_NAME_MAP} from "@/common/js/table-constants";
|
||||
import {getTestPlanTestCase} from "@/network/testCase";
|
||||
|
||||
export default {
|
||||
name: "FunctionalTestCaseList",
|
||||
|
@ -329,6 +332,8 @@ export default {
|
|||
condition: {
|
||||
components: TEST_PLAN_TEST_CASE_CONFIGS
|
||||
},
|
||||
nextPageData: null,
|
||||
prePageData: null,
|
||||
enableOrderDrag: true,
|
||||
showMyTestCase: false,
|
||||
tableData: [],
|
||||
|
@ -518,8 +523,7 @@ export default {
|
|||
}
|
||||
this.condition.projectId = getCurrentProjectID();
|
||||
if (this.planId) {
|
||||
this.result = this.$post(this.buildPagePath('/test/plan/case/list'), this.condition, response => {
|
||||
let data = response.data;
|
||||
getTestPlanTestCase(this.currentPage, this.pageSize, this.condition, (data) => {
|
||||
this.total = data.itemCount;
|
||||
this.tableData = data.listObject;
|
||||
for (let i = 0; i < this.tableData.length; i++) {
|
||||
|
@ -532,10 +536,40 @@ export default {
|
|||
this.$set(this.tableData[i], "issuesContent", JSON.parse(this.tableData[i].issues));
|
||||
}
|
||||
}
|
||||
|
||||
// 需要判断tableData数据,放回调里面
|
||||
this.getPreData();
|
||||
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
this.getNexPageData();
|
||||
}
|
||||
},
|
||||
getNexPageData() {
|
||||
getTestPlanTestCase(this.currentPage * this.pageSize + 1, 1, this.condition, (data) => {
|
||||
if (data.listObject && data.listObject.length > 0) {
|
||||
this.nextPageData = {
|
||||
name: data.listObject[0].name
|
||||
}
|
||||
} else {
|
||||
this.nextPageData = null;
|
||||
}
|
||||
});
|
||||
},
|
||||
getPreData() {
|
||||
// 如果不是第一页并且只有一条数据时,需要调用
|
||||
if (this.currentPage > 1 && this.tableData.length === 1) {
|
||||
getTestPlanTestCase((this.currentPage - 1) * this.pageSize, 1, this.condition, (data) => {
|
||||
if (data.listObject && data.listObject.length > 0) {
|
||||
this.prePageData = {
|
||||
name: data.listObject[0].name
|
||||
}
|
||||
} else {
|
||||
this.prePageData = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
autoCheckStatus() {
|
||||
|
|
|
@ -35,9 +35,11 @@
|
|||
:page-size="pageSize"
|
||||
:page-total="pageTotal"
|
||||
:total="total"
|
||||
:next-page-data="nextPageData"
|
||||
:pre-page-data="prePageData"
|
||||
:list="testCases"
|
||||
@pre="handlePre"
|
||||
@next="handleNext"
|
||||
:list="testCases"/>
|
||||
@next="handleNext"/>
|
||||
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
|
||||
|
@ -232,7 +234,9 @@ export default {
|
|||
pageSize: {
|
||||
type: Number,
|
||||
default: 1
|
||||
}
|
||||
},
|
||||
nextPageData: Object,
|
||||
prePageData: Object
|
||||
},
|
||||
computed: {
|
||||
projectId() {
|
||||
|
|
|
@ -156,12 +156,14 @@
|
|||
:search-param="condition"
|
||||
:page-num="currentPage"
|
||||
:page-size="pageSize"
|
||||
@nextPage="nextPage"
|
||||
@prePage="prePage"
|
||||
@refresh="initTableData"
|
||||
:next-page-data="nextPageData"
|
||||
:pre-page-data="prePageData"
|
||||
:test-cases="tableData"
|
||||
:is-read-only="isReadOnly"
|
||||
:total="total"
|
||||
@nextPage="nextPage"
|
||||
@prePage="prePage"
|
||||
@refresh="initTableData"
|
||||
@refreshTable="search"/>
|
||||
|
||||
|
||||
|
@ -203,7 +205,7 @@ import HeaderLabelOperate from "@/business/components/common/head/HeaderLabelOpe
|
|||
import MsTableHeaderSelectPopover from "@/business/components/common/components/table/MsTableHeaderSelectPopover";
|
||||
import MsTableColumn from "@/business/components/common/components/table/MsTableColumn";
|
||||
import MsTable from "@/business/components/common/components/table/MsTable";
|
||||
import {editTestReviewTestCaseOrder} from "@/network/testCase";
|
||||
import {editTestReviewTestCaseOrder, getTestPlanTestCase, getTestReviewTestCase} from "@/network/testCase";
|
||||
import {getCurrentProjectID, hasLicense} from "@/common/js/utils";
|
||||
|
||||
export default {
|
||||
|
@ -229,6 +231,8 @@ export default {
|
|||
result: {},
|
||||
condition: {},
|
||||
tableData: [],
|
||||
nextPageData: null,
|
||||
prePageData: null,
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
total: 0,
|
||||
|
@ -379,17 +383,45 @@ export default {
|
|||
|
||||
this.condition.nodeIds = this.selectNodeIds;
|
||||
if (this.reviewId) {
|
||||
this.result = this.$post(this.buildPagePath('/test/review/case/list'), this.condition, response => {
|
||||
let data = response.data;
|
||||
getTestReviewTestCase(this.currentPage, this.pageSize, this.condition, (data) => {
|
||||
this.total = data.itemCount;
|
||||
this.tableData = data.listObject;
|
||||
|
||||
// 需要判断tableData数据,放回调里面
|
||||
this.getPreData();
|
||||
|
||||
this.tableClear();
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
this.getNexPageData();
|
||||
}
|
||||
},
|
||||
getNexPageData() {
|
||||
getTestReviewTestCase(this.currentPage * this.pageSize + 1, 1, this.condition, (data) => {
|
||||
if (data.listObject && data.listObject.length > 0) {
|
||||
this.nextPageData = {
|
||||
name: data.listObject[0].name
|
||||
}
|
||||
} else {
|
||||
this.nextPageData = null;
|
||||
}
|
||||
});
|
||||
},
|
||||
getPreData() {
|
||||
// 如果不是第一页并且只有一条数据时,需要调用
|
||||
if (this.currentPage > 1 && this.tableData.length === 1) {
|
||||
getTestReviewTestCase((this.currentPage - 1) * this.pageSize, 1, this.condition, (data) => {
|
||||
if (data.listObject && data.listObject.length > 0) {
|
||||
this.prePageData = {
|
||||
name: data.listObject[0].name
|
||||
}
|
||||
} else {
|
||||
this.prePageData = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
showDetail(row, event, column) {
|
||||
this.isReadOnly = true;
|
||||
|
|
|
@ -74,3 +74,11 @@ export function getRelationshipCase(id, relationshipType, callback) {
|
|||
export function getRelationshipCountCase(id, callback) {
|
||||
return baseGet('/test/case/relationship/case/count/' + id + '/', callback);
|
||||
}
|
||||
|
||||
export function getTestPlanTestCase(pageNum, pageSize, param, callback) {
|
||||
return basePost('/test/plan/case/list/' + pageNum + '/' + pageSize, param, callback);
|
||||
}
|
||||
|
||||
export function getTestReviewTestCase(pageNum, pageSize, param, callback) {
|
||||
return basePost('/test/review/case/list/' + pageNum + '/' + pageSize, param, callback);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue