fix(接口测试): 列表切换模块时清空选择框的数据 (#15554)

--bug=1014658 --user=王孝刚 【接口测试】接口、场景列表,切换模块或者进行其他操作后,勾选数据没清空
https://www.tapd.cn/55049933/s/1196198

Co-authored-by: wxg0103 <727495428@qq.com>
This commit is contained in:
MeterSphere Bot 2022-07-06 17:46:03 +08:00 committed by GitHub
parent 2a432c63c3
commit a027c4771e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 226 additions and 221 deletions

View File

@ -524,7 +524,7 @@ export default {
if (tab.name === targetName) {
this.diff(tab);
if (tab && this.isSave) {
message += tab.currentScenario.name ? tab.currentScenario.name : this.$t('api_test.automation.add_scenario') + "";
message += tab.currentScenario.name ? tab.currentScenario.name : this.$t('api_test.automation.add_scenario');
}
}
})

View File

@ -774,6 +774,7 @@ export default {
}
});
this.$emit('getTrashCase');
this.$refs.scenarioTable.clearSelection();
});
}
},

View File

@ -3,45 +3,45 @@
<ms-container v-if="renderComponent">
<ms-aside-container>
<ms-api-module
:show-operator="true"
@nodeSelectEvent="nodeChange"
@protocolChange="handleProtocolChange"
@refreshTable="refresh"
@exportAPI="exportAPI"
@debug="debug"
@saveAsEdit="editApi"
@setModuleOptions="setModuleOptions"
@setNodeTree="setNodeTree"
@enableTrash="enableTrash"
@schedule="handleTabsEdit($t('api_test.api_import.timing_synchronization'), 'SCHEDULE')"
:type="'edit'"
page-source="definition"
:total='total'
:current-version="currentVersion"
ref="nodeTree"/>
:show-operator="true"
@nodeSelectEvent="nodeChange"
@protocolChange="handleProtocolChange"
@refreshTable="refresh"
@exportAPI="exportAPI"
@debug="debug"
@saveAsEdit="editApi"
@setModuleOptions="setModuleOptions"
@setNodeTree="setNodeTree"
@enableTrash="enableTrash"
@schedule="handleTabsEdit($t('api_test.api_import.timing_synchronization'), 'SCHEDULE')"
:type="'edit'"
page-source="definition"
:total='total'
:current-version="currentVersion"
ref="nodeTree"/>
</ms-aside-container>
<ms-main-container>
<ms-environment-select
:project-id="projectId"
:is-read-only="false"
:useEnvironment='useEnvironment'
@setEnvironment="setEnvironment"
class="ms-api-button"
ref="environmentSelect"/>
:project-id="projectId"
:is-read-only="false"
:useEnvironment='useEnvironment'
@setEnvironment="setEnvironment"
class="ms-api-button"
ref="environmentSelect"/>
<!-- 主框架列表 -->
<el-tabs v-model="apiDefaultTab" @edit="closeConfirm" @tab-click="addTab">
<el-tab-pane
name="trash"
:label="$t('commons.trash')" v-if="trashEnable">
name="trash"
:label="$t('commons.trash')" v-if="trashEnable">
<ms-tab-button
v-if="this.trashTabInfo.type === 'list'"
:active-dom.sync="trashActiveDom"
:left-tip="$t('api_test.definition.api_title')"
:right-tip="$t('api_test.definition.case_title')"
:middle-button-enable="false"
left-content="API"
right-content="CASE"
v-if="this.trashTabInfo.type === 'list'"
:active-dom.sync="trashActiveDom"
:left-tip="$t('api_test.definition.api_title')"
:right-tip="$t('api_test.definition.case_title')"
:middle-button-enable="false"
left-content="API"
right-content="CASE"
>
<template v-slot:version>
<version-select v-xpack :project-id="projectId" :version-id="trashVersion"
@ -49,43 +49,43 @@
</template>
<!-- 列表集合 -->
<ms-api-list
v-if="trashActiveDom==='left'"
@runTest="runTest"
@refreshTree="refreshTree"
@getTrashApi="getTrashApi"
:module-tree="nodeTree"
:module-options="moduleOptions"
:current-protocol="currentProtocol"
:current-version="currentVersion"
:visible="visible"
:currentRow="currentRow"
:select-node-ids="selectNodeIds"
:trash-enable="true"
:selectDataRange="selectDataRange"
:is-read-only="isReadOnly"
@changeSelectDataRangeAll="changeSelectDataRangeAll"
@editApi="editApi"
@handleCase="handleCase"
@showExecResult="showExecResult"
@refreshTable="refresh"
:init-api-table-opretion="initApiTableOpretion"
@updateInitApiTableOpretion="updateInitApiTableOpretion"
ref="trashApiList"/>
v-if="trashActiveDom==='left'"
@runTest="runTest"
@refreshTree="refreshTree"
@getTrashApi="getTrashApi"
:module-tree="nodeTree"
:module-options="moduleOptions"
:current-protocol="currentProtocol"
:current-version="currentVersion"
:visible="visible"
:currentRow="currentRow"
:select-node-ids="selectNodeIds"
:trash-enable="true"
:selectDataRange="selectDataRange"
:is-read-only="isReadOnly"
@changeSelectDataRangeAll="changeSelectDataRangeAll"
@editApi="editApi"
@handleCase="handleCase"
@showExecResult="showExecResult"
@refreshTable="refresh"
:init-api-table-opretion="initApiTableOpretion"
@updateInitApiTableOpretion="updateInitApiTableOpretion"
ref="trashApiList"/>
<!--测试用例列表-->
<api-case-simple-list
v-if="trashActiveDom==='right'"
:current-protocol="currentProtocol"
:current-version="currentVersion"
:visible="visible"
:currentRow="currentRow"
:select-node-ids="selectNodeIds"
:trash-enable="true"
:is-read-only="isReadOnly"
@changeSelectDataRangeAll="changeSelectDataRangeAll"
@handleCase="handleCase"
@refreshTable="refresh"
@showExecResult="showExecResult"
ref="trashCaseList"/>
v-if="trashActiveDom==='right'"
:current-protocol="currentProtocol"
:current-version="currentVersion"
:visible="visible"
:currentRow="currentRow"
:select-node-ids="selectNodeIds"
:trash-enable="true"
:is-read-only="isReadOnly"
@changeSelectDataRangeAll="changeSelectDataRangeAll"
@handleCase="handleCase"
@refreshTable="refresh"
@showExecResult="showExecResult"
ref="trashCaseList"/>
</ms-tab-button>
</el-tab-pane>
@ -95,117 +95,117 @@
:closable="item.closable"
:name="item.name">
<ms-tab-button
v-if="item.type === 'list'"
:active-dom.sync="activeDom"
:left-tip="$t('api_test.definition.api_title')"
:right-tip="$t('api_test.definition.doc_title')"
:middle-tip="$t('api_test.definition.case_title')"
left-content="API"
middle-content="CASE"
:right-content="$t('api_test.definition.doc_title')"
:right-button-enable="currentProtocol === 'HTTP' "
v-if="item.type === 'list'"
:active-dom.sync="activeDom"
:left-tip="$t('api_test.definition.api_title')"
:right-tip="$t('api_test.definition.doc_title')"
:middle-tip="$t('api_test.definition.case_title')"
left-content="API"
middle-content="CASE"
:right-content="$t('api_test.definition.doc_title')"
:right-button-enable="currentProtocol === 'HTTP' "
>
<template v-slot:version>
<version-select v-xpack :project-id="projectId" @changeVersion="changeVersion"/>
</template>
<!-- 列表集合 -->
<ms-api-list
v-if="activeDom==='left'"
@getTrashApi="getTrashApi"
:module-tree="nodeTree"
:module-options="moduleOptions"
:current-protocol="currentProtocol"
:current-version="currentVersion"
:visible="visible"
:currentRow="currentRow"
:select-node-ids="selectNodeIds"
:trash-enable="false"
:selectDataRange="selectDataRange"
:is-read-only="isReadOnly"
@runTest="runTest"
@handleTestCase="handleTestCase"
@refreshTree="refreshTree"
@changeSelectDataRangeAll="changeSelectDataRangeAll"
@editApi="editApi"
@copyApi="copyApi"
@handleCase="handleCase"
@showExecResult="showExecResult"
@refreshTable="refresh"
:init-api-table-opretion="initApiTableOpretion"
@updateInitApiTableOpretion="updateInitApiTableOpretion"
ref="apiDefList"/>
v-if="activeDom==='left'"
@getTrashApi="getTrashApi"
:module-tree="nodeTree"
:module-options="moduleOptions"
:current-protocol="currentProtocol"
:current-version="currentVersion"
:visible="visible"
:currentRow="currentRow"
:select-node-ids="selectNodeIds"
:trash-enable="false"
:selectDataRange="selectDataRange"
:is-read-only="isReadOnly"
@runTest="runTest"
@handleTestCase="handleTestCase"
@refreshTree="refreshTree"
@changeSelectDataRangeAll="changeSelectDataRangeAll"
@editApi="editApi"
@copyApi="copyApi"
@handleCase="handleCase"
@showExecResult="showExecResult"
@refreshTable="refresh"
:init-api-table-opretion="initApiTableOpretion"
@updateInitApiTableOpretion="updateInitApiTableOpretion"
ref="apiDefList"/>
<!--测试用例列表-->
<api-case-simple-list
v-if="activeDom==='middle'"
:current-protocol="currentProtocol"
:current-version="currentVersion"
:visible="visible"
:currentRow="currentRow"
:select-node-ids="selectNodeIds"
:trash-enable="false"
:is-read-only="isReadOnly"
@changeSelectDataRangeAll="changeSelectDataRangeAll"
@handleCase="handleCase"
@refreshTable="refresh"
@showExecResult="showExecResult"
ref="caseList"/>
v-if="activeDom==='middle'"
:current-protocol="currentProtocol"
:current-version="currentVersion"
:visible="visible"
:currentRow="currentRow"
:select-node-ids="selectNodeIds"
:trash-enable="false"
:is-read-only="isReadOnly"
@changeSelectDataRangeAll="changeSelectDataRangeAll"
@handleCase="handleCase"
@refreshTable="refresh"
@showExecResult="showExecResult"
ref="caseList"/>
<api-documents-page
class="api-doc-page"
v-if="activeDom==='right' && currentProtocol==='HTTP'"
:project-id="projectId"
:trash-enable="trashEnable"
:version-id="currentVersion"
:module-ids="selectNodeIds"
ref="documentsPage"/>
class="api-doc-page"
v-if="activeDom==='right' && currentProtocol==='HTTP'"
:project-id="projectId"
:trash-enable="trashEnable"
:version-id="currentVersion"
:module-ids="selectNodeIds"
ref="documentsPage"/>
</ms-tab-button>
<!-- 添加/编辑测试窗口-->
<div v-if="item.type=== 'ADD' ||item.type === 'TEST'" class="ms-api-div">
<ms-edit-complete-container
:syncTabs="syncTabs"
@runTest="runTest"
@saveApi="saveApi"
@createRootModel="createRootModel"
@editApi="editApi"
@refresh="refresh"
:current-api="item.api"
:project-id="projectId"
:currentProtocol="currentProtocol"
:moduleOptions="moduleOptions"
:activeDom="activeTab"
@changeSelectDataRangeAll="changeSelectDataRangeAll"
@handleCase="handleCase"
@showExecResult="showExecResult"
:syncTabs="syncTabs"
@runTest="runTest"
@saveApi="saveApi"
@createRootModel="createRootModel"
@editApi="editApi"
@refresh="refresh"
:current-api="item.api"
:project-id="projectId"
:currentProtocol="currentProtocol"
:moduleOptions="moduleOptions"
:activeDom="activeTab"
@changeSelectDataRangeAll="changeSelectDataRangeAll"
@handleCase="handleCase"
@showExecResult="showExecResult"
ref="apiConfig"
ref="apiConfig"
/>
</div>
<!-- 快捷调试 -->
<div v-else-if="item.type=== 'debug'" class="ms-api-div">
<ms-debug-http-page
:currentProtocol="currentProtocol"
:testCase="item.api"
@saveAs="editApi"
@refreshModule="refreshModule"
v-if="currentProtocol==='HTTP'"/>
:currentProtocol="currentProtocol"
:testCase="item.api"
@saveAs="editApi"
@refreshModule="refreshModule"
v-if="currentProtocol==='HTTP'"/>
<ms-debug-jdbc-page
:currentProtocol="currentProtocol"
:testCase="item.api"
@saveAs="editApi"
@refreshModule="refreshModule"
v-if="currentProtocol==='SQL'"/>
:currentProtocol="currentProtocol"
:testCase="item.api"
@saveAs="editApi"
@refreshModule="refreshModule"
v-if="currentProtocol==='SQL'"/>
<ms-debug-tcp-page
:currentProtocol="currentProtocol"
:testCase="item.api"
:scenario="false"
@saveAs="editApi"
@refreshModule="refreshModule"
v-if="currentProtocol==='TCP'"/>
:currentProtocol="currentProtocol"
:testCase="item.api"
:scenario="false"
@saveAs="editApi"
@refreshModule="refreshModule"
v-if="currentProtocol==='TCP'"/>
<ms-debug-dubbo-page
:currentProtocol="currentProtocol"
:testCase="item.api"
@saveAs="editApi"
@refreshModule="refreshModule"
v-if="currentProtocol==='DUBBO'"/>
:currentProtocol="currentProtocol"
:testCase="item.api"
@saveAs="editApi"
@refreshModule="refreshModule"
v-if="currentProtocol==='DUBBO'"/>
</div>
<!-- 定时任务 -->
@ -595,7 +595,7 @@ export default {
let tab = this.apiTabs;
tab.forEach(t => {
if (t.type === 'ADD' && t.api && this.$store.state.apiMap.has(t.api.id) && (this.$store.state.apiMap.get(t.api.id).get("responseChange") === true || this.$store.state.apiMap.get(t.api.id).get("requestChange") === true ||
this.$store.state.apiMap.get(t.api.id).get("fromChange") === true)) {
this.$store.state.apiMap.get(t.api.id).get("fromChange") === true)) {
message += t.api.name + "";
} else if (t.type === 'ADD' && t.title === this.$t('api_test.definition.request.title')) {
message += this.$t('api_test.definition.request.title') + "";
@ -632,16 +632,16 @@ export default {
if (t.api && this.$store.state.apiMap.size > 0 && this.$store.state.apiMap.has(t.api.id)) {
id = t.api.id;
if (this.$store.state.apiMap.get(t.api.id).get("responseChange") === true || this.$store.state.apiMap.get(t.api.id).get("requestChange") === true ||
this.$store.state.apiMap.get(t.api.id).get("fromChange") === true) {
message += t.api.name + "";
this.$store.state.apiMap.get(t.api.id).get("fromChange") === true) {
message += t.api.name;
id = t.api.id;
}
} else if (t.type === 'ADD' && t.title === this.$t('api_test.definition.request.title')) {
message += this.$t('api_test.definition.request.title') + "";
message += this.$t('api_test.definition.request.title');
id = t.api.id;
}
if (t.type === 'ADD' && t.isCopy) {
message += t.api.name + "";
message += t.api.name;
id = t.api.id;
}
}
@ -777,7 +777,7 @@ export default {
this.activeTab = "api";
if (row != null && row.tags != 'null' && row.tags != '' && row.tags != undefined) {
if (Object.prototype.toString.call(row.tags).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'object'
&& Object.prototype.toString.call(row.tags).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'array') {
&& Object.prototype.toString.call(row.tags).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'array') {
row.tags = JSON.parse(row.tags);
}
}
@ -795,7 +795,7 @@ export default {
this.activeTab = "api";
if (row != null && row.tags != 'null' && row.tags != '' && row.tags != undefined) {
if (Object.prototype.toString.call(row.tags).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'object'
&& Object.prototype.toString.call(row.tags).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'array') {
&& Object.prototype.toString.call(row.tags).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'array') {
row.tags = JSON.parse(row.tags);
}
}
@ -866,7 +866,7 @@ export default {
}
if (row != null && row.tags != 'null' && row.tags != '' && row.tags != undefined) {
if (Object.prototype.toString.call(row.tags).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'object'
&& Object.prototype.toString.call(row.tags).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'array') {
&& Object.prototype.toString.call(row.tags).match(/\[object (\w+)\]/)[1].toLowerCase() !== 'array') {
row.tags = JSON.parse(row.tags);
}
}

View File

@ -732,6 +732,7 @@ export default {
}
});
}
this.$refs.caseTable.clearSelection();
},
setRunning(id) {
this.tableData.forEach(item => {

View File

@ -657,6 +657,7 @@ export default {
item.caseTotal = parseInt(item.caseTotal);
});
this.$emit('getTrashApi');
this.$refs.table.clearSelection();
});
}
if (this.needRefreshModule()) {

View File

@ -23,9 +23,9 @@
ref="table">
<el-table-column
v-if="enableSelection"
width="50"
type="selection"/>
v-if="enableSelection"
width="50"
type="selection"/>
<ms-table-header-select-popover v-if="enableSelection && showSelectAll"
:page-size="pageSize > total ? total : pageSize"
@ -60,13 +60,13 @@
<!-- 拖拽排序 -->
<el-table-column
v-if="enableOrderDrag"
width="20"
column-key="tableRowDropCol">
v-if="enableOrderDrag"
width="20"
column-key="tableRowDropCol">
<template v-slot:default="scope">
<div class="table-row-drop-bar">
<i class="el-icon-more ms-icon-more"/>
<i class="el-icon-more ms-icon-more"/>
<i class="el-icon-more ms-icon-more"/>
<i class="el-icon-more ms-icon-more"/>
</div>
</template>
</el-table-column>
@ -74,30 +74,30 @@
<slot></slot>
<el-table-column
v-if="operators && operators.length > 0"
:fixed="operatorFixed"
:min-width="operatorWidth"
:label="$t('commons.operating')">
v-if="operators && operators.length > 0"
:fixed="operatorFixed"
:min-width="operatorWidth"
:label="$t('commons.operating')">
<template slot="header">
<header-label-operate
v-if="fieldKey"
:disable-header-config="disableHeaderConfig"
@exec="openCustomHeader"/>
v-if="fieldKey"
:disable-header-config="disableHeaderConfig"
@exec="openCustomHeader"/>
</template>
<template
v-slot:default="scope">
v-slot:default="scope">
<div>
<slot
name="opt-before"
:row="scope.row">
name="opt-before"
:row="scope.row">
</slot>
<ms-table-operators
:buttons="operators"
:row="scope.row"
:index="scope.$index"/>
:buttons="operators"
:row="scope.row"
:index="scope.$index"/>
<slot
name="opt-behind"
:row="scope.row">
name="opt-behind"
:row="scope.row">
</slot>
</div>
</template>
@ -105,11 +105,11 @@
</el-table>
<ms-custom-table-header
v-if="fieldKey"
:type="fieldKey"
:custom-fields="customFields"
@reload="resetHeader"
ref="customTableHeader"/>
v-if="fieldKey"
:type="fieldKey"
:custom-fields="customFields"
@reload="resetHeader"
ref="customTableHeader"/>
</div>
</template>
@ -120,15 +120,15 @@ import {
_handleSelect,
_handleSelectAll,
_sort,
getSelectDataCounts,
setUnSelectIds,
toggleAllSelection,
checkTableRowIsSelect,
clearShareDragParam,
getCustomTableHeader,
getSelectDataCounts,
handleRowDrop,
saveCustomTableWidth,
saveLastTableSortField,
handleRowDrop,
clearShareDragParam,
setUnSelectIds,
toggleAllSelection,
} from "@/common/js/tableUtils";
import MsTableHeaderSelectPopover from "@/business/components/common/components/table/MsTableHeaderSelectPopover";
import MsTablePagination from "@/business/components/common/pagination/TablePagination";
@ -252,8 +252,8 @@ export default {
return false;
}
},
tableIsLoading:{
type:Boolean,
tableIsLoading: {
type: Boolean,
default() {
return false;
}
@ -340,7 +340,7 @@ export default {
});
}
},
isScrollShow(column, tableTop){ //
isScrollShow(column, tableTop) { //
let columnTop = column.getBoundingClientRect().top;
return columnTop - tableTop > 30;
},
@ -366,7 +366,7 @@ export default {
this.selectDataCounts = getSelectDataCounts(this.condition, this.total, this.selectRows);
this.selectIds = Array.from(this.selectRows).map(o => o.id);
//
this.$emit('callBackSelectAll',selection);
this.$emit('callBackSelectAll', selection);
this.$nextTick(function () {
setTimeout(this.removeBatchPopper, 1);
});
@ -377,7 +377,7 @@ export default {
this.selectDataCounts = getSelectDataCounts(this.condition, this.total, this.selectRows);
this.selectIds = Array.from(this.selectRows).map(o => o.id);
//
this.$emit('callBackSelect',selection);
this.$emit('callBackSelect', selection);
this.$nextTick(function () {
setTimeout(this.removeBatchPopper, 1);
});
@ -395,10 +395,10 @@ export default {
this.selectIds = Array.from(this.selectRows).map(o => o.id);
},
headerDragend(newWidth, oldWidth, column, event) {
if(column){
if(column.minWidth){
if (column) {
if (column.minWidth) {
let minWidth = column.minWidth;
if(minWidth > newWidth){
if (minWidth > newWidth) {
column.width = minWidth;
newWidth = minWidth;
}
@ -462,6 +462,8 @@ export default {
},
clearSelection() {
this.clearSelectRows();
this.condition.selectAll = false;
this.condition.unSelectIds = [];
},
getSelectRows() {
return this.selectRows;
@ -469,7 +471,7 @@ export default {
clearSelectRows() {
this.selectRows.clear();
this.selectIds = [];
if(!this.condition.selectAll){
if (!this.condition.selectAll) {
this.condition.selectAll = false;
this.condition.unSelectIds = [];
}
@ -500,8 +502,8 @@ export default {
},
addPaddingColClass({column}) {
if (column.columnKey === 'tableRowDropCol'
|| column.columnKey === 'selectionCol'
|| column.columnKey ==='batchBtnCol') {
|| column.columnKey === 'selectionCol'
|| column.columnKey === 'batchBtnCol') {
return 'padding-col';
}
},
@ -550,24 +552,24 @@ export default {
margin-right: -5px;
}
.ms-table >>> .el-table__body tr.hover-row.current-row>td,
.ms-table >>> .el-table__body tr.hover-row.el-table__row--striped.current-row>td,
.ms-table >>> .el-table__body tr.hover-row.el-table__row--striped>td,
.ms-table >>> .el-table__body tr.hover-row>td {
.ms-table >>> .el-table__body tr.hover-row.current-row > td,
.ms-table >>> .el-table__body tr.hover-row.el-table__row--striped.current-row > td,
.ms-table >>> .el-table__body tr.hover-row.el-table__row--striped > td,
.ms-table >>> .el-table__body tr.hover-row > td {
background-color: #ffffff;
}
/* 解决拖拽排序后hover阴影错乱问题 */
.ms-table >>> .el-table__body tr:hover>td
{
.ms-table >>> .el-table__body tr:hover > td {
background-color: #F5F7FA;
}
.disable-hover >>> tr:hover>td{
.disable-hover >>> tr:hover > td {
background-color: #ffffff !important;
}
.row-click {
cursor:pointer;
cursor: pointer;
}
</style>

View File

@ -208,10 +208,10 @@ import MsContainer from "../../common/components/MsContainer";
import MsAsideContainer from "../../common/components/MsAsideContainer";
import MsMainContainer from "../../common/components/MsMainContainer";
import {
hasLicense,
getCurrentProjectID,
getCurrentWorkspaceId,
getUUID,
hasLicense,
hasPermission,
setCurTabId
} from "@/common/js/utils";
@ -266,7 +266,7 @@ export default {
currentTrashVersion: null,
versionEnable: false,
isAsideHidden: true,
ignoreTreeNodes:false,
ignoreTreeNodes: false,
};
},
created() {
@ -528,13 +528,13 @@ export default {
let t = this.tabs.filter(tab => tab.name === targetName);
let message = "";
if (t && this.$store.state.testCaseMap.has(t[0].testCaseInfo.id) && this.$store.state.testCaseMap.get(t[0].testCaseInfo.id) > 0) {
message += t[0].testCaseInfo.name + "";
message += t[0].testCaseInfo.name;
}
if (t[0].label === this.$t('test_track.case.create')) {
message += this.$t('test_track.case.create') + "";
message += this.$t('test_track.case.create');
}
if (t[0].testCaseInfo.isCopy) {
message += t[0].testCaseInfo.name + "";
message += t[0].testCaseInfo.name;
}
if (message !== "") {
this.$alert(this.$t('commons.track') + " [ " + message + " ] " + this.$t('commons.confirm_info'), '', {