Browse Source

优化

master
陈裕财 4 years ago
parent
commit
ac07cd9a04
  1. 11
      src/views/xm/core/xmTestCase/TestStepConfig.vue
  2. 120
      src/views/xm/core/xmTestCase/XmTestCaseEdit.vue
  3. 22
      src/views/xm/core/xmTestCase/XmTestCaseMng.vue
  4. 3
      src/views/xm/core/xmTestCase/XmTestCaseSelect.vue

11
src/views/xm/core/xmTestCase/TestStepConfig.vue

@ -5,7 +5,7 @@
<!-- 扩展字段[{name:'中文名称',id:'编号',value:'值',remark:'备注',type:'支持简单的1-普通文本2-数字,3-日期,8-富文本,9单图文,15-是否'}] --> <!-- 扩展字段[{name:'中文名称',id:'编号',value:'值',remark:'备注',type:'支持简单的1-普通文本2-数字,3-日期,8-富文本,9单图文,15-是否'}] -->
<el-row> <el-row>
<el-col :span="2"> <el-col :span="2">
步骤
#
</el-col> </el-col>
<el-col :span="9"> <el-col :span="9">
操作 操作
@ -17,6 +17,7 @@
操作 操作
</el-col> </el-col>
</el-row> </el-row>
<el-divider></el-divider>
<el-row v-for="(item, index) in extInfosList" :key="index"> <el-row v-for="(item, index) in extInfosList" :key="index">
<el-col :span="2"> <el-col :span="2">
@ -29,12 +30,13 @@
<my-input class="padding-right" v-model="item.eresult" clearable placeholder="预期结果"></my-input> <my-input class="padding-right" v-model="item.eresult" clearable placeholder="预期结果"></my-input>
</el-col> </el-col>
<el-col :span="4" style="margin-bottom:0px;"> <el-col :span="4" style="margin-bottom:0px;">
<el-button @click.prevent="removeExtInfosItem(item,index)" icon="el-icon-delete">
</el-button><el-button @click="addExtInfosItem(item,index)" icon="el-icon-plus"></el-button>
<el-button @click.prevent="removeExtInfosItem(item,index)" type="danger" icon="el-icon-delete">
</el-button><el-button @click="addExtInfosItem(item,index)" type="primary" icon="el-icon-plus"></el-button>
</el-col> </el-col>
</el-row> </el-row>
<el-divider v-if="extInfosList.length>0"></el-divider>
<el-form-item v-if="!extInfosList || extInfosList.length<=0"> <el-form-item v-if="!extInfosList || extInfosList.length<=0">
<el-button @click="addExtInfosFirstItem" icon="el-icon-plus"><slot>新增一行</slot></el-button>
<el-button @click="addExtInfosFirstItem" icon="el-icon-plus" type="primary"><slot>新增步骤</slot></el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </el-row>
@ -105,6 +107,7 @@
} }
}else{ }else{
this.extInfosList=[] this.extInfosList=[]
this.addExtInfosFirstItem();
} }
} }
},//end methods },//end methods

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

