Browse Source

优化

master
陈裕财 4 years ago
parent
commit
8a66c1f49f
  1. 3
      src/api/xm/core/xmTask.js
  2. 45
      src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue

3
src/api/xm/core/xmTask.js

@ -44,6 +44,9 @@ export const batchSaveBudget = params => { return axios.post(`${base}/xm/core/xm
export const batchRelTasksWithMenu = params => { return axios.post(`${base}/xm/core/xmTask/batchRelTasksWithMenu`, params); };
export const batchRelTasksWithPhase = params => { return axios.post(`${base}/xm/core/xmTask/batchRelTasksWithPhase`, params); };
export const setTaskCreateUser = params => { return axios.post(`${base}/xm/core/xmTask/setTaskCreateUser`, params); };
export const editTime = params => { return axios.post(`${base}/xm/core/xmTask/editTime`, params); };

45
src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue

@ -42,6 +42,11 @@
width="200"
trigger="click" >
<el-row>
<el-select v-model="filters.taskFilterType" placeholder="是否分配任务" clearable style="width: 140px;">
<el-option value="not-join" label="未分配任何任务的计划"></el-option>
<el-option value="join" label="已分配任务的计划"></el-option>
</el-select>
<el-col :span="24" style="padding-top:5px;">
<el-button class="hidden-md-and-down" v-loading="load.edit" :disabled="load.edit==true" v-on:click="calcKeyPaths" icon="el-icon-s-help">计算关键路径</el-button>
</el-col>
@ -158,7 +163,8 @@
<i class="el-icon-more"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-search" :command="{type:'showLog',row:scope.row}">日志</el-dropdown-item>
<el-dropdown-item icon="el-icon-edit" :command="{type:'showTaskForBatchRelTasksWithPhase',row:scope.row}">批量关联任务</el-dropdown-item>
<el-dropdown-item icon="el-icon-search" :command="{type:'showLog',row:scope.row}">日志</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'loadTasksToXmProjectPhase',row:scope.row}">从任务中汇总进度</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_start_approva'}">变更发审(审核通过后起效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_delete_approva'}">删除发审(审核通过后删除)</el-dropdown-item>
@ -198,6 +204,10 @@
<el-drawer append-to-body title="需求选择" :visible.sync="menuVisible" size="60%" :close-on-click-modal="false">
<xm-menu-select :visible="menuVisible" :is-select-menu="true" :multi="true" @menus-selected="onSelectedMenus" ></xm-menu-select>
</el-drawer>
<el-drawer append-to-body title="任务选择" :visible.sync="taskVisible" size="80%" :close-on-click-modal="false">
<xm-task-list :visible="taskVisible" :isMultiSelect="true" :sel-project="selProject" @tasks-selected="onSelectedTasks" ></xm-task-list>
</el-drawer>
</el-row>
<el-row v-if="batchEditVisible==true">
<xm-project-phase-batch :sel-project="selProject" @back="batchEditBack"></xm-project-phase-batch>
@ -210,6 +220,8 @@
import treeTool from '@/common/js/treeTool';//
//import Sticky from '@/components/Sticky' // header
import { listOption } from '@/api/mdp/meta/itemOption';//
import { batchRelTasksWithPhase } from '@/api/xm/core/xmTask';
import { listXmProjectPhase,calcKeyPaths, delXmProjectPhase, batchDelXmProjectPhase,batchImportFromTemplate,batchSaveBudget,loadTasksToXmProjectPhase,setPhaseMngUser,selectTotalProjectAndPhaseBudgetCost } from '@/api/xm/core/xmProjectPhase';
import XmProjectPhaseAdd from './XmProjectPhaseAdd';//
import XmProjectPhaseEdit from './XmProjectPhaseEdit';//
@ -221,6 +233,7 @@
import { mapGetters } from 'vuex'
import XmProjectPhaseBatch from './XmProjectPhaseBatch';
import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
import XmTaskList from '../xmTask/XmTaskList.vue';
export default {
@ -348,6 +361,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
},
maps:new Map(),
totalProjectAndPhaseBudgetCost:{},
taskVisible:false,
/**end 自定义属性请在上面加 请加备注**/
}
},//end data
@ -406,8 +420,11 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
if(this.filters.phaseStatus){
params.phaseStatus=this.filters.phaseStatus
}
if(this.filters.taskFilterType){
params.taskFilterType=this.filters.taskFilterType
}
if(!(params.isKeyPath||params.milestone||params.productId||params.iterationId||params.phaseStatus)){
if(!(params.isKeyPath||params.milestone||params.productId||params.iterationId||params.phaseStatus||params.taskFilterType)){
params.isTop="1"
}
return params;
@ -817,7 +834,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
this.handleDel(command.data);
} else if(command.type=='loadTasksToXmProjectPhase'){
this.loadTasksToXmProjectPhase([command.data]);
}
} else if(command.type=='showTaskForBatchRelTasksWithPhase'){
this.taskVisible=true
}
},
///
loadTasksToXmProjectPhase:function(phases){
@ -1185,6 +1204,23 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
this.menuVisible=false;
},
onSelectedTasks(tasks){
if(tasks==null || tasks.length==0){
return;
}
var params={
projectPhaseId:this.editForm.id,
taskIds:tasks.map(i=>i.id)
}
batchRelTasksWithPhase(params).then(res=>{
var tips = res.data.tips;
if(tips.isOk){
this.taskVisible=false;
}
this.$notify({showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})
})
},
handlePopover:function(row,opType){
if('add'==opType){
var subRow=JSON.parse(JSON.stringify(this.addForm));
@ -1302,7 +1338,8 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
'xm-project-phase-add':XmProjectPhaseAdd,
'xm-project-phase-edit':XmProjectPhaseEdit,
XmProjectPhaseTemplateMng,xmMenuSelect,XmGantt,XmProjectPhaseBatch,XmProjectGroupSelect
XmProjectPhaseTemplateMng,xmMenuSelect,XmGantt,XmProjectPhaseBatch,XmProjectGroupSelect,
XmTaskList
//
},
mounted() {

Loading…
Cancel
Save