[update] 新增流程中心页,企标计划立项/变更流程

This commit is contained in:
lideqin
2023-10-11 18:07:14 +08:00
parent 4d45b77827
commit 505c07fd88
23 changed files with 3007 additions and 139 deletions
@@ -96,7 +96,7 @@
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.itemCategory')">
<a-select-option :value="1">{{ $t('workCenter.enterpriseInitChangePlan.completionTimeChange') }}</a-select-option>
<a-select-option :value="2">{{ $t('workCenter.enterpriseInitChangePlan.terminationOfWork') }}</a-select-option>
<a-select-option :value="3">{{ $t('workCenter.enterpriseInitChangePlan.masterDraftingDepartmentChanges') }}</a-select-option>
<a-select-option :value="3">{{ $t('workCenter.enterpriseInitChangePlan.dutyDepartChange') }}</a-select-option>
<a-select-option :value="4">{{ $t('workCenter.enterpriseInitChangePlan.merge') }}</a-select-option>
</a-select>
</a-form-model-item>
@@ -112,14 +112,36 @@
:currentNode="currentNode"
:itemCategory="formInline.itemCategory">
</approval-base-info>
<!-- 申请类型为变更时的业务基本信息部分组件 -->
<change-base-info
v-else-if="formInline.applicationType === 2"
<!-- 申请类型为变更,项目类型为完成时间变更时的业务基本信息部分组件 -->
<finish-time-change-base-info
v-else-if="formInline.applicationType === 2 && formInline.itemCategory === 1"
ref="changeBaseInfo"
:disabled="disabled"
:currentNode="currentNode"
>
</change-base-info>
</finish-time-change-base-info>
<!-- 申请类型为变更,项目类型为工作终止时的业务基本信息部分组件 -->
<job-end-base-info
v-else-if="formInline.applicationType === 2 && formInline.itemCategory === 2"
ref="changeBaseInfo"
:disabled="disabled"
:currentNode="currentNode"
>
</job-end-base-info>
<!-- 申请类型为变更,项目类型为责任部门变更的业务基本信息部分组件 -->
<duty-depart-change-base-info
v-else-if="formInline.applicationType === 2 && formInline.itemCategory === 3"
ref="changeBaseInfo"
:disabled="disabled"
>
</duty-depart-change-base-info>
<!-- 申请类型为变更,项目类型为合并的业务基本信息部分组件 -->
<merge-base-info
v-else-if="formInline.applicationType === 2 && formInline.itemCategory === 4"
ref="changeBaseInfo"
:disabled="disabled"
>
</merge-base-info>
<!-- 部分节点需要选人 -->
<a-form v-if="formInline.applicationType === 2 && [6, 7].includes(currentNode)" class="user-form" :form="userForm">
@@ -146,8 +168,8 @@
</a-form>
<!-- 流程审批信息 -->
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
<a-form :form="approvalInfoForm">
<div class="process-part-title" v-if="!onlyLook">{{ $t('processApprovalInformation') }}</div>
<a-form :form="approvalInfoForm" v-if="!onlyLook">
<!--备注-->
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('remarks')">
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
@@ -162,11 +184,13 @@
</a-form>
</div>
<!-- 人员信息 -->
<div v-if="switchValue === 'user'" class="scroll-content personnel-info-wrapper">
<personnel-info :data="personnelInfoData" :currentNode="currentNode"></personnel-info>
<div v-if="switchValue === 'user'" class="scroll-content">
<process-detail-list :url="url">
<personnel-info slot="personnelInfo" :data="personnelInfoData" :currentNode="currentNode"></personnel-info>
</process-detail-list>
</div>
<!-- 操作按钮 -->
<div class="bottom-operate-box">
<div class="bottom-operate-box" v-if="!onlyLook">
<!-- 发起节点 -->
<template v-if="currentNode === 1">
<!-- 保存 -->
@@ -177,7 +201,7 @@
<!-- 变更的新起草部门主管级上一级领导下发节点 -->
<template v-else-if="formInline.applicationType === 2 && [6, 7].includes(currentNode)">
<!-- 转办 -->
<a-button type="primary" ghost :loading="loading" @click="handleTurnTo" icon="upload">{{ $t('turnTo') }}</a-button>
<a-button type="primary" ghost :loading="loading" @click="handleTurnTo" icon="arrow-up">{{ $t('turnTo') }}</a-button>
<!-- 保存 -->
<a-button type="primary" ghost :loading="loading" @click="handleSave"><i class="iconfont icon-save"></i> {{ $t('preservation') }}</a-button>
<!-- 提交 -->
@@ -189,13 +213,13 @@
</template>
<template v-else>
<!-- 转办 -->
<a-button type="primary" ghost :loading="loading" @click="handleTurnTo" icon="upload">{{ $t('turnTo') }}</a-button>
<a-button type="primary" ghost :loading="loading" @click="handleTurnTo" icon="arrow-up">{{ $t('turnTo') }}</a-button>
<!-- 保存 -->
<a-button type="primary" ghost :loading="loading" @click="handleSave"><i class="iconfont icon-save"></i> {{ $t('preservation') }}</a-button>
<!-- 同意 -->
<a-button type="primary" :loading="loading" @click="handleAgree" icon="check-circle">{{ $t('agree') }}</a-button>
<!-- 驳回 -->
<a-button type="primary" :loading="loading" @click="handleReject" icon="check-circle">{{ $t('reject') }}</a-button>
<a-button type="primary" :loading="loading" @click="handleReject" icon="close-circle">{{ $t('reject') }}</a-button>
</template>
</div>
@@ -216,7 +240,11 @@ import {
enterprisePlanApprovalDetermine
} from '@/api/workCenter'
import ApprovalBaseInfo from './modules/ApprovalBaseInfo'
import ChangeBaseInfo from './modules/ChangeBaseInfo'
import FinishTimeChangeBaseInfo from './modules/FinishTimeChangeBaseInfo'
import ProcessDetailList from '../../../components/ProcessDetailList'
import JobEndBaseInfo from './modules/JobEndBaseInfo'
import DutyDepartChangeBaseInfo from './modules/DutyDepartChangeBaseInfo'
import MergeBaseInfo from './modules/MergeBaseInfo'
// 标准立项的人员信息
const approvalPersonalInfo = [ // 人员信息的数据
@@ -338,7 +366,11 @@ const changePersonalInfo = [
export default {
name: 'PlanApprovalFlow',
components: {
ChangeBaseInfo,
MergeBaseInfo,
DutyDepartChangeBaseInfo,
JobEndBaseInfo,
ProcessDetailList,
FinishTimeChangeBaseInfo,
ApprovalBaseInfo,
UserSelectModal,
PersonnelInfo,
@@ -354,9 +386,21 @@ export default {
'formInline.applicationType' (value) {
if (value) {
if (this.formInline.applicationType === 1) {
this.personnelInfoData = approvalPersonalInfo
if (this.currentNode === 1) {
this.personnelInfoData = approvalPersonalInfo
} else {
this.personnelInfoData = approvalPersonalInfo.map(item => {
return { ...item, canChoose: false }
})
}
} else {
this.personnelInfoData = changePersonalInfo
if (this.currentNode === 1) {
this.personnelInfoData = changePersonalInfo
} else {
this.personnelInfoData = changePersonalInfo.map(item => {
return { ...item, canChoose: false }
})
}
}
}
if (this.formInline.itemCategory) {
@@ -365,14 +409,26 @@ export default {
}
},
mounted () {
this.personnelInfoData = approvalPersonalInfo
if (this.currentNode === 1) {
this.personnelInfoData = approvalPersonalInfo
} else {
this.personnelInfoData = approvalPersonalInfo.map(item => {
return { ...item, canChoose: false }
})
}
// 如果是查看进入的,不可编辑
if (this.$route.query.onlyLook) {
this.onlyLook = this.$route.query.onlyLook
this.disabled = this.$route.query.onlyLook
}
},
data () {
return {
loading: false,
switchValue: 'base', // 头部tab选中值
disabled: false,
currentNode: 1, // 当前节点
onlyLook: false, // 是否仅查看
currentNode: 2, // 当前节点
model: {},
processInfoForm: this.$form.createForm(this),
labelCol: {
@@ -441,7 +497,10 @@ export default {
},
userForm: this.$form.createForm(this), // 部分节点需要选人的表单
approvalInfoForm: this.$form.createForm(this), // 审批信息表单
personnelInfoData: []
personnelInfoData: [],
url: {
list: '' // 人员信息的右侧表格获取接口
}
}
},
methods: {
@@ -681,10 +740,4 @@ export default {
}
}
// 人员信息
.personnel-info-wrapper {
/deep/ .ant-steps {
width: 400px;
}
}
</style>