@ -4,41 +4,78 @@
</el-row> </el-row>
<el-row> <el-row>
<!--编辑界面 XmTestCase 测试用例--> <!--编辑界面 XmTestCase 测试用例-->
<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 :model="editForm" :rules="editFormRules" ref="editFormRef" label-position="left">
<el-row :gutter="20">
<el-col :span="18" class="border">
<el-form-item label="" prop="caseName" label-width="0px">
<el-row>
<span><span v-if="opType=='edit'" class="label-font-color">用例编号:</span>&nbsp;&nbsp;{{editForm.caseId}} &nbsp;&nbsp;</span><span class="label-font-color"><i class="el-icon-s-operation"></i>模块:</span><span>{{editForm.funcName}} <el-button type="text" @click="funcVisible=true">选择模块</el-button></span>
</el-row>
<el-row>
<my-input v-model="editForm.caseName" placeholder="测试用例 标题" @change="editSomeFields(editForm,'caseName',$event)"></my-input>
</el-row>
<el-row class="padding">
<el-col :span="8" class="field-box">
<el-avatar class="avater"> {{editForm.execUsername}} </el-avatar>
<div class="msg">
<span class="field-value">{{editForm.execUsername}} </span>
<span class="field-label">执行人</span>
</div>
</el-col>
<el-col :span="8">
<dict-field label="优先级" :dict="dicts['priority']" v-model="editForm.cpriority" @change="editSomeFields(editForm,'cpriority',$event)"></dict-field>
</el-col>
<el-col :span="8">
<dict-field label="状态" :dict="dicts['testCaseStatus']" v-model="editForm.caseStatus" @change="editSomeFields(editForm,'caseStatus',$event)"></dict-field>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="" prop="preRmark" label-width="0px">
<el-row class="label-font-color padding-top">
前置条件
</el-row>
<el-row>
<el-input type="textarea" :rows="4" v-model="editForm.preRemark" placeholder="请输入前置条件" @change="editSomeFields(editForm,'preRmark',$event)"></el-input>
</el-row>
</el-form-item>
<el-form-item label="" prop="testStep" label-width="0px">
<el-row class="label-font-color padding-top">
测试步骤
</el-row>
<el-row>
<test-step-config v-model="editForm.testStep"></test-step-config>
</el-row>
<el-row v-if="opType!=='add' && editForm.testStep!=editFormBak.testStep">
<el-button type="primary" @click="editSomeFields(editForm,'testStep',editForm.testStep)">保存测试步骤</el-button>
</el-row>
</el-form-item>
<el-form-item label="" prop="caseRmark" label-width="0px">
<el-row class="label-font-color padding-top">
用例描述
</el-row>
<el-row>
<el-input type="textarea" :rows="4" v-model="editForm.caseRmark" placeholder="请输入用例描述" @change="editSomeFields(editForm,'caseRmark',$event)"></el-input>
</el-row>
</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-row>
<test-step-config v-model="editForm.testStep" @finish="editSomeFields(editForm,'testStep',$event)"></test-step-config>
</el-row>
<el-row v-if="opType!=='add' && editForm.testStep!=editFormBak.testStep">
<el-button type="primary" @click="editSomeFields(editForm,'testStep',editForm.testStep)">保存测试步骤</el-button>
</el-row>
</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="funcName">
{{editForm.funcName?editForm.funcName:'暂无关联模块'}} <el-button type="text" @click="funcVisible=true">选择模块</el-button>
</el-form-item>
<el-form-item label="状态" prop="caseStatus" v-if="opType!='add'">
<el-select v-model="editForm.caseStatus" @change="editSomeFields(editForm,'caseStatus',$event)">
<el-option v-for="(item,index) in dicts['testCaseStatus']" :key="index" :value="item.id" :label="item.name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="用例类型" prop="caseType">
<el-select v-model="editForm.caseType" @change="editSomeFields(editForm,'caseType',$event)">
<el-option v-for="(item,index) in dicts['caseType']" :key="index" :value="item.id" :label="item.name"></el-option>
</el-select>
</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-col>
<el-col :span="6" class="border">
<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="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="caseType">
<dict-select :dict="dicts['caseType']" v-model="editForm.caseType" @change="editSomeFields(editForm,'caseType',$event)">
</dict-select>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
</el-row> </el-row>
@ -65,11 +102,12 @@
import XmMenuSelect from '../xmMenu/XmMenuSelect' import XmMenuSelect from '../xmMenu/XmMenuSelect'
import XmFuncSelect from '../xmFunc/XmFuncSelect' import XmFuncSelect from '../xmFunc/XmFuncSelect'
import TestStepConfig from './TestStepConfig.vue'; import TestStepConfig from './TestStepConfig.vue';
import MyInput from '@/components/MDinput/index';
export default { export default {
name:'xmTestCaseEdit', name:'xmTestCaseEdit',
components: { components: {
XmMenuSelect,XmFuncSelect,
TestStepConfig,
XmMenuSelect,XmFuncSelect,MyInput,TestStepConfig,
}, },
computed: { computed: {
...mapGetters([ 'userInfo' ]), ...mapGetters([ 'userInfo' ]),
@ -96,15 +134,16 @@ TestStepConfig,
load:{ list: false, edit: false, del: false, add: false },//... load:{ list: false, edit: false, del: false, add: false },//...
dicts:{caseType:[]},// params={categoryId:'all',itemCodes:['sex']} {sex: [{id:'1',name:''},{id:'2',name:''}]} dicts:{caseType:[]},// params={categoryId:'all',itemCodes:['sex']} {sex: [{id:'1',name:''},{id:'2',name:''}]}
editFormRules: { editFormRules: {
id: [
//{ required: true, message: '', trigger: 'blur' }
caseName: [
{ required: true, message: '测试用例名称不能为空', trigger: 'change' },
{ max:250,min:2, message: '测试用例名称长度为2-250个字符之间', trigger: 'change' }
] ]
}, },
editFormBak: { editFormBak: {
id:'',caseName:'',caseRemark:'',testStep:'',expectResult:'',menuId:'',menuName:'',ctime:'',ltime:'',luserid:'',lusername:'',cbranchId:'',moduleId:'',moduleName:'',caseStatus:'',cuserid:'',cusername:'',productId:'',verNum:'',casedbId:'',casedbName:''
id:'',caseName:'',caseRemark:'',testStep:'',expectResult:'',menuId:'',menuName:'',ctime:'',ltime:'',luserid:'',lusername:'',cbranchId:'',moduleId:'',moduleName:'',caseStatus:'0',cuserid:'',cusername:'',productId:'',verNum:'',casedbId:'',casedbName:'',cpriority:'0',funcId:'',funcName:'',preRemark:'',caseType:'0'
}, },
editForm: { editForm: {
id:'',caseName:'',caseRemark:'',testStep:'',expectResult:'',menuId:'',menuName:'',ctime:'',ltime:'',luserid:'',lusername:'',cbranchId:'',moduleId:'',moduleName:'',caseStatus:'',cuserid:'',cusername:'',productId:'',verNum:'',casedbId:'',casedbName:''
id:'',caseName:'',caseRemark:'',testStep:'',expectResult:'',menuId:'',menuName:'',ctime:'',ltime:'',luserid:'',lusername:'',cbranchId:'',moduleId:'',moduleName:'',caseStatus:'0',cuserid:'',cusername:'',productId:'',verNum:'1.0',casedbId:'',casedbName:'',cpriority:'0',funcId:'',funcName:'',preRemark:'',caseType:'0'
}, },
maxTableHeight:300, maxTableHeight:300,
menuVisible:false, menuVisible:false,
@ -163,6 +202,7 @@ TestStepConfig,
this.editForm.casedbId=this.xmTestCasedb.id this.editForm.casedbId=this.xmTestCasedb.id
this.editForm.casedbName=this.xmTestCasedb.name this.editForm.casedbName=this.xmTestCasedb.name
} }
this.editForm.id=null
} }
this.editFormBak={...this.editForm} this.editFormBak={...this.editForm}

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

