xiejiahao 4 years ago
parent
commit
baadbbc262
  1. 3
      src/api/xm/core/xmTaskWorkload.js
  2. 13
      src/views/xm/core/xmProject/XmProjectMng.vue
  3. 14
      src/views/xm/core/xmTask/XmTaskAdd.vue
  4. 15
      src/views/xm/core/xmTask/XmTaskEdit.vue
  5. 97
      src/views/xm/core/xmTaskSbill/XmTaskSbillEdit.vue
  6. 78
      src/views/xm/core/xmTaskSbill/XmTaskSbillMng.vue
  7. 86
      src/views/xm/core/xmTaskWorkload/XmTaskWorkloadMng.vue

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

@ -39,4 +39,7 @@ export const editXmTaskWorkloadSomeFields = params => { return axios.post(`${bas
export const listProjectWorkloadSetDay = params => { return axios.get(`${base}/xm/core/xmTaskWorkload/listProjectWorkloadSetDay`, { params: params }); };
export const listProjectWorkloadSetMonth = params => { return axios.get(`${base}/xm/core/xmTaskWorkload/listProjectWorkloadSetMonth`, { params: params }); };
export const batchSetSbillIdNull = params => { return axios.post(`${base}/xm/core/xmTaskWorkload/batchSetSbillIdNull`, params); };

13
src/views/xm/core/xmProject/XmProjectMng.vue

@ -99,7 +99,7 @@
<el-col v-cloak v-for="(p,i) in ScreenData" :key="i" :xl="8" :lg="8" :md="8" :sm="12">
<el-card @click.native="intoInfo(p,i)" class="project-card" shadow="always" id="prj-view-box">
<div class="project-name" title="这是项目名称">{{p.name}}</div>
<div class="project-id"><span title="项目代号">{{p.code}} </span><font title="项目状态" :color="p.status=='7'?'green':'blue'">{{formatProjectStatus(p.status)}}</font>
<div class="project-id"><span title="项目代号">{{p.code}} </span><font title="项目状态" :color="p.status=='7'?'green':'blue'">{{formatProjectStatus(dicts,'projectStatus',p.status)}}</font>
<el-link id="prj-del-btn" type="danger" style="font-size:14px;float:right;margin-left:2px;" title="删除项目" @click.stop="handleDel(p)" v-loading="load.add">删除</el-link>
<el-link id="prj-copy-btn" type="primary" style="font-size:14px;float:right;margin-left:2px;" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(p)" v-loading="load.add">复制</el-link>
<el-link id="prj-calc-btn" type="warning" style="font-size:14px;float:right;margin-left:2px;" title="统计项目的工作量、进度、需求、bugs等数据" @click.stop="loadTasksToXmProjectState(p)" v-loading="load.add">统计</el-link>
@ -203,13 +203,7 @@
</el-table-column>
<el-table-column prop="bizFlowState" label="审批状态" min-width="80" >
<template slot-scope="scope">
<el-tooltip v-if="scope.row.flowState!='' && scope.row.flowState!=null" :content="showApprovaInfo(scope.row)" placement="bottom" effect="light">
<el-tag v-if="scope.row.flowState=='0' || scope.row.flowState==null ">未发审</el-tag>
<el-tag v-else-if="scope.row.flowState=='1'">审核中</el-tag>
<el-tag v-else-if="scope.row.flowState=='2'">已通过</el-tag>
<el-tag v-else-if="scope.row.flowState=='3'">未通过</el-tag>
<el-tag v-else-if="scope.row.flowState=='4'">已取消</el-tag>
</el-tooltip>
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'bizFlowState',scope.row.bizFlowState)" :key="index" :type="item.className">{{item.name}}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
@ -414,6 +408,7 @@
}
},//end data
methods: {
...util,
handleSizeChange(pageSize) {
this.pageInfo.pageSize=pageSize;
this.getXmProjects();
@ -873,7 +868,7 @@
this.filters.productName=this.$route.params.productName;
}
this.$nextTick(() => {
initSimpleDicts('all',['projectType','priority','projectStatus']).then(res=>{
initSimpleDicts('all',['projectType','priority','projectStatus','bizFlowState']).then(res=>{
this.dicts=res.data.data;
})
this.maxTableHeight = this.source == 'GZT' ? this.maxTableHeight : util.calcTableMaxHeight(this.$refs.table.$el);

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

@ -407,6 +407,18 @@
addSubmit: function () {
this.$refs.addForm.validate((valid) => {
if (valid) {
if(this.addForm.oshare==='1'){
if(this.addForm.shareFee>1000){
this.$notify({position:'bottom-left',showClose:true,message:'分享佣金不能超过1000元',type: 'error'})
return;
}else if( !this.addForm.budgetAt){
this.$notify({position:'bottom-left',showClose:true,message:'请先设置预算金额',type: 'error'})
return;
}else if(this.addForm.shareFee/this.addForm.budgetAt>0.05){
this.$notify({position:'bottom-left',showClose:true,message:'分享佣金不能超过预算金额的5%',type: 'error'})
return;
}
}
this.$confirm('确认提交吗?', '提示', {}).then(() => {
let params = Object.assign({}, this.addForm);
if(this.budgetDateRanger.length>=2){
@ -417,6 +429,8 @@
params.actStartTime=this.actDateRanger[0]
params.actEndTime=this.actDateRanger[1]
}
addTask(params).then((res) => {
this.load.add=false
var tips=res.data.tips;

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

@ -616,6 +616,21 @@ import XmMenuEdit from '../xmMenu/XmMenuEdit.vue';
}else if(fieldName==='dateRange'){
params.startTime=$event[0]
params.endTime=$event[1]
}else if(fieldName==='shareFee'){
if($event>1000){
this.editForm.shareFee=this.xmTask.shareFee
this.$notify({position:'bottom-left',showClose:true,message:'分享佣金不能超过1000元',type: 'error'})
return;
}else if(!this.editForm.budgetAt){
this.editForm.shareFee=this.xmTask.shareFee
this.$notify({position:'bottom-left',showClose:true,message:'请先设置预算金额',type: 'error'})
return;
}else if(this.editForm.shareFee/this.editForm.budgetAt>0.05){
this.editForm.shareFee=this.xmTask.shareFee
this.$notify({position:'bottom-left',showClose:true,message:'分享佣金不能超过预算金额的5%',type: 'error'})
return;
}
params.shareFee=$event
}else{
params[fieldName]=$event
}

97
src/views/xm/core/xmTaskSbill/XmTaskSbillEdit.vue

@ -1,43 +1,79 @@
<template>
<section class="page-container padding">
<el-row class="page-header">
</el-row>
<section class="padding">
<el-row class="page-main">
<!--编辑界面 XmTaskSbill 任务结算表-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef">
<!-- <el-form-item label="结算单据编号" prop="id">
<el-input v-model="editForm.id" placeholder="结算单据编号"></el-input>
</el-form-item>-->
<el-form-item label="选择项目:" prop="projectId">
<!-- <el-button v-if="!editForm.projectId" type="primary" @click="projSelVisible=true" round>选择项目</el-button>-->
<el-row>
<el-col :span="8">
<el-form-item label="编号/标题" prop="id">
<el-input v-model="editForm.id" placeholder="结算单据编号" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="" prop="title" :rules="[{ required: true, message: '结算单标题不能为空'}]" label-width="0px">
<el-input v-model="editForm.title" placeholder="结算单标题"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="审核状态" prop="id">
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'bizFlowState',editForm.bizFlowState)" :key="index" :type="item.className">{{item.name}}</el-tag>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="结算项目" prop="projectId">
<!-- <el-button v-if="!editForm.projectId" type="primary" @click="projSelVisible=true" round>选择项目</el-button>-->
<div v-if="!editForm.projectId">
<xm-project-select style="display:inline;" :auto-select="false" @row-click="onProjectRowClick(arguments)" @clear="onProjectClear" ></xm-project-select>
</div>
<span v-else>{{editForm.projectId}}</span>
</el-form-item>
<el-form-item label="项目名称:" prop="projectName">
<el-input disabled v-model="editForm.projectName" placeholder="项目名称"></el-input>
</el-form-item>
<el-form-item label="结算单标题:" prop="title" :rules="[{ required: true, message: '结算单标题不能为空'}]">
<el-input v-model="editForm.title" placeholder="结算单标题"></el-input>
<span v-else>{{editForm.projectId}} &nbsp;{{editForm.projectName}}</span>
</el-form-item>
<!-- <el-form-item label="金额=工时表中结算金额之和" prop="amt">
<el-input v-model="editForm.amt" placeholder="金额=工时表中结算金额之和"></el-input>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="结算金额" prop="amt">
{{editForm.amt}}
</el-form-item>
<el-form-item label="创建时间" prop="ctime">
</el-col>
<el-col :span="8">
<el-form-item label="提交时间" prop="ctime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.ctime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="创建人编号" prop="cuserid">
<el-input v-model="editForm.cuserid" placeholder="创建人编号"></el-input>
</el-form-item>
<el-form-item label="创建人姓名" prop="cusername">
</el-col>
<el-col :span="8">
<el-form-item label="提交人" prop="cusername">
<el-input v-model="editForm.cusername" placeholder="创建人姓名"></el-input>
</el-form-item>-->
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注:" prop="remark">
<el-input v-model="editForm.remark" type="textarea" :autosize="{ minRows: 3}" placeholder="请输入备注"
maxlength="200" show-word-limit></el-input>
<el-input v-model="editForm.remark" type="textarea" :autosize="{ minRows: 3}" placeholder="请输入备注" maxlength="200" show-word-limit></el-input>
</el-form-item>
<el-form-item>
<el-tabs value="1" accordion>
<el-tab-pane label="结算工时列表" name="1" v-if="opType==='edit'">
<el-row v-if="editForm.id">
<XmTaskWorkloadMng :sbill-id="editForm.id"></XmTaskWorkloadMng>
</el-row>
</el-tab-pane>
<el-tab-pane label="审批流" name="2" v-if="opType==='edit'">
<el-row v-if="editForm.id">
<task-mng ref="currFlow" :biz-parent-pkid="editForm.projectId" :biz-pkid="editForm.id" @submit="afterFlowSubmit"> </task-mng>
</el-row>
</el-tab-pane>
<el-tab-pane label="历史审批流" name="3" v-if="opType==='edit'">
<el-row v-if="editForm.id">
<procinst-mng ref="hisFlow" isAll="true" :biz-parent-pkid="editForm.projectId" :biz-pkid="editForm.id"></procinst-mng>
</el-row>
</el-tab-pane>
</el-tabs>
<el-form-item v-if="opType==='add'">
<el-button @click.native="handleCancel">取消</el-button>
<el-button v-loading="load.edit" type="primary" @click.native="saveSubmit" :disabled="load.edit==true">提交</el-button>
</el-form-item>
@ -94,12 +130,16 @@
import { mapGetters } from 'vuex';
//import SelectXmProject from "./SelectXmProject";
import XmProjectSelect from "@/views/xm/core/components/XmProjectSelect";
import XmTaskWorkloadMng from "@/views/xm/core/xmTaskWorkload/XmTaskWorkloadMng";
import TaskMng from '@/views/mdp/workflow/ru/task/TaskMng';
import ProcinstMng from '@/views//mdp/workflow/hi/procinst/ProcinstMng';
export default {
components: {
//XmTaskSbillEdit,
//SelectXmProject,
XmProjectSelect,
XmProjectSelect,XmTaskWorkloadMng,TaskMng,ProcinstMng
},
computed: {
@ -142,6 +182,7 @@
}//end return
},//end data
methods: {
...util,
// @cancel="editFormVisible=false"
handleCancel:function(){
this.$refs['editFormRef'].resetFields();
@ -225,7 +266,7 @@
},//end method
mounted() {
this.$nextTick(() => {
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data);
initSimpleDicts('all',['bizFlowState']).then(res=>this.dicts=res.data.data);
this.initData()
});
}

78
src/views/xm/core/xmTaskSbill/XmTaskSbillMng.vue

@ -54,60 +54,41 @@
border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;" :header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}">
<!-- <el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column>-->
<el-table-column label="序号" type="index" min-width="55" show-overflow-tooltip></el-table-column>
<el-table-column prop="id" label="结算单编号" min-width="80" show-overflow-tooltip>
<el-table-column label="序号" type="index" min-width="55" fixed="left"></el-table-column>
<el-table-column prop="id" label="结算单编号" width="120" show-overflow-tooltip fixed="left">
</el-table-column>
<el-table-column prop="title" label="结算单标题" min-width="80" show-overflow-tooltip>
<el-table-column prop="title" label="结算单标题" width="180" show-overflow-tooltip fixed="left">
<template slot-scope="scope">
<span class="click-style" @click="showEdit( scope.row,scope.$index)">
<el-link type="primary" @click="showEdit( scope.row,scope.$index)">
{{scope.row.title}}
</span>
</el-link>
</template>
</el-table-column>
<el-table-column prop="projectId" label="项目编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="projectName" label="项目名称" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="amt" label="金额" min-width="80" show-overflow-tooltip>
<el-table-column prop="projectName" label="项目名称" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="amt" label="金额" width="120" show-overflow-tooltip>
<template slot-scope="scope">
¥{{scope.row.amt}}
</template>
</el-table-column>
<el-table-column prop="ctime" label="创建时间" min-width="60" show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.ctime.substr(0, 10) }}
</template>
</el-table-column>
<!-- <el-table-column prop="cuserid" label="创建人编号" min-width="80" show-overflow-tooltip></el-table-column>-->
<el-table-column prop="cusername" label="创建人姓名" min-width="60" show-overflow-tooltip></el-table-column>
<el-table-column prop="remark" label="备注" min-width="80" show-overflow-tooltip>
<template scope="scope">
<span v-if="scope.row.remark">{{scope.row.remark}}</span>
<span v-else>-</span>
</template>
</el-table-column>
<!-- <el-table-column prop="branchId" label="机构编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="deptid" label="部门编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="cpId" label="相对方编号(机构写机构号,个人写个人编号)" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="cpName" label="相对方名称(机构写机构名称,个人写个人名称)" min-width="80" show-overflow-tooltip></el-table-column>-->
<el-table-column prop="workload" label="结算工时" min-width="80" show-overflow-tooltip>
<!-- <el-table-column prop="branchId" label="机构编号" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="deptid" label="部门编号" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="cpId" label="相对方编号(机构写机构号,个人写个人编号)" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="cpName" label="相对方名称(机构写机构名称,个人写个人名称)" width="120" show-overflow-tooltip></el-table-column>-->
<el-table-column prop="workload" label="结算工时" width="120" show-overflow-tooltip>
<template slot-scope="scope">
{{scope.row.workload}}h
</template>
</el-table-column>
<!-- <el-table-column prop="bizMonth" label="业务月份yyyy-MM" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="bizDate" label="业务日期yyyy-MM-dd" min-width="80" show-overflow-tooltip></el-table-column>-->
<el-table-column prop="bizFlowState" label="审批状态" min-width="60" show-overflow-tooltip>
<!-- <el-table-column prop="bizMonth" label="业务月份yyyy-MM" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="bizDate" label="业务日期yyyy-MM-dd" width="120" show-overflow-tooltip></el-table-column>-->
<el-table-column prop="bizFlowState" label="审批状态" width="120" show-overflow-tooltip>
<template scope="scope">
<el-tag v-if="scope.row.bizFlowState=='0'">未发审</el-tag>
<el-tag type="warning" v-else-if="scope.row.bizFlowState=='1'">审批中</el-tag>
<el-tag type="success" v-else-if="scope.row.bizFlowState=='2'">已通过</el-tag>
<el-tag type="danger" v-else-if="scope.row.bizFlowState=='3'">未通过</el-tag>
<el-tag type="info" v-else-if="scope.row.bizFlowState=='4'">已取消</el-tag>
<el-tag v-else>未发审</el-tag>
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'bizFlowState',scope.row.bizFlowState)" :key="index" :type="item.className">{{item.name}}</el-tag>
</template>
</el-table-column>
<!-- <el-table-column prop="bizProcInstId" label="审批编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="ltime" label="更新时间" min-width="80" show-overflow-tooltip></el-table-column>-->
<el-table-column prop="status" label="结算单状态" min-width="60" show-overflow-tooltip>
<!-- <el-table-column prop="bizProcInstId" label="审批编号" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="ltime" label="更新时间" width="120" show-overflow-tooltip></el-table-column>-->
<el-table-column prop="status" label="结算单状态" width="120" show-overflow-tooltip>
<template scope="scope">
<el-tag v-if="scope.row.status=='0'">待提交</el-tag>
<el-tag type="warning" v-else-if="scope.row.status=='1'">已提交</el-tag>
@ -116,9 +97,16 @@
<el-tag type="info" v-else-if="scope.row.status=='4'">已完成</el-tag>
</template>
</el-table-column>
<el-table-column prop="fmsg" label="最后审核意见" min-width="80" show-overflow-tooltip>
<el-table-column prop="ctime" label="提交时间" width="120" show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.ctime.substr(0, 10) }}
</template>
</el-table-column>
<!-- <el-table-column prop="cuserid" label="创建人编号" width="120" show-overflow-tooltip></el-table-column>-->
<el-table-column prop="cusername" label="提交人" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="remark" label="备注" width="120" show-overflow-tooltip>
<template scope="scope">
<span v-if="scope.row.fmsg">{{scope.row.fmsg}}</span>
<span v-if="scope.row.remark">{{scope.row.remark}}</span>
<span v-else>-</span>
</template>
</el-table-column>
@ -135,9 +123,9 @@
</el-row>
<el-row>
<!--编辑 XmTaskSbill 任务结算表界面-->
<el-drawer title="编辑任务结算单" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<el-dialog title="编辑任务结算单" :visible.sync="editFormVisible" width="90%" top="20px" append-to-body :close-on-click-modal="false">
<xm-task-sbill-edit op-type="edit" :xm-task-sbill="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-task-sbill-edit>
</el-drawer>
</el-dialog>
<!--新增 XmTaskSbill 任务结算表界面-->
<el-drawer title="新增任务结算单" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-task-sbill-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-task-sbill-edit>
@ -227,6 +215,7 @@
}
},//end data
methods: {
...util,
handleSizeChange(pageSize) {
this.pageInfo.pageSize=pageSize;
this.getXmTaskSbills();
@ -510,12 +499,13 @@
mainTitle:mainTitle,
bizKey:bizKey,
bizUrl:bizUrl,
bizPkid:row.id,
bizParentPkid:row.projectId,
restUrl:config.getCoreBasePath()+"/xm/core/xmTaskSbill/processApprova",
//restUrl:"http://localhost:8067/api/m1/xm/xm/xm/core/xmTaskSbill/processApprova",
extVars:extVars,
flowVars:{
subscribeTaskEvent:'PROCESS_STARTED,PROCESS_COMPLETED,PROCESS_CANCELLED',
shopId:this.userInfo.shopId,
branchId:this.userInfo.branchId,
sbillId:row.id
},
@ -526,7 +516,7 @@
},//end methods
mounted() {
this.$nextTick(() => {
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data);
initSimpleDicts('all',['bizFlowState']).then(res=>this.dicts=res.data.data);
this.initData()
this.searchXmTaskSbills();
if(this.$refs.xmTaskSbillTable){

86
src/views/xm/core/xmTaskWorkload/XmTaskWorkloadMng.vue

@ -40,6 +40,7 @@
</el-popover>
<span style="float:right;">
<!-- <el-button type="primary" @click="showAdd" icon="el-icon-plus"> </el-button>-->
<el-button type="warning" v-loading="load.edit" @click="batchSetSbillIdNull" :disabled="this.sels.length===0 || load.edit==true" icon="el-icon-setting">移出结算单</el-button>
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true" icon="el-icon-delete"></el-button>
</span>
</el-row>
@ -69,7 +70,7 @@
<el-table-column prop="wstatus" label="工时状态" min-width="80" show-overflow-tooltip sortable>
<template slot-scope="scope">
<div class="cell-text">
<el-button style="display:block;" :type="item.className" plain round v-for="(item,index) in [formatterWstatusDicts(scope.row.wstatus)]" :key="index">{{item.name}}</el-button>
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'wstatus',scope.row.wstatus)" :key="index" :type="item.className">{{item.name}}</el-tag>
</div>
<span class="cell-bar">
<el-select v-model="scope.row.wstatus" placeholder="工时状态" style="display:block;" @change="editXmTaskWorkloadSomeFields(scope.row,'wstatus',$event)">
@ -81,7 +82,7 @@
<el-table-column prop="sstatus" label="结算状态" min-width="80" show-overflow-tooltip sortable>
<template slot-scope="scope">
<div class="cell-text">
<el-button style="display:block;" :type="item.className" plain round v-for="(item,index) in [formatterSstatusDicts(scope.row.sstatus)]" :key="index">{{item.name}}</el-button>
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'sstatus',scope.row.sstatus)" :key="index" :type="item.className">{{item.name}}</el-tag>
</div>
<span class="cell-bar">
<el-select v-model="scope.row.sstatus" placeholder="结算状态" style="display:block;" @change="editXmTaskWorkloadSomeFields(scope.row,'sstatus',$event)">
@ -213,7 +214,7 @@
import util from '@/common/js/util';//
import config from '@/common/config';//
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//
import { listXmTaskWorkload, delXmTaskWorkload, batchDelXmTaskWorkload } from '@/api/xm/core/xmTaskWorkload';
import { listXmTaskWorkload, delXmTaskWorkload, batchDelXmTaskWorkload,batchSetSbillIdNull } from '@/api/xm/core/xmTaskWorkload';
import XmTaskWorkloadEdit from './XmTaskWorkloadEdit';//
import { mapGetters } from 'vuex'
import XmProjectSelect from "../components/XmProjectSelect";
@ -234,7 +235,7 @@
UsersSelect,
XmTaskWorkloadSimpleList,
},
props:['visible','wstatuses','sstatuses','queryScope'/**my/all */],
props:['visible','wstatuses','sstatuses','queryScope'/**my/all */,'sbillId'],
computed: {
...mapGetters(['userInfo']),
@ -249,6 +250,9 @@
},
immediate: true
},
sbillId(){
this.searchXmTaskWorkloads();
}
},
data() {
const beginDate = new Date();
@ -299,6 +303,7 @@
}
},//end data
methods: {
...util,
handleSizeChange(pageSize) {
this.pageInfo.pageSize=pageSize;
this.getXmTaskWorkloads();
@ -381,6 +386,9 @@
}else{
params.queryScope="my"
}
if(this.sbillId){
params.sbillId=this.sbillId
}
this.load.list = true;
listXmTaskWorkload(params).then((res) => {
@ -437,6 +445,33 @@
});
},
//xmTaskWorkload
batchSetSbillIdNull: function () {
if(this.sels.length<=0){
return;
}
if(this.sels.some(i=>!i.sbillId)){
this.$notify({position:'bottom-left',showClose:true, message:"请选中已加入结算单的工时", type: 'error'});
return;
}
var params=this.sels.map(i=>{
return { id:i.id}
})
this.$confirm('确认移出结算单吗?', '提示', {
type: 'warning'
}).then(() => {
this.load.edit=true;
batchSetSbillIdNull(params).then((res) => {
this.load.edit=false;
var tips=res.data.tips;
if( tips.isOk ){
this.pageInfo.count=true;
this.getXmTaskWorkloads();
}
this.$notify({position:'bottom-left',showClose:true, message: tips.msg, type: tips.isOk?'success':'error'});
}).catch( err => this.load.edit=false );
});
},
batchDel: function () {
if(this.sels.length<=0){
return;
@ -504,48 +539,6 @@
}
})
},
formatterWstatusDicts: 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'}
}
},
formatterSstatusDicts: function(cellValue){
let key="sstatus";
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'}
}
},
clearFiltersPmUser:function(){
this.filters.pmUser=null;
this.searchXmTaskWorkloads();
@ -566,6 +559,7 @@
this.filters.pmUser=this.userInfo;
this.searchXmTaskWorkloads();
},
},//end methods
mounted() {
this.$nextTick(() => {

Loading…
Cancel
Save