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:
commit
e1d8323604
|
@ -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
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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': '首页',
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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: [],
|
||||
|
|
|
@ -85,11 +85,11 @@ const router = new VueRouter({
|
|||
}
|
||||
},
|
||||
{
|
||||
path: "/allTest",
|
||||
path: "/allTest/:projectId",
|
||||
name: "allTest",
|
||||
components: {
|
||||
content: AllTestPlan
|
||||
},
|
||||
props: true,
|
||||
},
|
||||
{
|
||||
path: "/project",
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue