Browse Source

优化

master
陈裕财 4 years ago
parent
commit
8b43b9230a
  1. 2
      src/api/xm/core/xmTestCase.js
  2. 2
      src/api/xm/core/xmTestPlanCase.js
  3. 4
      src/common/js/util.js
  4. 8
      src/styles/mdp.scss
  5. 7
      src/views/xm/core/xmTestCase/XmTestCaseEdit.vue
  6. 55
      src/views/xm/core/xmTestPlanCase/TestStepResult.vue
  7. 172
      src/views/xm/core/xmTestPlanCase/XmTestPlanCaseEdit.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','testCaseStatus'];//在此添加要加载的字典 如['sex','grade','lvl']
var itemCodes=['testPlanStatus','testPlanTcode','testStepTcode','priority','testCaseStatus','caseType'];//在此添加要加载的字典 如['sex','grade','lvl']
if(itemCodes.length>0){
initSimpleDicts('all',itemCodes).then(res=>{
Object.assign(that.dicts,res.data.data)

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

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

4
src/common/js/util.js

@ -39,7 +39,7 @@ export default {
* 通过字典值获取其名称返回根值相同的字典,并自动计算其对应显示样式
* 界面上可以类似使用
* 显示
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'xxxx',scope.row.xxxx)" :key="index" :type="item.className">{{item.name}}</el-tag>
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'xxxx',scope.row.xxxx)" :key="index" :type="item.className" effect="dark">{{item.name}}</el-tag>
* 下拉框
<el-select v-model="editForm.xxxx" @change="editSomeFields(editForm,'xxxx',$event)">
@ -49,7 +49,7 @@ export default {
* @param {*} dicts
* @param {*} itemCode
* @param {*} cellValue
* @returns [{id:'',name:'',className:''}]
* @returns [{id:'',name:'',className:'',color:'',icon:''}]
*/
formatDictsWithClass: function(dicts,itemCode,cellValue){

8
src/styles/mdp.scss

@ -315,3 +315,11 @@ table tr.hover-row{
max-width:80vw;
}
}
.label-font-size{
font-size: #C0C4CC;
}
.title-font-size{
font-size:28px;
}

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

@ -31,6 +31,11 @@
<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>
@ -89,7 +94,7 @@ TestStepConfig,
return {
currOpType:'add',//add/edit
load:{ list: false, edit: false, del: false, add: false },//...
dicts:{},// 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: {
id: [
//{ required: true, message: '', trigger: 'blur' }

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

@ -5,7 +5,7 @@
<!-- 扩展字段[{name:'中文名称',id:'编号',value:'值',remark:'备注',type:'支持简单的1-普通文本2-数字,3-日期,8-富文本,9单图文,15-是否'}] -->
<el-row>
<el-col :span="1">
步骤
#
</el-col>
<el-col :span="11">
操作
@ -20,19 +20,32 @@
缺陷
</el-col>
</el-row>
<el-row v-for="(item, index) in extInfosList" :key="index">
<el-divider></el-divider>
<div v-for="(item, index) in extInfosList" :key="index">
<el-row >
<el-col :span="1">
{{index+1}}
</el-col>
<el-col :span="11">
<span><span style="color:#C0C4CC;">操作</span>{{item.op}}</span><br/>
<span><span></span>{{item.op}}</span><br/>
<span><span style="color:#C0C4CC;">预期</span>{{item.eresult}}</span>
</el-col>
<el-col :span="8">
<my-input class="padding-right" v-model="item.aresult" clearable placeholder="步骤结果"></my-input>
</el-col>
<el-col :span="2">
<el-col :span="2" class="avater-box">
<div>
<el-button size="medium " v-if="item.tcode=='0'" type="info" icon="el-icon-arrow-up" circle></el-button>
<el-button size="medium " v-if="item.tcode=='1'" type="success" icon="el-icon-check" circle></el-button>
<el-button size="medium " v-if="item.tcode=='2'" type="warning" icon="el-icon-minus" circle></el-button>
<el-button size="medium " v-if="item.tcode=='3'" type="primary" icon="el-icon-right" circle></el-button>
<el-button size="medium " v-if="item.tcode=='4'" type="danger" icon="el-icon-close" circle></el-button>
</div>
<div class="msg">
<span class="title">{{formatDicts(dicts,'testStepTcode',item.tcode)}} </span>
<span class="sub-title">执行结果</span>
</div>
<el-select class="padding-right" 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>
@ -41,12 +54,15 @@
<el-button @click="addBug(item,index)" icon="el-icon-plus" type="text"></el-button>
</el-col>
</el-row>
<el-divider></el-divider>
</div>
</el-form>
</el-row>
</section>
</template>
<script>
import util from '@/common/js/util';//
import { mapGetters } from 'vuex'
import { initDicts } from '@/api/xm/core/xmTestPlanCase';
@ -86,6 +102,7 @@
}
},//end data
methods: {
...util,
save(){
if(this.value instanceof Array){
this.$emit("finish",this.extInfosList)
@ -132,6 +149,34 @@
</script>
<style scoped>
<style lang="scss" scoped>
.avater-box {
display: flex;
align-items: center;
cursor: pointer;
.avater {
background-color:#FF9F73;
}
.msg {
margin-left: 10px;
display: flex;
flex-direction: column;
.title {
margin-top: 5px;
font-size: 16px;
}
.sub-title{
margin-top: -10px;
font-size: 14px;
color: #C0C4CC;
}
}
.btn{
margin-top: 0px;
visibility:hidden;
}
}
</style>

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

@ -4,11 +4,126 @@
</el-row>
<el-row ref="table">
<!--编辑界面 XmTestPlanCase 测试计划与用例关系表-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef" label-position="left">
<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 label="" prop="caseName" label-width="0px">
<el-row>
<span class="padding-left"><i class="el-icon-s-operation"></i>模块</span><span>{{editForm.funcName}}</span>
</el-row>
<el-row>
<span class="title-font-size">{{editForm.caseName}}</span>
</el-row>
<el-row class="padding">
<el-col :span="8" class="avater-box">
<el-avatar class="avater"> {{editForm.execUsername}} </el-avatar>
<div class="msg">
<span class="title">{{editForm.execUsername}} </span>
<span class="sub-title">执行人</span>
</div>
</el-col>
<el-col :span="8" class="avater-box">
<el-avatar class="avater" icon="el-icon-top" style="background-color:rgb(255, 117, 117);"></el-avatar>
<div class="msg">
<span class="title">{{formatDicts(dicts,'priority',editForm.priority)}} </span>
<span class="sub-title">优先级</span>
</div>
</el-col>
<el-col :span="8" class="avater-box">
<div>
<el-button size="medium " v-if="editForm.execStatus=='0'" type="info" icon="el-icon-arrow-up" circle></el-button>
<el-button size="medium " v-if="editForm.execStatus=='1'" type="success" icon="el-icon-check" circle></el-button>
<el-button size="medium " v-if="editForm.execStatus=='2'" type="warning" icon="el-icon-minus" circle></el-button>
<el-button size="medium " v-if="editForm.execStatus=='3'" type="primary" icon="el-icon-right" circle></el-button>
<el-button size="medium " v-if="editForm.execStatus=='4'" type="danger" icon="el-icon-close" circle></el-button>
</div>
<div class="msg">
<span class="title">{{formatDicts(dicts,'testStepTcode',editForm.execStatus)}} </span>
<span class="sub-title">执行结果</span>
</div>
</el-col>
</el-row>
</el-form-item>
<el-tabs>
<el-tab-pane name="1" label="用例信息">
<el-row class="padding-top">
<el-col :span="6">
<el-row class="label-font-size">
用例状态
</el-row>
<el-row>
<el-tag class="cell-text" v-for="(item,index) in formatDictsWithClass(dicts,'testCaseStatus',editForm.caseStatus)" :key="index" :type="item.className">{{item.name}}</el-tag>
</el-row>
</el-col>
<el-col :span="6">
<el-row class="label-font-size">
用例版本
</el-row>
<el-row>
{{editForm.verNum}}
</el-row>
</el-col>
<el-col :span="6">
<el-row class="label-font-size">
用例类型
</el-row>
<el-row>
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'caseType',editForm.caseType)" :key="index" :type="item.className">{{item.name}}</el-tag>
</el-row>
</el-col>
<el-col :span="6">
<el-row class="label-font-size">
紧急程度
</el-row>
<el-row>
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'priority',editForm.priority)" :key="index" :type="item.className">{{item.name}}</el-tag>
</el-row>
</el-col>
</el-row>
<el-row class="padding-top">
<el-row class="label-font-size padding-top">
前置条件
</el-row>
<el-row class="padding">
{{editForm.preRemark?editForm.preRemark:'无'}}
</el-row>
</el-row>
<el-row class="padding-top">
<el-row class="label-font-size padding-top">
测试步骤
</el-row>
<el-row class="padding">
<test-step-result class="padding" v-model="editForm.testStep"></test-step-result>
</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>
</el-row>
<el-row class="padding-top">
<el-row class="label-font-size padding-top">
备注
</el-row>
<el-row class="padding">
{{editForm.caseRemark?editForm.caseRemark:'无'}}
</el-row>
</el-row>
</el-tab-pane>
<el-tab-pane name="2" label="需求">
</el-tab-pane>
<el-tab-pane name="3" label="缺陷">
</el-tab-pane>
<el-tab-pane name="4" label="附件">
</el-tab-pane>
</el-tabs>
<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>
@ -23,14 +138,7 @@
<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-row>
<test-step-result v-model="editForm.testStep"></test-step-result>
</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>
</el-form-item>
<el-form-item label="测试结果" prop="execStatus">
<el-select v-model="editForm.execStatus" @change="editSomeFields(editForm,'execStatus',$event)">
@ -55,11 +163,12 @@
import { initDicts, addXmTestPlanCase,editXmTestPlanCase,editSomeFieldsXmTestPlanCase } from '@/api/xm/core/xmTestPlanCase';
import { mapGetters } from 'vuex'
import TestStepResult from './TestStepResult.vue';
import MyInput from '@/components/MDinput/index';
export default {
name:'xmTestPlanCaseEdit',
components: {
TestStepResult,
TestStepResult,MyInput,
},
computed: {
@ -85,7 +194,7 @@ TestStepResult,
return {
currOpType:'add',//add/edit
load:{ list: false, edit: false, del: false, add: false },//...
dicts:{},// params={categoryId:'all',itemCodes:['sex']} {sex: [{id:'1',name:''},{id:'2',name:''}]}
dicts:{'testPlanStatus':[],'testPlanTcode':[],'testStepTcode':[],'priority':[],'testCaseStatus':[],'caseType':[]},// params={categoryId:'all',itemCodes:['sex']} {sex: [{id:'1',name:''},{id:'2',name:''}]}
editFormRules: {
caseId: [
//{ required: true, message: '', trigger: 'blur' }
@ -187,6 +296,41 @@ TestStepResult,
</script>
<style scoped>
<style lang="scss">
.my-input input {
font-size: 28px !important;
}
.avater-box {
display: flex;
align-items: center;
cursor: pointer;
.avater {
background-color:#FF9F73;
}
.msg {
margin-left: 10px;
display: flex;
flex-direction: column;
.title {
margin-top: 5px;
font-size: 16px;
}
.sub-title{
margin-top: -10px;
font-size: 14px;
color: #C0C4CC;
}
}
.btn{
margin-top: 0px;
visibility:hidden;
}
}
.avater-box:hover .btn{
visibility: visible !important;
}
</style>
Loading…
Cancel
Save