Browse Source

优化

master
陈裕财 3 years ago
parent
commit
e77771f5f6
  1. 32
      src/views/xm/core/xmGroup/XmGroupMng.vue
  2. 4
      src/views/xm/core/xmTask/XmPhase.vue
  3. 2
      src/views/xm/core/xmTask/XmPhaseSelect.vue
  4. 34
      src/views/xm/core/xmTask/XmTaskAdd.vue
  5. 6
      src/views/xm/core/xmTask/XmTaskEdit.vue

32
src/views/xm/core/xmGroup/XmGroupMng.vue

@ -1,7 +1,7 @@
<template> <template>
<section class="page-container border padding" > <section class="page-container border padding" >
<el-row> <el-row>
<xm-project-select style="display:inline;" v-if="!selProject" :auto-select="true" :link-iteration-id="xmIteration?xmIteration.id:null" :link-product-id="xmProduct?xmProduct.id:null" @selected="onProjectRowClick" @clear="onProjectClearSelect"></xm-project-select>
<xm-project-select style="display:inline;" v-if="!selProject&&!xmProduct" :auto-select="true" :link-iteration-id="xmIteration?xmIteration.id:null" :link-product-id="xmProduct?xmProduct.id:null" @selected="onProjectRowClick" @clear="onProjectClearSelect"></xm-project-select>
<el-input v-model="filters.key" style="width:15%;" clearable placeholder="名称过滤"></el-input> <el-input v-model="filters.key" style="width:15%;" clearable placeholder="名称过滤"></el-input>
<el-button type="primary" @click="searchXmGroups" icon="el-icon-search">刷新</el-button> <el-button type="primary" @click="searchXmGroups" icon="el-icon-search">刷新</el-button>
@ -54,6 +54,10 @@
<el-button type="primary" @click="loadNexGroup" icon="el-icon-search" v-loading="load.add">加载下一级小组</el-button> <el-button type="primary" @click="loadNexGroup" icon="el-icon-search" v-loading="load.add">加载下一级小组</el-button>
<el-button @click="showProjectGroupAdd" icon="el-icon-plus" v-loading="load.add">新增项目小组</el-button> <el-button @click="showProjectGroupAdd" icon="el-icon-plus" v-loading="load.add">新增项目小组</el-button>
</el-row> </el-row>
<el-row v-else-if="currNodeType=='product'">
<el-button type="primary" @click="loadNexGroup" icon="el-icon-search" v-loading="load.add">加载下一级小组</el-button>
<el-button @click="showProductGroupAdd" icon="el-icon-plus" v-loading="load.add">新增产品小组</el-button>
</el-row>
<el-row v-else-if="currNodeType=='group'"> <el-row v-else-if="currNodeType=='group'">
<el-row> <el-row>
<el-button type="primary" @click="loadNexGroup" icon="el-icon-search" v-loading="load.add">加载下一级小组</el-button> <el-button type="primary" @click="loadNexGroup" icon="el-icon-search" v-loading="load.add">加载下一级小组</el-button>
@ -263,6 +267,14 @@ XmTaskExecuserSelect,
topdata.leaderUsername=this.filters.selProject.pmUsername topdata.leaderUsername=this.filters.selProject.pmUsername
topdata.assUserid=this.filters.selProject.assUserid topdata.assUserid=this.filters.selProject.assUserid
topdata.assUsername=this.filters.selProject.assUsername topdata.assUsername=this.filters.selProject.assUsername
}else if(this.xmProduct && this.xmProduct.id){
topLabel=this.xmProduct.productName+"-产品组织架构"
currNodeType='product'
topdata=this.xmProduct
topdata.leaderUserid=this.xmProduct.pmUserid
topdata.leaderUsername=this.xmProduct.pmUsername
topdata.assUserid=this.xmProduct.assUserid
topdata.assUsername=this.xmProduct.assUsername
}else{ }else{
return [] return []
} }
@ -288,6 +300,9 @@ XmTaskExecuserSelect,
this.filters.selProject=this.selProject; this.filters.selProject=this.selProject;
this.getXmGroup(); this.getXmGroup();
}, },
xmProduct(){
this.getXmGroup();
},
"filters.key":function(val) { "filters.key":function(val) {
this.$refs.tree.filter(val); this.$refs.tree.filter(val);
}, },
@ -384,7 +399,7 @@ XmTaskExecuserSelect,
params.projectId=this.editForm.id params.projectId=this.editForm.id
params.lvl=1 params.lvl=1
}else if(this.currNodeType=='product'){ }else if(this.currNodeType=='product'){
//params.productId=this.editForm.id
params.productId=this.editForm.id
params.lvl=1 params.lvl=1
}else if(this.currNodeType=='group'){ }else if(this.currNodeType=='group'){
params.pgroupId=this.editForm.id params.pgroupId=this.editForm.id
@ -399,9 +414,12 @@ XmTaskExecuserSelect,
var childrens = res.data.data; var childrens = res.data.data;
childrens=childrens.filter(i=>!this.xmGroups.some(k=>k.id==i.id)) childrens=childrens.filter(i=>!this.xmGroups.some(k=>k.id==i.id))
this.xmGroups.push(...childrens) this.xmGroups.push(...childrens)
this.$notify({position:'bottom-left',showClose:true, message: tips.msg+",返回"+res.data.data.length+"条数据。", type: tips.isOk?'success':'error' });
}else{ }else{
this.$notify({position:'bottom-left',showClose:true, message: tips.msg, type: 'error' });
}
this.$notify({position:'bottom-left',showClose:true, message: tips.msg, type: tips.isOk?'success':'error' });
}
this.load.list = false; this.load.list = false;
}).catch( err => this.load.list = false ); }).catch( err => this.load.list = false );
}, },
@ -420,12 +438,16 @@ XmTaskExecuserSelect,
} }
params.orderBy= orderBys.join(",") params.orderBy= orderBys.join(",")
} }
if( !this.filters.selProject || !this.filters.selProject.id){
if( (!this.filters.selProject || !this.filters.selProject.id) && (!this.xmProduct || !this.xmProduct.id)){
return; return;
} }
if(this.filters.selProject && this.filters.selProject.id){ if(this.filters.selProject && this.filters.selProject.id){
params.projectId=this.filters.selProject.id params.projectId=this.filters.selProject.id
} }
if(this.xmProduct && this.xmProduct.id){
params.productId=this.xmProduct.id
}
if(this.filters.key){ if(this.filters.key){
params.key=this.filters.key params.key=this.filters.key
} }

