[update] 联调企标计划立项、变更流程,画年度制修订计划-各部门主动上报流程页面

This commit is contained in:
lideqin
2023-10-17 18:04:50 +08:00
parent 4436670c21
commit 41adfa6baf
14 changed files with 1078 additions and 240 deletions
@@ -12,7 +12,7 @@
</div>
</template>
<!-- 基础信息 -->
<div v-show="switchValue === 'base'" class="scroll-content">
<div v-show="switchValue === 'base'" class="detail-page-scroll-content">
<!-- 流程信息 -->
<div class="process-part-title">{{ $t('processInformation') }}</div>
<a-form :form="processInfoForm">
@@ -201,13 +201,13 @@
</a-form>
</div>
<!-- 人员信息 -->
<div v-show="switchValue === 'user'" class="scroll-content">
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
<process-detail-list :url="url">
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNode + ''"></personnel-info>
</process-detail-list>
</div>
<!-- 操作按钮 -->
<div class="bottom-operate-box" v-if="!onlyLook">
<div class="detail-page-bottom-operate-box" v-if="!onlyLook">
<!-- 发起节点 -->
<template v-if="currentNode === 1">
<!-- 保存 -->
@@ -257,7 +257,8 @@ import {
enterprisePlanApprovalDetermine,
enterprisePlanApprovalSave,
enterprisePlanApproval,
getProcessDataById
getProcessDataById,
enterprisePlanApprovalSubmit
} from '@/api/workCenter'
import ApprovalBaseInfo from './modules/ApprovalBaseInfo'
import FinishTimeChangeBaseInfo from './modules/FinishTimeChangeBaseInfo'
@@ -285,7 +286,6 @@ const approvalPersonalInfo = [ // 人员信息的数据
nodeRoleName: '部所联络人',
canChoose: true,
chooseType: 'radio',
// todo: 还没有联络人管理模块,暂时用选用户
chooseSource: 'contactManage',
fieldName: 'contactUser'
},
@@ -337,7 +337,6 @@ const changePersonalInfo = [
nodeRoleName: '部所联络人',
canChoose: true,
chooseType: 'radio',
// todo: 还没有联络人管理模块,暂时用选用户
chooseSource: 'contactManage',
fieldName: 'contactUser'
},
@@ -478,6 +477,9 @@ export default {
}
if (this.currentNode === 1) {
this.personnelInfoData = approvalPersonalInfo
this.disabled = false
} else {
this.disabled = true
}
// 如果是查看进入的,不可编辑,不可操作
if (this.$route.query.onlyLook) {
@@ -577,8 +579,8 @@ export default {
this.$nextTick(() => {
// 初始化流程信息
this.processInfoForm.setFieldsValue(pick(this.model[0], 'processName', 'deadlineDate', 'processDescription'))
// 初始化流程审批信息
this.approvalInfoForm.setFieldsValue(pick(this.model[0], 'remarks', 'attachment'))
// 初始化流程审批信息,todo:需要判断是不是草稿进来的,草稿进来的才回显审批信息
// this.approvalInfoForm.setFieldsValue(pick(this.model[0], 'remarks', 'attachment'))
})
// 初始化业务基本信息的申请类型和项目类别
this.formInline.applicationCategory = this.model[0].applicationCategory
@@ -656,6 +658,8 @@ export default {
const ruleForm = this.formInline
// 流程审批信息
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
// 部分节点的选人表单
const userInfoForm = this.userForm.getFieldsValue()
// 人员信息的数据, 处理成对象
const personnelInfo = this.$refs.personnelInfo.stepsData
const personnelObj = {}
@@ -674,7 +678,7 @@ export default {
if (approvalBaseInfo.enStandardSystem && approvalBaseInfo.enStandardSystem.length > 0) {
approvalBaseInfo.enStandardSystem = approvalBaseInfo.enStandardSystem.map(item => item.value).join(',')
}
const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj }
const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
const flag = Object.values(param).some(v => !!v || v === 0)
if (!flag) {
// 提示至少填写一项
@@ -684,7 +688,7 @@ export default {
arr.push(param)
} else if (this.formInline.projectType === ProjectType.COMPLETE_TIME_CHANGE.value) {
// 业务基本信息-变更-完成时间变更
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj }
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
const flag = Object.values(param).some(v => !!v || v === 0)
if (!flag && this.$refs.changeBaseInfo.dataSource.length <= 0) {
// 提示至少填写一项
@@ -694,7 +698,7 @@ export default {
arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...param } })
} else if (this.formInline.projectType === ProjectType.WORK_TERMINATE.value) {
// 业务基本信息-变更-工作终止
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj }
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
const flag = Object.values(param).some(v => !!v || v === 0)
if (!flag && this.$refs.changeBaseInfo.dataSource.length <= 0) {
// 提示至少填写一项
@@ -708,7 +712,7 @@ export default {
if (this.$refs.changeBaseInfo) {
dutyDepartChangeForm = this.$refs.changeBaseInfo.formInline
}
const param = { ...processInfoForm, ...ruleForm, ...dutyDepartChangeForm, ...approvalInfoForm, ...personnelObj }
const param = { ...processInfoForm, ...ruleForm, ...dutyDepartChangeForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
const flag = Object.values(param).some(v => !!v || v === 0)
if (!flag) {
// 提示至少填写一项
@@ -722,7 +726,7 @@ export default {
if (this.$refs.changeBaseInfo) {
mergeForm = this.$refs.changeBaseInfo.formInline
}
const param = { ...processInfoForm, ...ruleForm, ...mergeForm, ...approvalInfoForm, ...personnelObj }
const param = { ...processInfoForm, ...ruleForm, ...mergeForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
const flag = Object.values(param).some(v => !!v || v === 0)
if (!flag) {
// 提示至少填写一项
@@ -732,7 +736,7 @@ export default {
arr.push(param)
} else {
// 还没有选择申请类型和项目类别,需要外层信息至少填了一项
const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj }
const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
const flag = Object.values(param).some(v => !!v || v === 0)
if (!flag) {
// 提示至少填写一项
@@ -761,10 +765,10 @@ export default {
}
}
// 校验是否填了所有能填的人员信息
// if (!Object.values(personnelObj).every(v => !!v)) {
// this.$message.warning(this.$t('pleaseEnterPersonnelInfo'))
// return
// }
if (!Object.values(personnelObj).every(v => !!v)) {
this.$message.warning(this.$t('pleaseEnterPersonnelInfo'))
return
}
this.processInfoForm.validateFields((err, values) => {
this.$refs.ruleForm.validate(valid => {
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
@@ -857,33 +861,45 @@ export default {
})
})
},
// 提交
// 其他节点的提交,校验部分节点需要选人的表单和审批信息即可
handleSubmit () {
if (this.loading) return
this.processInfoForm.validateFields((err, values) => {
this.$refs.ruleForm.validate(valid => {
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
// 立项和变更的数据不一样,分开判断
if (this.formInline.applicationCategory === ApplicationCategory.INITIATION.value) {
// 是立项
this.$refs.approvalBaseInfo.$refs.ruleForm.validate(approvalBaseValid => {
if (valid && approvalBaseValid && !err && !approvalErr) {
this.loading = true
const param = Object.assign({}, this.$refs.approvalBaseInfo.formInline)
console.log(param)
}
})
} else {
// 是变更
this.userForm.validateFields((userErr, userValues) => {
if (valid && !err && !approvalErr && !userErr) {
this.loading = true
const param = this.$refs.changeBaseInfo.dataSource
console.log(param)
}
})
}
})
this.userForm.validateFields((err, values) => {
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
if (!err && !approvalErr) {
this.loading = true
const param = Object.assign({}, values, approvalValues)
param.taskId = this.$route.query.taskId
enterprisePlanApprovalSubmit(param).then(res => {
if (res.success) {
this.$message.success(res.message)
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
}
// // 立项和变更的数据不一样,分开判断
// if (this.formInline.applicationCategory === ApplicationCategory.INITIATION.value) {
// // 是立项
// this.$refs.approvalBaseInfo.$refs.ruleForm.validate(approvalBaseValid => {
// if (valid && approvalBaseValid && !err && !approvalErr) {
// this.loading = true
// const param = Object.assign({}, this.$refs.approvalBaseInfo.formInline)
// console.log(param)
// }
// })
// } else {
// // 是变更
// this.userForm.validateFields((userErr, userValues) => {
// if (valid && !err && !approvalErr && !userErr) {
// this.loading = true
// const param = this.$refs.changeBaseInfo.dataSource
// console.log(param)
// }
// })
// }
})
})
},
@@ -898,8 +914,7 @@ export default {
this.approvalInfoForm.validateFields((err, values) => {
if (!err) {
this.loading = true
let param = {}
param = Object.assign({}, values)
const param = Object.assign({}, values)
param.userId = userIds
// param.taskId = this.model[0].id
param.taskId = this.$route.query.taskId
@@ -921,9 +936,8 @@ export default {
this.approvalInfoForm.validateFields((err, values) => {
if (!err) {
this.loading = true
let param = {}
param = Object.assign({}, values)
param.processId = this.model.id
const param = Object.assign({}, values)
param.taskId = this.$route.query.taskId
enterprisePlanApprovalAgree(param).then(res => {
if (res.success) {
this.$message.success(res.message)
@@ -940,23 +954,27 @@ export default {
handleReject () {
if (this.loading) return
this.validatorRules.remarks.rules[0].required = true
this.approvalInfoForm.validateFields((err, values) => {
if (!err) {
this.loading = true
let param = {}
param = Object.assign({}, values)
param.processId = this.model.id
enterprisePlanApprovalReject(param).then(res => {
if (res.success) {
this.$message.success(res.message)
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
this.validatorRules.remarks.rules[0].required = false
})
}
if (!this.approvalInfoForm.getFieldValue('remarks')) {
this.$message.warning(this.$t('pleaseEnterRemarks'))
}
this.$nextTick(() => {
this.approvalInfoForm.validateFields((err, values) => {
if (!err) {
this.loading = true
const param = Object.assign({}, values)
param.taskId = this.$route.query.id
enterprisePlanApprovalReject(param).then(res => {
if (res.success) {
this.$message.success(res.message)
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
this.validatorRules.remarks.rules[0].required = false
})
}
})
})
},
// 确定
@@ -965,9 +983,8 @@ export default {
this.approvalInfoForm.validateFields((err, values) => {
if (!err) {
this.loading = true
let param = {}
param = Object.assign({}, values)
param.processId = this.model.id
const param = Object.assign({}, values)
param.taskId = this.$route.query.taskId
enterprisePlanApprovalDetermine(param).then(res => {
if (res.success) {
this.$message.success(res.message)
@@ -976,7 +993,6 @@ export default {
}
}).finally(() => {
this.loading = false
this.validatorRules.remarks.rules[0].required = false
})
}
})
@@ -986,64 +1002,12 @@ export default {
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
/deep/ .ant-form-item-children {
width: 100%;
display: inline-block;
}
.form-flex-box {
display: flex;
flex-wrap: wrap;
}
.form-flex-item-line {
width: 100%;
}
.collapsible-panel-form {
margin-top: 20px;
&-header {
height: 56px;
line-height: 56px;
background: rgba(245, 245, 245, 0.6);
border-radius: 8px 8px 0 0;
border: 1px solid #E5E6EB;
padding: 0 20px;
font-size: 16px;
font-family: PingFang SC-Medium, PingFang SC, sans-serif;
font-weight: 600;
color: #1D2129;
display: flex;
justify-content: space-between;
.retractable-btn {
cursor: pointer;
font-size: 14px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
color: @primary-color;
}
.anticon {
margin-right: 8px;
}
.pack-up-btn {
transform: rotate(-90deg);
}
.unfold-btn {
transform: rotate(90deg);
}
}
&-content {
border: 1px solid #E5E6EB;
border-top: none;
border-radius: 0 0 8px 8px;
padding: 20px;
}
}
.collapsible-content-no-head {
border-top: 1px solid #E5E6EB;
border-radius: 8px 8px 8px 8px;
@@ -1063,13 +1027,6 @@ export default {
}
}
.scroll-content {
height: calc(100% - 52px);
box-sizing: border-box;
overflow: auto;
padding: 32px;
}
.user-form {
margin-top: 24px;
/deep/ .ant-form-item {