[update] 联调企标计划立项、变更流程,画年度制修订计划-各部门主动上报流程页面
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user