From 0bb3c2291d3b36a67775a1059ba4737255fe16d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Fri, 8 Apr 2022 17:07:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/xm/core/xmTaskExecuser.js | 2 + src/router/routes_xm.js | 1 + src/views/xm/core/xmTask/XmTaskEdit.vue | 2 +- src/views/xm/core/xmTask/XmTaskMng.vue | 2 +- .../xmTaskExecuser/XmTaskExecuserForTask.vue | 764 ++++++++++++++++++ .../core/xmTaskExecuser/XmTaskExecuserMng.vue | 227 ++++-- .../xmTaskWorkload/XmTaskWorkloadEdit.vue | 3 +- 7 files changed, 925 insertions(+), 76 deletions(-) create mode 100644 src/views/xm/core/xmTaskExecuser/XmTaskExecuserForTask.vue diff --git a/src/api/xm/core/xmTaskExecuser.js b/src/api/xm/core/xmTaskExecuser.js index 56bb925f..d8d5b281 100644 --- a/src/api/xm/core/xmTaskExecuser.js +++ b/src/api/xm/core/xmTaskExecuser.js @@ -44,4 +44,6 @@ export const toTest = params => { return axios.post(`${base}/xm/core/xmTaskExecu export const testSuccess = params => { return axios.post(`${base}/xm/core/xmTaskExecuser/testSuccess`, params); }; export const testFail = params => { return axios.post(`${base}/xm/core/xmTaskExecuser/testFail`, params); }; +export const listXmTaskExecuserWithTask = params => { return axios.get(`${base}/xm/core/xmTaskExecuser/listWithTask`, { params: params }); }; + diff --git a/src/router/routes_xm.js b/src/router/routes_xm.js index cd8829d4..b10b4e02 100644 --- a/src/router/routes_xm.js +++ b/src/router/routes_xm.js @@ -72,6 +72,7 @@ export default { { path: 'xmTask/XmTaskCenter', component: _import('xm/core/xmTask/XmTaskCenter'), name: 'xmTaskCenter', meta: { title: '任务大厅' }}, { path: 'xmTask/XmMyTaskCenter', component: _import('xm/core/xmTask/XmMyTaskCenter'), name: 'xmMyTaskCenter', meta: { title: '任务(我的)' }}, + { path: 'xmTaskExecuser/XmTaskExecuserMng', component: _import('xm/core/xmTaskExecuser/XmTaskExecuserMng'), name: 'XmTaskExecuserMng', meta: { title: '候选人管理' }}, { path: 'xmTask/XmTaskCenterForProduct', component: _import('xm/core/xmTask/XmTaskCenterForProduct'), name: 'XmTaskCenterForProduct', meta: { title: '产品任务',hidden:true }}, ] diff --git a/src/views/xm/core/xmTask/XmTaskEdit.vue b/src/views/xm/core/xmTask/XmTaskEdit.vue index 896649fa..bbb04686 100644 --- a/src/views/xm/core/xmTask/XmTaskEdit.vue +++ b/src/views/xm/core/xmTask/XmTaskEdit.vue @@ -259,7 +259,7 @@ import {batchAddSkill } from '@/api/xm/core/xmTaskSkill'; import xmMenuSelect from '../xmMenu/XmMenuSelect'; import XmTaskList from '../xmTask/XmTaskList'; - import XmExecuserMng from '../xmTaskExecuser/XmTaskExecuserMng'; + import XmExecuserMng from '../xmTaskExecuser/XmTaskExecuserForTask'; import XmGroupSelect from '../xmGroup/XmGroupSelect.vue'; import XmMenuRichDetail from '../xmMenu/XmMenuRichDetail'; import TagMng from "@/views/mdp/arc/tag/TagMng"; diff --git a/src/views/xm/core/xmTask/XmTaskMng.vue b/src/views/xm/core/xmTask/XmTaskMng.vue index e4f62853..da32ed39 100644 --- a/src/views/xm/core/xmTask/XmTaskMng.vue +++ b/src/views/xm/core/xmTask/XmTaskMng.vue @@ -919,7 +919,7 @@ import XmTaskEdit from "./XmTaskEdit"; //修改界面 import XmTaskMngBatch from "./XmTaskMngBatch"; //修改界面 import XmTaskAgileKanban from "./XmTaskAgileKanban"; //敏捷看板 import { mapGetters } from "vuex"; -import xmExecuserMng from "../xmTaskExecuser/XmTaskExecuserMng"; +import xmExecuserMng from "../xmTaskExecuser/XmTaskExecuserForTask"; import xmSkillMng from "../xmTaskSkill/XmTaskSkillMng"; import skillMng from "@/views/xm/core/skill/skillMng"; import { batchAddSkill } from "@/api/xm/core/xmTaskSkill"; diff --git a/src/views/xm/core/xmTaskExecuser/XmTaskExecuserForTask.vue b/src/views/xm/core/xmTaskExecuser/XmTaskExecuserForTask.vue new file mode 100644 index 00000000..f8d915ac --- /dev/null +++ b/src/views/xm/core/xmTaskExecuser/XmTaskExecuserForTask.vue @@ -0,0 +1,764 @@ + + + + + diff --git a/src/views/xm/core/xmTaskExecuser/XmTaskExecuserMng.vue b/src/views/xm/core/xmTaskExecuser/XmTaskExecuserMng.vue index f8d915ac..5a5cc8ae 100644 --- a/src/views/xm/core/xmTaskExecuser/XmTaskExecuserMng.vue +++ b/src/views/xm/core/xmTaskExecuser/XmTaskExecuserMng.vue @@ -1,49 +1,23 @@ @@ -130,21 +168,27 @@ //import Sticky from '@/components/Sticky' // 粘性header组件 import { initSimpleDicts } from '@/api/mdp/meta/item';//下拉框数据查询 - import { listXmTaskExecuser,editXmTaskExecuser,leaveTask,beExecutor,settleExec, delXmTaskExecuser, batchDelXmTaskExecuser,quotePrice,becomeCandidate,toTest,testSuccess,testFail } from '@/api/xm/core/xmTaskExecuser'; + import { listXmTaskExecuserWithTask,editXmTaskExecuser,leaveTask,beExecutor,settleExec, delXmTaskExecuser, batchDelXmTaskExecuser,quotePrice,becomeCandidate,toTest,testSuccess,testFail } from '@/api/xm/core/xmTaskExecuser'; import XmTaskExecuserAdd from './XmTaskExecuserAdd';//新增界面 import XmTaskExecuserEdit from './XmTaskExecuserEdit';//修改界面 import XmProjectMCostUserList from '../xmProjectMCostUser/XmProjectMCostUserList'; import { mapGetters } from 'vuex' import html2canvas from 'html2canvas' import { uploadBase64 } from '@/api/mdp/arc/image'; + import XmTaskWorkloadEdit from "@/views/xm/core/xmTaskWorkload/XmTaskWorkloadEdit"; export default { computed: { ...mapGetters([ 'userInfo','roles' ]), + xmTask:function(){ + var xmTask={...this.editForm} + xmTask.id=this.editForm.taskId; + return xmTask; + } }, - props: ["visible","xmTask","isMy"], + props: ["visible","isMy"], watch: { 'visible': function(val) { if(val == true){ @@ -156,7 +200,10 @@ data() { return { filters: { - key: '' + key: '', + execUserBranchId:'', + taskId:'', + projectId:'', }, xmTaskExecusers: [],//查询结果 pageInfo:{//分页数据 @@ -164,7 +211,7 @@ pageSize:10,//每页数据 count:false,//是否需要重新计算总记录数 pageNum:1,//当前页码、从1开始计算 - orderFields:['create_time'],//排序列 如 ['sex','student_id'],必须为数据库字段 + orderFields:['res.create_time'],//排序列 如 ['sex','student_id'],必须为数据库字段 orderDirs:['desc']//升序 asc,降序desc 如 性别 升序、学生编号降序 ['asc','desc'] }, load:{ list: false, edit: false, del: false, add: false },//查询中... @@ -202,6 +249,8 @@ execuserAddType:'add',//add为新增 join为当前登陆者加入 pickerOptions: util.pickerOptions('datarange'), tableHeight:300, + taskWorkloadVisible:false, + /**end 自定义属性请在上面加 请加备注**/ } },//end data @@ -248,21 +297,25 @@ params.orderBy= orderBys.join(",") } if(this.filters.key!==""){ - params.fuzzy = '%'+this.filters.key+'%'; - //params.xxx=this.filters.key - }else{ - //params.xxx=xxxxx - } + params.key=this.filters.key + } if(this.isMy=='1'){ params.isMy='1' } - this.load.list = true; - params.taskId = this.xmTask.id; - params.projectId=this.xmTask.projectId + this.load.list = true; if(this.isMy=='1'){ params.userid=this.userInfo.userid } - listXmTaskExecuser(params).then((res) => { + if(this.filters.taskId){ + params.taskId=this.filters.taskId + } + if(this.filters.projectId){ + params.projectId=this.filters.projectId + } + if(this.filters.execUserBranchId){ + params.execUserBranchId=this.filters.execUserBranchId + } + listXmTaskExecuserWithTask(params).then((res) => { var tips=res.data.tips; if(tips.isOk){ this.pageInfo.total = res.data.total; @@ -708,22 +761,52 @@ formatToDoByStatus(row){ var status=row.status; var msg="点我操作" - if(status=='1'){ - msg="请申请验收"; - }else if( row.status=='3' && row.settleStatus!='2' && row.settleStatus!='4' && row.settleStatus!='6' ){ - msg="请申请结算"; - }else if(status=='2' ){ - msg="请给出验收结论"; - }else if(status=='7' ){ + if(status=='1' && row.taskState=='1'){ + msg="请及时填报工时"; + }else if(status=='7' && ( row.taskState=='0' || row.taskState=='1')){ msg="申请成为候选人"; - }else if(status=='0' ){ + }else if(status=='0' && ( row.taskState=='0' || row.taskState=='1')){ msg="申请成为执行人"; - }else if( row.status=='3' || row.status=='6' ){ + }else if( status=='1' && (row.taskState=='2' || row.taskState=='3'|| row.taskState=='4' )){ msg="查看结算清单"; - } else if( row.status=='4'){ - msg="再次申请验收"; - } + } return msg; + }, + + formatterTaskStateDicts: function(cellValue){ + if(!cellValue && cellValue!=='0'){ + return [] + } + var key="taskState"; + if(this.dicts[key]==undefined || this.dicts[key]==null || this.dicts[key].length==0 ){ + return [{id:cellValue,name:cellValue,className:'primary'}]; + } + var list=this.dicts[key].filter(i=>i.id==cellValue) + if(list.length>0){ + var data= {...list[0],className:'primary'} + if(data.id=='0'){ + data.className='primary' + }else if(data.id=='1'){ + data.className='warning' + }else if(data.id=='2'){ + data.className='success' + }else if(data.id=='3'){ + data.className='info' + } else{ + data.className='danger' + } + return [data]; + }else{ + return [{id:cellValue,name:cellValue,className:'primary'}] + } + + }, + onTaskWorkloadSubmit(){ + this.searchXmTaskExecusers(); + }, + + showWorkload(row){ + this.taskWorkloadVisible=true; } /**end 自定义函数请在上面加**/ @@ -732,7 +815,7 @@ 'xm-task-execuser-add':XmTaskExecuserAdd, 'xm-task-execuser-edit':XmTaskExecuserEdit, - XmProjectMCostUserList, + XmProjectMCostUserList,XmTaskWorkloadEdit, //在下面添加其它组件 }, mounted() { @@ -741,9 +824,9 @@ this.getXmTaskExecusers(); }); - initSimpleDicts('all',['projectTaskExecuserStatus','projectTaskSettleStatus']).then(res=>{ + initSimpleDicts('all',['projectTaskExecuserStatus','projectTaskSettleStatus','taskState']).then(res=>{ this.dicts=res.data.data; - }) + }) } } diff --git a/src/views/xm/core/xmTaskWorkload/XmTaskWorkloadEdit.vue b/src/views/xm/core/xmTaskWorkload/XmTaskWorkloadEdit.vue index c226e5bf..97d46a56 100644 --- a/src/views/xm/core/xmTaskWorkload/XmTaskWorkloadEdit.vue +++ b/src/views/xm/core/xmTaskWorkload/XmTaskWorkloadEdit.vue @@ -177,8 +177,7 @@ var tips=res.data.tips; if(tips.isOk){ this.editForm=res.data.data - this.initData() - this.currOpType="edit"; + this.initData() this.$emit('submit');// @submit="afterAddSubmit" } this.$notify({position:'bottom-left',showClose:true, message: tips.msg, type: tips.isOk?'success':'error' });