Browse Source

优化

master
陈裕财 4 years ago
parent
commit
7e0ea7d5f6
  1. 2
      src/api/xm/core/xmTestCase.js
  2. 185
      src/views/xm/core/xmTestCase/XmTestCaseAdd.vue
  3. 91
      src/views/xm/core/xmTestCase/XmTestCaseEdit.vue
  4. 117
      src/views/xm/core/xmTestCase/XmTestCaseMng.vue

2
src/api/xm/core/xmTestCase.js

@ -35,7 +35,7 @@ export const editSomeFieldsXmTestCase = params => { return axios.post(`${base}/x
/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */
//初始化页面上的字典
export const initDicts = (that) => {
var itemCodes=['testPlanStatus','testPlanTcode','testStepTcode','priority'];//在此添加要加载的字典 如['sex','grade','lvl']
var itemCodes=['testPlanStatus','testPlanTcode','testStepTcode','priority','testCaseStatus'];//在此添加要加载的字典 如['sex','grade','lvl']
if(itemCodes.length>0){
initSimpleDicts('all',itemCodes).then(res=>{
Object.assign(that.dicts,res.data.data)

185
src/views/xm/core/xmTestCase/XmTestCaseAdd.vue

@ -1,185 +0,0 @@
<template>
<section class="page-container padding border">
<el-row>
<!--新增界面 XmTestCase 测试用例-->
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">
<el-form-item label="标题" prop="caseName">
<el-input v-model="addForm.caseName" placeholder="标题" ></el-input>
</el-form-item>
<el-form-item label="模块名称" prop="moduleName">
<el-input v-model="addForm.moduleName" placeholder="模块名称" ></el-input>
</el-form-item>
<el-form-item label="关联的需求" prop="menuId">
<el-tag v-if="addForm.menuName && addForm.menuName!=''" closable @close="clearFiltersMneu">{{addForm.menuName}}</el-tag>
<el-tag v-else>还没关联任何需求</el-tag>
<el-button @click="showMenu">关联需求</el-button>
</el-form-item>
<el-form-item label="测试步骤" prop="testStep">
<vue-editor v-if="visible" :id="'testStep3'" :branch-id="userInfo.branchId" v-model="addForm.testStep" ref="testStep" key="1"></vue-editor>
</el-form-item>
<el-form-item label="预期结果" prop="expectResult">
<vue-editor v-if="visible" :id="'expectResult3'" :branch-id="userInfo.branchId" v-model="addForm.expectResult" ref="expectResult" key="2"></vue-editor>
</el-form-item>
<el-form-item>
<el-button @click.native="handleCancel">取消</el-button>
<el-button v-loading="load.add" type="primary" @click.native="addSubmit" :disabled="load.add==true">提交</el-button>
<el-button v-loading="load.add" type="warning" @click.native="addSubmit(true)" :disabled="load.add==true">提交后继续新建</el-button>
</el-form-item>
</el-form>
<el-drawer append-to-body title="需求选择" :visible.sync="menuVisible" size="60%" :close-on-click-modal="false">
<xm-menu-select :xm-product="xmProduct" :visible="menuVisible" checkScope="3" :is-select-menu="true" :multi="true" @menus-selected="onSelectedMenus" ></xm-menu-select>
</el-drawer>
</el-row>
</section>
</template>
<script>
import util from '@/common/js/util';//
import {sn} from '@/common/js/sequence';//
import { initSimpleDicts } from '@/api/mdp/meta/item';//
import { addXmTestCase } from '@/api/xm/core/xmTestCase';
import { mapGetters } from 'vuex'
import xmMenuSelect from '../xmMenu/XmMenuSelect';
import VueEditor from '@/components/Tinymce/index';
export default {
computed: {
...mapGetters([
'userInfo','roles'
])
},
props:['xmTestCase','visible','xmProduct','xmMenu'],
watch: {
'xmTestCase':function( xmTestCase ) {
//this.addForm = xmTestCase;
},
'visible':function(visible) {
if(visible==true){
//
if(this.xmProduct && this.xmProduct.id){
this.addForm.productId=this.xmProduct.id
}else{
this.addForm.productId=''
}
if(this.xmMenu && this.xmMenu.menuId){
this.addForm.menuId=this.xmMenu.menuId
this.addForm.menuName=this.xmMenu.menuName
}else{
this.addForm.menuId=''
this.addForm.menuName=''
}
}
}
},
data() {
return {
dicts:{},// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
load:{ list: false, edit: false, del: false, add: false },//...
addFormRules: {
menuId: [
{ required: true, message: '需求不能为空', trigger: 'blur' }
],
caseName: [
{ required: true, message: '标题不能为空', trigger: 'blur' }
]
},
//
addForm: {
id:'',caseName:'',caseRemark:'',testStep:'',expectResult:'',menuId:'',menuName:'',ctime:'',ltime:'',luserid:'',lusername:'',cbranchId:'',moduleId:'',moduleName:'',caseStatus:'1'
},
/**begin 在下面加自定义属性,记得补上面的一个逗号**/
menuVisible:false,
/**end 在上面加自定义属性**/
}//end return
},//end data
methods: {
// @cancel="addFormVisible=false"
handleCancel:function(){
this.$refs['addForm'].resetFields();
this.$emit('cancel');
},
//XmTestCase @submit="afterAddSubmit"
addSubmit: function (next) {
this.$refs.addForm.validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.load.add=true
let params = Object.assign({}, this.addForm);
params.cbranchId=this.userInfo.branchId
params.luserid=this.userInfo.userid
params.lusername=this.userInfo.username
params.id=sn('case_')
addXmTestCase(params).then((res) => {
this.load.add=false
var tips=res.data.tips;
if(tips.isOk && next!=true){
this.$emit('submit');// @submit="afterAddSubmit"
}
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.add=false);
});
}
});
},
/**begin 在下面加自定义方法,记得补上面的一个逗号**/
showMenu(){
this.menuVisible=true;
},
onSelectedMenus(menus){
if(!menus || menus.length==0){
this.menuVisible=false
return;
}
this.menuVisible=false
this.addForm.menuId= menus[0].menuId
this.addForm.menuName= menus[0].menuName
this.$refs.addForm.validateField('menuId',valid=>{})
},
clearFiltersMneu(menu){
this.addForm.menuId=""
this.addForm.menuName=""
this.$refs.addForm.validateField('menuId',valid=>{})
}
/**end 在上面加自定义方法**/
},//end method
components: {
// 'xm-test-case-edit':XmTestCaseEdit
xmMenuSelect,VueEditor
},
mounted() {
if(this.xmProduct && this.xmProduct.id){
this.addForm.productId=this.xmProduct.id
}else{
this.addForm.productId=''
}
if(this.xmMenu && this.xmMenu.menuId){
this.addForm.menuId=this.xmMenu.menuId
this.addForm.menuName=this.xmMenu.menuName
}else{
this.addForm.menuId=''
this.addForm.menuName=''
}
//this.addForm=Object.assign(this.addForm, this.xmTestCase);
/**在下面写其它函数***/
}//end mounted
}
</script>
<style scoped>
</style>

91
src/views/xm/core/xmTestCase/XmTestCaseEdit.vue

@ -4,70 +4,38 @@
</el-row>
<el-row class="page-main" :style="{overflowX:'auto',height:maxTableHeight+'px'}" ref="table">
<!--编辑界面 XmTestCase 测试用例-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef">
<el-form-item label="主键" prop="id">
<el-input v-model="editForm.id" placeholder="主键" :maxlength="50" @change="editSomeFields(editForm,'id',$event)"></el-input>
</el-form-item>
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef" label-position="left">
<el-form-item label="标题" prop="caseName">
<el-input v-model="editForm.caseName" placeholder="标题" :maxlength="255" @change="editSomeFields(editForm,'caseName',$event)"></el-input>
</el-form-item>
<el-form-item label="备注" prop="caseRemark">
<el-input v-model="editForm.caseRemark" placeholder="备注" :maxlength="2147483647" @change="editSomeFields(editForm,'caseRemark',$event)"></el-input>
</el-form-item>
</el-form-item>
<el-form-item label="版本号" prop="verNum">
<el-input v-model="editForm.verNum" placeholder="版本号" :maxlength="50" @change="editSomeFields(editForm,'verNum',$event)"></el-input>
</el-form-item>
<el-form-item label="测试步骤" prop="testStep">
<el-input v-model="editForm.testStep" placeholder="测试步骤" :maxlength="2147483647" @change="editSomeFields(editForm,'testStep',$event)"></el-input>
</el-form-item>
<el-form-item label="关联需求" prop="menuName">
{{editForm.menuName?editForm.menuName:'暂无关联需求'}} <el-button type="text" @click="menuVisible=true">选择需求</el-button>
</el-form-item>
<el-form-item label="期望结果" prop="expectResult">
<el-input v-model="editForm.expectResult" placeholder="期望结果" :maxlength="2147483647" @change="editSomeFields(editForm,'expectResult',$event)"></el-input>
</el-form-item>
<el-form-item label="关联的故事" prop="menuId">
<el-input v-model="editForm.menuId" placeholder="关联的故事" :maxlength="50" @change="editSomeFields(editForm,'menuId',$event)"></el-input>
</el-form-item>
<el-form-item label="关联故事名" prop="menuName">
<el-input v-model="editForm.menuName" placeholder="关联故事名" :maxlength="255" @change="editSomeFields(editForm,'menuName',$event)"></el-input>
<el-form-item label="关联模块" prop="funcName">
{{editForm.funcName?editForm.funcName:'暂无关联模块'}} <el-button type="text" @click="funcVisible=true">选择模块</el-button>
</el-form-item>
<el-form-item label="创建时间" prop="ctime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.ctime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="更新时间" prop="ltime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.ltime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="更新人编号" prop="luserid">
<el-input v-model="editForm.luserid" placeholder="更新人编号" :maxlength="50" @change="editSomeFields(editForm,'luserid',$event)"></el-input>
</el-form-item>
</el-form-item>
<el-form-item label="更新人姓名" prop="lusername">
<el-input v-model="editForm.lusername" placeholder="更新人姓名" :maxlength="255" @change="editSomeFields(editForm,'lusername',$event)"></el-input>
</el-form-item>
<el-form-item label="创建机构" prop="cbranchId">
<el-input v-model="editForm.cbranchId" placeholder="创建机构" :maxlength="50" @change="editSomeFields(editForm,'cbranchId',$event)"></el-input>
</el-form-item>
<el-form-item label="模块编号" prop="moduleId">
<el-input v-model="editForm.moduleId" placeholder="模块编号" :maxlength="50" @change="editSomeFields(editForm,'moduleId',$event)"></el-input>
</el-form-item>
<el-form-item label="模块名称" prop="moduleName">
<el-input v-model="editForm.moduleName" placeholder="模块名称" :maxlength="255" @change="editSomeFields(editForm,'moduleName',$event)"></el-input>
</el-form-item>
</el-form-item>
<el-form-item label="用例状态1正常0废弃" prop="caseStatus">
<el-input v-model="editForm.caseStatus" placeholder="用例状态1正常0废弃" :maxlength="1" @change="editSomeFields(editForm,'caseStatus',$event)"></el-input>
</el-form-item>
<el-form-item label="创建人编号" prop="cuserid">
<el-input v-model="editForm.cuserid" placeholder="创建人编号" :maxlength="50" @change="editSomeFields(editForm,'cuserid',$event)"></el-input>
</el-form-item>
</el-form-item>
<el-form-item label="创建人姓名" prop="cusername">
<el-input v-model="editForm.cusername" placeholder="创建人姓名" :maxlength="255" @change="editSomeFields(editForm,'cusername',$event)"></el-input>
</el-form-item>
<el-form-item label="产品编号" prop="productId">
<el-input v-model="editForm.productId" placeholder="产品编号" :maxlength="50" @change="editSomeFields(editForm,'productId',$event)"></el-input>
</el-form-item>
<el-form-item label="版本号" prop="verNum">
<el-input v-model="editForm.verNum" placeholder="版本号" :maxlength="50" @change="editSomeFields(editForm,'verNum',$event)"></el-input>
</el-form-item>
<el-form-item label="用例库编号" prop="casedbId">
<el-input v-model="editForm.casedbId" placeholder="用例库编号" :maxlength="50" @change="editSomeFields(editForm,'casedbId',$event)"></el-input>
</el-form-item>
<el-form-item label="用例库名称" prop="casedbName">
<el-input v-model="editForm.casedbName" placeholder="用例库名称" :maxlength="255" @change="editSomeFields(editForm,'casedbName',$event)"></el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-row>
@ -75,6 +43,12 @@
<el-button @click.native="handleCancel">取消</el-button>
<el-button v-loading="load.edit" type="primary" @click.native="saveSubmit" :disabled="load.edit==true">提交</el-button>
</el-row>
<el-dialog append-to-body title="需求选择" :visible.sync="menuVisible" width="80%" top="20px" :close-on-click-modal="false">
<xm-menu-select :is-select-menu="true" checkScope="3" @selected="onMenuSelected" :xm-product="{id:editForm.productId}"></xm-menu-select>
</el-dialog>
<el-dialog append-to-body title="模块选择" :visible.sync="funcVisible" width="60%" top="20px" :close-on-click-modal="false">
<xm-func-select @selected="onFuncSelected" :xm-product="{id:editForm.productId}"></xm-func-select>
</el-dialog>
</section>
</template>
@ -83,11 +57,12 @@
import config from "@/common/config"; //import
import { initDicts, addXmTestCase,editXmTestCase,editSomeFieldsXmTestCase } from '@/api/xm/core/xmTestCase';
import { mapGetters } from 'vuex'
import XmMenuSelect from '../xmMenu/XmMenuSelect'
import XmFuncSelect from '../xmFunc/XmFuncSelect'
export default {
name:'xmTestCaseEdit',
components: {
XmMenuSelect,XmFuncSelect,
},
computed: {
...mapGetters([ 'userInfo' ]),
@ -122,6 +97,8 @@
id:'',caseName:'',caseRemark:'',testStep:'',expectResult:'',menuId:'',menuName:'',ctime:'',ltime:'',luserid:'',lusername:'',cbranchId:'',moduleId:'',moduleName:'',caseStatus:'',cuserid:'',cusername:'',productId:'',verNum:'',casedbId:'',casedbName:''
},
maxTableHeight:300,
menuVisible:false,
funcVisible:false,
}//end return
},//end data
methods: {
@ -170,7 +147,13 @@
if(this.opType=='edit'){
}else{
if(this.xmTestCasedb && this.xmTestCasedb.id){
this.editForm.productId=this.xmTestCasedb.productId
this.editForm.productName=this.xmTestCasedb.productName
this.editForm.casedbId=this.xmTestCasedb.id
this.editForm.casedbName=this.xmTestCasedb.name
}
}
this.editFormBak={...this.editForm}
},
@ -193,6 +176,14 @@
}
}).catch((e)=>Object.assign(this.editForm,this.editFormBak))
},
onMenuSelected(row){
this.editForm.menuId=row.menuId
this.editForm.menuName=row.menuName
},
onFuncSelected(row){
this.editForm.funcId=row.id
this.editForm.funcName=row.name
}
},//end method
mounted() {
this.$nextTick(() => {

117
src/views/xm/core/xmTestCase/XmTestCaseMng.vue

@ -18,120 +18,36 @@
<!--列表 XmTestCase 测试用例-->
<el-table ref="xmTestCaseTable" :data="xmTestCases" :height="maxTableHeight" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="55" show-overflow-tooltip fixed="left"></el-table-column>
<el-table-column sortable type="index" width="55" show-overflow-tooltip fixed="left"></el-table-column>
<!--
<!--
<el-table-column sortable prop="username" width="55" show-overflow-tooltip fixed="left">
<span class="cell-text"> {{scope.row.username}}} </span>
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'username',$event)" :maxlength="22"></el-input></span>
</el-table-column>
-->
<el-table-column prop="id" label="编号" min-width="120" show-overflow-tooltip fixed="left"></el-table-column>
<el-table-column prop="caseName" label="标题" min-width="120" show-overflow-tooltip>
<el-table-column prop="id" label="编号" min-width="120" show-overflow-tooltip fixed="left"></el-table-column>
<el-table-column prop="caseName" label="标题" min-width="250" show-overflow-tooltip fixed="left">
<template slot-scope="scope">
<span> {{scope.row.caseName}} </span>
<span class="tool-bar">
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" circle plain></el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="caseRemark" label="备注" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.caseRemark}} </span>
</template>
</el-table-column>
<el-table-column prop="testStep" label="测试步骤" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.testStep}} </span>
</template>
</el-table-column>
<el-table-column prop="expectResult" label="期望结果" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.expectResult}} </span>
</template>
</el-table-column>
<el-table-column prop="menuId" label="关联的故事" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.menuId}} </span>
</template>
</el-table-column>
<el-table-column prop="menuName" label="关联故事名" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.menuName}} </span>
</template>
</el-table-column>
<el-table-column prop="ctime" label="创建时间" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.ctime}} </span>
</template>
</el-table-column>
<el-table-column prop="ltime" label="更新时间" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.ltime}} </span>
</template>
</el-table-column>
<el-table-column prop="luserid" label="更新人编号" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.luserid}} </span>
</template>
</el-table-column>
<el-table-column prop="lusername" label="更新人姓名" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.lusername}} </span>
</template>
</el-table-column>
<el-table-column prop="cbranchId" label="创建机构" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.cbranchId}} </span>
</template>
</el-table-column>
<el-table-column prop="moduleId" label="模块编号" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.moduleId}} </span>
</template>
</el-table-column>
<el-table-column prop="moduleName" label="模块名称" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.moduleName}} </span>
</template>
</el-table-column>
<el-table-column prop="caseStatus" label="用例状态1正常0废弃" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.caseStatus}} </span>
</template>
</el-table-column>
<el-table-column prop="cuserid" label="创建人编号" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.cuserid}} </span>
</template>
</el-table-column>
<el-table-column prop="cusername" label="创建人姓名" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.cusername}} </span>
</template>
</el-table-column>
<el-table-column prop="productId" label="产品编号" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.productId}} </span>
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="verNum" label="版本号" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.verNum}} </span>
</template>
</el-table-column>
<el-table-column prop="casedbId" label="用例库编号" min-width="120" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="caseStatus" label="状态" width="100" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.casedbId}} </span>
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'testCaseStatus',scope.row.caseStatus)" :key="index" :type="item.className">{{item.name}}</el-tag>
</template>
</el-table-column>
<el-table-column prop="casedbName" label="用例库名称" min-width="120" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="cusername" label="创建人姓名" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.casedbName}} </span>
</template>
</el-table-column>
<el-table-column label="操作" width="180" fixed="right">
<template scope="scope">
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" plain></el-button>
<el-button type="danger" @click="handleDel(scope.row,scope.$index)" icon="el-icon-delete" plain></el-button>
<span> {{scope.row.cusername}} </span>
</template>
</el-table-column>
</el-table-column>
</el-table>
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
</el-row>
@ -147,7 +63,7 @@
<!--新增 XmTestCase 测试用例界面-->
<el-drawer title="新增测试用例" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-test-case-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-test-case-edit>
<xm-test-case-edit op-type="add" :xm-test-casedb="xmTestCasedb" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-test-case-edit>
</el-drawer>
</el-row>
</section>
@ -167,7 +83,7 @@ export default {
components: {
XmTestCaseEdit,XmFuncSelect
},
props:['visible'],
props:['visible','xmTestCasedb'],
computed: {
...mapGetters(['userInfo']),
@ -198,6 +114,7 @@ export default {
load:{ list: false, edit: false, del: false, add: false },//...
sels: [],//
dicts:{
testCaseStatus:[]
//sex: [{id:'1',name:''},{id:'2',name:''}]
},// params={categoryId:'all',itemCodes:['sex']} {sex: [{id:'1',name:''},{id:'2',name:''}]}
addFormVisible: false,//xmTestCase

Loading…
Cancel
Save