Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	frontend/src/i18n/en_US.js
#	frontend/src/i18n/zh_CN.js
This commit is contained in:
shiziyuan9527 2020-02-26 18:43:13 +08:00
commit e1d8323604
8 changed files with 54 additions and 39 deletions

View File

@ -18,6 +18,9 @@
<if test="request.workspaceId != null">
AND project.workspace_id = #{request.workspaceId}
</if>
<if test="request.projectId != null">
AND project.id = #{request.projectId}
</if>
</where>
<if test="request.recent">
order by load_test.update_time desc

View File

@ -2,6 +2,7 @@ const en_US = {
commons: {
'workspace': 'Workspace',
'organization': 'Organization',
'project': 'Project',
'name': 'Name',
'description': 'Description',
'save': 'Save',
@ -21,7 +22,7 @@ const en_US = {
'input_name': 'Please enter a workspace name',
'input_name_2_50': '2 to 50 characters in length',
'search_by_name': 'Search by name',
'organization_name': 'Organizationn Name',
'organization_name': 'Organization Name',
'please_choose_organization': 'Please Choose Organization',
},
organization: {
@ -34,7 +35,10 @@ const en_US = {
'special_characters_are_not_supported': 'Special characters are not supported',
},
project: {
'recent': 'Recent Projects'
'recent': 'Recent Projects',
'create': 'Create Project',
'delete_confirm': 'Are you sure you want to delete this project?',
'search_by_name': 'Search by name',
},
i18n: {
'home': 'Home',

View File

@ -2,6 +2,7 @@ const zh_CN = {
commons: {
'workspace': '工作空间',
'organization': '组织',
'project': '项目',
'name': '名称',
'description': '描述',
'save': '保存',
@ -34,7 +35,10 @@ const zh_CN = {
'special_characters_are_not_supported': '不支持特殊字符',
},
project: {
'recent': '最近的项目'
'recent': '最近的项目',
'create': '创建项目',
'delete_confirm': '这个项目确定要删除吗?',
'search_by_name': '根据名称搜索',
},
i18n: {
'home': '首页',

View File

@ -18,7 +18,7 @@
<template slot="title">测试</template>
<ms-recent-test-plan/>
<el-divider/>
<el-menu-item index="/allTest">
<el-menu-item index="/allTest/all">
<font-awesome-icon :icon="['fa', 'list-ul']"/>
<span style="padding-left: 5px;">所有测试</span>
</el-menu-item>

View File

@ -5,18 +5,19 @@
<div slot="header">
<el-row type="flex" justify="space-between" align="middle">
<span class="title">
项目
{{$t('commons.project')}}
<ms-create-box :tips="btnTips" :exec="create"/>
</span>
<span class="search">
<el-input type="text" size="small" placeholder="根据名称搜索" prefix-icon="el-icon-search"
<el-input type="text" size="small" :placeholder="$t('project.search_by_name')"
prefix-icon="el-icon-search"
maxlength="60" v-model="condition" clearable/>
</span>
</el-row>
</div>
<el-table :data="items" style="width: 100%">
<el-table-column prop="name" label="名称"/>
<el-table-column prop="description" label="描述"/>
<el-table-column prop="name" :label="$t('commons.name')"/>
<el-table-column prop="description" :label="$t('commons.description')"/>
<el-table-column>
<template slot-scope="scope">
<el-button @click="edit(scope.row)" type="primary" icon="el-icon-edit" size="mini" circle/>
@ -43,17 +44,17 @@
</div>
</el-card>
<el-dialog title="创建项目" :visible.sync="createVisible">
<el-dialog :title="$t('project.create')" :visible.sync="createVisible">
<el-form :model="form" :rules="rules" ref="form" label-position="left" label-width="100px" size="small">
<el-form-item label="名称">
<el-form-item :label="$t('commons.name')">
<el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="描述">
<el-form-item :label="$t('commons.description')">
<el-input type="textarea" v-model="form.description"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submit('form')" size="medium">创建</el-button>
<el-button type="primary" @click="submit('form')" size="medium">{{$t('commons.save')}}</el-button>
</div>
</el-dialog>
</div>
@ -71,7 +72,7 @@
return {
createVisible: false,
result: {},
btnTips: "添加项目",
btnTips: this.$t('project.create'),
condition: "",
items: [],
form: {},
@ -99,7 +100,7 @@
},
edit(row) {
this.createVisible = true;
this.form = row;
this.form = Object.assign({}, row);
},
submit(formName) {
this.$refs[formName].validate((valid) => {
@ -111,7 +112,7 @@
this.result = this.$post("/project/" + saveType, this.form, () => {
this.createVisible = false;
this.list();
Message.success('保存成功');
Message.success(this.$t('commons.save_success'));
});
} else {
return false;
@ -119,17 +120,15 @@
});
},
del(row) {
this.$confirm('这个项目确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
this.$confirm(this.$t('project.delete_confirm'), this.$t('commons.prompt'), {
confirmButtonText: this.$t('commons.confirm'),
cancelButtonText: this.$t('commons.cancel'),
type: 'warning'
}).then(() => {
}, () => {
this.$get('/project/delete/' + row.id, () => {
Message.success('删除成功');
Message.success(this.$t('commons.delete_success'));
this.list();
});
}).catch(() => {
});
},
list() {

View File

@ -1,11 +1,13 @@
<template>
<el-menu>
<el-menu router menu-trigger="click" :default-active="$route.path">
<div class="recent-text">
<i class="el-icon-time"/>
{{$t('project.recent')}}
</div>
<el-menu-item :key="recentProject.id" v-for="recentProject in recentProjects" @click="goTest(recentProject)">
{{ recentProject.name }}
<el-menu-item :key="p.id" v-for="p in recentProjects"
:index="'/allTest/' + p.id" :route="{name:'allTest', params:{projectId:p.id, projectName:p.name}}">
{{ p.name }}
</el-menu-item>
</el-menu>
</template>
@ -18,12 +20,7 @@
this.recentProjects = response.data;
});
},
methods: {
goTest(project) {
window.console.log(project);
// this.$router.push({path: '/allTest', params: {projectId: project.id, projectName: project.name}});
}
},
methods: {},
data() {
return {
recentProjects: [],

View File

@ -85,11 +85,11 @@ const router = new VueRouter({
}
},
{
path: "/allTest",
path: "/allTest/:projectId",
name: "allTest",
components: {
content: AllTestPlan
},
props: true,
},
{
path: "/project",

View File

@ -80,16 +80,13 @@
<script>
export default {
props: {
projectId: String,
projectName: String
},
data() {
return {
result: {},
queryPath: "/testplan/list",
deletePath: "/testplan/delete",
condition: "",
projectId: null,
tableData: [],
multipleSelection: [],
currentPage: 1,
@ -98,20 +95,31 @@
loading: false,
}
},
watch: {
'$route'(to) {
this.projectId = to.params.projectId;
this.initTableData();
}
},
created: function () {
this.projectId = this.$route.params.projectId;
this.initTableData();
},
methods: {
initTableData() {
let param = {
name: this.condition
name: this.condition,
};
if (this.projectId !== 'all') {
param.projectId = this.projectId;
}
this.result = this.$post(this.buildPagePath(this.queryPath), param, response => {
let data = response.data;
this.total = data.itemCount;
this.tableData = data.listObject;
})
});
},
search() {
this.initTableData();