Browse Source

优化

master
陈裕财 4 years ago
parent
commit
3aafd4a195
  1. 141
      src/views/xm/core/xmTestPlanCase/TestStepResult.vue
  2. 66
      src/views/xm/core/xmTestPlanCase/XmTestPlanCaseEdit.vue
  3. 10
      src/views/xm/core/xmTestPlanCase/XmTestPlanCaseMng.vue

141
src/views/xm/core/xmTestPlanCase/TestStepResult.vue

@ -0,0 +1,141 @@
<template>
<section>
<el-row>
<el-form ref="extInfosRef">
<!-- 扩展字段[{name:'中文名称',id:'编号',value:'值',remark:'备注',type:'支持简单的1-普通文本2-数字,3-日期,8-富文本,9单图文,15-是否'}] -->
<el-row>
<el-col :span="1">
步骤
</el-col>
<el-col :span="7">
操作
</el-col>
<el-col :span="6">
预期结果
</el-col>
<el-col :span="6">
实际结果
</el-col>
<el-col :span="2">
结论
</el-col>
<el-col :span="2">
缺陷
</el-col>
</el-row>
<el-row v-for="(item, index) in extInfosList" :key="index">
<el-col :span="1">
{{index+1}}
</el-col>
<el-col :span="7">
<el-input class="padding-left" v-model="item.op" clearable placeholder="操作步骤"></el-input>
</el-col>
<el-col :span="6">
<el-input class="padding-left" v-model="item.eresult" clearable placeholder="预期结果"></el-input>
</el-col>
<el-col :span="6">
<el-input class="padding-left" v-model="item.aresult" clearable placeholder="实际结果"></el-input>
</el-col>
<el-col :span="2">
<el-select class="padding-left" v-model="item.tcode" clearable>
<el-option v-for="(item,index) in dicts['testStepTcode']" :key="index" :value="item.id" :label="item.name"></el-option>
</el-select>
</el-col>
<el-col :span="2">
<el-button class="padding-left" @click="addBug(item,index)" icon="el-icon-plus" type="text"></el-button>
</el-col>
</el-row>
</el-form>
</el-row>
</section>
</template>
<script>
import { mapGetters } from 'vuex'
import { initDicts } from '@/api/xm/core/xmTestPlanCase';
export default {
name: 'testStepConfig',
props:['value','unConfig'],
computed: {
...mapGetters([
'userInfo'
])
},
watch:{
value(val){
this.initData();
},
extInfosList:{
deep:true,
handler(val,oldVal){
if(this.value instanceof Array){
this.$emit("input",val)
}else{
this.$emit("input",JSON.stringify(val))
}
}
},
},
data() {
return{
dicts:{
testStepTcode:[],
},
extInfosList:[],//[{name:'',id:'',value:'',link:'',remark:'',type:'1-2-3-8-915-'}]
}
},//end data
methods: {
save(){
if(this.value instanceof Array){
this.$emit("finish",this.extInfosList)
}else{
this.$emit("finish",JSON.stringify(this.extInfosList))
}
},
addExtInfosFirstItem(){
if(!this.extInfosList){
this.extInfosList=[]
}
this.extInfosList.push({id:'',op:'',eresult:'',aresult:'',tcode:'0'})
},
addExtInfosItem(item,index){
this.extInfosList.splice(index+1,0,{id:'',op:'',eresult:'',aresult:'',tcode:'0'})
},
removeExtInfosItem(item,index){
this.extInfosList.splice(index,1)
},
initData(){
if(this.value){
if(this.value instanceof Array){
this.extInfosList=this.value
}else{
this.extInfosList=JSON.parse(this.value)
}
}else{
this.extInfosList=[]
}
}
},//end methods
components: {
},
mounted() {
this.$nextTick(()=>{
initDicts(this)
})
this.initData();
}
}
</script>
<style scoped>
</style>

66
src/views/xm/core/xmTestPlanCase/XmTestPlanCaseEdit.vue

