[update] 联调企标计划立项/变更流程

This commit is contained in:
lideqin
2023-10-26 16:35:57 +08:00
parent d6ecca66a0
commit 9578cde2b0
4 changed files with 85 additions and 55 deletions
+28 -1
View File
@@ -27,7 +27,7 @@ const enterprisePlanApprovalSave = (params) => postAction('/process/es/initChang
// 根据三个编号和年代号获取企标编号 // 根据三个编号和年代号获取企标编号
const getEnStandardNo = (params) => postAction('/process/es/initChange/getStandardNo', params) const getEnStandardNo = (params) => postAction('/process/es/initChange/getStandardNo', params)
// 根据流程id获取流程信息 // 根据流程id获取流程信息
const getProcessDataById = (params) => getAction('/process/center/handle', params) const getProcessDataById = (params) => postAction('/process/es/initChange/handle', params)
// 年度制修订计划(各部门主动上报) // 年度制修订计划(各部门主动上报)
// 发起 // 发起
@@ -64,6 +64,24 @@ const enStandardChangeTurnTo = (params) => postAction('', params)
const enStandardChangeAgree = (params) => postAction('', params) const enStandardChangeAgree = (params) => postAction('', params)
// 拒绝 // 拒绝
const enStandardChangeReject = (params) => postAction('', params) const enStandardChangeReject = (params) => postAction('', params)
// 根据id查流程数据
const enStandardChangeGetDataById = (params) => getAction('', params)
// 企标复审流程
// 根据id查询流程数据
const enStandardRecheckGetDataById = (params) => getAction('', params)
// 保存
const enStandardRecheckSave = (params) => postAction('', params)
// 发起
const enStandardRecheckApproval = (params) => postAction('', params)
// 转办
const enStandardRecheckTurnTo = (params) => postAction('', params)
// 提交
const enStandardRecheckSubmit = (params) => postAction('', params)
// 同意
const enStandardRecheckAgree = (params) => postAction('', params)
// 驳回
const enStandardRecheckReject = (params) => postAction('', params)
// 流程中心 // 流程中心
// 待办-转办 // 待办-转办
@@ -103,6 +121,15 @@ export {
enStandardChangeTurnTo, enStandardChangeTurnTo,
enStandardChangeAgree, enStandardChangeAgree,
enStandardChangeReject, enStandardChangeReject,
enStandardChangeGetDataById,
enStandardRecheckGetDataById,
enStandardRecheckSave,
enStandardRecheckApproval,
enStandardRecheckTurnTo,
enStandardRecheckSubmit,
enStandardRecheckAgree,
enStandardRecheckReject,
toDoTurnTo, toDoTurnTo,
compulsoryWithdrawal compulsoryWithdrawal
+1 -1
View File
@@ -71,7 +71,7 @@ export default {
}, },
{ // 企标复审流程 { // 企标复审流程
title: this.$t('workCenter.newProcess.processOfEnterpriseBidReview'), title: this.$t('workCenter.newProcess.processOfEnterpriseBidReview'),
path: '' path: '/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow'
}, },
{ // 企标废止流程 { // 企标废止流程
title: this.$t('workCenter.newProcess.processOfEnterpriseBidAnnulment'), title: this.$t('workCenter.newProcess.processOfEnterpriseBidAnnulment'),
@@ -24,7 +24,7 @@
@change="event => event.target.value = event.target.value.trim()" @change="event => event.target.value = event.target.value.trim()"
:disabled="disabled || processNameDisabled" :disabled="disabled || processNameDisabled"
:maxLength="50" :maxLength="50"
v-decorator="['processName', validatorRules.processName]" /> v-decorator="['prcName', validatorRules.prcName]" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@@ -34,7 +34,7 @@
style="width: 100%" style="width: 100%"
:disabled="disabled" :disabled="disabled"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
v-decorator="['deadlineDate']" /> v-decorator="['dueTime']" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@@ -44,7 +44,7 @@
:maxLength="500" :maxLength="500"
:rows="4" :rows="4"
:disabled="disabled" :disabled="disabled"
v-decorator="['processDescription']" /> v-decorator="['prcMes']" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
@@ -192,11 +192,11 @@
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')" <a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
:maxLength="500" :maxLength="500"
:rows="4" :rows="4"
v-decorator="['remarks', validatorRules.remarks]" /> v-decorator="['commitText', validatorRules.commitText]" />
</a-form-item> </a-form-item>
<!--附件--> <!--附件-->
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')"> <a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
<j-upload v-decorator="['attachment']" return-id /> <j-upload v-decorator="['commitFile']" return-id />
</a-form-item> </a-form-item>
</a-form> </a-form>
</div> </div>
@@ -469,11 +469,11 @@ export default {
} }
}, },
mounted () { mounted () {
console.log(this.$route.query.processId) console.log(this.$route.query.taskId)
if (this.$route.query.processId) { if (this.$route.query.taskId) {
this.currentNode = 2 // todo: 先设置一个假数据,后端还不能返回当前节点 this.currentNode = 2 // todo: 先设置一个假数据,后端还不能返回当前节点
// 有流程id说明是从流程中心来的,需要初始化数据 // 有流程id说明是从流程中心来的,需要初始化数据
this.getProcessData(this.$route.query.processId) this.getProcessData(this.$route.query.taskId)
} }
if (this.currentNode === 1) { if (this.currentNode === 1) {
this.personnelInfoData = approvalPersonalInfo this.personnelInfoData = approvalPersonalInfo
@@ -519,13 +519,13 @@ export default {
}, },
validatorRules: { validatorRules: {
// 流程名称 // 流程名称
processName: { prcName: {
rules: [ rules: [
{ required: true, message: this.$t('pleaseEnter') + this.$t('processName') } { required: true, message: this.$t('pleaseEnter') + this.$t('processName') }
], ],
validateTrigger: 'blur' validateTrigger: 'blur'
}, },
remarks: { commitText: {
rules: [ rules: [
{ required: false, message: this.$t('pleaseEnter') + this.$t('remarks') } { required: false, message: this.$t('pleaseEnter') + this.$t('remarks') }
], ],
@@ -575,15 +575,15 @@ export default {
}, },
methods: { methods: {
// 根据流程id获取数据并回显 // 根据流程id获取数据并回显
getProcessData (processId) { getProcessData (taskId) {
getProcessDataById({ processInstanceId: processId }).then(res => { getProcessDataById({ taskId: taskId }).then(res => {
if (res.success) { if (res.success) {
this.model = res.result this.model = res.result
this.$nextTick(() => { this.$nextTick(() => {
// 初始化流程信息 // 初始化流程信息
this.processInfoForm.setFieldsValue(pick(this.model[0], 'processName', 'deadlineDate', 'processDescription')) this.processInfoForm.setFieldsValue(pick(this.model[0], 'prcName', 'dueTime', 'prcMes'))
// 初始化流程审批信息,todo:需要判断是不是草稿进来的,草稿进来的才回显审批信息 // 初始化流程审批信息,todo:需要判断是不是草稿进来的,草稿进来的才回显审批信息
// this.approvalInfoForm.setFieldsValue(pick(this.model[0], 'remarks', 'attachment')) // this.approvalInfoForm.setFieldsValue(pick(this.model[0], 'commitText', 'commitFile'))
}) })
// 初始化业务基本信息的申请类型和项目类别 // 初始化业务基本信息的申请类型和项目类别
this.formInline.applicationCategory = this.model[0].applicationCategory this.formInline.applicationCategory = this.model[0].applicationCategory
@@ -649,12 +649,12 @@ export default {
}, },
// 业务基本信息组件中获取到流程名称改变后的值 // 业务基本信息组件中获取到流程名称改变后的值
processNameChange (value) { processNameChange (value) {
const param = { processName: value } const param = { prcName: value }
this.$nextTick(() => { this.$nextTick(() => {
this.processInfoForm.setFieldsValue(pick(param, 'processName')) this.processInfoForm.setFieldsValue(pick(param, 'prcName'))
}) })
}, },
// 保存(业务基本信息那里是表格的就传给后端数组里多条数据,是表单的就在数组里放一条数据) // 保存
handleSave () { handleSave () {
// 有任意一项填了即可 // 有任意一项填了即可
// 流程信息表单 // 流程信息表单
@@ -673,16 +673,16 @@ export default {
personnelObj[item.fieldName] = item.user personnelObj[item.fieldName] = item.user
} }
} }
// 需要传给后端的数组 // 业务基础信息组件中的数据
let arr = [] let arr = []
// 业务基本信息-立项表单 // 业务基本信息-立项表单
let approvalBaseInfo = {}
if (this.$refs.approvalBaseInfo) { if (this.$refs.approvalBaseInfo) {
approvalBaseInfo = this.$refs.approvalBaseInfo.formInline const approvalBaseInfo = this.$refs.approvalBaseInfo.formInline
// 企标体系处理成逗号分隔 // 企标体系处理成逗号分隔
if (approvalBaseInfo.enStandardSystem && approvalBaseInfo.enStandardSystem.length > 0) { if (approvalBaseInfo.enStandardSystem && approvalBaseInfo.enStandardSystem.length > 0) {
approvalBaseInfo.enStandardSystem = approvalBaseInfo.enStandardSystem.map(item => item.value).join(',') approvalBaseInfo.enStandardSystem = approvalBaseInfo.enStandardSystem.map(item => item.value).join(',')
} }
// 校验至少填了一项
const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj, ...userInfoForm } const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
const flag = Object.values(param).some(v => !!v || v === 0) const flag = Object.values(param).some(v => !!v || v === 0)
if (!flag) { if (!flag) {
@@ -690,7 +690,7 @@ export default {
this.$message.warning(this.$t('pleaseFillInAtLeastOneItem')) this.$message.warning(this.$t('pleaseFillInAtLeastOneItem'))
return return
} }
arr.push(param) arr.push({ ...ruleForm, ...approvalBaseInfo })
} else if (this.formInline.projectType === ProjectType.COMPLETE_TIME_CHANGE.value) { } else if (this.formInline.projectType === ProjectType.COMPLETE_TIME_CHANGE.value) {
// 业务基本信息-变更-完成时间变更 // 业务基本信息-变更-完成时间变更
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm } const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
@@ -700,7 +700,7 @@ export default {
this.$message.warning(this.$t('pleaseFillInAtLeastOneItem')) this.$message.warning(this.$t('pleaseFillInAtLeastOneItem'))
return return
} }
arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...param } }) arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...ruleForm } })
} else if (this.formInline.projectType === ProjectType.WORK_TERMINATE.value) { } else if (this.formInline.projectType === ProjectType.WORK_TERMINATE.value) {
// 业务基本信息-变更-工作终止 // 业务基本信息-变更-工作终止
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm } const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
@@ -710,13 +710,10 @@ export default {
this.$message.warning(this.$t('pleaseFillInAtLeastOneItem')) this.$message.warning(this.$t('pleaseFillInAtLeastOneItem'))
return return
} }
arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...param } }) arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...ruleForm } })
} else if (this.formInline.projectType === ProjectType.RESPONSIBLE_DEPT_CHANGE.value) { } else if (this.formInline.projectType === ProjectType.RESPONSIBLE_DEPT_CHANGE.value) {
// 业务基本信息-变更-责任部门变更 // 业务基本信息-变更-责任部门变更
let dutyDepartChangeForm = {} const dutyDepartChangeForm = this.$refs.changeBaseInfo.formInline
if (this.$refs.changeBaseInfo) {
dutyDepartChangeForm = this.$refs.changeBaseInfo.formInline
}
const param = { ...processInfoForm, ...ruleForm, ...dutyDepartChangeForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm } const param = { ...processInfoForm, ...ruleForm, ...dutyDepartChangeForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
const flag = Object.values(param).some(v => !!v || v === 0) const flag = Object.values(param).some(v => !!v || v === 0)
if (!flag) { if (!flag) {
@@ -724,13 +721,10 @@ export default {
this.$message.warning(this.$t('pleaseFillInAtLeastOneItem')) this.$message.warning(this.$t('pleaseFillInAtLeastOneItem'))
return return
} }
arr.push(param) arr.push({ ...ruleForm, ...dutyDepartChangeForm })
} else if (this.formInline.projectType === ProjectType.MERGE.value) { } else if (this.formInline.projectType === ProjectType.MERGE.value) {
// 业务基本信息-变更-合并 // 业务基本信息-变更-合并
let mergeForm = {} const mergeForm = this.$refs.changeBaseInfo.formInline
if (this.$refs.changeBaseInfo) {
mergeForm = this.$refs.changeBaseInfo.formInline
}
const param = { ...processInfoForm, ...ruleForm, ...mergeForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm } const param = { ...processInfoForm, ...ruleForm, ...mergeForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
const flag = Object.values(param).some(v => !!v || v === 0) const flag = Object.values(param).some(v => !!v || v === 0)
if (!flag) { if (!flag) {
@@ -738,10 +732,10 @@ export default {
this.$message.warning(this.$t('pleaseFillInAtLeastOneItem')) this.$message.warning(this.$t('pleaseFillInAtLeastOneItem'))
return return
} }
arr.push(param) arr.push({ ...ruleForm, ...mergeForm })
} else { } else {
// 还没有选择申请类型和项目类别,需要外层信息至少填了一项 // 还没有选择申请类型和项目类别,需要外层信息至少填了一项
const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj, ...userInfoForm } const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
const flag = Object.values(param).some(v => !!v || v === 0) const flag = Object.values(param).some(v => !!v || v === 0)
if (!flag) { if (!flag) {
// 提示至少填写一项 // 提示至少填写一项
@@ -750,8 +744,12 @@ export default {
} }
} }
this.loading = true this.loading = true
const param = {} // 传给后端的参数
param.commonVO = { ...processInfoForm, ...approvalInfoForm } // 流程信息和流程审批信息
param.dataList = arr // 业务基础信息数组
param.flowUserInfoVO = personnelObj // 人员信息
// 保存到草稿 // 保存到草稿
enterprisePlanApprovalSave(arr).then(res => { enterprisePlanApprovalSave(param).then(res => {
if (res.success) { if (res.success) {
this.$message.success(res.message) this.$message.success(res.message)
} else { } else {
@@ -761,7 +759,7 @@ export default {
this.loading = false this.loading = false
}) })
}, },
// 节点一时候的提交,发起立项变更申请(业务基本信息那里是表格的就传给后端数组里多条数据,是表单的就在数组里放一条数据) // 节点一时候的提交,发起立项变更申请
handleStart () { handleStart () {
if (this.loading) return if (this.loading) return
// 人员信息的数据, 处理成对象 // 人员信息的数据, 处理成对象
@@ -780,7 +778,7 @@ export default {
this.processInfoForm.validateFields((err, values) => { this.processInfoForm.validateFields((err, values) => {
this.$refs.ruleForm.validate(valid => { this.$refs.ruleForm.validate(valid => {
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => { this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
let arr = [] // 需要传给后端的数据 let arr = [] // 业务基本信息部分的数据封装
let haveErr = true // 是否有错误,有错,则不能提交,false没有错 let haveErr = true // 是否有错误,有错,则不能提交,false没有错
// 立项和变更的数据不一样,分开判断 // 立项和变更的数据不一样,分开判断
if (this.formInline.applicationCategory === ApplicationCategory.INITIATION.value) { if (this.formInline.applicationCategory === ApplicationCategory.INITIATION.value) {
@@ -788,7 +786,7 @@ export default {
this.$refs.approvalBaseInfo.$refs.ruleForm.validate(approvalBaseValid => { this.$refs.approvalBaseInfo.$refs.ruleForm.validate(approvalBaseValid => {
if (valid && approvalBaseValid && !err && !approvalErr) { if (valid && approvalBaseValid && !err && !approvalErr) {
this.loading = true this.loading = true
const param = Object.assign({}, values, this.formInline, approvalValues, this.$refs.approvalBaseInfo.formInline, personnelObj) const param = Object.assign({}, this.formInline, this.$refs.approvalBaseInfo.formInline)
// 企标体系处理成逗号分隔 // 企标体系处理成逗号分隔
param.enStandardSystem = param.enStandardSystem.map(item => item.value).join(',') param.enStandardSystem = param.enStandardSystem.map(item => item.value).join(',')
arr.push(param) arr.push(param)
@@ -802,9 +800,10 @@ export default {
// 是变更-完成时间 或者 变更-工作终止变更 // 是变更-完成时间 或者 变更-工作终止变更
if (valid && !err && !approvalErr && this.$refs.changeBaseInfo && this.$refs.changeBaseInfo.dataSource.length > 0) { if (valid && !err && !approvalErr && this.$refs.changeBaseInfo && this.$refs.changeBaseInfo.dataSource.length > 0) {
this.loading = true this.loading = true
const param = { ...values, ...this.formInline, ...approvalValues, ...personnelObj } arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...this.formInline } })
arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...param } })
haveErr = false haveErr = false
} else if (valid && !err && !approvalErr && this.$refs.changeBaseInfo) {
haveErr = true
} else { } else {
haveErr = true haveErr = true
if (this.$refs.changeBaseInfo.dataSource.length <= 0) { if (this.$refs.changeBaseInfo.dataSource.length <= 0) {
@@ -816,7 +815,7 @@ export default {
this.$refs.changeBaseInfo.$refs.ruleForm.validate(changeBaseValid => { this.$refs.changeBaseInfo.$refs.ruleForm.validate(changeBaseValid => {
if (valid && changeBaseValid && !err && !approvalErr) { if (valid && changeBaseValid && !err && !approvalErr) {
this.loading = true this.loading = true
const param = Object.assign({}, values, this.formInline, approvalValues, this.$refs.changeBaseInfo.formInline, personnelObj) const param = Object.assign({}, this.formInline, this.$refs.changeBaseInfo.formInline)
arr.push(param) arr.push(param)
haveErr = false haveErr = false
} else { } else {
@@ -834,7 +833,7 @@ export default {
return return
} }
this.loading = true this.loading = true
const param = Object.assign({}, values, this.formInline, approvalValues, this.$refs.changeBaseInfo.formInline, personnelObj) const param = Object.assign({}, this.formInline, this.$refs.changeBaseInfo.formInline)
// 企标体系处理成逗号分隔 // 企标体系处理成逗号分隔
param.enStandardSystem = param.enStandardSystem.map(item => item.value).join(',') param.enStandardSystem = param.enStandardSystem.map(item => item.value).join(',')
arr.push(param) arr.push(param)
@@ -856,7 +855,11 @@ export default {
if (haveErr) { if (haveErr) {
return return
} }
enterprisePlanApproval(arr).then(res => { const param = {} // 需要传给后端的数据
param.commonVO = { ...values, ...approvalValues } // 流程信息和流程审批信息
param.dataList = arr
param.flowUserInfoVO = personnelObj
enterprisePlanApproval(param).then(res => {
if (res.success) { if (res.success) {
this.$message.success(res.message) this.$message.success(res.message)
} else { } else {
@@ -941,8 +944,8 @@ export default {
// 驳回 // 驳回
handleReject () { handleReject () {
if (this.loading) return if (this.loading) return
this.validatorRules.remarks.rules[0].required = true this.validatorRules.commitText.rules[0].required = true
if (!this.approvalInfoForm.getFieldValue('remarks')) { if (!this.approvalInfoForm.getFieldValue('commitText')) {
this.$message.warning(this.$t('pleaseEnterRemarks')) this.$message.warning(this.$t('pleaseEnterRemarks'))
} }
this.$nextTick(() => { this.$nextTick(() => {
@@ -959,7 +962,7 @@ export default {
} }
}).finally(() => { }).finally(() => {
this.loading = false this.loading = false
this.validatorRules.remarks.rules[0].required = false this.validatorRules.commitText.rules[0].required = false
}) })
} }
}) })
@@ -88,35 +88,35 @@ export default {
title: this.$t('workCenter.processCenter.processNumber'), title: this.$t('workCenter.processCenter.processNumber'),
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'processNumber', dataIndex: 'prcNum',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ // 流程类型 { // 流程类型
title: this.$t('workCenter.processCenter.processType'), title: this.$t('workCenter.processCenter.processType'),
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'processType_dictText', dataIndex: 'prcType_dictText',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ // 流程名称 { // 流程名称
title: this.$t('processName'), title: this.$t('processName'),
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'processName', dataIndex: 'prcName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ // 发起人 { // 发起人
title: this.$t('workCenter.processCenter.initiator'), title: this.$t('workCenter.processCenter.initiator'),
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'initiator', dataIndex: 'createUserName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ // 接收任务时间 { // 接收任务时间
title: this.$t('workCenter.processCenter.receivingTaskTime'), title: this.$t('workCenter.processCenter.receivingTaskTime'),
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'receivingTaskTime', dataIndex: 'receivedTaskTime',
sort: true, sort: true,
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
@@ -148,8 +148,8 @@ export default {
path: path, path: path,
query: { query: {
currentNode: record.currentNode, currentNode: record.currentNode,
processId: record.prcId, // 流程id processId: record.id, // 流程id
taskId: record.taskId taskId: record.taskId // 任务id
} }
}) })
}, },