diff --git a/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql b/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql
index 8bec0988f0..45e0d8971a 100644
--- a/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql
+++ b/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql
@@ -182,7 +182,7 @@ CREATE TABLE IF NOT EXISTS `api_test` (
`create_time` bigint(13) NOT NULL COMMENT 'Create timestamp',
`update_time` bigint(13) NOT NULL COMMENT 'Update timestamp',
PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
CREATE TABLE IF NOT EXISTS `api_test_file` (
`test_id` varchar(64) DEFAULT NULL,
diff --git a/frontend/src/business/components/common/components/table/MsCreateTimeColumn.vue b/frontend/src/business/components/common/components/table/MsCreateTimeColumn.vue
new file mode 100644
index 0000000000..bbb2aac51a
--- /dev/null
+++ b/frontend/src/business/components/common/components/table/MsCreateTimeColumn.vue
@@ -0,0 +1,34 @@
+
+
+
+ {{ scope.row.createTime | timestampFormatDate }}
+
+
+
+
+
+
+
diff --git a/frontend/src/business/components/common/components/table/MsTable.vue b/frontend/src/business/components/common/components/table/MsTable.vue
index c140bb76e3..5ec48ee578 100644
--- a/frontend/src/business/components/common/components/table/MsTable.vue
+++ b/frontend/src/business/components/common/components/table/MsTable.vue
@@ -234,6 +234,7 @@ export default {
let minWidth = column.minWidth;
if(minWidth > newWidth){
column.width = minWidth;
+ newWidth = minWidth;
}
}
}
@@ -307,6 +308,9 @@ export default {
this.$emit('update:fields', getCustomTableHeader(this.fieldKey, this.customFields));
this.reloadTable();
},
+ toggleRowSelection() {
+ this.$refs.table.toggleRowSelection();
+ },
reloadTable() {
this.tableActive = false;
this.$nextTick(() => {
diff --git a/frontend/src/business/components/common/components/table/MsUpdateTimeColumn.vue b/frontend/src/business/components/common/components/table/MsUpdateTimeColumn.vue
new file mode 100644
index 0000000000..d7c8da44ba
--- /dev/null
+++ b/frontend/src/business/components/common/components/table/MsUpdateTimeColumn.vue
@@ -0,0 +1,34 @@
+
+
+
+ {{ scope.row.updateTime | timestampFormatDate }}
+
+
+
+
+
+
+
diff --git a/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiCaseList.vue b/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiCaseList.vue
index 62d8c6857f..8a9c4d739a 100644
--- a/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiCaseList.vue
+++ b/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiCaseList.vue
@@ -71,28 +71,8 @@
:label="$t('custom_field.case_maintainer')"
min-width="120"/>
-
-
- {{ scope.row.updateTime | timestampFormatDate }}
-
-
-
-
- {{ scope.row.createTime | timestampFormatDate }}
-
-
+
+
{
+ checkTableRowIsSelect(this, this.condition, this.tableData, this.$refs.table, this.$refs.table.selectRows);
+ });
}
- this.$nextTick(() => {
- checkTableRowIsSelect(this, this.condition, this.tableData, this.$refs.table, this.$refs.table.selectRows);
- });
});
}
if (this.planId) {
@@ -395,10 +379,10 @@ export default {
if (this.$refs.table) {
this.$refs.table.clear();
setTimeout(this.$refs.table.doLayout, 200);
+ this.$nextTick(() => {
+ checkTableRowIsSelect(this, this.condition, this.tableData, this.$refs.table, this.$refs.table.selectRows);
+ });
}
- this.$nextTick(() => {
- checkTableRowIsSelect(this, this.condition, this.tableData, this.$refs.table, this.$refs.table.selectRows);
- });
});
}
},
diff --git a/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiScenarioList.vue b/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiScenarioList.vue
index cd21489ddf..015bc27d2f 100644
--- a/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiScenarioList.vue
+++ b/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiScenarioList.vue
@@ -8,92 +8,80 @@
@relevanceCase="$emit('relevanceCase', 'scenario')"/>
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
+
+
+ sortable
+ :filters="LEVEL_FILTERS">
+
-
-
+
-
-
-
+
+
+
+
-
-
-
- {{ scope.row.updateTime | timestampFormatDate }}
-
-
-
-
- {{ scope.row.createTime | timestampFormatDate }}
-
-
-
-
+
+
+
+
+
+
+
+ :label="$t('api_test.automation.last_result')">
{{ $t('api_test.automation.success') }}
@@ -102,30 +90,14 @@
{{ $t('api_test.automation.fail') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
@@ -139,7 +111,7 @@
+ :select-row="this.$refs.table ? this.$refs.table.selectRows : new Set()" ref="batchEdit" @batchEdit="batchEdit"/>
@@ -147,7 +119,6 @@
@@ -537,7 +462,4 @@ export default {
/* margin-bottom: 0px;*/
/*}*/
-.ms-select-all-fixed >>> th:nth-child(2) .el-icon-arrow-down {
- top: -4px;
-}
diff --git a/frontend/src/common/js/default-table-header.js b/frontend/src/common/js/default-table-header.js
index fc7863aaaf..31839a2bf7 100644
--- a/frontend/src/common/js/default-table-header.js
+++ b/frontend/src/common/js/default-table-header.js
@@ -138,8 +138,9 @@ export const CUSTOM_TABLE_HEADER = {
{id: 'custom', key: '6', label: i18n.t('api_test.definition.api_last_time')},
{id: 'tags', key: '7', label: i18n.t('commons.tag')},
{id: 'execResult', key: '8', label: '执行状态'},
- {id: 'maintainer', key: '9', label: i18n.t('api_test.definition.request.responsible')}
-
+ {id: 'maintainer', key: '9', label: i18n.t('api_test.definition.request.responsible')},
+ {id: 'updateTime', key: 'a', label: i18n.t('api_test.automation.update_time')},
+ {id: 'createTime', key: 'b', label: i18n.t('commons.create_time')},
],
//测试计划-性能用例
TEST_PLAN_LOAD_CASE: [
@@ -158,12 +159,13 @@ export const CUSTOM_TABLE_HEADER = {
{id: 'name', key: '2', label: i18n.t('api_test.automation.scenario_name')},
{id: 'level', key: '3', label: i18n.t('api_test.automation.case_level')},
{id: 'tagNames', key: '4', label: i18n.t('api_test.automation.tag')},
- {id: 'userId', key: '5', label: i18n.t('api_test.automation.creator')},
- {id: 'updateTime', key: '6', label: i18n.t('api_test.automation.update_time')},
{id: 'stepTotal', key: '7', label: i18n.t('api_test.automation.success')},
{id: 'lastResult', key: '8', label: i18n.t('api_test.automation.fail')},
{id: 'passRate', key: '9', label: i18n.t('api_test.automation.passing_rate')},
- {id: 'maintainer', key: 'a', label: i18n.t('api_test.definition.request.responsible')}
+ {id: 'maintainer', key: 'a', label: i18n.t('api_test.definition.request.responsible')},
+ {id: 'userId', key: '5', label: i18n.t('api_test.automation.creator')},
+ {id: 'updateTime', key: '6', label: i18n.t('api_test.automation.update_time')},
+ {id: 'createTime', key: 'b', label: i18n.t('commons.create_time')},
],
//测试用例
TRACK_TEST_CASE: [