|
|
|
@ -101,7 +101,10 @@ |
|
|
|
{{scope.row.projectName}} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable prop="menuId" label="故事" min-width="120"> |
|
|
|
<el-table-column prop="menuId" label="故事" min-width="120"> |
|
|
|
<template slot="header"> |
|
|
|
故事<el-button @click="showMenuStory" icon="el-icon-search" circle size="mini"></el-button> |
|
|
|
</template> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-link @click.stop="toMenu(scope.row)">{{scope.row.menuName?scope.row.menuName:'去关联故事'}}</el-link> |
|
|
|
</template> |
|
|
|
@ -111,13 +114,19 @@ |
|
|
|
<div>{{parseFloat(scope.row.budgetCost/10000).toFixed(2)}}万,{{scope.row.budgetWorkload}}人时</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable label="责任人" prop="createUserid" min-width="120" show-overflow-tooltip> |
|
|
|
<el-table-column label="责任人" prop="createUserid" min-width="120" show-overflow-tooltip> |
|
|
|
<template slot="header"> |
|
|
|
责任人<el-button @click="showMenuGroupUser" icon="el-icon-search" circle size="mini"></el-button> |
|
|
|
</template> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-link v-if="scope.row.createUserid!=null && scope.row.createUserid !='' " @click.stop="showGroupUserSelect(scope.row)">{{scope.row.createUsername}}</el-link> |
|
|
|
<el-link type="warning" v-if="scope.row.createUsername==null || scope.row.createUsername ==''" @click.stop="showGroupUserSelect(scope.row)" >去设置</el-link> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable label="执行人" prop="exeUserids" width="120" show-overflow-tooltip> |
|
|
|
<el-table-column label="执行人" prop="exeUserids" width="120" show-overflow-tooltip> |
|
|
|
<template slot="header"> |
|
|
|
执行人<el-button @click="showMenuExecutor" icon="el-icon-search" circle size="mini"></el-button> |
|
|
|
</template> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-link type="danger" v-if="scope.row.exeUsernames!=null && scope.row.exeUsernames !='' && scope.row.exeUsernames.indexOf('验收不过')>=0" @click.stop="showExecusers(scope.row)">{{scope.row.exeUsernames}}</el-link> |
|
|
|
<el-link type="success" v-else-if="scope.row.exeUsernames!=null && scope.row.exeUsernames !='' && scope.row.exeUsernames.indexOf('已验收')>=0" @click.stop="showExecusers(scope.row)">{{scope.row.exeUsernames}}</el-link> |
|
|
|
@ -348,7 +357,16 @@ |
|
|
|
<el-dialog append-to-body title="故事选择" :visible.sync="menuVisible" fullscreen :close-on-click-modal="false"> |
|
|
|
<xm-menu-select :visible="menuVisible" :is-select-menu="true" :multi="true" @menus-selected="onSelectedMenus" ></xm-menu-select> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<el-dialog append-to-body title="故事选择" :visible.sync="menuStory" width="80%" :close-on-click-modal="false"> |
|
|
|
<xm-menu-select :visible="menuStory" :is-select-menu="true" :multi="true" @menus-selected="onSelectedStory"></xm-menu-select> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<el-dialog append-to-body title="选择负责人" :visible.sync="menuGroupUser" width="80%" :close-on-click-modal="false"> |
|
|
|
<xm-project-group-select :visible="menuGroupUser" :sel-project="selProject" :isSelectSingleUser="1" @user-confirm="seleConfirm" ></xm-project-group-select> |
|
|
|
</el-dialog> |
|
|
|
<el-dialog append-to-body title="选择执行人" :visible.sync="menuExecutor" width="80%" :close-on-click-modal="false"> |
|
|
|
<xm-project-group-select :visible="menuExecutor" :sel-project="selProject" :isSelectSingleUser="1" @user-confirm="seleExecutor" ></xm-project-group-select> |
|
|
|
</el-dialog> |
|
|
|
<el-dialog append-to-body title="故事明细" :visible.sync="menuDetailVisible" width="80%" :close-on-click-modal="false"> |
|
|
|
<xm-menu-rich-detail :visible="menuDetailVisible" :reload="true" :xm-menu="{menuId:editForm.menuId,menuName:editForm.menuName}" ></xm-menu-rich-detail> |
|
|
|
</el-dialog> |
|
|
|
@ -545,6 +563,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; |
|
|
|
isMyTask: '0',//0不区分我的,1 时我的任务 |
|
|
|
selProject:null, |
|
|
|
skillTags:[], |
|
|
|
menus:[], |
|
|
|
createUserid:'',//负责人 |
|
|
|
executorUserid:''//执行人 |
|
|
|
}, |
|
|
|
xmTasks: [],//查询结果 |
|
|
|
pageInfo:{//分页数据 |
|
|
|
@ -608,6 +629,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; |
|
|
|
menuDetailVisible:false, |
|
|
|
pickerOptions: util.pickerOptions(), |
|
|
|
gstcVisible:false, |
|
|
|
menuStory:false,//故事查询 |
|
|
|
menuGroupUser:false,//负责人查询 |
|
|
|
menuExecutor:false,//执行人查询 |
|
|
|
groupUserSelectVisible:false,//选择负责人 |
|
|
|
showSkillSearchVisible:false,//按技能查询 |
|
|
|
tableHeight:500, |
|
|
|
@ -711,12 +735,23 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; |
|
|
|
if(this.menuId){ |
|
|
|
params.menuId=this.menuId |
|
|
|
} |
|
|
|
if(this.filters.menus && this.filters.menus.length==1){ |
|
|
|
params.menuId=this.filters.menus[0].menuId |
|
|
|
}else if(this.filters.menus && this.filters.menus.length>1){ |
|
|
|
params.menus=this.filters.menus.map(i=>i.menus) |
|
|
|
} |
|
|
|
if(this.filters.skillTags && this.filters.skillTags.length>0){ |
|
|
|
params.skillIds=this.filters.skillTags.map(i=>i.skillId) |
|
|
|
} |
|
|
|
if(this.filters.key){ |
|
|
|
params.key='%'+this.filters.key+'%' |
|
|
|
} |
|
|
|
if(this.filters.createUserid){ |
|
|
|
params.createUserid=this.filters.createUserid |
|
|
|
} |
|
|
|
if(this.filters.executorUserid){ |
|
|
|
params.executorUserid=this.filters.executorUserid |
|
|
|
} |
|
|
|
getTask(params).then((res) => { |
|
|
|
var tips=res.data.tips; |
|
|
|
if(tips.isOk){ |
|
|
|
@ -954,6 +989,15 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; |
|
|
|
showSkillSelect(){ |
|
|
|
this.showSkillSearchVisible=true; |
|
|
|
}, |
|
|
|
showMenuStory(){ |
|
|
|
this.menuStory=true; |
|
|
|
}, |
|
|
|
showMenuGroupUser(){ |
|
|
|
this.menuGroupUser=true |
|
|
|
}, |
|
|
|
showMenuExecutor(){ |
|
|
|
this.menuExecutor=true |
|
|
|
}, |
|
|
|
skillTagClear(skill){ |
|
|
|
this.filters.skillTags=this.filters.skillTags.filter(i=>i.skillId!=skill.skillId) |
|
|
|
this.searchXmTasks(); |
|
|
|
@ -987,9 +1031,17 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; |
|
|
|
this.menuVisible=false; |
|
|
|
|
|
|
|
}, |
|
|
|
onSelectedStory(menus){//根据故事查询 |
|
|
|
if(menus==null || menus.length==0){ |
|
|
|
this.menuStory=false; |
|
|
|
return; |
|
|
|
} |
|
|
|
this.filters.menus=menus; |
|
|
|
//this.pageInfo.count=true; |
|
|
|
this.getXmTasks(); |
|
|
|
this.menuStory=false; |
|
|
|
}, |
|
|
|
onTaskTemplatesSelected(taskTemplates) { |
|
|
|
|
|
|
|
/////////////////// |
|
|
|
if(taskTemplates==null || taskTemplates.length==0){ |
|
|
|
this.taskTemplateVisible=false; |
|
|
|
this.parentTask=null |
|
|
|
@ -1349,7 +1401,6 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; |
|
|
|
this.selectProjectVisible=true; |
|
|
|
}, |
|
|
|
onPorjectConfirm:function(project){ |
|
|
|
this.filters.selProject=project |
|
|
|
this.selectProjectVisible=false; |
|
|
|
this.getXmTasks(); |
|
|
|
}, |
|
|
|
@ -1516,6 +1567,25 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
//查询时选择责任人 |
|
|
|
seleConfirm(groupUser){ |
|
|
|
if(groupUser&&groupUser.length!==0){ |
|
|
|
this.filters.createUserid=groupUser[0].userid; |
|
|
|
}else{ |
|
|
|
this.filters.createUserid=''; |
|
|
|
} |
|
|
|
this.searchXmTasks(); |
|
|
|
this.menuGroupUser=false; |
|
|
|
}, |
|
|
|
seleExecutor(executor){ |
|
|
|
if(executor&&executor.length!==0){ |
|
|
|
this.filters.executorUserid=executor[0].userid; |
|
|
|
}else{ |
|
|
|
this.filters.executorUserid=''; |
|
|
|
} |
|
|
|
this.searchXmTasks(); |
|
|
|
this.menuExecutor=false; |
|
|
|
}, |
|
|
|
// 判断前后两个数据是否存在同一回路里面 |
|
|
|
// dict 为字典;sId拖拽到menuId; ePmeuId 是放置位置的祖先 menuId; |
|
|
|
judgePmenuId(dict, sId, ePmeuId) { |
|
|
|
@ -1577,12 +1647,10 @@ XmProjectGroupSelect |
|
|
|
//在下面添加其它组件 |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
|
|
|
|
if(this.selProject){ |
|
|
|
this.filters.selProject=this.selProject |
|
|
|
} |
|
|
|
this.$nextTick(()=>{ |
|
|
|
|
|
|
|
this.getXmTasks(); |
|
|
|
this.tableHeight = window.innerHeight - 250; |
|
|
|
listOption([{categoryId:'all',itemCode:'planType'} |
|
|
|
|