This commit is contained in:
chenjianxing 2021-01-26 16:36:57 +08:00
commit 7658916438
20 changed files with 305 additions and 21 deletions

View File

@ -243,21 +243,23 @@ public class APIBackendListenerClient extends AbstractBackendListenerClient impl
BaseSystemConfigDTO baseSystemConfigDTO = systemParameterService.getBaseInfo(); BaseSystemConfigDTO baseSystemConfigDTO = systemParameterService.getBaseInfo();
String url = reportUrl; String url = reportUrl;
String url2 = reportUrl;
if (StringUtils.isEmpty(url)) { if (StringUtils.isEmpty(url)) {
url = baseSystemConfigDTO.getUrl() + "/#/api/report/view/" + report.getId(); url = baseSystemConfigDTO.getUrl() + "/#/api/report/view/" + report.getId();
url2 = baseSystemConfigDTO.getUrl() + "/#/api/automation/report";
} }
String successContext = ""; String successContext = "";
String failedContext = ""; String failedContext = "";
String subject = ""; String subject = "";
String event = ""; String event = "";
if (StringUtils.equals(ReportTriggerMode.API.name(), report.getTriggerMode())) { if (StringUtils.equals(ReportTriggerMode.API.name(), report.getTriggerMode())) {
successContext = "接口测试 API任务通知:'" + report.getName() + "'执行成功" + "\n" + "请点击下面链接进入测试报告页面" + "\n" + url; successContext = "接口测试 API任务通知:'" + report.getName() + "'执行成功" + "\n" + "请点击下面链接进入测试报告页面" + "\n" + "旧版接口测试路径" + url + "\n" + "新版接口测试路径" + url2;
failedContext = "接口测试 API任务通知:'" + report.getName() + "'执行失败" + "\n" + "请点击下面链接进入测试报告页面" + "\n" + url; failedContext = "接口测试 API任务通知:'" + report.getName() + "'执行失败" + "\n" + "请点击下面链接进入测试报告页面" + "\n" + "旧版接口测试路径" + url + "\n" + "新版接口测试路径" + url2;
subject = Translator.get("task_notification_jenkins"); subject = Translator.get("task_notification_jenkins");
} }
if (StringUtils.equals(ReportTriggerMode.SCHEDULE.name(), report.getTriggerMode())) { if (StringUtils.equals(ReportTriggerMode.SCHEDULE.name(), report.getTriggerMode())) {
successContext = "接口测试定时任务通知:'" + report.getName() + "'执行成功" + "\n" + "请点击下面链接进入测试报告页面" + "\n" + url; successContext = "接口测试定时任务通知:'" + report.getName() + "'执行成功" + "\n" + "请点击下面链接进入测试报告页面" + "\n" + "旧版接口测试路径" + url + "\n" + "新版接口测试路径" + url2;
failedContext = "接口测试定时任务通知:'" + report.getName() + "'执行失败" + "\n" + "请点击下面链接进入测试报告页面" + "\n" + url; failedContext = "接口测试定时任务通知:'" + report.getName() + "'执行失败" + "\n" + "请点击下面链接进入测试报告页面" + "\n" + "旧版接口测试路径" + url + "\n" + "新版接口测试路径" + url2;
subject = Translator.get("task_notification"); subject = Translator.get("task_notification");
} }
if (StringUtils.equals("Success", report.getStatus())) { if (StringUtils.equals("Success", report.getStatus())) {

View File

@ -14,6 +14,8 @@
<p>您所执行的 ${testName} 接口测试运行失败<br/> <p>您所执行的 ${testName} 接口测试运行失败<br/>
请点击下面链接进入测试报告页面</p> 请点击下面链接进入测试报告页面</p>
<a href="${url}/#/${type}/report/view/${id}">${url}/#/${type}/report/view/${id}</a> <a href="${url}/#/${type}/report/view/${id}">${url}/#/${type}/report/view/${id}</a>
<p>新版接口测试报告路径</p>
<a href="${url}/#/api/automation">${url}/#/api/automation</a>
</div> </div>
</div> </div>

View File

@ -13,6 +13,8 @@
<p>您所执行的 ${testName} 接口测试运行成功<br/> <p>您所执行的 ${testName} 接口测试运行成功<br/>
请点击下面链接进入测试报告页面</p> 请点击下面链接进入测试报告页面</p>
<a href="${url}/#/${type}/report/view/${id}">${url}/#/${type}/report/view/${id}</a> <a href="${url}/#/${type}/report/view/${id}">${url}/#/${type}/report/view/${id}</a>
<p>新版接口测试报告路径</p>
<a href="${url}/#/api/automation">${url}/#/api/automation</a>
</div> </div>
</body> </body>
</html> </html>

View File

@ -148,7 +148,7 @@
<!-- 步骤组件--> <!-- 步骤组件-->
<ms-component-config :type="data.type" :scenario="data" :response="response" :currentScenario="currentScenario" <ms-component-config :type="data.type" :scenario="data" :response="response" :currentScenario="currentScenario"
:currentEnvironmentId="currentEnvironmentId" :node="node" :currentEnvironmentId="currentEnvironmentId" :node="node"
@remove="remove" @copyRow="copyRow" @suggestClick="suggestClick"/> @remove="remove" @copyRow="copyRow" @suggestClick="suggestClick" @refReload="reload"/>
</span> </span>
</el-tree> </el-tree>
</div> </div>
@ -423,7 +423,6 @@
document.removeEventListener("keydown", this.createCtrlSHandle); document.removeEventListener("keydown", this.createCtrlSHandle);
}, },
createCtrlSHandle(event) { createCtrlSHandle(event) {
console.log("create ctrl + s");
handleCtrlSEvent(event, this.editScenario); handleCtrlSEvent(event, this.editScenario);
}, },
getIdx(index) { getIdx(index) {
@ -884,7 +883,6 @@
} }
this.enableCookieShare = obj.enableCookieShare; this.enableCookieShare = obj.enableCookieShare;
this.scenarioDefinition = obj.hashTree; this.scenarioDefinition = obj.hashTree;
console.log(this.scenarioDefinition)
} }
} }
if (this.currentScenario.copy) { if (this.currentScenario.copy) {

View File

@ -12,7 +12,7 @@
<span @click.stop> <span @click.stop>
<slot name="headerLeft"> <slot name="headerLeft">
<i class="icon el-icon-arrow-right" :class="{'is-active': data.active}" <i class="icon el-icon-arrow-right" :class="{'is-active': data.active}"
@click="active(data)"/> @click="active(data)" v-if="data.type!='scenario'"/>
<el-input :draggable="draggable" v-if="isShowInput && isShowNameInput" size="small" v-model="data.name" class="name-input" <el-input :draggable="draggable" v-if="isShowInput && isShowNameInput" size="small" v-model="data.name" class="name-input"
@blur="isShowInput = false" :placeholder="$t('commons.input_name')" ref="nameEdit"/> @blur="isShowInput = false" :placeholder="$t('commons.input_name')" ref="nameEdit"/>
<span v-else> <span v-else>

View File

@ -38,11 +38,15 @@
}, },
watch: {}, watch: {},
created() { created() {
if (this.scenario.id && this.scenario.referenced === 'REF') { if (this.scenario.id && this.scenario.referenced === 'REF' && !this.scenario.loaded) {
this.result = this.$get("/api/automation/getApiScenario/" + this.scenario.id, response => { this.result = this.$get("/api/automation/getApiScenario/" + this.scenario.id, response => {
if (response.data) { if (response.data) {
this.scenario.loaded = true;
if (response.data.scenarioDefinition) {
this.scenario.hashTree = JSON.parse(response.data.scenarioDefinition).hashTree;
}
this.scenario.name = response.data.name; this.scenario.name = response.data.name;
this.reload(); this.$emit('refReload');
} else { } else {
this.scenario.referenced = "Deleted"; this.scenario.referenced = "Deleted";
} }

View File

@ -2,7 +2,7 @@
<div class="request-form"> <div class="request-form">
<component :is="component" :scenario="scenario" :controller="scenario" :timer="scenario" :assertions="scenario" :extract="scenario" :jsr223-processor="scenario" :request="scenario" :currentScenario="currentScenario" :currentEnvironmentId="currentEnvironmentId" :node="node" <component :is="component" :scenario="scenario" :controller="scenario" :timer="scenario" :assertions="scenario" :extract="scenario" :jsr223-processor="scenario" :request="scenario" :currentScenario="currentScenario" :currentEnvironmentId="currentEnvironmentId" :node="node"
:draggable="true" :title="title" :color="titleColor" :background-color="backgroundColor" @suggestClick="suggestClick(node)" :response="response" :draggable="true" :title="title" :color="titleColor" :background-color="backgroundColor" @suggestClick="suggestClick(node)" :response="response"
@remove="remove" @copyRow="copyRow"/> @remove="remove" @copyRow="copyRow" @refReload="refReload"/>
</div> </div>
</template> </template>
@ -107,6 +107,9 @@
suggestClick(node) { suggestClick(node) {
this.$emit('suggestClick', node); this.$emit('suggestClick', node);
}, },
refReload(){
this.$emit('refReload');
}
} }
} }
</script> </script>

View File

@ -6,6 +6,26 @@
@click="handleAddTaskModel"> @click="handleAddTaskModel">
{{ $t('organization.message.create_new_notification') }} {{ $t('organization.message.create_new_notification') }}
</el-button> </el-button>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="title">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.mail_template_example') }}
</el-button>
</el-popover>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="robotTitle">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.robot_template') }}
</el-button>
</el-popover>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -134,7 +154,35 @@ export default {
}, },
data() { data() {
return { return {
title: '<!DOCTYPE html>\n' +
'<html lang="en">\n' +
'<head>\n' +
' <meta charset="UTF-8">\n' +
' <title>MeterSphere</title>\n' +
'</head>\n' +
'<body>\n' +
'<div>\n' +
' <div style="text-align: left">\n' +
' <p>尊敬的用户:</p>\n' +
' <p style="margin-left: 60px">您好:\n' +
' </div>\n' +
' <div style="margin-left: 100px">\n' +
' <p>您所执行的 ${testName} 接口测试运行失败<br/>\n' +
' 请点击下面链接进入测试报告页面</p>\n' +
' <a href="${url}/#/${type}/report/view/${id}">${url}/#/${type}/report/view/${id}</a>\n' +
' <p>新版接口测试报告路径</p>\n' +
' <a href="${url}/#/api/automation">${url}/#/api/automation</a>\n' +
' </div>\n' +
'\n' +
'</div>\n' +
'</body>\n' +
'</html>',
robotTitle:
"测试【任务通知】:'您所执行的 ${testName} ${type}测试运行${status}\n" +
"请点击下面链接进入测试报告页面\n" +
"${url}/#/${type}/report/view/${id}" +
"新版接口测试报告路径\n" +
"${url}/#/api/automation",
scheduleTask: [{ scheduleTask: [{
taskType: "scheduleTask", taskType: "scheduleTask",
event: "", event: "",

View File

@ -181,7 +181,7 @@ export default {
methods: { methods: {
scheduleEdit() { scheduleEdit() {
if (!this.formData.swaggerUrl) { if (!this.formData.swaggerUrl) {
this.$warning(this.$t('commons.please_upload')); this.$warning(this.$t('commons.please_fill_path'));
this.swaggerSynchronization = !this.swaggerSynchronization this.swaggerSynchronization = !this.swaggerSynchronization
} else { } else {
if (this.swaggerSynchronization) { if (this.swaggerSynchronization) {

View File

@ -116,7 +116,7 @@
} }
.search-bar { .search-bar {
width: 200px width: 240px
} }
</style> </style>

View File

@ -6,6 +6,26 @@
<el-button icon="el-icon-circle-plus-outline" plain size="mini" @click="handleAddTaskModel"> <el-button icon="el-icon-circle-plus-outline" plain size="mini" @click="handleAddTaskModel">
{{ $t('organization.message.create_new_notification') }} {{ $t('organization.message.create_new_notification') }}
</el-button> </el-button>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="title">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.mail_template_example') }}
</el-button>
</el-popover>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="robotTitle">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.robot_template') }}
</el-button>
</el-popover>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -129,6 +149,19 @@ export default {
}, },
data() { data() {
return { return {
title: "<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>MeterSphere</title>\n" +
"</head>\n" +
"<body>\n" +
"<div>\n" +
" <p>${creator}发起了一个缺陷:${issuesName},请跟进</p>\n" +
"</div>\n" +
"</body>\n" +
"</html>",
robotTitle: "【任务通知】:${creator}发起了一个缺陷:${issuesName},请跟进",
defectTask: [{ defectTask: [{
taskType: "defectTask", taskType: "defectTask",
event: "", event: "",

View File

@ -6,6 +6,28 @@
<el-button icon="el-icon-circle-plus-outline" plain size="mini" @click="handleAddTaskModel"> <el-button icon="el-icon-circle-plus-outline" plain size="mini" @click="handleAddTaskModel">
{{ $t('organization.message.create_new_notification') }} {{ $t('organization.message.create_new_notification') }}
</el-button> </el-button>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="title">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.mail_template_example') }}
</el-button>
</el-popover>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="robotTitle">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.robot_template') }}
</el-button>
</el-popover>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -132,6 +154,35 @@ export default {
}, },
data() { data() {
return { return {
title: '<!DOCTYPE html>\n' +
'<html lang="en">\n' +
'<head>\n' +
' <meta charset="UTF-8">\n' +
' <title>MeterSphere</title>\n' +
'</head>\n' +
'<body>\n' +
'<div>\n' +
' <div style="text-align: left">\n' +
' <p>尊敬的用户:</p>\n' +
' <p style="margin-left: 60px">您好:\n' +
' </div>\n' +
' <div style="margin-left: 100px">\n' +
' <p>您所执行的 ${testName} 接口测试运行失败<br/>\n' +
' 请点击下面链接进入测试报告页面</p>\n' +
' <a href="${url}/#/${type}/report/view/${id}">${url}/#/${type}/report/view/${id}</a>\n' +
' <p>新版接口测试报告路径</p>\n' +
' <a href="${url}/#/api/automation">${url}/#/api/automation</a>\n' +
' </div>\n' +
'\n' +
'</div>\n' +
'</body>\n' +
'</html>',
robotTitle:
"测试【任务通知】:'您所执行的 ${testName} ${type}测试运行${status}\n" +
"请点击下面链接进入测试报告页面\n" +
"${url}/#/${type}/report/view/${id}" +
"新版接口测试报告路径\n" +
"${url}/#/api/automation",
jenkinsTask: [{ jenkinsTask: [{
taskType: "jenkinsTask", taskType: "jenkinsTask",
event: "", event: "",

View File

@ -6,6 +6,26 @@
@click="handleAddTaskModel"> @click="handleAddTaskModel">
{{ $t('organization.message.create_new_notification') }} {{ $t('organization.message.create_new_notification') }}
</el-button> </el-button>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="title">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.mail_template_example') }}
</el-button>
</el-popover>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="robotTitle">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.robot_template') }}
</el-button>
</el-popover>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -135,7 +155,35 @@ export default {
}, },
data() { data() {
return { return {
title: '<!DOCTYPE html>\n' +
'<html lang="en">\n' +
'<head>\n' +
' <meta charset="UTF-8">\n' +
' <title>MeterSphere</title>\n' +
'</head>\n' +
'<body>\n' +
'<div>\n' +
' <div style="text-align: left">\n' +
' <p>尊敬的用户:</p>\n' +
' <p style="margin-left: 60px">您好:\n' +
' </div>\n' +
' <div style="margin-left: 100px">\n' +
' <p>您所执行的 ${testName} 接口测试运行失败<br/>\n' +
' 请点击下面链接进入测试报告页面</p>\n' +
' <a href="${url}/#/${type}/report/view/${id}">${url}/#/${type}/report/view/${id}</a>\n' +
' <p>新版接口测试报告路径</p>\n' +
' <a href="${url}/#/api/automation">${url}/#/api/automation</a>\n' +
' </div>\n' +
'\n' +
'</div>\n' +
'</body>\n' +
'</html>',
robotTitle:
"测试【任务通知】:'您所执行的 ${testName} ${type}测试运行${status}\n" +
"请点击下面链接进入测试报告页面\n" +
"${url}/#/${type}/report/view/${id}" +
"新版接口测试报告路径\n" +
"${url}/#/api/automation",
scheduleTask: [{ scheduleTask: [{
taskType: "scheduleTask", taskType: "scheduleTask",
event: "", event: "",

View File

@ -6,6 +6,26 @@
<el-button icon="el-icon-circle-plus-outline" plain size="mini" @click="handleAddTaskModel"> <el-button icon="el-icon-circle-plus-outline" plain size="mini" @click="handleAddTaskModel">
{{ $t('organization.message.create_new_notification') }} {{ $t('organization.message.create_new_notification') }}
</el-button> </el-button>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="title">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.mail_template_example') }}
</el-button>
</el-popover>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="robotTitle">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.robot_template') }}
</el-button>
</el-popover>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -130,6 +150,27 @@ export default {
}, },
data() { data() {
return { return {
title: "<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>MeterSphere</title>\n" +
"</head>\n" +
"<body>\n" +
"<div>\n" +
" <p style=\"text-align: left\">${creator} 创建的:<br>\n" +
" ${testPlanName}<br>\n" +
" 计划开始时间是:${start}<br>\n" +
" 计划结束时间为:${end}<br>\n" +
" 请跟进!<br>\n" +
" 点击下面链接进入测试计划页面</p>\n" +
" <a href=\"${url}/#/track/plan/all\">${url}/#/track/plan/all</a>\n" +
"</div>\n" +
"</body>\n" +
"</html>",
robotTitle:
" 【任务通知】:${creator} 创建的:${testPlanName}计划开始时间是:${start}计划结束时间是:${end}请跟进!/ ${status}" +
"点击下面链接进入测试计划页面${url}/#/track/plan/all",
testCasePlanTask: [{ testCasePlanTask: [{
taskType: "testPlanTask", taskType: "testPlanTask",
event: "", event: "",

View File

@ -6,6 +6,26 @@
<el-button icon="el-icon-circle-plus-outline" plain size="mini" @click="handleAddTaskModel"> <el-button icon="el-icon-circle-plus-outline" plain size="mini" @click="handleAddTaskModel">
{{ $t('organization.message.create_new_notification') }} {{ $t('organization.message.create_new_notification') }}
</el-button> </el-button>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="title">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.mail_template_example') }}
</el-button>
</el-popover>
<el-popover
placement="right-end"
title="示例"
width="400"
trigger="click"
:content="robotTitle">
<el-button icon="el-icon-warning" plain size="mini" slot="reference">
{{ $t('organization.message.robot_template') }}
</el-button>
</el-popover>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -130,6 +150,26 @@ export default {
}, },
data() { data() {
return { return {
title: "<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>MeterSphere</title>\n" +
"</head>\n" +
"<body>\n" +
"<div>\n" +
" <p style=\"text-align: left\">${creator} 创建的:<br>\n" +
" ${reviewName}待开始<br>\n" +
" 计划开始时间是:${start}<br>\n" +
" 计划结束时间为:${end}<br>\n" +
" 请跟进!/${status}<br>\n" +
" 点击下面链接进入评审页面进行审核</p>\n" +
" <a href=\"${url}/#/track/review/view/${id}\">${url}/#/track/review/view/${id}</a>\n" +
"</div>\n" +
"</body>\n" +
"</html>",
robotTitle: "【任务通知】:${creator} 创建的:${reviewName}待开始,计划开始时间是:${start}," +
"计划结束时间是:${end}请跟进!/ ${status}!点击下面链接进入测试评审页面${url}/#/track/review/view/${id}",
reviewTask: [{ reviewTask: [{
taskType: "reviewTask", taskType: "reviewTask",
event: "", event: "",

View File

@ -3,7 +3,7 @@
:condition="condition" :condition="condition"
@search="$emit('refresh')" @search="$emit('refresh')"
:show-create="false" :show-create="false"
:tip="$t('commons.search_by_name_or_id')"> :tip="$t('commons.search_by_id_name_tag')">
<template v-slot:title> <template v-slot:title>
接口用例 接口用例
</template> </template>

View File

@ -3,7 +3,7 @@
<el-card class="card-content" v-loading="result.loading"> <el-card class="card-content" v-loading="result.loading">
<template v-slot:header> <template v-slot:header>
<ms-table-header :is-tester-permission="true" :condition.sync="condition" @search="initTableData" <ms-table-header :is-tester-permission="true" :condition.sync="condition" @search="initTableData"
:show-create="false" :tip="$t('commons.search_by_name_or_id')"> :show-create="false" :tip="$t('commons.search_by_id_name_tag')">
<template v-slot:title> <template v-slot:title>
<node-breadcrumb class="table-title" :nodes="selectParentNodes" @refresh="breadcrumbRefresh"/> <node-breadcrumb class="table-title" :nodes="selectParentNodes" @refresh="breadcrumbRefresh"/>
</template> </template>

View File

@ -71,7 +71,8 @@ export default {
not_filled: 'Not filled', not_filled: 'Not filled',
please_select: 'Please select', please_select: 'Please select',
search_by_name: 'Search by name', search_by_name: 'Search by name',
search_by_name_or_id: 'Search by name or id', search_by_name_or_id: 'Search by ID/NAME',
search_by_id_name_tag: 'Search by ID/NAME/TAG',
personal_information: 'Personal Information', personal_information: 'Personal Information',
exit_system: 'Exit System', exit_system: 'Exit System',
verification: 'Verification', verification: 'Verification',
@ -123,6 +124,7 @@ export default {
required: "{0} is required", required: "{0} is required",
millisecond: 'ms', millisecond: 'ms',
please_upload: 'Please upload file', please_upload: 'Please upload file',
please_fill_path: 'Please fill in the path',
reference_documentation: "Reference documentation", reference_documentation: "Reference documentation",
already_exists: 'The name already exists', already_exists: 'The name already exists',
modifier: 'Modifier', modifier: 'Modifier',
@ -250,6 +252,8 @@ export default {
test_review_task_notice: 'Test review task notice', test_review_task_notice: 'Test review task notice',
defect_task_notification: 'Defect task notification', defect_task_notification: 'Defect task notification',
create_new_notification: 'Create a new notification', create_new_notification: 'Create a new notification',
mail_template_example: 'Mail template',
robot_template: 'Robot template',
select_events: 'Select event', select_events: 'Select event',
select_receiving_method: 'Select receiving method', select_receiving_method: 'Select receiving method',
mail: 'mail', mail: 'mail',

View File

@ -72,7 +72,8 @@ export default {
not_filled: '未填写', not_filled: '未填写',
please_select: '请选择', please_select: '请选择',
search_by_name: '根据名称搜索', search_by_name: '根据名称搜索',
search_by_name_or_id: '根据ID或名称搜索', search_by_name_or_id: '根据 ID/名称 搜索',
search_by_id_name_tag: '根据 ID/名称/标签 搜索',
personal_information: '个人信息', personal_information: '个人信息',
exit_system: '退出系统', exit_system: '退出系统',
verification: '验证', verification: '验证',
@ -118,6 +119,7 @@ export default {
input_login_username: '请输入用户 ID 或 邮箱', input_login_username: '请输入用户 ID 或 邮箱',
input_name: '请输入名称', input_name: '请输入名称',
please_upload: '请上传文件', please_upload: '请上传文件',
please_fill_path: '请填写ur路径',
formatErr: '格式错误', formatErr: '格式错误',
please_save: '请先保存', please_save: '请先保存',
reference_documentation: "参考文档", reference_documentation: "参考文档",
@ -251,6 +253,8 @@ export default {
test_plan_task_notification: '测试计划任务通知', test_plan_task_notification: '测试计划任务通知',
test_review_task_notice: '测试评审任务通知', test_review_task_notice: '测试评审任务通知',
create_new_notification: '创建新通知', create_new_notification: '创建新通知',
mail_template_example: '邮件模版',
robot_template: '机器人模版',
select_events: '选择事件', select_events: '选择事件',
defect_task_notification: '缺陷任务通知', defect_task_notification: '缺陷任务通知',
select_receiving_method: '选择接收方式', select_receiving_method: '选择接收方式',

View File

@ -72,7 +72,8 @@ export default {
not_filled: '未填寫', not_filled: '未填寫',
please_select: '請選擇', please_select: '請選擇',
search_by_name: '根據名稱搜索', search_by_name: '根據名稱搜索',
search_by_name_or_id: '根據ID或名稱搜索', search_by_name_or_id: '根據 ID/名稱 搜索',
search_by_id_name_tag: '根據 ID/名稱/標籤 搜索',
personal_information: '個人信息', personal_information: '個人信息',
exit_system: '退出系統', exit_system: '退出系統',
verification: '驗證', verification: '驗證',
@ -118,6 +119,7 @@ export default {
input_login_username: '請輸入用戶 ID 或 郵箱', input_login_username: '請輸入用戶 ID 或 郵箱',
input_name: '請輸入名稱', input_name: '請輸入名稱',
please_upload: '請上傳文件', please_upload: '請上傳文件',
please_fill_path: '請填寫ur路徑',
formatErr: '格式錯誤', formatErr: '格式錯誤',
please_save: '請先保存', please_save: '請先保存',
reference_documentation: "參考文檔", reference_documentation: "參考文檔",
@ -251,6 +253,8 @@ export default {
test_plan_task_notification: '測試計劃任務通知', test_plan_task_notification: '測試計劃任務通知',
test_review_task_notice: '測試評審任務通知', test_review_task_notice: '測試評審任務通知',
create_new_notification: '創建新通知', create_new_notification: '創建新通知',
mail_template_example: '郵件範本示例',
robot_template: '機器人模版',
select_events: '選擇事件', select_events: '選擇事件',
defect_task_notification: '缺陷任務通知', defect_task_notification: '缺陷任務通知',
select_receiving_method: '選擇接收方式', select_receiving_method: '選擇接收方式',