Browse Source

工作项

master
陈裕财 4 years ago
parent
commit
347e053d5d
  1. 19
      src/views/xm/core/xmMenu/XmMenuEdit.vue
  2. 196
      src/views/xm/core/xmWorkItem/XmSubWorkItem.vue

19
src/views/xm/core/xmMenu/XmMenuEdit.vue

@ -2,7 +2,7 @@
<section>
<el-row class="page-main ">
<el-form :model="editForm" label-width="100px" label-position="left" :rules="editFormRules" ref="editForm">
<el-row gutter="10">
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="序号名称" prop="seqNo" >
<template slot="label">
@ -21,7 +21,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row gutter="10">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="归属产品" prop="productId">
<font v-if="editForm.productId">{{editForm.productName?editForm.productName:editForm.productId}}</font>
@ -50,7 +50,7 @@
</el-col>
</el-row>
<el-row gutter="10">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="需求状态" prop="status">
<el-select style="display:block;width:100px;" v-model="editForm.status">
@ -124,10 +124,10 @@
<el-input type="textarea" :autosize="{ minRows: 6, maxRows: 20}" v-model="editForm.remark" placeholder="什么人?做什么事?,为什么?如: 作为招聘专员,我需要统计员工半年在职/离职人数,以便我能够制定招聘计划" ></el-input>
</el-form-item>
</el-tab-pane>
<el-tab-pane label="子工作项" name="6">
<xm-work-item>史诗下面是特性特性下面是用户故事故事下面是工作项任务/bug</xm-work-item>
<el-tab-pane :label="'子工作项'+(subWorkItemNum>=0?'('+subWorkItemNum+')':'')" name="6">
<xm-sub-work-item :parent-xm-menu="editForm" @sub-work-item-num="setSubWorkItemNum"></xm-sub-work-item>
</el-tab-pane>
<el-tab-pane label="工时" name="2">
<el-tab-pane :label="'工时('+editForm.mactWorkload+' h)'" name="2">
<el-form-item label="数据收集方式" prop="calcType">
<el-radio v-model="editForm.calcType" label="3" placeholder="下级往上级汇总" :disabled="editForm.ntype==='0'">下级往上级汇总</el-radio>
<el-radio v-model="editForm.calcType" label="1" placeholder="由任务汇总" :disabled="editForm.ntype==='1'">由任务汇总</el-radio>
@ -212,7 +212,7 @@
import XmMenuOverview from './XmMenuOverview.vue';
import XmMenuExchangeMng from '../xmMenuExchange/XmMenuExchangeMng.vue';
import TagMng from "@/views/mdp/arc/tag/TagMng";
import XmSubWorkItem from "@/views/xm/core/xmWorkItem/XmSubWorkItem";
export default {
computed: {
@ -324,12 +324,16 @@ import XmMenuExchangeMng from '../xmMenuExchange/XmMenuExchangeMng.vue';
},
tagSelectVisible:false,
dateRanger:[],
subWorkItemNum:-1,
/**begin 在下面加自定义属性,记得补上面的一个逗号**/
/**end 在上面加自定义属性**/
}//end return
},//end data
methods: {
setSubWorkItemNum(val){
this.subWorkItemNum=val;
},
// @cancel="editFormVisible=false"
handleCancel:function(){
this.$emit('cancel');
@ -420,6 +424,7 @@ import XmMenuExchangeMng from '../xmMenuExchange/XmMenuExchangeMng.vue';
XmMenuOverview,
TagMng,
XmMenuExchangeMng,
XmSubWorkItem,
},
mounted() {

196
src/views/xm/core/xmWorkItem/XmSubWorkItem.vue

@ -0,0 +1,196 @@
<template>
<section class="padding">
<el-row>
<font>{{subWorkItemNum}}个子工作项</font>
<span style="float:right;">
<el-button v-if="parentXmMenu.dclass==='1'" icon="el-icon-plus" @click="showAdd">
<div class="icon" style="background-color: rgb(0, 153, 51);">
<i class="el-icon-s-flag"></i>
</div> 添加特性
</el-button>
<el-button v-if="parentXmMenu.dclass==='2'" icon="el-icon-plus" @click="showAdd">
<div class="icon" :style="{backgroundColor: calcMenuLabel.color }">
<i :class="calcMenuLabel.icon"></i>
</div>
添加用户故事
</el-button>
<el-button v-if="parentXmMenu.dclass==='3'" icon="el-icon-plus" @click="showAdd">
<div class="icon" style="background-color: #1CC7EA;">
<i class="el-icon-s-operation"></i>
</div>
添加任务</el-button>
<el-button v-if="parentXmMenu.dclass==='3'" icon="el-icon-plus" @click="showAdd">
<div class="icon" style="background-color: #F56C6C;">
<i class="el-icon-warning"></i>
</div>
添加缺陷</el-button>
</span>
</el-row>
<el-row v-if="parentXmMenu.dclass<'3' && xmMenus.length>0">
<el-row v-if="parentXmMenu.dclass==='1'">
<div class="icon" style="background-color: rgb(0, 153, 51);">
<i class="el-icon-s-flag"></i>
</div>特性
</el-row>
<el-row v-if="parentXmMenu.dclass==='2'">
<div class="icon" :style="{backgroundColor: calcMenuLabel.color }">
<i :class="calcMenuLabel.icon"></i>
</div>
用户故事
</el-row>
<el-row>
<el-table :data="xmMenus" :show-header="false">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="menuName" label="名称"></el-table-column>
</el-table>
</el-row>
</el-row>
<el-row v-if="parentXmMenu.dclass==='3' && xmTasks.length>0">
<el-row>
<div class="icon" style="background-color: #1CC7EA;">
<i class="el-icon-s-operation"></i>
</div>
任务</el-row>
<el-row>
<el-table :data="xmTasks" :show-header="false">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="name" label="名称"></el-table-column>
</el-table>
</el-row>
</el-row>
<el-row v-if="parentXmMenu.dclass==='3' && xmBugs.length>0">
<el-row>
<div class="icon" style="background-color: #F56C6C;">
<i class="el-icon-warning"></i>
</div>
缺陷</el-row>
<el-row>
<el-table :data="xmBugs" :show-header="false">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="name" label="名称"></el-table-column>
</el-table>
</el-row>
</el-row>
</section>
</template>
<script>
import Vue from "vue";
import util from "@/common/js/util"; //
import treeTool from "@/common/js/treeTool"; //
import { initSimpleDicts } from '@/api/mdp/meta/item'; //
import {
listXmTask,
} from "@/api/xm/core/xmTask";
import { listXmQuestion} from '@/api/xm/core/xmQuestion';
import { listXmMenu } from '@/api/xm/core/xmMenu';
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters(["userInfo", "roles"]),
calcMenuLabel(){
var params={label:'工作项',icon:'',color:''};
if(this.parentXmMenu.dclass==='0'){
params={label:'史诗',icon:'el-icon-s-promotion',color:'rgb(255, 153, 51)'};
}else if(this.parentXmMenu.dclass==='1'){
params={label:'特性',icon:'el-icon-s-flag',color:'rgb(0, 153, 51)'};
}else if(this.parentXmMenu.dclass==='2'){
params={label:'故事',icon:'el-icon-document',color:' rgb(79, 140, 255)'};
}
return params;
},
subWorkItemNum(){
var num= this.xmTasks.length+this.xmMenus.length+this.xmBugs.length;
this.$emit('sub-work-item-num',num);
return num;
}
},
props: [
'parentXmMenu'
],
watch: {
'parentXmMenu.menuId':function(){
this.initData();
}
},
data() {
return{
xmTasks:[],
xmBugs:[],
xmMenus:[],
}
}, //end data
methods: {
getXmTasks(){
listXmTask({menuId:this.parentXmMenu.menuId}).then(res=>{
var tips = res.data.tips;
if(tips.isOk){
this.xmTasks=res.data.data
}else{
this.xmTasks=[];
}
})
},
getXmMenus(){
listXmMenu({pmenuId:this.parentXmMenu.menuId}).then(res=>{
var tips = res.data.tips;
if(tips.isOk){
this.xmMenus=res.data.data
}else{
this.xmMenus=[];
}
})
},
getXmBugs(){
listXmQuestion({menuId:this.parentXmMenu.menuId}).then(res=>{
var tips = res.data.tips;
if(tips.isOk){
this.xmBugs=res.data.data
}else{
this.xmBugs=[];
}
})
},
initData(){
this.xmTasks=[]
this.xmMenus=[]
this.xmBugs=[]
if(!this.parentXmMenu || !this.parentXmMenu.menuId){
return;
}
var dclass=this.parentXmMenu.dclass;
if(dclass<3){
this.getXmMenus();
}else{
this.getXmTasks();
this.getXmBugs();
}
},
showAdd(){
}
/**end 自定义函数请在上面加**/
}, //end methods
components: {
},
mounted() {
this.initData();
},
};
</script>
<style scoped>
</style>
Loading…
Cancel
Save