Merge remote-tracking branch 'origin/main'

This commit is contained in:
liqiang-fit2cloud 2022-10-21 15:54:59 +08:00
commit f03c0ee8b0
19 changed files with 94 additions and 29 deletions

View File

@ -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;
} }

View File

@ -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">

View File

@ -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",

View File

@ -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: "环境设置",

View File

@ -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: "環境設置",

View File

@ -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>

View File

@ -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">

View File

@ -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"

View File

@ -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"

View File

@ -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">

View File

@ -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>{{

View File

@ -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';

View File

@ -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"
}, },
{ {

View File

@ -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) {

View File

@ -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>

View File

@ -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());

View File

@ -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,

View File

@ -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,

View File

@ -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,