Browse Source

工作项

master
陈裕财 4 years ago
parent
commit
d4c30d6814
  1. 61
      src/views/xm/core/xmMenu/XmMenuEdit.vue
  2. 58
      src/views/xm/core/xmWorkItem/XmSubWorkItem.vue

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

@ -118,11 +118,19 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="padding">
<el-button @click.native="handleCancel">关闭</el-button>
<el-button v-loading="load.edit" type="primary" @click.native="editSubmit" :disabled="load.edit==true">提交</el-button>
</el-row>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="概述" name="4"> <el-tab-pane label="概述" name="4">
<el-form-item label="需求概述" prop="remark"> <el-form-item label="需求概述" prop="remark">
<el-input type="textarea" :autosize="{ minRows: 6, maxRows: 20}" v-model="editForm.remark" placeholder="什么人?做什么事?,为什么?如: 作为招聘专员,我需要统计员工半年在职/离职人数,以便我能够制定招聘计划" ></el-input> <el-input type="textarea" :autosize="{ minRows: 6, maxRows: 20}" v-model="editForm.remark" placeholder="什么人?做什么事?,为什么?如: 作为招聘专员,我需要统计员工半年在职/离职人数,以便我能够制定招聘计划" ></el-input>
</el-form-item>
</el-form-item>
<el-row class="padding">
<el-button @click.native="handleCancel">关闭</el-button>
<el-button v-loading="load.edit" type="primary" @click.native="editXmMenuSomeFields(editForm,'remark',editForm.remark)" :disabled="load.edit==true">提交</el-button>
</el-row>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="'子工作项'+(subWorkItemNum>=0?'('+subWorkItemNum+')':'')" name="6"> <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> <xm-sub-work-item :parent-xm-menu="editForm" @sub-work-item-num="setSubWorkItemNum"></xm-sub-work-item>
@ -196,17 +204,14 @@
</tag-mng> </tag-mng>
</el-drawer> </el-drawer>
<el-row class="padding">
<el-button @click.native="handleCancel">关闭</el-button>
<el-button v-loading="load.edit" type="primary" @click.native="editSubmit" :disabled="load.edit==true">提交</el-button>
</el-row>
</section> </section>
</template> </template>
<script> <script>
import util from '@/common/js/util';// import util from '@/common/js/util';//
import { initSimpleDicts } from '@/api/mdp/meta/item';// import { initSimpleDicts } from '@/api/mdp/meta/item';//
import { editXmMenu } from '@/api/xm/core/xmMenu';
import { editXmMenu,editXmMenuSomeFields } from '@/api/xm/core/xmMenu';
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import UsersSelect from "@/views/mdp/sys/user/UsersSelect"; import UsersSelect from "@/views/mdp/sys/user/UsersSelect";
import XmMenuOverview from './XmMenuOverview.vue'; import XmMenuOverview from './XmMenuOverview.vue';
@ -339,12 +344,7 @@ import XmMenuExchangeMng from '../xmMenuExchange/XmMenuExchangeMng.vue';
this.$emit('cancel'); this.$emit('cancel');
}, },
//XmMenu @submit="afterAddSubmit" //XmMenu @submit="afterAddSubmit"
editSubmit: function () {
if(!this.roles.some(i=>i.roleid=='productAdmin') && !this.roles.some(i=>i.roleid=='productTeamAdmin')){
this.$notify({showClose: true, message: "只有产品经理、产品组长能够修改需求", type: 'error'});
return false;
}
editSubmit: function () {
this.$refs.editForm.validate((valid) => { this.$refs.editForm.validate((valid) => {
if (valid) { if (valid) {
@ -417,6 +417,43 @@ import XmMenuExchangeMng from '../xmMenuExchange/XmMenuExchangeMng.vue';
return parseFloat(floatValue).toFixed(2); return parseFloat(floatValue).toFixed(2);
} }
}, },
editXmMenuSomeFields(row,fieldName,$event){
var params={menuIds:[row.menuId]};
if(fieldName==='iterationId'){
if($event){
params[fieldName]=$event.id;
params.iterationName=$event.iterationName
}else{
return;
}
}else if(fieldName==='tagIds'){
if($event){
params[fieldName]=$event.map(i=>i.tagId).join(",");
params.tagNames=$event.map(i=>i.tagName).join(",");
}else{
return;
}
}else if(fieldName==='workload'){
params={...params,...$event}
}else if(fieldName==='mmUserid'){
params.mmUserid=$event[0].userid
params.mmUsername=$event[0].username
}else{
params[fieldName]=$event
}
editXmMenuSomeFields(params).then(res=>{
var tips = res.data.tips;
if(tips.isOk){
Object.assign(row,params)
if(fieldName==='remark'){
this.$notify({showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})
}
}else{
this.$notify({showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})
}
})
},
},//end method },//end method
components: { components: {
// 'xm-menu-edit':XmMenuEdit // 'xm-menu-edit':XmMenuEdit

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

@ -3,24 +3,24 @@
<el-row> <el-row>
<font>{{subWorkItemNum}}个子工作项</font> <font>{{subWorkItemNum}}个子工作项</font>
<span style="float:right;"> <span style="float:right;">
<el-button v-if="parentXmMenu.dclass==='1'" icon="el-icon-plus" @click="showAdd">
<el-button v-if="parentXmMenu.dclass==='1'" icon="el-icon-plus" @click="showAdd(2)">
<div class="icon" style="background-color: rgb(0, 153, 51);"> <div class="icon" style="background-color: rgb(0, 153, 51);">
<i class="el-icon-s-flag"></i> <i class="el-icon-s-flag"></i>
</div> 添加特性 </div> 添加特性
</el-button> </el-button>
<el-button v-if="parentXmMenu.dclass==='2'" icon="el-icon-plus" @click="showAdd">
<el-button v-if="parentXmMenu.dclass==='2'" icon="el-icon-plus" @click="showAdd(3)">
<div class="icon" :style="{backgroundColor: calcMenuLabel.color }"> <div class="icon" :style="{backgroundColor: calcMenuLabel.color }">
<i :class="calcMenuLabel.icon"></i> <i :class="calcMenuLabel.icon"></i>
</div> </div>
添加用户故事 添加用户故事
</el-button> </el-button>
<el-button v-if="parentXmMenu.dclass==='3'" icon="el-icon-plus" @click="showAdd">
<el-button v-if="parentXmMenu.dclass==='3'" icon="el-icon-plus" @click="showAdd('4')">
<div class="icon" style="background-color: #1CC7EA;"> <div class="icon" style="background-color: #1CC7EA;">
<i class="el-icon-s-operation"></i> <i class="el-icon-s-operation"></i>
</div> </div>
添加任务</el-button> 添加任务</el-button>
<el-button v-if="parentXmMenu.dclass==='3'" icon="el-icon-plus" @click="showAdd">
<el-button v-if="parentXmMenu.dclass==='3'" icon="el-icon-plus" @click="showAdd('5')">
<div class="icon" style="background-color: #F56C6C;"> <div class="icon" style="background-color: #F56C6C;">
<i class="el-icon-warning"></i> <i class="el-icon-warning"></i>
@ -41,7 +41,7 @@
用户故事 用户故事
</el-row> </el-row>
<el-row> <el-row>
<el-table :data="xmMenus" :show-header="false">
<el-table :data="xmMenus" :show-header="false" :max-height="400">
<el-table-column type="index" label="序号"></el-table-column> <el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="menuName" label="名称"></el-table-column> <el-table-column prop="menuName" label="名称"></el-table-column>
</el-table> </el-table>
@ -55,7 +55,7 @@
</div> </div>
任务</el-row> 任务</el-row>
<el-row> <el-row>
<el-table :data="xmTasks" :show-header="false">
<el-table :data="xmTasks" :show-header="false" :max-height="400">
<el-table-column type="index" label="序号"></el-table-column> <el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="name" label="名称"></el-table-column> <el-table-column prop="name" label="名称"></el-table-column>
</el-table> </el-table>
@ -70,7 +70,7 @@
</div> </div>
缺陷</el-row> 缺陷</el-row>
<el-row> <el-row>
<el-table :data="xmBugs" :show-header="false">
<el-table :data="xmBugs" :show-header="false" :max-height="400">
<el-table-column type="index" label="序号"></el-table-column> <el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="name" label="名称"></el-table-column> <el-table-column prop="name" label="名称"></el-table-column>
</el-table> </el-table>
@ -88,7 +88,7 @@ import {
listXmTask, listXmTask,
} from "@/api/xm/core/xmTask"; } from "@/api/xm/core/xmTask";
import { listXmQuestion} from '@/api/xm/core/xmQuestion'; import { listXmQuestion} from '@/api/xm/core/xmQuestion';
import { listXmMenu } from '@/api/xm/core/xmMenu';
import { listXmMenu,addXmMenu } from '@/api/xm/core/xmMenu';
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
@ -124,6 +124,7 @@ export default {
}, },
data() { data() {
return{ return{
load:{edit:false,list:false,add:false},
xmTasks:[], xmTasks:[],
xmBugs:[], xmBugs:[],
xmMenus:[], xmMenus:[],
@ -177,10 +178,45 @@ export default {
this.getXmTasks(); this.getXmTasks();
this.getXmBugs(); this.getXmBugs();
} }
},
addXmMenu(name){
debugger;
var menu={...this.parentXmMenu}
menu.mmUserid=this.userInfo.userid
menu.mmUsername=this.userInfo.username
menu.seqNo=this.parentXmMenu.seqNo+"."+(parseInt(this.parentXmMenu.childrenCnt)+1)
menu.pmenuId=this.parentXmMenu.menuId
menu.pmenuName=this.parentXmMenu.menuName
menu.dclass=(parseInt(this.parentXmMenu.dclass)+1)+'';
menu.menuId=null;
menu.menuName=name
addXmMenu(menu).then((res) => {
this.load.edit=false
var tips=res.data.tips;
if(tips.isOk){
this.$emit('submit',res.data.data);// @submit="afterAddSubmit"
this.xmMenus.push(res.data.data)
}
this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.edit=false);
},
showAdd(dclass) {
this.$prompt('请输入标题', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(({ value }) => {
if(dclass<4){
this.addXmMenu(value);
}else if(dclass==='4'){
this.addXmTask(value);
}else if(dclass==='5'){
this.addXmQuestion(value);
}
}).catch(() => {
});
}, },
showAdd(){
}
/**end 自定义函数请在上面加**/ /**end 自定义函数请在上面加**/
}, //end methods }, //end methods
components: { components: {

Loading…
Cancel
Save