@ -1,53 +1,49 @@
<template>
<section class="page-container padding">
<el-row class="page-header">
<section>
<el-row>
</el-row>
<el-row class="page-main" :style="{overflowX:'auto',height:maxTableHeight+'px'}" ref="table">
<el-row ref="table">
<!--编辑界面 XmTestPlanCase 测试计划与用例关系表-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef">
<el-form-item label="bug数目" prop="bugs">
<el-input-number v-model="editForm.bugs" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="执行人" prop="execUserid">
<el-input v-model="editForm.execUserid" placeholder="执行人" :maxlength="50" @change="editSomeFields(editForm,'execUserid',$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="caseId">
<el-input v-model="editForm.caseId" placeholder="测试用例编号" :maxlength="50" @change="editSomeFields(editForm,'caseId',$event)"></el-input>
</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="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="0-未测,1-通过,2-受阻,3-忽略,4-失败" prop="execStatus">
<el-input v-model="editForm.execStatus" placeholder="0-未测,1-通过,2-受阻,3-忽略,4-失败" :maxlength="1" @change="editSomeFields(editForm,'execStatus',$event)"></el-input>
</el-form-item>
<el-form-item label="执行人姓名" prop="execUsername">
</el-form-item>
<el-form-item label="执行人" prop="execUsername">
<el-input v-model="editForm.execUsername" placeholder="执行人姓名" :maxlength="255" @change="editSomeFields(editForm,'execUsername',$event)"></el-input>
</el-form-item>
<el-form-item label="计划编号" prop="planId">
<el-input v-model="editForm.planId" placeholder="计划编号" :maxlength="50" @change="editSomeFields(editForm,'planId',$event)"></el-input>
</el-form-item>
<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>
<el-form-item label="优先级" prop="priority">
<el-input v-model="editForm.priority" placeholder="优先级" :maxlength="1" @change="editSomeFields(editForm,'priority',$event)"></el-input>
<el-select v-model="editForm.priority" @change="editSomeFields(editForm,'priority',$event)">
<el-option v-for="(item,index) in dicts['priority']" :key="index" :value="item.id" :label="item.name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="执行备注" prop="remark">
<el-input v-model="editForm.remark" placeholder="执行备注" :maxlength="2147483647" @change="editSomeFields(editForm,'remark',$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>
<test-step-result v-model="editForm.testStep"></test-step-result>
</el-form-item>
<el-form-item label="测试结果" prop="execStatus">
<el-select v-model="editForm.execStatus" @change="editSomeFields(editForm,'execStatus',$event)">
<el-option v-for="(item,index) in dicts['testStepTcode']" :key="index" :value="item.id" :label="item.name"></el-option>
</el-select>
</el-form-item>
</el-form>
</el-row>
<el-row v-if="opType=='add'" class="page-bottom bottom-fixed">
<el-row v-if="opType=='add'">
<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-row v-if="opType!='add' && editFormBak.testStep!=editForm.testStep" >
<el-button v-loading="load.edit" type="primary" @click.native="editSomeFields(editForm,'testStep',editForm.testStep)" :disabled="load.edit==true">保存</el-button>
</el-row>
</section>
</template>
@ -56,10 +52,12 @@
import config from "@/common/config"; //import
import { initDicts, addXmTestPlanCase,editXmTestPlanCase,editSomeFieldsXmTestPlanCase } from '@/api/xm/core/xmTestPlanCase';
import { mapGetters } from 'vuex'
import TestStepResult from './TestStepResult.vue';
export default {
name:'xmTestPlanCaseEdit',
components: {
TestStepResult,
},
computed: {
@ -94,6 +92,9 @@
editForm: {
bugs:'',execUserid:'',caseId:'',ltime:'',ctime:'',execStatus:'',execUsername:'',planId:'',caseName:'',priority:'',remark:'',testStep:''
},
editFormBak: {
bugs:'',execUserid:'',caseId:'',ltime:'',ctime:'',execStatus:'',execUsername:'',planId:'',caseName:'',priority:'',remark:'',testStep:''
},
maxTableHeight:300,
}//end return
},//end data
@ -159,7 +160,8 @@
func(params).then(res=>{
let tips = res.data.tips;
if(tips.isOk){
this.editFormBak=[...this.editForm]
this.editFormBak={...this.editForm}
this.$emit('edit-fields',params)
}else{
Object.assign(this.editForm,this.editFormBak)
this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})

10
src/views/xm/core/xmTestPlanCase/XmTestPlanCaseMng.vue

@ -69,9 +69,9 @@
</el-row>
<el-row>
<!--编辑 XmTestPlanCase 测试计划与用例关系表界面-->
<el-drawer title="编辑测试计划与用例关系表" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-test-plan-case-edit op-type="edit" :xm-test-plan-case="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-test-plan-case-edit>
</el-drawer>
<el-dialog title="测试执行" :visible.sync="editFormVisible" width="80%" top="20px" append-to-body :close-on-click-modal="false">
<xm-test-plan-case-edit op-type="edit" :xm-test-plan-case="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit" @edit-fields="onEditFields"></xm-test-plan-case-edit>
</el-dialog>
<!--新增 XmTestPlanCase 测试计划与用例关系表界面-->
<el-dialog title="选择测试用例" :visible.sync="addFormVisible" width="80%" top="20px" append-to-body :close-on-click-modal="false">
@ -328,6 +328,10 @@ export default {
this.filters.xmFunc=row
this.searchXmTestPlanCases();
},
onEditFields(row){
Object.assign(this.editForm,row)
this.editFormBak={...this.editForm}
}
},//end methods
mounted() {
this.$nextTick(() => {

Loading…
Cancel
Save