Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
f03c0ee8b0
|
@ -261,7 +261,7 @@ export default {
|
||||||
|
|
||||||
.api-body-upload :deep(.el-upload-list__item) {
|
.api-body-upload :deep(.el-upload-list__item) {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
width: 100%;
|
width: auto;
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
<field-custom-data-table-item :scene="scene"/>
|
<field-custom-data-table-item :scene="scene"/>
|
||||||
|
|
||||||
<ms-table-column
|
<ms-table-column
|
||||||
:label="$t('api_definition.document.is_required')"
|
:label="$t('api_test.definition.document.table_coloum.is_required')"
|
||||||
width="80"
|
width="80"
|
||||||
prop="type">
|
prop="type">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
|
|
|
@ -2589,6 +2589,7 @@ const message = {
|
||||||
edit: "EDIT",
|
edit: "EDIT",
|
||||||
delete: "DELETE",
|
delete: "DELETE",
|
||||||
upload_jar: "UPLOAD JAR",
|
upload_jar: "UPLOAD JAR",
|
||||||
|
environment_config: "ENVIRONMENT CONFIG",
|
||||||
},
|
},
|
||||||
workspace_project_environment: {
|
workspace_project_environment: {
|
||||||
name: "Environment",
|
name: "Environment",
|
||||||
|
|
|
@ -2597,6 +2597,7 @@ const message = {
|
||||||
edit: "编辑项目",
|
edit: "编辑项目",
|
||||||
delete: "删除项目",
|
delete: "删除项目",
|
||||||
upload_jar: "上传jar包",
|
upload_jar: "上传jar包",
|
||||||
|
environment_config: "环境配置",
|
||||||
},
|
},
|
||||||
workspace_project_environment: {
|
workspace_project_environment: {
|
||||||
name: "环境设置",
|
name: "环境设置",
|
||||||
|
|
|
@ -2594,6 +2594,7 @@ const message = {
|
||||||
edit: "編輯項目",
|
edit: "編輯項目",
|
||||||
delete: "刪除項目",
|
delete: "刪除項目",
|
||||||
upload_jar: "上傳jar包",
|
upload_jar: "上傳jar包",
|
||||||
|
environment_config: "環境配置",
|
||||||
},
|
},
|
||||||
workspace_project_environment: {
|
workspace_project_environment: {
|
||||||
name: "環境設置",
|
name: "環境設置",
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
</ms-table-column>
|
</ms-table-column>
|
||||||
|
|
||||||
<ms-table-column
|
<ms-table-column
|
||||||
:label="$t('home.case.case_name')"
|
:label="$t('api_test.home_page.failed_case_list.table_coloum.case_name')"
|
||||||
:min-width="120"
|
:min-width="120"
|
||||||
prop="caseName">
|
prop="caseName">
|
||||||
</ms-table-column>
|
</ms-table-column>
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
<field-custom-data-table-item :scene="scene"/>
|
<field-custom-data-table-item :scene="scene"/>
|
||||||
|
|
||||||
<ms-table-column
|
<ms-table-column
|
||||||
:label="$t('api_definition.document.is_required')"
|
:label="$t('api_test.definition.document.table_coloum.is_required')"
|
||||||
width="80"
|
width="80"
|
||||||
prop="type">
|
prop="type">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<el-select
|
<el-select
|
||||||
:disabled="isSystem"
|
:disabled="isSystem"
|
||||||
filterable v-model="form.platform"
|
filterable v-model="form.platform"
|
||||||
:placeholder="$t('home.case.case_type')">
|
:placeholder="$t('api_test.home_page.failed_case_list.table_coloum.case_type')">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in platformOption"
|
v-for="item in platformOption"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
|
|
@ -11,10 +11,10 @@
|
||||||
ref="fieldTemplateEdit">
|
ref="fieldTemplateEdit">
|
||||||
|
|
||||||
<template v-slot:base>
|
<template v-slot:base>
|
||||||
<el-form-item :label="$t('home.case.case_type')" prop="type"
|
<el-form-item :label="$t('api_test.home_page.failed_case_list.table_coloum.case_type')" prop="type"
|
||||||
:label-width="labelWidth">
|
:label-width="labelWidth">
|
||||||
<el-select :disabled="isSystem" filterable v-model="form.type"
|
<el-select :disabled="isSystem" filterable v-model="form.type"
|
||||||
:placeholder="$t('home.case.case_type')">
|
:placeholder="$t('api_test.home_page.failed_case_list.table_coloum.case_type')">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in caseTypeOption"
|
v-for="item in caseTypeOption"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
</ms-table-column>
|
</ms-table-column>
|
||||||
|
|
||||||
<ms-table-column
|
<ms-table-column
|
||||||
:label="$t('home.case.case_type')"
|
:label="$t('api_test.home_page.failed_case_list.table_coloum.case_type')"
|
||||||
:fields="fields"
|
:fields="fields"
|
||||||
:filters="caseTypeFilters"
|
:filters="caseTypeFilters"
|
||||||
prop="type">
|
prop="type">
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
<span v-if="scope.row.scheduleStatus === 'OPEN'">
|
<span v-if="scope.row.scheduleStatus === 'OPEN'">
|
||||||
<el-tooltip placement="bottom-start" effect="light">
|
<el-tooltip placement="bottom-start" effect="light">
|
||||||
<div slot="content">
|
<div slot="content">
|
||||||
{{ $t('home.table.run_rule') }}: {{
|
{{ $t('api_test.home_page.running_task_list.table_coloum.run_rule') }}: {{
|
||||||
scope.row.scheduleCorn
|
scope.row.scheduleCorn
|
||||||
}}<br/>
|
}}<br/>
|
||||||
{{ $t('test_track.plan.next_run_time') }}:<span>{{
|
{{ $t('test_track.plan.next_run_time') }}:<span>{{
|
||||||
|
|
|
@ -11,4 +11,9 @@ INSERT INTO system_parameter (param_key, param_value, type, sort) VALUES ('meter
|
||||||
INSERT INTO system_parameter (param_key, param_value, type, sort) VALUES ('metersphere.module.setting', 'ENABLE', 'text', 1);
|
INSERT INTO system_parameter (param_key, param_value, type, sort) VALUES ('metersphere.module.setting', 'ENABLE', 'text', 1);
|
||||||
INSERT INTO system_parameter (param_key, param_value, type, sort) VALUES ('base.grid.concurrency', '8', 'text', 1);
|
INSERT INTO system_parameter (param_key, param_value, type, sort) VALUES ('base.grid.concurrency', '8', 'text', 1);
|
||||||
|
|
||||||
|
DELETE FROM user_group_permission WHERE permission_id = 'WORKSPACE_PROJECT_MANAGER:READ+UPLOAD_JAR';
|
||||||
|
|
||||||
|
INSERT INTO user_group_permission (id, group_id, permission_id, module_id)
|
||||||
|
SELECT UUID(), id, 'WORKSPACE_PROJECT_MANAGER:READ+ENVIRONMENT_CONFIG', 'WORKSPACE_PROJECT_MANAGER'
|
||||||
|
FROM `group`
|
||||||
|
WHERE type = 'WORKSPACE';
|
||||||
|
|
|
@ -181,8 +181,8 @@
|
||||||
"resourceId": "WORKSPACE_PROJECT_MANAGER"
|
"resourceId": "WORKSPACE_PROJECT_MANAGER"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "WORKSPACE_PROJECT_MANAGER:READ+UPLOAD_JAR",
|
"id": "WORKSPACE_PROJECT_MANAGER:READ+ENVIRONMENT_CONFIG",
|
||||||
"name": "permission.workspace_project_manager.upload_jar",
|
"name": "permission.workspace_project_manager.environment_config",
|
||||||
"resourceId": "WORKSPACE_PROJECT_MANAGER"
|
"resourceId": "WORKSPACE_PROJECT_MANAGER"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -214,7 +214,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
isLink(row) {
|
isLink(row) {
|
||||||
let uri = getUrl(row, this);
|
let uri = getUrl(row, this);
|
||||||
return (row.operType === 'UPDATE' || row.operType === 'CREATE' || row.operType === 'EXECUTE' || row.operType === 'DEBUG')
|
return (row.operType === 'UPDATE' || row.operType === 'CREATE' || row.operType === 'EXECUTE' || row.operType === 'DEBUG' || row.operType === 'COPY')
|
||||||
&& uri !== "/#";
|
&& uri !== "/#";
|
||||||
},
|
},
|
||||||
clickResource(resource) {
|
clickResource(resource) {
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
@deleteClick="handleDelete(scope.row)">
|
@deleteClick="handleDelete(scope.row)">
|
||||||
<template v-slot:behind>
|
<template v-slot:behind>
|
||||||
<ms-table-operator-button
|
<ms-table-operator-button
|
||||||
v-permission="['WORKSPACE_PROJECT_MANAGER:READ+EDIT']"
|
v-permission="['WORKSPACE_PROJECT_MANAGER:READ+ENVIRONMENT_CONFIG']"
|
||||||
:tip="$t('api_test.environment.environment_config')" icon="el-icon-setting"
|
:tip="$t('api_test.environment.environment_config')" icon="el-icon-setting"
|
||||||
type="info" @exec="openEnvironmentConfig(scope.row)"/>
|
type="info" @exec="openEnvironmentConfig(scope.row)"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -31,6 +31,7 @@ import java.io.File;
|
||||||
import java.net.URLDecoder;
|
import java.net.URLDecoder;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
|
@ -42,6 +43,7 @@ import java.util.stream.Collectors;
|
||||||
public class JiraPlatform extends AbstractIssuePlatform {
|
public class JiraPlatform extends AbstractIssuePlatform {
|
||||||
|
|
||||||
protected JiraClientV2 jiraClientV2;
|
protected JiraClientV2 jiraClientV2;
|
||||||
|
protected SimpleDateFormat sdfWithZone = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
|
||||||
|
|
||||||
public JiraPlatform(IssuesRequest issuesRequest) {
|
public JiraPlatform(IssuesRequest issuesRequest) {
|
||||||
super(issuesRequest);
|
super(issuesRequest);
|
||||||
|
@ -111,8 +113,8 @@ public class JiraPlatform extends AbstractIssuePlatform {
|
||||||
issue.setPlatform(key);
|
issue.setPlatform(key);
|
||||||
issue.setCustomFields(JSON.toJSONString(customFieldItems));
|
issue.setCustomFields(JSON.toJSONString(customFieldItems));
|
||||||
try {
|
try {
|
||||||
issue.setCreateTime(DateUtils.getTimestamp((String) fields.get("created")));
|
issue.setCreateTime(sdfWithZone.parse((String) fields.get("created")).getTime());
|
||||||
issue.setUpdateTime(DateUtils.getTimestamp((String) fields.get("updated")));
|
issue.setUpdateTime(sdfWithZone.parse((String) fields.get("updated")).getTime());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LogUtil.error(e);
|
LogUtil.error(e);
|
||||||
}
|
}
|
||||||
|
@ -465,17 +467,15 @@ public class JiraPlatform extends AbstractIssuePlatform {
|
||||||
} else if (StringUtils.equalsAny(item.getType(), "cascadingSelect")) {
|
} else if (StringUtils.equalsAny(item.getType(), "cascadingSelect")) {
|
||||||
if (item.getValue() != null) {
|
if (item.getValue() != null) {
|
||||||
Map attr = new LinkedHashMap<>();
|
Map attr = new LinkedHashMap<>();
|
||||||
if (item.getValue() instanceof List) {
|
List values = JSON.parseArray((String) item.getValue());
|
||||||
List values = JSON.parseArray((String) item.getValue());
|
if (CollectionUtils.isNotEmpty(values)) {
|
||||||
if (CollectionUtils.isNotEmpty(values)) {
|
if (values.size() > 0) {
|
||||||
if (values.size() > 0) {
|
attr.put("id", values.get(0));
|
||||||
attr.put("id", values.get(0));
|
}
|
||||||
}
|
if (values.size() > 1) {
|
||||||
if (values.size() > 1) {
|
Map param = new LinkedHashMap<>();
|
||||||
Map param = new LinkedHashMap<>();
|
param.put("id", values.get(1));
|
||||||
param.put("id", values.get(1));
|
attr.put("child", param);
|
||||||
attr.put("child", param);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
attr.put("id", item.getValue());
|
attr.put("id", item.getValue());
|
||||||
|
|
|
@ -2,7 +2,26 @@ import el from "element-ui/lib/locale/lang/en";
|
||||||
import fu from "fit2cloud-ui/src/locale/lang/en_US"; // 加载fit2cloud的内容
|
import fu from "fit2cloud-ui/src/locale/lang/en_US"; // 加载fit2cloud的内容
|
||||||
import mf from "metersphere-frontend/src/i18n/lang/en-US"
|
import mf from "metersphere-frontend/src/i18n/lang/en-US"
|
||||||
|
|
||||||
const message = {}
|
const message = {
|
||||||
|
home: {
|
||||||
|
table: {
|
||||||
|
index: "Index",
|
||||||
|
task_type: "Task Type",
|
||||||
|
run_rule: "Rule",
|
||||||
|
task_status: "Status",
|
||||||
|
next_execution_time: "Next Execution Time",
|
||||||
|
create_user: "Creator",
|
||||||
|
update_time: "Update time",
|
||||||
|
},
|
||||||
|
case: {
|
||||||
|
index: "Ranking",
|
||||||
|
case_name: "Case Name",
|
||||||
|
case_type: "Case Type",
|
||||||
|
test_plan: "Test Plan",
|
||||||
|
failure_times: "Failure times",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
export default {
|
export default {
|
||||||
...el,
|
...el,
|
||||||
...fu,
|
...fu,
|
||||||
|
|
|
@ -2,7 +2,26 @@ import el from "element-ui/lib/locale/lang/zh-CN"; // 加载element的内容
|
||||||
import fu from "fit2cloud-ui/src/locale/lang/zh-CN"; // 加载fit2cloud的内容
|
import fu from "fit2cloud-ui/src/locale/lang/zh-CN"; // 加载fit2cloud的内容
|
||||||
import mf from "metersphere-frontend/src/i18n/lang/zh-CN"
|
import mf from "metersphere-frontend/src/i18n/lang/zh-CN"
|
||||||
|
|
||||||
const message = {}
|
const message = {
|
||||||
|
home: {
|
||||||
|
table: {
|
||||||
|
index: "序号",
|
||||||
|
task_type: "任务类型",
|
||||||
|
run_rule: "运行规则",
|
||||||
|
task_status: "任务状态",
|
||||||
|
next_execution_time: "下次执行时间",
|
||||||
|
create_user: "创建人",
|
||||||
|
update_time: "更新时间",
|
||||||
|
},
|
||||||
|
case: {
|
||||||
|
index: "排名",
|
||||||
|
case_name: "用例名称",
|
||||||
|
case_type: "用例类型",
|
||||||
|
test_plan: "所属测试计划",
|
||||||
|
failure_times: "失败次数",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
...el,
|
...el,
|
||||||
|
|
|
@ -2,7 +2,26 @@ import el from "element-ui/lib/locale/lang/zh-TW";
|
||||||
import fu from "fit2cloud-ui/src/locale/lang/zh-TW"; // 加载fit2cloud的内容
|
import fu from "fit2cloud-ui/src/locale/lang/zh-TW"; // 加载fit2cloud的内容
|
||||||
import mf from "metersphere-frontend/src/i18n/lang/zh-TW"
|
import mf from "metersphere-frontend/src/i18n/lang/zh-TW"
|
||||||
|
|
||||||
const message = {}
|
const message = {
|
||||||
|
home: {
|
||||||
|
table: {
|
||||||
|
index: "序號",
|
||||||
|
task_type: "任務類型",
|
||||||
|
run_rule: "運行規則",
|
||||||
|
task_status: "任務狀態",
|
||||||
|
next_execution_time: "下次執行時間",
|
||||||
|
create_user: "創建人",
|
||||||
|
update_time: "更新時間",
|
||||||
|
},
|
||||||
|
case: {
|
||||||
|
index: "排名",
|
||||||
|
case_name: "用例名稱",
|
||||||
|
case_type: "用例類型",
|
||||||
|
test_plan: "所屬測試計劃",
|
||||||
|
failure_times: "失敗次數",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
...el,
|
...el,
|
||||||
|
|
Loading…
Reference in New Issue