优化项目审批流

This commit is contained in:
陈裕财
2025-04-13 02:15:19 +08:00
parent 2526e0870c
commit f52994656c
2 changed files with 141 additions and 49 deletions

View File

@@ -220,9 +220,8 @@
@click="handleCommand({ type: 'sendToProcessApprova', data: editForm, bizKey: 'xm_project_budget_change_approva' })">项目金额变更申请</el-button>
<el-button v-if="currTabPane == 'time'" icon="watch" type="warning"
@click="handleCommand({ type: 'sendToProcessApprova', data: editForm, bizKey: 'xm_project_delay_approva' })">工期变更申请</el-button>
<el-button icon="StarOn" type="success" :disabled="editForm.status > '2'"
@click="handleCommand({ type: 'sendToProcessApprova', data: editForm, bizKey: 'xm_project_start_approva' })">立项申请</el-button>
<el-button icon="Success" type="success" :disabled="editForm.status > '5'"
<el-button icon="finished" type="success" :disabled="editForm.status > '5'"
@click="handleCommand({ type: 'sendToProcessApprova', data: editForm, bizKey: 'xm_project_over_approva' })">结项申请</el-button>
</span>
<el-button v-if="currOpType === 'add'" v-loading="load.edit" type="primary" @click="editSubmit"
@@ -695,20 +694,18 @@ export default {
},
sendToProcessApprova: function (row, bizKey) {
// 传过来的参数格式
if (row.flowState == '1') {
if (row.bizFlowState == '1') {
this.$notify.error("审核中,不允许重复发审");
return;
}
row.planIuserWorkload = this.autoParams.planIuserWorkload
row.planOuserWorkload = this.autoParams.planOuserWorkload
row.planWorkload = this.autoParams.planWorkload
let extVars = { projectId: row.id }
let jsonExtVars = JSON.stringify(extVars);
row.planWorkload = this.autoParams.planWorkload
var currDomain = window.location.protocol + "//" + window.location.host;
var fullPath = this.$route.fullPath;
var bizUrl = currDomain + '/#' + fullPath + '?extVars=' + jsonExtVars
var bizUrl = currDomain + '/#' + fullPath
let params = {
bizKey: bizKey,
@@ -716,8 +713,7 @@ export default {
resUrl: '',
bizId: row.id,
bizPid: row.id,
mainContext: '',
extVars: extVars,
mainContext: '',
flowVars: {
subscribeTaskEvent: 'TASK_COMPLETED,TASK_CREATED',
data: {
@@ -727,67 +723,161 @@ export default {
},
}
if (bizKey == "xm_project_baseinfo_change_approva") {
//延期审核
params.mainTitle = '关于项目【' + row.name + "】修改基本信息的申请";
params.mainContext = '项目编号:' + row.code + ',' + '项目名称:' + row.name + ',此次变更不涉及预算调整';
//基础信息审核
params.mainTitle = '关于项目【' + row.name + "】修改基本信息的申请";
params.mainContext = `<p><ol>
<li>项目名称:${row.name}</li>
<li>项目编号:${row.id}</li>
<li>开始日期:${row.startTime} 结束日期:${row.endTime}</li>
<li>总工期:${row.planWorkingHours}小时</li>
<li>需要人员:${row.planIuserCnt+row.planOuserCnt}人</li>
<li>项目目标:${row.target||''}</li>
<li>项目总控:${row.admUsername}</li>
<li>项目经理:${row.pmUsername}</li>
<li>项目预算:${row.planTotalCost||'0'}元</li>
<li>实际成本:${row.actAt||'0'}元</li>
<li>合同金额:${row.contractAmt||'0'}元</li>
<li>预估毛利率:${row.budgetMarginRate||'-'}%</li>
<li>实际毛利率:${row.budgetMarginRate||'-'}%</li>
<li>立项说明:${row.setupRemark||''}</li>
<li>项目说明:${row.description||''}</li>
</ol></p>`;
params.restUrl = config.getXmCtx() + "/xm/core/xmProject/processApprova";
params.flowVars.data = row
//this.html2canvas(document.querySelector(".editForm"),row,params);
this.$router.push({ name: 'bizStartProc', query: { paramsId: this.$mdp.setCacheParams(params) } });
} else if (bizKey == "xm_project_delay_approva") {
//延期审核
params.mainTitle = '关于项目【' + row.name + "】延期的审批申请";
params.mainContext = '项目编号:' + row.code + ',' + '项目名称:' + row.name + ',项目结束时间由' + this.selProject.endTime + '变更为:' + this.editForm.endTime + ',此次变更不涉及预算调整';
params.mainTitle = '关于项目【' + row.name + "】延期的审批申请";
params.mainContext = `<p><ol>
<li>项目名称:${row.name}</li>
<li>项目编号:${row.id}</li>
<li>开始日期:${row.startTime} 结束日期:${row.endTime}</li>
<li>总工期:${row.planWorkingHours}小时</li>
<li>需要人员:${row.planIuserCnt+row.planOuserCnt}人</li>
<li>项目目标:${row.target||''}</li>
<li>项目总控:${row.admUsername}</li>
<li>项目经理:${row.pmUsername}</li>
<li>项目预算:${row.planTotalCost||'0'}元</li>
<li>实际成本:${row.actAt||'0'}元</li>
<li>合同金额:${row.contractAmt||'0'}元</li>
<li>预估毛利率:${row.budgetMarginRate||'-'}%</li>
<li>实际毛利率:${row.budgetMarginRate||'-'}%</li>
<li>立项说明:${row.setupRemark||''}</li>
<li>项目说明:${row.description||''}</li>
</ol></p>`;
params.restUrl = config.getXmCtx() + "/xm/core/xmProject/processApprova";
params.flowVars.data.endTime = this.editForm.endTime
//this.html2canvas(document.querySelector(".editForm"),row,params);
this.$router.push({ name: 'bizStartProc', state: { params } });
} else if (bizKey == "xm_project_start_approva") {
//立项审核
params.mainTitle = '关于项目【' + row.name + "】立项的审批申请";
params.mainContext = '项目编号:' + row.code + ',' + '项目名称:' + row.name + ',项目周期:' + row.startTime + '~' + row.endTime
+ ',预估及考核毛利率:' + row.budgetMarginRate + ',预估总成本:' + row.planTotalCost + ',总收入:' + row.totalReceivables
+ ',合同金额:' + row.contractAmt + '详细如下(截图)';
params.restUrl = config.getXmCtx() + "/xm/core/xmProject/processApprova";
params.flowVars.data = row
//this.html2canvas(document.querySelector(".editForm"),row,params);
this.$router.push({ name: 'bizStartProc', query: { paramsId: this.$mdp.setCacheParams(params) } });
} else if (bizKey == "xm_project_over_approva") {
//结项审核
params.mainTitle = '关于项目【' + row.name + "】结项的审批申请";
params.mainContext = '项目编号:' + row.code + ',' + '项目名称:' + row.name + ',项目周期:' + row.startTime + '~' + row.endTime
+ ',预估及考核毛利率:' + row.budgetMarginRate + ',预估总成本:' + row.planTotalCost + ',总收入:' + row.totalReceivables
+ ',合同金额:' + row.contractAmt + '详细如下(截图)';
params.restUrl = config.getXmCtx() + "/xm/core/xmProject/processApprova";
}else if (bizKey == "xm_project_over_approva") {
if(row.status!='5'){
this.$notify.error('已验收的项目才允许结项')
return;
}
//结项审核
params.mainTitle = '关于项目【' + row.name + "】结项的申请";
params.mainContext = `<p><ol>
<li>项目名称:${row.name}</li>
<li>项目编号:${row.id}</li>
<li>开始日期:${row.startTime} 结束日期:${row.endTime}</li>
<li>总工期:${row.planWorkingHours}小时</li>
<li>需要人员:${row.planIuserCnt+row.planOuserCnt}人</li>
<li>项目目标:${row.target||''}</li>
<li>项目总控:${row.admUsername}</li>
<li>项目经理:${row.pmUsername}</li>
<li>项目预算:${row.planTotalCost||'0'}元</li>
<li>实际成本:${row.actAt||'0'}元</li>
<li>合同金额:${row.contractAmt||'0'}元</li>
<li>预估毛利率:${row.budgetMarginRate||'-'}%</li>
<li>实际毛利率:${row.budgetMarginRate||'-'}%</li>
<li>立项说明:${row.setupRemark||''}</li>
<li>项目说明:${row.description||''}</li>
</ol></p>`;
params.restUrl = "/"+config.getXmCtx() + "/xm/core/xmProject/processApprova";
//this.html2canvas(document.querySelector(".editForm"),row,params);
this.$router.push({ name: 'bizStartProc', query: { paramsId: this.$mdp.setCacheParams(params) } });
} else if (bizKey == "xm_project_pause_approva") {
//结项审核
if(row.status<'5' && row.status>'2'){
this.$notify.error('已立项并且未验收的项目才允许暂停')
return;
}
//暂停审核
params.mainTitle = '关于项目【' + row.name + "】暂停的审批申请";
params.mainContext = '项目编号:' + row.code + ',' + '项目名称:' + row.name + ',项目周期:' + row.startTime + '~' + row.endTime
+ ',预估及考核毛利率:' + row.budgetMarginRate + ',预估总成本:' + row.planTotalCost + ',总收入:' + row.totalReceivables
+ ',合同金额:' + row.contractAmt + '详细如下(截图)';
params.mainContext = `<p><ol>
<li>项目名称:${row.name}</li>
<li>项目编号:${row.id}</li>
<li>开始日期:${row.startTime} 结束日期:${row.endTime}</li>
<li>总工期:${row.planWorkingHours}小时</li>
<li>需要人员:${row.planIuserCnt+row.planOuserCnt}人</li>
<li>项目目标:${row.target||''}</li>
<li>项目总控:${row.admUsername}</li>
<li>项目经理:${row.pmUsername}</li>
<li>项目预算:${row.planTotalCost||'0'}元</li>
<li>实际成本:${row.actAt||'0'}元</li>
<li>合同金额:${row.contractAmt||'0'}元</li>
<li>预估毛利率:${row.budgetMarginRate||'-'}%</li>
<li>实际毛利率:${row.budgetMarginRate||'-'}%</li>
<li>立项说明:${row.setupRemark||''}</li>
<li>项目说明:${row.description||''}</li>
</ol></p>`;
params.restUrl = config.getXmCtx() + "/xm/core/xmProject/processApprova";
this.$router.push({ name: 'bizStartProc', query: { paramsId: this.$mdp.setCacheParams(params) } });
//this.html2canvas(document.querySelector(".editForm"),row,params);
} else if (bizKey == "xm_project_restart_approva") {
//结项审核
if(row.status!='4'){
this.$notify.error('已暂停的项目才允许重新启动')
return;
}
//重新启动审核
params.mainTitle = '关于项目【' + row.name + "】重新启动的审批申请";
params.mainContext = '项目编号:' + row.code + ',' + '项目名称:' + row.name + ',项目周期:' + row.startTime + '~' + row.endTime
+ ',预估及考核毛利率:' + row.budgetMarginRate + ',预估总成本:' + row.planTotalCost + ',总收入:' + row.totalReceivables
+ ',合同金额:' + row.contractAmt + '详细如下(截图)';
params.mainContext = `<p><ol>
<li>项目名称:${row.name}</li>
<li>项目编号:${row.id}</li>
<li>开始日期:${row.startTime} 结束日期:${row.endTime}</li>
<li>总工期:${row.planWorkingHours}小时</li>
<li>需要人员:${row.planIuserCnt+row.planOuserCnt}人</li>
<li>项目目标:${row.target||''}</li>
<li>项目总控:${row.admUsername}</li>
<li>项目经理:${row.pmUsername}</li>
<li>项目预算:${row.planTotalCost||'0'}元</li>
<li>实际成本:${row.actAt||'0'}元</li>
<li>合同金额:${row.contractAmt||'0'}元</li>
<li>预估毛利率:${row.budgetMarginRate||'-'}%</li>
<li>实际毛利率:${row.budgetMarginRate||'-'}%</li>
<li>立项说明:${row.setupRemark||''}</li>
<li>项目说明:${row.description||''}</li>
</ol></p>`;
params.restUrl = config.getXmCtx() + "/xm/core/xmProject/processApprova";
//this.html2canvas(document.querySelector(".editForm"),row,params);
this.$router.push({ name: 'bizStartProc', query: { paramsId: this.$mdp.setCacheParams(params) } });
} else if (bizKey == "xm_project_budget_change_approva") {
//预算变更审核
if(row.status<'5' && row.status>'2'){
this.$notify.error('已立项、未验收的项目才需要走预算变更')
return;
}
params.mainTitle = '关于项目【' + row.name + "】预算变更的审批申请";
params.mainContext = '项目编号:' + row.code + ',' + '项目名称:' + row.name + '项目周期:' + row.startTime + '~' + row.endTime
+ ',<br/>变更前数据:预估及考核毛利率:' + this.selProject.budgetMarginRate + ',预估总成本:' + this.selProject.planTotalCost + ',总收入:' + this.selProject.totalReceivables
+ ',合同金额:' + this.selProject.contractAmt
+ ',<br/>变更后数据:预估及考核毛利率:' + row.budgetMarginRate + ',预估总成本:' + row.planTotalCost + ',总收入:' + row.totalReceivables
+ ',合同金额:' + row.contractAmt;
params.mainContext = `<p><ol>
<li>项目名称:${row.name}</li>
<li>项目编号:${row.id}</li>
<li>开始日期:${row.startTime} 结束日期:${row.endTime}</li>
<li>总工期:${row.planWorkingHours}小时</li>
<li>需要人员:${row.planIuserCnt+row.planOuserCnt}人</li>
<li>项目目标:${row.target||''}</li>
<li>项目总控:${row.admUsername}</li>
<li>项目经理:${row.pmUsername}</li>
<li>项目预算:${row.planTotalCost||'0'}元</li>
<li>实际成本:${row.actAt||'0'}元</li>
<li>合同金额:${row.contractAmt||'0'}元</li>
<li>预估毛利率:${row.budgetMarginRate||'-'}%</li>
<li>实际毛利率:${row.budgetMarginRate||'-'}%</li>
<li>立项说明:${row.setupRemark||''}</li>
<li>项目说明:${row.description||''}</li>
</ol></p>`;
params.restUrl = config.getXmCtx() + "/xm/core/xmProject/processApprova";
params.flowVars.data = row
//this.html2canvas(document.querySelector(".editForm"),row,params);

View File

@@ -22,8 +22,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目总控" prop="admUserid">
{{ editForm.admUserid }}
<el-form-item label="项目总控" prop="admUserid">
<mdp-select-user width="100%" v-model="editForm.admUserid" @change2="editSomeFields(editForm,'admUserid',$event)" :init-name="editForm.admUsername"/>
</el-form-item>
</el-col>
@@ -219,7 +218,10 @@ export default {
this.$notify.error("审核中,不允许重复发审");
return;
}
if(row.status>'2'){
this.$notify.error("已立项,不允许重新发起立项申请");
return;
}
let extVars = { projectId: row.id }
let jsonExtVars = JSON.stringify(extVars);