Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
ddf1e7a5bf
|
@ -4,7 +4,7 @@
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
class="ms-switch-project"
|
class="ms-switch-project"
|
||||||
>
|
>
|
||||||
<ms-table-header :condition.sync="condition" @search="initData" title="切换项目" :show-create="false"/>
|
<ms-table-header :condition.sync="condition" @search="initData" :title="$t('test_track.switch_project')" :show-create="false"/>
|
||||||
<el-table
|
<el-table
|
||||||
:data="tableData"
|
:data="tableData"
|
||||||
highlight-current-row
|
highlight-current-row
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
<el-container class="main-content">
|
<el-container class="main-content">
|
||||||
<el-aside class="tree-aside" width="250px">
|
<el-aside class="tree-aside" width="250px">
|
||||||
<el-link type="primary" class="project-link" @click="switchProject">{{projectName ? projectName : '切换项目' }}</el-link>
|
<el-link type="primary" class="project-link" @click="switchProject">{{projectName ? projectName : $t('test_track.switch_project') }}</el-link>
|
||||||
<node-tree class="node-tree"
|
<node-tree class="node-tree"
|
||||||
@nodeSelectEvent="nodeChange"
|
@nodeSelectEvent="nodeChange"
|
||||||
@refresh="refresh"
|
@refresh="refresh"
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<div v-if="comments.length === 0" style="text-align: center">
|
<div v-if="comments.length === 0" style="text-align: center">
|
||||||
<i class="el-icon-chat-line-square" style="font-size: 15px;color: #8a8b8d;">
|
<i class="el-icon-chat-line-square" style="font-size: 15px;color: #8a8b8d;">
|
||||||
<span style="font-size: 15px; color: #8a8b8d;">
|
<span style="font-size: 15px; color: #8a8b8d;">
|
||||||
暂无评论
|
{{ $t('test_track.comment.no_comment') }}
|
||||||
</span>
|
</span>
|
||||||
</i>
|
</i>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
<div>
|
<div>
|
||||||
<el-input
|
<el-input
|
||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder="发表评论(Ctrl+Enter发送)"
|
:placeholder="$t('test_track.comment.send_comment')"
|
||||||
v-model="textarea"
|
v-model="textarea"
|
||||||
maxlength="60"
|
maxlength="60"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
|
@ -22,7 +22,9 @@
|
||||||
@keyup.ctrl.enter.native="sendComment"
|
@keyup.ctrl.enter.native="sendComment"
|
||||||
>
|
>
|
||||||
</el-input>
|
</el-input>
|
||||||
<el-button type="primary" size="mini" class="send-btn" @click="sendComment">发送</el-button>
|
<el-button type="primary" size="mini" class="send-btn" @click="sendComment">
|
||||||
|
{{ $t('test_track.comment.send') }}
|
||||||
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -49,16 +51,15 @@ export default {
|
||||||
comment.caseId = this.caseId;
|
comment.caseId = this.caseId;
|
||||||
comment.description = this.textarea;
|
comment.description = this.textarea;
|
||||||
if (!this.textarea) {
|
if (!this.textarea) {
|
||||||
this.$warning("评论内容不能为空!");
|
this.$warning(this.$t('test_track.comment.description_is_null'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.result = this.$post('/test/case/comment/save', comment, () => {
|
this.result = this.$post('/test/case/comment/save', comment, () => {
|
||||||
this.$success("评论成功!");
|
this.$success(this.$t('test_track.comment.send_success'));
|
||||||
this.$emit('getComments');
|
this.$emit('getComments');
|
||||||
this.textarea = '';
|
this.textarea = '';
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
<el-container class="main-content">
|
<el-container class="main-content">
|
||||||
<el-aside class="tree-aside" width="250px">
|
<el-aside class="tree-aside" width="250px">
|
||||||
<el-link type="primary" class="project-link" @click="switchProject">{{projectName ? projectName : '切换项目' }}</el-link>
|
<el-link type="primary" class="project-link" @click="switchProject">{{projectName ? projectName : $t('test_track.switch_project') }}</el-link>
|
||||||
<node-tree class="node-tree"
|
<node-tree class="node-tree"
|
||||||
@nodeSelectEvent="nodeChange"
|
@nodeSelectEvent="nodeChange"
|
||||||
@refresh="refresh"
|
@refresh="refresh"
|
||||||
|
|
|
@ -29,12 +29,12 @@
|
||||||
|
|
||||||
<el-col :span="12" class="head-right">
|
<el-col :span="12" class="head-right">
|
||||||
|
|
||||||
<span class="head-right-tip" v-if="index + 1 == testCases.length">
|
<span class="head-right-tip" v-if="index + 1 === testCases.length">
|
||||||
{{ $t('test_track.plan_view.pre_case') }} : {{
|
{{ $t('test_track.plan_view.pre_case') }} : {{
|
||||||
testCases[index - 1] ? testCases[index - 1].name : ''
|
testCases[index - 1] ? testCases[index - 1].name : ''
|
||||||
}}
|
}}
|
||||||
</span>
|
</span>
|
||||||
<span class="head-right-tip" v-if="index + 1 != testCases.length">
|
<span class="head-right-tip" v-if="index + 1 !== testCases.length">
|
||||||
{{ $t('test_track.plan_view.next_case') }} : {{
|
{{ $t('test_track.plan_view.next_case') }} : {{
|
||||||
testCases[index + 1] ? testCases[index + 1].name : ''
|
testCases[index + 1] ? testCases[index + 1].name : ''
|
||||||
}}
|
}}
|
||||||
|
@ -50,16 +50,16 @@
|
||||||
<el-divider direction="vertical"></el-divider>
|
<el-divider direction="vertical"></el-divider>
|
||||||
|
|
||||||
<el-button type="success" size="mini" :disabled="isReadOnly" plain @click="saveCase('Pass')">
|
<el-button type="success" size="mini" :disabled="isReadOnly" plain @click="saveCase('Pass')">
|
||||||
通过
|
{{ $t('test_track.review.pass') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="danger" size="mini" :disabled="isReadOnly" plain @click="saveCase('UnPass')">
|
<el-button type="danger" size="mini" :disabled="isReadOnly" plain @click="saveCase('UnPass')">
|
||||||
未通过
|
{{ $t('test_track.review.un_pass') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row style="margin-top: 0px;">
|
<el-row style="margin-top: 0;">
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-divider content-position="left">{{ testCase.name }}</el-divider>
|
<el-divider content-position="left">{{ testCase.name }}</el-divider>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -75,18 +75,20 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<span class="cast_label">{{ $t('test_track.case.case_type') }}:</span>
|
<span class="cast_label">{{ $t('test_track.case.case_type') }}:</span>
|
||||||
<span class="cast_item" v-if="testCase.type == 'functional'">{{ $t('commons.functional') }}</span>
|
<span class="cast_item" v-if="testCase.type === 'functional'">{{
|
||||||
|
$t('commons.functional')
|
||||||
|
}}</span>
|
||||||
<span class="cast_item"
|
<span class="cast_item"
|
||||||
v-if="testCase.type == 'performance'">{{ $t('commons.performance') }}</span>
|
v-if="testCase.type === 'performance'">{{ $t('commons.performance') }}</span>
|
||||||
<span class="cast_item" v-if="testCase.type == 'api'">{{ $t('commons.api') }}</span>
|
<span class="cast_item" v-if="testCase.type === 'api'">{{ $t('commons.api') }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="4" :offset="1">
|
<el-col :span="4" :offset="1">
|
||||||
<span class="cast_label">{{ $t('test_track.case.method') }}:</span>
|
<span class="cast_label">{{ $t('test_track.case.method') }}:</span>
|
||||||
<span v-if="testCase.method == 'manual'">{{ $t('test_track.case.manual') }}</span>
|
<span v-if="testCase.method === 'manual'">{{ $t('test_track.case.manual') }}</span>
|
||||||
<span v-if="testCase.method == 'auto'">{{ $t('test_track.case.auto') }}</span>
|
<span v-if="testCase.method === 'auto'">{{ $t('test_track.case.auto') }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<span class="cast_label">{{ $t('test_track.case.module') }}:</span>
|
<span class="cast_label">{{ $t('test_track.case.module') }}:</span>
|
||||||
|
@ -105,27 +107,21 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row v-if="testCase.method == 'auto' && testCase.testId">
|
<el-row v-if="testCase.method === 'auto' && testCase.testId">
|
||||||
<el-col class="test-detail" :span="20" :offset="1">
|
<el-col class="test-detail" :span="20" :offset="1">
|
||||||
<el-tabs v-model="activeTab" type="border-card" @tab-click="testTabChange">
|
<el-tabs v-model="activeTab" type="border-card">
|
||||||
<el-tab-pane name="detail" :label="$t('test_track.plan_view.test_detail')">
|
<el-tab-pane name="detail" :label="$t('test_track.plan_view.test_detail')">
|
||||||
<api-test-detail :is-read-only="isReadOnly" v-if="testCase.type == 'api'" @runTest="testRun"
|
<api-test-detail :is-read-only="true" v-if="testCase.type === 'api'" @runTest="testRun"
|
||||||
:id="testCase.testId" ref="apiTestDetail"/>
|
:id="testCase.testId" ref="apiTestDetail"/>
|
||||||
<performance-test-detail :is-read-only="isReadOnly" v-if="testCase.type == 'performance'"
|
<performance-test-detail :is-read-only="true" v-if="testCase.type === 'performance'"
|
||||||
@runTest="testRun" :id="testCase.testId"
|
@runTest="testRun" :id="testCase.testId"
|
||||||
ref="performanceTestDetail"/>
|
ref="performanceTestDetail"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane name="result" :label="$t('test_track.plan_view.test_result')">
|
|
||||||
<api-test-result :report-id="testCase.reportId" v-if=" testCase.type == 'api'"
|
|
||||||
ref="apiTestResult"/>
|
|
||||||
<performance-test-result :is-read-only="isReadOnly" :report-id="testCase.reportId"
|
|
||||||
v-if="testCase.type == 'performance'" ref="performanceTestResult"/>
|
|
||||||
</el-tab-pane>
|
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row v-if="testCase.method && testCase.method != 'auto'">
|
<el-row v-if="testCase.method && testCase.method !== 'auto'">
|
||||||
<el-col :span="20" :offset="1">
|
<el-col :span="20" :offset="1">
|
||||||
<div>
|
<div>
|
||||||
<span class="cast_label">{{ $t('test_track.case.steps') }}:</span>
|
<span class="cast_label">{{ $t('test_track.case.steps') }}:</span>
|
||||||
|
@ -202,7 +198,7 @@
|
||||||
<el-col :span="15" :offset="1">
|
<el-col :span="15" :offset="1">
|
||||||
<div>
|
<div>
|
||||||
<span class="cast_label">{{ $t('commons.remark') }}:</span>
|
<span class="cast_label">{{ $t('commons.remark') }}:</span>
|
||||||
<span v-if="testCase.remark == null || testCase.remark == ''"
|
<span v-if="testCase.remark == null || testCase.remark === ''"
|
||||||
style="color: darkgrey">{{ $t('commons.not_filled') }}</span>
|
style="color: darkgrey">{{ $t('commons.not_filled') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
@ -222,7 +218,7 @@
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-card class="comment-card">
|
<el-card class="comment-card">
|
||||||
<template slot="header">
|
<template slot="header">
|
||||||
<span style="font-size: 15px; color: #1E90FF">评论</span>
|
<span style="font-size: 15px; color: #1E90FF">{{ $t('test_track.review.comment') }}</span>
|
||||||
<i class="el-icon-refresh" @click="getComments(testCase)"
|
<i class="el-icon-refresh" @click="getComments(testCase)"
|
||||||
style="margin-left:10px;font-size: 14px; cursor: pointer"/>
|
style="margin-left:10px;font-size: 14px; cursor: pointer"/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -232,7 +228,6 @@
|
||||||
</div>
|
</div>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
@ -348,11 +343,10 @@ export default {
|
||||||
},
|
},
|
||||||
initTest() {
|
initTest() {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
if (this.testCase.method == 'auto') {
|
if (this.testCase.method === 'auto') {
|
||||||
if (this.$refs.apiTestDetail && this.testCase.type == 'api') {
|
if (this.$refs.apiTestDetail && this.testCase.type === 'api') {
|
||||||
|
|
||||||
this.$refs.apiTestDetail.init();
|
this.$refs.apiTestDetail.init();
|
||||||
} else if (this.testCase.type == 'performance') {
|
} else if (this.testCase.type === 'performance') {
|
||||||
this.$refs.performanceTestDetail.init();
|
this.$refs.performanceTestDetail.init();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -362,12 +356,6 @@ export default {
|
||||||
this.testCase.reportId = reportId;
|
this.testCase.reportId = reportId;
|
||||||
this.saveReport(reportId);
|
this.saveReport(reportId);
|
||||||
},
|
},
|
||||||
testTabChange(data) {
|
|
||||||
if (this.testCase.type == 'performance' && data.paneName == 'result') {
|
|
||||||
this.$refs.performanceTestResult.checkReportStatus();
|
|
||||||
this.$refs.performanceTestResult.init();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
saveReport(reportId) {
|
saveReport(reportId) {
|
||||||
// this.$post('/test/plan/case/edit', {id: this.testCase.id, reportId: reportId});
|
// this.$post('/test/plan/case/edit', {id: this.testCase.id, reportId: reportId});
|
||||||
},
|
},
|
||||||
|
@ -395,7 +383,7 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
getRelatedTest() {
|
getRelatedTest() {
|
||||||
if (this.testCase.method == 'auto' && this.testCase.testId && this.testCase.testId != 'other') {
|
if (this.testCase.method === 'auto' && this.testCase.testId && this.testCase.testId !== 'other') {
|
||||||
this.$get('/' + this.testCase.type + '/get/' + this.testCase.testId, response => {
|
this.$get('/' + this.testCase.type + '/get/' + this.testCase.testId, response => {
|
||||||
let data = response.data;
|
let data = response.data;
|
||||||
if (data) {
|
if (data) {
|
||||||
|
@ -413,7 +401,7 @@ export default {
|
||||||
this.$post('/test/case/review/edit/status/' + reviewId);
|
this.$post('/test/case/review/edit/status/' + reviewId);
|
||||||
},
|
},
|
||||||
stepResultChange() {
|
stepResultChange() {
|
||||||
if (this.testCase.method == 'manual') {
|
if (this.testCase.method === 'manual') {
|
||||||
this.isFailure = this.testCase.steptResults.filter(s => {
|
this.isFailure = this.testCase.steptResults.filter(s => {
|
||||||
return s.executeResult === 'Failure' || s.executeResult === 'Blocking';
|
return s.executeResult === 'Failure' || s.executeResult === 'Blocking';
|
||||||
}).length > 0;
|
}).length > 0;
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
type="selection"/>
|
type="selection"/>
|
||||||
<el-table-column width="40" :resizable="false" align="center">
|
<el-table-column width="40" :resizable="false" align="center">
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<!-- <show-more-btn :is-show="scope.row.showMore" :buttons="buttons" :size="selectRows.size"/>-->
|
<show-more-btn :is-show="scope.row.showMore" :buttons="buttons" :size="selectRows.size"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -146,14 +146,11 @@
|
||||||
@refreshTable="search"/>
|
@refreshTable="search"/>
|
||||||
|
|
||||||
</el-card>
|
</el-card>
|
||||||
<batch-edit ref="batchEdit" @batchEdit="batchEdit"
|
|
||||||
:type-arr="typeArr" :value-arr="valueArr" :dialog-title="$t('test_track.case.batch_edit_case')"/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import ClassicEditor from "@ckeditor/ckeditor5-build-classic";
|
|
||||||
import MsTableOperatorButton from "../../../../common/components/MsTableOperatorButton";
|
import MsTableOperatorButton from "../../../../common/components/MsTableOperatorButton";
|
||||||
import MsTableOperator from "../../../../common/components/MsTableOperator";
|
import MsTableOperator from "../../../../common/components/MsTableOperator";
|
||||||
import MethodTableItem from "../../../common/tableItems/planview/MethodTableItem";
|
import MethodTableItem from "../../../common/tableItems/planview/MethodTableItem";
|
||||||
|
@ -171,7 +168,7 @@ import BatchEdit from "../../../case/components/BatchEdit";
|
||||||
import MsTablePagination from '../../../../common/pagination/TablePagination';
|
import MsTablePagination from '../../../../common/pagination/TablePagination';
|
||||||
import {_filter, _sort, checkoutTestManagerOrTestUser, hasRoles} from "../../../../../../common/js/utils";
|
import {_filter, _sort, checkoutTestManagerOrTestUser, hasRoles} from "../../../../../../common/js/utils";
|
||||||
import {TEST_CASE_CONFIGS} from "../../../../common/components/search/search-components";
|
import {TEST_CASE_CONFIGS} from "../../../../common/components/search/search-components";
|
||||||
import {ROLE_TEST_MANAGER, ROLE_TEST_USER, TokenKey, WORKSPACE_ID} from "../../../../../../common/js/constants";
|
import {ROLE_TEST_MANAGER, ROLE_TEST_USER} from "../../../../../../common/js/constants";
|
||||||
import TestReviewTestCaseEdit from "./TestReviewTestCaseEdit";
|
import TestReviewTestCaseEdit from "./TestReviewTestCaseEdit";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -216,9 +213,6 @@ export default {
|
||||||
],
|
],
|
||||||
showMore: false,
|
showMore: false,
|
||||||
buttons: [
|
buttons: [
|
||||||
{
|
|
||||||
name: this.$t('test_track.case.batch_edit_case'), handleClick: this.handleBatchEdit
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: this.$t('test_track.case.batch_unlink'), handleClick: this.handleDeleteBatch
|
name: this.$t('test_track.case.batch_unlink'), handleClick: this.handleDeleteBatch
|
||||||
}
|
}
|
||||||
|
@ -236,10 +230,6 @@ export default {
|
||||||
{name: this.$t('test_track.plan_view.skip'), id: 'Skip'}
|
{name: this.$t('test_track.plan_view.skip'), id: 'Skip'}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
editor: ClassicEditor,
|
|
||||||
editorConfig: {
|
|
||||||
toolbar: [],
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
@ -335,7 +325,7 @@ export default {
|
||||||
this.$post('/test/review/case/batch/delete', {ids: ids}, () => {
|
this.$post('/test/review/case/batch/delete', {ids: ids}, () => {
|
||||||
this.selectRows.clear();
|
this.selectRows.clear();
|
||||||
this.$emit("refresh");
|
this.$emit("refresh");
|
||||||
this.$success(this.$t('commons.delete_success'));
|
this.$success(this.$t('test_track.cancel_relevance_success'));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -345,33 +335,33 @@ export default {
|
||||||
let testCaseId = testCase.id;
|
let testCaseId = testCase.id;
|
||||||
this.$post('/test/review/case/delete/' + testCaseId, {}, () => {
|
this.$post('/test/review/case/delete/' + testCaseId, {}, () => {
|
||||||
this.$emit("refresh");
|
this.$emit("refresh");
|
||||||
this.$success(this.$t('commons.delete_success'));
|
this.$success(this.$t('test_track.cancel_relevance_success'));
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
handleSelectAll(selection) {
|
handleSelectAll(selection) {
|
||||||
|
if (selection.length > 0) {
|
||||||
|
this.tableData.forEach(item => {
|
||||||
|
this.$set(item, "showMore", true);
|
||||||
|
this.selectRows.add(item);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.selectRows.clear();
|
||||||
|
this.tableData.forEach(row => {
|
||||||
|
this.$set(row, "showMore", false);
|
||||||
|
})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
handleSelectionChange(selection, row) {
|
handleSelectionChange(selection, row) {
|
||||||
|
if (this.selectRows.has(row)) {
|
||||||
},
|
this.$set(row, "showMore", false);
|
||||||
handleBatch(type) {
|
this.selectRows.delete(row);
|
||||||
if (this.selectRows.size < 1) {
|
} else {
|
||||||
this.$warning(this.$t('test_track.plan_view.select_manipulate'));
|
this.$set(row, "showMore", true);
|
||||||
return;
|
this.selectRows.add(row);
|
||||||
}
|
|
||||||
if (type === 'executor') {
|
|
||||||
this.$refs.executorEdit.openExecutorEdit();
|
|
||||||
} else if (type === 'status') {
|
|
||||||
this.$refs.statusEdit.openStatusEdit();
|
|
||||||
} else if (type === 'delete') {
|
|
||||||
this.handleDeleteBatch();
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
openTestReport() {
|
openTestReport() {
|
||||||
this.$refs.testReportTemplateList.open(this.reviewId);
|
this.$refs.testReportTemplateList.open(this.reviewId);
|
||||||
},
|
|
||||||
statusChange(param) {
|
|
||||||
|
|
||||||
},
|
},
|
||||||
getTestReviewById() {
|
getTestReviewById() {
|
||||||
if (this.reviewId) {
|
if (this.reviewId) {
|
||||||
|
@ -393,34 +383,12 @@ export default {
|
||||||
_sort(column, this.condition);
|
_sort(column, this.condition);
|
||||||
this.initTableData();
|
this.initTableData();
|
||||||
},
|
},
|
||||||
batchEdit(form) {
|
|
||||||
// let param = {};
|
|
||||||
// param[form.type] = form.value;
|
|
||||||
// param.ids = Array.from(this.selectRows).map(row => row.id);
|
|
||||||
// this.$post('/test/plan/case/batch/edit', param, () => {
|
|
||||||
// this.selectRows.clear();
|
|
||||||
// this.status = '';
|
|
||||||
// this.$post('/test/plan/edit/status/' + this.reviewId);
|
|
||||||
// this.$success(this.$t('commons.save_success'));
|
|
||||||
// this.$emit('refresh');
|
|
||||||
// });
|
|
||||||
},
|
|
||||||
handleBatchEdit() {
|
|
||||||
this.getMaintainerOptions();
|
|
||||||
this.$refs.batchEdit.open();
|
|
||||||
},
|
|
||||||
getMaintainerOptions() {
|
|
||||||
let workspaceId = localStorage.getItem(WORKSPACE_ID);
|
|
||||||
this.$post('/user/ws/member/tester/list', {workspaceId: workspaceId}, response => {
|
|
||||||
this.valueArr.executor = response.data;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
startReview() {
|
startReview() {
|
||||||
if (this.tableData.length !== 0) {
|
if (this.tableData.length !== 0) {
|
||||||
this.isReadOnly = false;
|
this.isReadOnly = false;
|
||||||
this.$refs.testReviewTestCaseEdit.openTestCaseEdit(this.tableData[0]);
|
this.$refs.testReviewTestCaseEdit.openTestCaseEdit(this.tableData[0]);
|
||||||
} else {
|
} else {
|
||||||
this.$warning("没有关联的评审!");
|
this.$warning(this.$t('test_track.review.no_link_case'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -429,14 +397,5 @@ export default {
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
.search {
|
|
||||||
margin-left: 10px;
|
|
||||||
width: 240px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.test-case-status, .el-table {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
|
@ -621,6 +621,8 @@ export default {
|
||||||
pass_rate: "Pass rate",
|
pass_rate: "Pass rate",
|
||||||
execution_result: ": Please select the execution result",
|
execution_result: ": Please select the execution result",
|
||||||
actual_result: ": The actual result is empty",
|
actual_result: ": The actual result is empty",
|
||||||
|
cancel_relevance_success: "Unlinked successfully",
|
||||||
|
switch_project: "Switch project",
|
||||||
case: {
|
case: {
|
||||||
export_all_cases: 'Are you sure you want to export all use cases?',
|
export_all_cases: 'Are you sure you want to export all use cases?',
|
||||||
input_test_case: 'Please enter the associated case name',
|
input_test_case: 'Please enter the associated case name',
|
||||||
|
@ -737,6 +739,17 @@ export default {
|
||||||
input_review_name: "Please enter the name of the review",
|
input_review_name: "Please enter the name of the review",
|
||||||
input_review_project: "Please select the project",
|
input_review_project: "Please select the project",
|
||||||
input_reviewer: "Please select reviewer",
|
input_reviewer: "Please select reviewer",
|
||||||
|
no_link_case: "No associated use cases!",
|
||||||
|
pass: "pass",
|
||||||
|
un_pass: "UnPass",
|
||||||
|
comment: "Comment",
|
||||||
|
},
|
||||||
|
comment: {
|
||||||
|
no_comment: "No Comment",
|
||||||
|
send_comment: "Post a comment (Ctrl + Enter to send)",
|
||||||
|
send: "Send",
|
||||||
|
description_is_null: "Comment content cannot be empty!",
|
||||||
|
send_success: "Comment successful!",
|
||||||
},
|
},
|
||||||
review_view: {
|
review_view: {
|
||||||
review: "Review",
|
review: "Review",
|
||||||
|
|
|
@ -623,7 +623,8 @@ export default {
|
||||||
pass_rate: "通过率",
|
pass_rate: "通过率",
|
||||||
execution_result: ": 请选择执行结果",
|
execution_result: ": 请选择执行结果",
|
||||||
actual_result: ": 实际结果为空",
|
actual_result: ": 实际结果为空",
|
||||||
|
cancel_relevance_success: "取消关联成功",
|
||||||
|
switch_project: "切换项目",
|
||||||
case: {
|
case: {
|
||||||
export_all_cases: '确定要导出全部用例吗?',
|
export_all_cases: '确定要导出全部用例吗?',
|
||||||
input_test_case: '请输入关联用例名称',
|
input_test_case: '请输入关联用例名称',
|
||||||
|
@ -740,6 +741,17 @@ export default {
|
||||||
input_review_name: "请输入评审名称",
|
input_review_name: "请输入评审名称",
|
||||||
input_review_project: "请选择所属项目",
|
input_review_project: "请选择所属项目",
|
||||||
input_reviewer: "请选择评审人",
|
input_reviewer: "请选择评审人",
|
||||||
|
no_link_case: "没有关联用例!",
|
||||||
|
pass: "通过",
|
||||||
|
un_pass: "未通过",
|
||||||
|
comment: "评论",
|
||||||
|
},
|
||||||
|
comment: {
|
||||||
|
no_comment: "暂无评论",
|
||||||
|
send_comment: "发表评论(Ctrl+Enter发送)",
|
||||||
|
send: "发送",
|
||||||
|
description_is_null: "评论内容不能为空!",
|
||||||
|
send_success: "评论成功!",
|
||||||
},
|
},
|
||||||
review_view: {
|
review_view: {
|
||||||
review: "评审",
|
review: "评审",
|
||||||
|
|
|
@ -623,7 +623,8 @@ export default {
|
||||||
pass_rate: "通過率",
|
pass_rate: "通過率",
|
||||||
execution_result: ": 請選擇執行結果",
|
execution_result: ": 請選擇執行結果",
|
||||||
actual_result: ": 實際結果為空",
|
actual_result: ": 實際結果為空",
|
||||||
|
cancel_relevance_success: "取消關聯成功",
|
||||||
|
switch_project: "切換項目",
|
||||||
case: {
|
case: {
|
||||||
export_all_cases: '確定要匯出全部用例嗎?',
|
export_all_cases: '確定要匯出全部用例嗎?',
|
||||||
input_test_case: '請輸入關聯用例名稱',
|
input_test_case: '請輸入關聯用例名稱',
|
||||||
|
@ -740,6 +741,17 @@ export default {
|
||||||
input_review_name: "請輸入評審名稱",
|
input_review_name: "請輸入評審名稱",
|
||||||
input_review_project: "請選擇所屬項目",
|
input_review_project: "請選擇所屬項目",
|
||||||
input_reviewer: "請選擇評審人",
|
input_reviewer: "請選擇評審人",
|
||||||
|
no_link_case: "沒有關聯用例!",
|
||||||
|
pass: "通過",
|
||||||
|
un_pass: "未通過",
|
||||||
|
comment: "評論",
|
||||||
|
},
|
||||||
|
comment: {
|
||||||
|
no_comment: "暫無評論",
|
||||||
|
send_comment: "發表評論(Ctrl+Enter發送)",
|
||||||
|
send: "發送",
|
||||||
|
description_is_null: "評論內容不能為空!",
|
||||||
|
send_success: "評論成功!",
|
||||||
},
|
},
|
||||||
review_view: {
|
review_view: {
|
||||||
review: "評審",
|
review: "評審",
|
||||||
|
|
Loading…
Reference in New Issue