diff --git a/src/api/xm/core/xmTaskWorkload.js b/src/api/xm/core/xmTaskWorkload.js index bf37da20..75e75b60 100644 --- a/src/api/xm/core/xmTaskWorkload.js +++ b/src/api/xm/core/xmTaskWorkload.js @@ -33,3 +33,5 @@ export const addXmTaskWorkload = params => { return axios.post(`${base}/xm/core/ export const listByProject = params => { return axios.get(`${base}/xm/core/xmTaskWorkload/listByProject`, { params: params }); }; export const editWorkloadToSbill = params => { return axios.post(`${base}/xm/core/xmTaskWorkload/editWorkloadToSbill`, params); }; + +export const editXmWorkloadWstatus = params => { return axios.post(`${base}/xm/core/xmTaskWorkload/editXmWorkloadWstatus`, params); }; diff --git a/src/router/routes_xm.js b/src/router/routes_xm.js index 2196d0cd..35057db9 100644 --- a/src/router/routes_xm.js +++ b/src/router/routes_xm.js @@ -163,7 +163,10 @@ export default { //leaf: true,//只有一个节点 children: [ { path: 'xmTaskSbill/XmTaskSbillMng', component: _import('xm/core/xmTaskSbill/XmTaskSbillMng'), name: 'XmTaskSbilllMng', meta: { title: '任务结算'}}, - { path: 'xmTaskWorkload/XmTaskWorkloadMng', component: _import('xm/core/xmTaskWorkload/XmTaskWorkloadMng'), name: 'XmTaskWorkloadMng', meta: { title: '工时列表'}}, + /*{ path: 'xmTaskWorkload/XmTaskWorkloadMng', component: _import('xm/core/xmTaskWorkload/XmTaskWorkloadMng'), name: 'XmTaskWorkloadMng', meta: { title: '工时列表'}},*/ + { path: 'xmTaskWorkload/WaitWorkloadToSbill', component: _import('xm/core/xmTaskWorkload/WaitWorkloadToSbill'), name: 'WaitWorkloadToSbill', meta: { title: '待结算工时列表'}}, + { path: 'xmTaskWorkload/FinWorkloadToSbill', component: _import('xm/core/xmTaskWorkload/FinWorkloadToSbill'), name: 'FinWorkloadToSbill', meta: { title: '已结算工时列表'}}, + { path: 'xmTaskWorkload/ToComfirmWorkload', component: _import('xm/core/xmTaskWorkload/ToComfirmWorkload'), name: 'ToComfirmWorkload', meta: { title: '未确认工时列表'}}, ] } ] diff --git a/src/views/xm/core/xmTaskWorkload/FinWorkloadToSbill.vue b/src/views/xm/core/xmTaskWorkload/FinWorkloadToSbill.vue new file mode 100644 index 00000000..392f7467 --- /dev/null +++ b/src/views/xm/core/xmTaskWorkload/FinWorkloadToSbill.vue @@ -0,0 +1,47 @@ + + + + + + diff --git a/src/views/xm/core/xmTaskWorkload/ToComfirmWorkload.vue b/src/views/xm/core/xmTaskWorkload/ToComfirmWorkload.vue new file mode 100644 index 00000000..2964f9af --- /dev/null +++ b/src/views/xm/core/xmTaskWorkload/ToComfirmWorkload.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/views/xm/core/xmTaskWorkload/WaitWorkloadToSbill.vue b/src/views/xm/core/xmTaskWorkload/WaitWorkloadToSbill.vue new file mode 100644 index 00000000..eb674132 --- /dev/null +++ b/src/views/xm/core/xmTaskWorkload/WaitWorkloadToSbill.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/views/xm/core/xmTaskWorkload/XmTaskWorkloadMng.vue b/src/views/xm/core/xmTaskWorkload/XmTaskWorkloadMng.vue index 3c86eb49..8fd1ba35 100644 --- a/src/views/xm/core/xmTaskWorkload/XmTaskWorkloadMng.vue +++ b/src/views/xm/core/xmTaskWorkload/XmTaskWorkloadMng.vue @@ -2,8 +2,41 @@
- + + + + + + + + + + + + + + 查询 + + + + 创建时间: + + + + 创建人: + {{filters.pmUser.username}} + 选择 + 我的 + + + 关闭查询 + + + + @@ -16,39 +49,61 @@ + + + + + + - - - - + - - - + + + + - + + + + + @@ -101,7 +159,9 @@ import { mapGetters } from 'vuex' import XmProjectSelect from "../components/XmProjectSelect"; import XmTaskSbillSelect from "./XmTaskSbillSelect"; - import {editWorkloadToSbill} from "../../../../api/xm/core/xmTaskWorkload"; + import {editWorkloadToSbill} from "@/api/xm/core/xmTaskWorkload"; + import {editXmWorkloadWstatus} from "../../../../api/xm/core/xmTaskWorkload"; + import UsersSelect from "@/views/mdp/sys/user/UsersSelect"; export default { name:'xmTaskWorkloadMng', @@ -109,24 +169,34 @@ XmTaskWorkloadEdit, XmProjectSelect, XmTaskSbillSelect, + UsersSelect }, - props:['visible'], + props:['visible','wstatuses','sstatuses'], computed: { ...mapGetters(['userInfo']), }, watch:{ - visible(val){ - if(val==true){ - this.initData(); - this.searchXmTaskWorkloads() - } - } + visible:{ + handler:function(o,n){ + if(n==true){ + this.initData(); + this.searchXmTaskWorkloads() + } + }, + immediate: true + }, }, data() { + const beginDate = new Date(); + const endDate = new Date(); + beginDate.setTime(beginDate.getTime() - 3600 * 1000 * 24 * 7 * 4 * 12 ); return { filters: { - key: '' + key: '', + wstatus:'', + sstatus:'', + pmUser:'' }, xmTaskWorkloads: [],//查询结果 pageInfo:{//分页数据 @@ -141,6 +211,7 @@ sels: [],//列表选中数据 dicts:{ //sex: [{id:'1',name:'男'},{id:'2',name:'女'}] + wstatus:[{id:'0',name:'待确认'},{id:'1',name: '已确认'},{id:'2',name:'无效'}] },//下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex']} 返回结果 {sex: [{id:'1',name:'男'},{id:'2',name:'女'}]} addFormVisible: false,//新增xmTaskWorkload界面是否显示 addForm: { @@ -153,6 +224,10 @@ }, maxTableHeight:300, selProject:'', + moreVisible:false, + pickerOptions: util.pickerOptions('datarange'), + dateRanger: [], + selectFiltersPmUserVisible:false, } },//end data methods: { @@ -193,7 +268,6 @@ pageNum: this.pageInfo.pageNum, total: this.pageInfo.total, count:this.pageInfo.count, - toSbill:true }; if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){ let orderBys=[]; @@ -208,6 +282,25 @@ if(this.selProject){ params.projectId= this.selProject; } + if(this.sstatuses){ + params.sstatuses=this.sstatuses.join(); + } + if(this.wstatuses){ + params.wstatuses=this.wstatuses.join(); + } + if(this.filters.wstatus){ + params.wstatuses = this.filters.wstatus; + } + if(this.filters.sstatus){ + params.sstatuses = this.filters.sstatus; + } + if(this.filters.pmUser){ + params.cuserid = this.filters.pmUser.userid; + } + if(this.dateRanger){ + params.startTime = this.dateRanger[0]; + params.endTime = this.dateRanger[1]; + } this.load.list = true; listXmTaskWorkload(params).then((res) => { @@ -325,16 +418,88 @@ } }) }, - },//end methods + formatterStatusDicts: function(cellValue){ + let key="wstatus"; + if(this.dicts[key]==undefined || this.dicts[key]==null || this.dicts[key].length==0 ){ + return {id:cellValue,name:cellValue,className:'primary'}; + } + let list=this.dicts[key].filter(i=>i.id==cellValue) + if(list.length>0){ + let data= {...list[0],className:'primary'} + if(data.id=='1'){ + data.className='success' + }else if(data.id=='2'){ + data.className='info' + }else{ + data.className='danger' + } + return data; + }else{ + return {id:cellValue,name:cellValue,className:'primary'} + } + + }, + editXmTaskWorkloadSomeFields(row,fieldName,$event){ + let params={ids:[row.id]}; + if(this.sels.length>0){ + if(!this.sels.some(k=>k.id==row.id)){ + this.$notify({showClose:true,message:'请操作选中的行或者取消选中的行再操作其它行',type:'warning'}) + return; + } + params.ids=this.sels.map(i=>i.id) + }else{ + params.ids = [row.id] + } + if(fieldName!=='sstatus') { + this.$notify.error("不支持当前选项"); + return; + }else{ + params.wstatus = row.wstatus; + } + + editXmWorkloadWstatus(params).then(res=>{ + let tips = res.data.tips; + if(tips.isOk){ + this.getXmTaskWorkloads(); + }else{ + this.$notify({showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) + } + }) + }, + clearFiltersPmUser:function(){ + this.filters.pmUser=null; + this.searchXmTaskWorkloads(); + }, + selectFiltersPmUser(){ + this.selectFiltersPmUserVisible=true; + }, + onFiltersPmUserSelected(users){ + if(users && users.length>0){ + this.filters.pmUser=users[0] + }else{ + this.filters.pmUser=null; + } + this.selectFiltersPmUserVisible=false; + this.searchXmTaskWorkloads(); + }, + setFiltersPmUserAsMySelf(){ + this.filters.pmUser=this.userInfo; + this.searchXmTaskWorkloads(); + }, + },//end methods mounted() { this.$nextTick(() => { //initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); this.initData() - this.searchXmTaskWorkloads(); - this.maxTableHeight = util.calcTableMaxHeight(this.$refs.xmTaskWorkloadTable.$el) + this.searchXmTaskWorkloads(); + this.maxTableHeight = util.calcTableMaxHeight(this.$refs.xmTaskWorkloadTable.$el) - }); - } + }); + }, + activated(){ + this.initData(); + this.searchXmTaskWorkloads(); + } }