4
src/views/xm/core/xmTask/XmPhase.vue

@ -215,7 +215,7 @@
</el-row> </el-row>
<!--编辑 XmTask xm_task界面--> <!--编辑 XmTask xm_task界面-->
<el-dialog <el-dialog
title="编辑任务"
title="编辑计划"
:visible.sync="editFormVisible" :visible.sync="editFormVisible"
width="90%" width="90%"
top="20px" top="20px"
@ -238,7 +238,7 @@
<!-- 新增 XmTask xm_task界面--> <!-- 新增 XmTask xm_task界面-->
<el-dialog <el-dialog
class="xm-task-add" class="xm-task-add"
title="新增任务"
title="新增计划"
:visible.sync="addFormVisible" :visible.sync="addFormVisible"
width="90%" width="90%"
top="20px" top="20px"

2
src/views/xm/core/xmTask/XmPhaseSelect.vue

@ -137,7 +137,7 @@ export default {
watch: { watch: {
selProject: function (oval, val) { selProject: function (oval, val) {
this.filters.selProject = this.selProject; this.filters.selProject = this.selProject;
this.changeSelKey("all");
this.changeSelKey("");
}, },
xmProduct: function () { xmProduct: function () {
this.filters.product = this.xmProduct; this.filters.product = this.xmProduct;

34
src/views/xm/core/xmTask/XmTaskAdd.vue

@ -226,7 +226,7 @@
</el-drawer> </el-drawer>
<el-drawer title="选中上级" :visible.sync="selectParentTaskVisible" size="60%" append-to-body :close-on-click-modal="false"> <el-drawer title="选中上级" :visible.sync="selectParentTaskVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-task-list check-scope="plan" query-scope="plan" :sel-project="xmProject" :xm-product="xmProduct" :ptype="addForm.ptype" @task-selected="onSelectedParentTask"></xm-task-list>
<xm-phase-select check-scope="plan" query-scope="plan" :sel-project="xmProject" :xm-product="xmProduct" :ptype="addForm.ptype" @select="onSelectedParentTask"></xm-phase-select>
</el-drawer> </el-drawer>
<el-drawer append-to-body title="需求明细" :visible.sync="menuDetailVisible" size="60%" :close-on-click-modal="false"> <el-drawer append-to-body title="需求明细" :visible.sync="menuDetailVisible" size="60%" :close-on-click-modal="false">
<xm-menu-rich-detail :visible="menuDetailVisible" :reload="true" :xm-menu="{menuId:addForm.menuId,menuName:addForm.menuName}" ></xm-menu-rich-detail> <xm-menu-rich-detail :visible="menuDetailVisible" :reload="true" :xm-menu="{menuId:addForm.menuId,menuName:addForm.menuName}" ></xm-menu-rich-detail>
@ -244,6 +244,7 @@
import skillMng from "@/views/xm/core/skill/skillMng"; import skillMng from "@/views/xm/core/skill/skillMng";
import {batchAddSkill } from '@/api/xm/core/xmTaskSkill'; import {batchAddSkill } from '@/api/xm/core/xmTaskSkill';
import xmMenuSelect from '../xmMenu/XmMenuSelect'; import xmMenuSelect from '../xmMenu/XmMenuSelect';
import XmPhaseSelect from './XmPhaseSelect';
import XmTaskList from '../xmTask/XmTaskList'; import XmTaskList from '../xmTask/XmTaskList';
import XmGroupSelect from '../xmGroup/XmGroupSelect.vue'; import XmGroupSelect from '../xmGroup/XmGroupSelect.vue';
import MdpSelectUserXm from '@/views/xm/core/components/MdpSelectUserXm' import MdpSelectUserXm from '@/views/xm/core/components/MdpSelectUserXm'
@ -314,6 +315,9 @@
addForm: { addForm: {
id:'',name:'',parentTaskid:'',parentTaskname:'',projectId:'',projectName:'',level:'',sortLevel:'',executorUserid:'',executorUsername:'',preTaskid:'',preTaskname:'',startTime:'',endTime:'',milestone:'',description:'',remarks:'',createUserid:'',createUsername:'',createTime:'',rate:0,budgetAt:0,budgetWorkload:0,actAt:0,actWorkload:0,taskState:'0',taskType:'4',taskClass:'',toTaskCenter:'0',actStartTime:'',actEndTime:'',bizProcInstId:'',bizFlowState:'',phaseId:'',phaseName:'',taskSkillNames:'',exeUsernames:'',taskSkillIds:'',exeUserids:'',taskOut:'0',planType:'w2',settleSchemel:'1',menuId:'',menuName:'',productId:'',cbranchId:'',cdeptid:'',tagIds:'',tagNames:'',ntype:'',childrenCnt:'',ltime:'',pidPaths:'',lvl:'',isTpl:'',keyPath:'',uniInnerPrice:80,uniOutPrice:100,calcType:'',ptype:'',wtype:'',bctrl:'',initWorkload:'',shareFee:'',oshare:'',crowd:'',browseUsers:'',execUsers:'',cityId:'',cityName:'',regionType:'',browseTimes:'',capaLvls:'',tranMode:'',supRequires:'',hot:'0',top:'0',urgent:'0',crmSup:'0',bidStep:'0',interestLvls:'',filePaths:'',estate:'0',efunds:0,etoPlatTime:'',etoDevTime:'',ebackTime:'',topStime:'',topEtime:'',hotStime:'',hotEtime:'',urgentStime:'',urgentEtime:'' id:'',name:'',parentTaskid:'',parentTaskname:'',projectId:'',projectName:'',level:'',sortLevel:'',executorUserid:'',executorUsername:'',preTaskid:'',preTaskname:'',startTime:'',endTime:'',milestone:'',description:'',remarks:'',createUserid:'',createUsername:'',createTime:'',rate:0,budgetAt:0,budgetWorkload:0,actAt:0,actWorkload:0,taskState:'0',taskType:'4',taskClass:'',toTaskCenter:'0',actStartTime:'',actEndTime:'',bizProcInstId:'',bizFlowState:'',phaseId:'',phaseName:'',taskSkillNames:'',exeUsernames:'',taskSkillIds:'',exeUserids:'',taskOut:'0',planType:'w2',settleSchemel:'1',menuId:'',menuName:'',productId:'',cbranchId:'',cdeptid:'',tagIds:'',tagNames:'',ntype:'',childrenCnt:'',ltime:'',pidPaths:'',lvl:'',isTpl:'',keyPath:'',uniInnerPrice:80,uniOutPrice:100,calcType:'',ptype:'',wtype:'',bctrl:'',initWorkload:'',shareFee:'',oshare:'',crowd:'',browseUsers:'',execUsers:'',cityId:'',cityName:'',regionType:'',browseTimes:'',capaLvls:'',tranMode:'',supRequires:'',hot:'0',top:'0',urgent:'0',crmSup:'0',bidStep:'0',interestLvls:'',filePaths:'',estate:'0',efunds:0,etoPlatTime:'',etoDevTime:'',ebackTime:'',topStime:'',topEtime:'',hotStime:'',hotEtime:'',urgentStime:'',urgentEtime:''
}, },
addFormInit: {
id:'',name:'',parentTaskid:'',parentTaskname:'',projectId:'',projectName:'',level:'',sortLevel:'',executorUserid:'',executorUsername:'',preTaskid:'',preTaskname:'',startTime:'',endTime:'',milestone:'',description:'',remarks:'',createUserid:'',createUsername:'',createTime:'',rate:0,budgetAt:0,budgetWorkload:0,actAt:0,actWorkload:0,taskState:'0',taskType:'4',taskClass:'',toTaskCenter:'0',actStartTime:'',actEndTime:'',bizProcInstId:'',bizFlowState:'',phaseId:'',phaseName:'',taskSkillNames:'',exeUsernames:'',taskSkillIds:'',exeUserids:'',taskOut:'0',planType:'w2',settleSchemel:'1',menuId:'',menuName:'',productId:'',cbranchId:'',cdeptid:'',tagIds:'',tagNames:'',ntype:'',childrenCnt:'',ltime:'',pidPaths:'',lvl:'',isTpl:'',keyPath:'',uniInnerPrice:80,uniOutPrice:100,calcType:'',ptype:'',wtype:'',bctrl:'',initWorkload:'',shareFee:'',oshare:'',crowd:'',browseUsers:'',execUsers:'',cityId:'',cityName:'',regionType:'',browseTimes:'',capaLvls:'',tranMode:'',supRequires:'',hot:'0',top:'0',urgent:'0',crmSup:'0',bidStep:'0',interestLvls:'',filePaths:'',estate:'0',efunds:0,etoPlatTime:'',etoDevTime:'',ebackTime:'',topStime:'',topEtime:'',hotStime:'',hotEtime:'',urgentStime:'',urgentEtime:''
},
/**begin 在下面加自定义属性,记得补上面的一个逗号**/ /**begin 在下面加自定义属性,记得补上面的一个逗号**/
menuVisible:false, menuVisible:false,
menuDetailVisible:false, menuDetailVisible:false,
@ -336,20 +340,16 @@
}, },
//XmTask xm_task @submit="afterAddSubmit" //XmTask xm_task @submit="afterAddSubmit"
addSubmit: function () { addSubmit: function () {
if(this.xmIteration && this.xmIteration.id){
if(!this.addForm.menuId){
this.$notify({position:'bottom-left',showClose:true,message:'在迭代视图中添加任务需要关联需求!请选择需求',type: 'error'})
this.menuVisible=true;
return;
}
}
if(this.xmProduct && this.xmProduct.id){
if(!this.addForm.menuId){
this.$notify({position:'bottom-left',showClose:true,message:'在产品视图中添加任务需要关联需求!请选择需求',type: 'error'})
this.menuVisible=true;
return;
if(this.addForm.ntype!='1'){
if(this.xmIteration && this.xmIteration.id){
if(!this.addForm.menuId){
this.$notify({position:'bottom-left',showClose:true,message:'在迭代视图中添加任务需要关联需求!请选择需求',type: 'error'})
this.menuVisible=true;
return;
}
} }
} }
this.$refs.addForm.validate((valid) => { this.$refs.addForm.validate((valid) => {
if (valid) { if (valid) {
if(this.addForm.oshare==='1'){ if(this.addForm.oshare==='1'){
@ -556,6 +556,7 @@
this.execGroupUserSelectVisible=false; this.execGroupUserSelectVisible=false;
}, },
initData(){ initData(){
this.addForm={...this.addFormInit}
if(this.parentTask && this.parentTask.id){ if(this.parentTask && this.parentTask.id){
this.addForm=Object.assign(this.addForm, this.parentTask); this.addForm=Object.assign(this.addForm, this.parentTask);
this.addForm.parentTaskid=this.parentTask.id this.addForm.parentTaskid=this.parentTask.id
@ -591,6 +592,11 @@
this.addForm.productId=this.xmProduct.id this.addForm.productId=this.xmProduct.id
this.addForm.productName=this.xmProduct.productName this.addForm.productName=this.xmProduct.productName
} }
if(this.xmIteration && !this.xmProduct && !this.addForm.productId){
this.addForm.productId=this.xmIteration.productId
this.addForm.productName=this.xmIteration.productName
}
if(this.parentTask && this.parentTask.id){ if(this.parentTask && this.parentTask.id){
if(this.parentTask.childrenCnt){ if(this.parentTask.childrenCnt){
this.addForm.sortLevel=this.parentTask.sortLevel+"."+(this.parentTask.childrenCnt+1) this.addForm.sortLevel=this.parentTask.sortLevel+"."+(this.parentTask.childrenCnt+1)
@ -632,7 +638,7 @@
},//end method },//end method
components: { components: {
xmSkillMng, xmSkillMng,
skillMng,xmMenuSelect,XmTaskList,XmGroupSelect,MdpSelectUserXm
skillMng,xmMenuSelect,XmTaskList,XmGroupSelect,MdpSelectUserXm,XmPhaseSelect
// 'xm-task-edit':XmTaskEdit // 'xm-task-edit':XmTaskEdit
}, },
mounted() { mounted() {

6
src/views/xm/core/xmTask/XmTaskEdit.vue

@ -245,7 +245,7 @@
</el-row> </el-row>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="需求" name="3">
<el-tab-pane label="需求" name="3" v-if="editForm.ntype!='1'">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
@ -525,9 +525,9 @@
</tag-mng> </tag-mng>
</el-drawer> </el-drawer>
<el-dialog title="选择新的上级计划" append-to-body :visible.sync="selectParentPlanVisible" width="60%" top="20px">
<el-drawer title="选择新的上级计划" append-to-body :visible.sync="selectParentPlanVisible" size="60%">
<xm-phase-select :sel-project="xmProject" @select="onSelectedParentTask"></xm-phase-select> <xm-phase-select :sel-project="xmProject" @select="onSelectedParentTask"></xm-phase-select>
</el-dialog>
</el-drawer>
<!--编辑 XmTask xm_task界面--> <!--编辑 XmTask xm_task界面-->
<el-dialog <el-dialog

Loading…
Cancel
Save