@ -31,25 +31,21 @@
<el-table-column prop="id" label="编号" min-width="120" show-overflow-tooltip fixed="left"></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="250" show-overflow-tooltip fixed="left"> <el-table-column prop="caseName" label="标题" min-width="250" show-overflow-tooltip fixed="left">
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.caseName}} </span>
<span> <el-link @click="showEdit( scope.row,scope.$index)">{{scope.row.caseName}} </el-link></span>
<span class="tool-bar"> <span class="tool-bar">
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" circle plain></el-button> <el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" circle plain></el-button>
</span> </span>
</template> </template>
</el-table-column>
</el-table-column>
<el-table-column prop="caseStatus" label="状态" width="100" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :dict="dicts['testCaseStatus']" v-model="scope.row.caseStatus" effect="dark" @change="editSomeFields(scope.row,'caseStatus',$event)"></dict-tag>
</template>
</el-table-column>
<el-table-column prop="verNum" label="版本号" min-width="120" show-overflow-tooltip> <el-table-column prop="verNum" label="版本号" min-width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.verNum}} </span> <span> {{scope.row.verNum}} </span>
</template> </template>
</el-table-column>
<el-table-column prop="caseStatus" label="状态" width="100" show-overflow-tooltip>
<template slot-scope="scope">
<el-tag class="cell-text" v-for="(item,index) in formatDictsWithClass(dicts,'testCaseStatus',scope.row.caseStatus)" :key="index" :type="item.className">{{item.name}}</el-tag>
<el-select class="cell-bar" v-model="scope.row.caseStatus" @change="editSomeFields(scope.row,'caseStatus',$event)">
<el-option v-for="(item,index) in dicts['testCaseStatus']" :key="index" :value="item.id" :label="item.name"></el-option>
</el-select>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="cusername" label="创建人姓名" min-width="120" show-overflow-tooltip> <el-table-column prop="cusername" label="创建人姓名" min-width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
@ -65,12 +61,12 @@
<el-row> <el-row>
<!--编辑 XmTestCase 测试用例界面--> <!--编辑 XmTestCase 测试用例界面-->
<el-dialog title="编辑测试用例" :visible.sync="editFormVisible" width="60%" top="20px" append-to-body :close-on-click-modal="false">
<el-dialog title="编辑测试用例" :visible.sync="editFormVisible" width="90%" top="20px" append-to-body :close-on-click-modal="false">
<xm-test-case-edit op-type="edit" :xm-test-case="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit" @edit-fields="onEditFields"></xm-test-case-edit> <xm-test-case-edit op-type="edit" :xm-test-case="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit" @edit-fields="onEditFields"></xm-test-case-edit>
</el-dialog> </el-dialog>
<!--新增 XmTestCase 测试用例界面--> <!--新增 XmTestCase 测试用例界面-->
<el-dialog title="新增测试用例" :visible.sync="addFormVisible" width="60%" top="20px" append-to-body :close-on-click-modal="false">
<el-dialog title="新增测试用例" :visible.sync="addFormVisible" width="90%" top="20px" append-to-body :close-on-click-modal="false">
<xm-test-case-edit op-type="add" :xm-test-casedb="xmTestCasedb" :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-dialog> </el-dialog>
</el-row> </el-row>

3
src/views/xm/core/xmTestCase/XmTestCaseSelect.vue

@ -37,8 +37,7 @@
<el-table-column prop="caseStatus" label="状态" min-width="120" show-overflow-tooltip> <el-table-column prop="caseStatus" label="状态" min-width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'testCaseStatus',scope.row.caseStatus)" :key="index" :type="item.className">{{item.name}}</el-tag>
<dict-tag :dict="dicts['testCaseStatus']" v-model="scope.row.caseStatus" effect="dark" :disabled="true"></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="caseRemark" label="备注" min-width="120" show-overflow-tooltip> <el-table-column prop="caseRemark" label="备注" min-width="120" show-overflow-tooltip>

Loading…
Cancel
Save