update 企标稽查所有流程调整
This commit is contained in:
@@ -191,7 +191,13 @@ export const ProcessKey = {
|
|||||||
// 法规采购流程
|
// 法规采购流程
|
||||||
LEGAL_PROCUREMENT: { text: 'fb-standard-purchase', value: 'fb-standard-purchase' },
|
LEGAL_PROCUREMENT: { text: 'fb-standard-purchase', value: 'fb-standard-purchase' },
|
||||||
// 企标稽查计划
|
// 企标稽查计划
|
||||||
ES_Inspection_Plan: { text: 'inspect_plan', value: 'inspect_plan' }
|
ES_INSPECTION_PLAN: { text: 'inspect_plan', value: 'inspect_plan' },
|
||||||
|
// 企标稽查流程
|
||||||
|
ES_INSPECTION_PROCESS: { text: 'inspect_process', value: 'inspect_process' },
|
||||||
|
// 稽查延期申请流程
|
||||||
|
INSPECTION_EXTENSION_REQUEST_PROCESS: { text: 'inspect_plan', value: 'inspect_process' },
|
||||||
|
// 企标稽查整改
|
||||||
|
ES_INSPECTION_RECTIFICATION: { text: 'inspect_plan', value: 'inspect_process' }
|
||||||
}
|
}
|
||||||
|
|
||||||
// 标准性质
|
// 标准性质
|
||||||
@@ -252,11 +258,35 @@ export const SenderType = {
|
|||||||
|
|
||||||
// 企标稽查计划
|
// 企标稽查计划
|
||||||
export const EsInspectionPlan = new EsEnums({
|
export const EsInspectionPlan = new EsEnums({
|
||||||
initiate: { text: '稽查联络人发起计划', value: 'Activity_15w9cns', btn: 6 },
|
initiate: { text: '稽查联络人发起计划', value: 'liaisons_start', btn: 6 },
|
||||||
fillInComments: { text: '稽查征求意见对象填写意见', value: 'Activity_0mnt8n8', btn: 6 },
|
fillInComments: { text: '稽查征求意见对象填写意见', value: 'opinion_fill', btn: 6 },
|
||||||
liaisonCollect: { text: '稽查联络人汇总', value: 'Activity_0r85qcr', btn: 6 },
|
liaisonCollect: { text: '稽查联络人汇总', value: 'liaisons_collect', btn: 6 },
|
||||||
relevantPersonnelCountersign: { text: '相关人员会签', value: 'Activity_1jmz9m2', btn: 27 },
|
relevantPersonnelCountersign: { text: '相关人员会签', value: 'involve_countersign', btn: 27 },
|
||||||
liaisonLeaderApproval: { text: '联络人主管级领导批准', value: 'Activity_13e43pu', btn: 27 }
|
liaisonLeaderApproval: { text: '联络人主管级领导批准', value: 'leader_approval', btn: 27 }
|
||||||
|
})
|
||||||
|
|
||||||
|
// 企标稽查流程
|
||||||
|
export const EsInspectionProcess = new EsEnums({
|
||||||
|
initiate: { text: '稽查负责人发起', value: '1', btn: 6 },
|
||||||
|
directorLeaderApprovalOne: { text: '负责人主管级领导审批', value: '2', btn: 27 },
|
||||||
|
inputInspectionReport: { text: '稽查负责人上传稽查报告和整改计划', value: '3', btn: 7 },
|
||||||
|
directorLeaderApprovalTwo: { text: '负责人主管级领导审批', value: '4', btn: 27 },
|
||||||
|
relevantPersonnelCountersign: { text: '相关人员会签', value: '5', btn: 27 }
|
||||||
|
})
|
||||||
|
|
||||||
|
// 稽查延期申请流程
|
||||||
|
export const InspectionExtensionRequestProcess = new EsEnums({
|
||||||
|
initiate: { text: '稽查负责人申请延期', value: '1', btn: 6 },
|
||||||
|
directorLeaderApproval: { text: '负责人主管级领导审批', value: '2', btn: 27 },
|
||||||
|
contactEvaluation: { text: '稽查联络人评估', value: '3', btn: 27 },
|
||||||
|
directorSuperiorLeaderApproval: { text: '负责人主管级上一级领导审批', value: '4', btn: 27 }
|
||||||
|
})
|
||||||
|
|
||||||
|
// 企标稽查整改
|
||||||
|
export const EsInspectionRectification = new EsEnums({
|
||||||
|
uploadRectificationResult: { text: '整改负责人上传整改结果', value: '1', btn: 7 },
|
||||||
|
directorLeaderApproval: { text: '负责人主管级领导审批', value: '2', btn: 27 },
|
||||||
|
directorToExamine: { text: '稽查负责人审核', value: '3', btn: 6 }
|
||||||
})
|
})
|
||||||
|
|
||||||
// 项目评估结果类型
|
// 项目评估结果类型
|
||||||
|
|||||||
+12
-33
@@ -143,9 +143,6 @@ export default {
|
|||||||
mixins: [WorkCenterMixin],
|
mixins: [WorkCenterMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
// 当前流程信息
|
|
||||||
EsInspectionPlan,
|
|
||||||
info: {},
|
|
||||||
loading: false,
|
loading: false,
|
||||||
switchValue: 'base',
|
switchValue: 'base',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
@@ -165,6 +162,9 @@ export default {
|
|||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 22 }
|
sm: { span: 22 }
|
||||||
},
|
},
|
||||||
|
// 当前流程信息
|
||||||
|
EsInspectionPlan,
|
||||||
|
info: {},
|
||||||
currentNode: '',
|
currentNode: '',
|
||||||
currentNodeName: '',
|
currentNodeName: '',
|
||||||
// 项目id
|
// 项目id
|
||||||
@@ -199,9 +199,11 @@ export default {
|
|||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 流程基本信息
|
// 流程表单
|
||||||
processInfoForm: this.$form.createForm(this),
|
processInfoForm: this.$form.createForm(this),
|
||||||
|
// 会签表单
|
||||||
countersignForm: this.$form.createForm(this),
|
countersignForm: this.$form.createForm(this),
|
||||||
|
// 流程审批信息表单
|
||||||
approvalInfoForm: this.$form.createForm(this),
|
approvalInfoForm: this.$form.createForm(this),
|
||||||
// 是否会签
|
// 是否会签
|
||||||
isCountersign: null,
|
isCountersign: null,
|
||||||
@@ -212,9 +214,10 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
pageTitle () {
|
pageTitle () {
|
||||||
return this.$t('flowCenter') + this.$route.meta.title + '(' + this.subTitle + ')'
|
return this.$t('flowCenter') + this.$route.meta.title + '(' + this.nodeTitle + ')'
|
||||||
},
|
},
|
||||||
subTitle () {
|
// 节点标题
|
||||||
|
nodeTitle () {
|
||||||
return this.$route.query.taskName || EsInspectionPlan.initiate.text
|
return this.$route.query.taskName || EsInspectionPlan.initiate.text
|
||||||
},
|
},
|
||||||
processDisabled () {
|
processDisabled () {
|
||||||
@@ -231,8 +234,9 @@ export default {
|
|||||||
this.currentNode = nodeId || EsInspectionPlan.initiate.value
|
this.currentNode = nodeId || EsInspectionPlan.initiate.value
|
||||||
this.currentNodeName = taskName || EsInspectionPlan.initiate.text
|
this.currentNodeName = taskName || EsInspectionPlan.initiate.text
|
||||||
this.projectId = projectId
|
this.projectId = projectId
|
||||||
|
this.btn = EsInspectionPlan.propertyOfValue('btn', this.currentNode)
|
||||||
// 查询人员信息
|
// 查询人员信息
|
||||||
this.getPersonInfoStructure(ProcessKey.ES_Inspection_Plan.value, () => {
|
this.getPersonInfoStructure(ProcessKey.ES_INSPECTION_PLAN.value, () => {
|
||||||
this.initPersonInfoData(this.currentNode === EsInspectionPlan.initiate.value)
|
this.initPersonInfoData(this.currentNode === EsInspectionPlan.initiate.value)
|
||||||
})
|
})
|
||||||
// 如果是待办进来,就获取详情数据
|
// 如果是待办进来,就获取详情数据
|
||||||
@@ -249,8 +253,6 @@ export default {
|
|||||||
*/
|
*/
|
||||||
getProjectId () {
|
getProjectId () {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.currentNode = EsInspectionPlan.initiate.value
|
|
||||||
this.btn = EsInspectionPlan.initiate.btn
|
|
||||||
// 否则就是创建一个新的流程
|
// 否则就是创建一个新的流程
|
||||||
getInspectPlanProjectId().then(res => {
|
getInspectPlanProjectId().then(res => {
|
||||||
if (res) {
|
if (res) {
|
||||||
@@ -265,23 +267,6 @@ export default {
|
|||||||
*/
|
*/
|
||||||
loadPage () {
|
loadPage () {
|
||||||
const { projectId, taskId } = this.$route.query
|
const { projectId, taskId } = this.$route.query
|
||||||
switch (this.currentNode) {
|
|
||||||
case EsInspectionPlan.initiate.value:
|
|
||||||
this.btn = EsInspectionPlan.initiate.btn
|
|
||||||
break
|
|
||||||
case EsInspectionPlan.fillInComments.value:
|
|
||||||
this.btn = EsInspectionPlan.fillInComments.btn
|
|
||||||
break
|
|
||||||
case EsInspectionPlan.liaisonCollect.value:
|
|
||||||
this.btn = EsInspectionPlan.liaisonCollect.btn
|
|
||||||
break
|
|
||||||
case EsInspectionPlan.relevantPersonnelCountersign.value:
|
|
||||||
this.btn = EsInspectionPlan.relevantPersonnelCountersign.btn
|
|
||||||
break
|
|
||||||
case EsInspectionPlan.liaisonLeaderApproval.value:
|
|
||||||
this.btn = EsInspectionPlan.liaisonLeaderApproval.btn
|
|
||||||
break
|
|
||||||
}
|
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getInspectPlanDetail({
|
getInspectPlanDetail({
|
||||||
projectId,
|
projectId,
|
||||||
@@ -332,11 +317,6 @@ export default {
|
|||||||
const userList = this.$refs.inspectionPlanTable.dataSource.map(item => item.objectOfConsultation.split(',')).flat(Infinity)
|
const userList = this.$refs.inspectionPlanTable.dataSource.map(item => item.objectOfConsultation.split(',')).flat(Infinity)
|
||||||
personnelObj.opinionFillList = Array.from(new Set(userList))
|
personnelObj.opinionFillList = Array.from(new Set(userList))
|
||||||
}
|
}
|
||||||
// else if (this.currentNode === EsInspectionPlan.liaisonCollect.value) {
|
|
||||||
// // 节点3:只给后端leader
|
|
||||||
// const map = this.$refs.personnelInfo[funName]()
|
|
||||||
// personnelObj.leader = map.leader
|
|
||||||
// }
|
|
||||||
return personnelObj
|
return personnelObj
|
||||||
},
|
},
|
||||||
// 获取页面参数
|
// 获取页面参数
|
||||||
@@ -445,8 +425,7 @@ export default {
|
|||||||
case EsInspectionPlan.initiate.value:
|
case EsInspectionPlan.initiate.value:
|
||||||
fn = startInspectPlan
|
fn = startInspectPlan
|
||||||
break
|
break
|
||||||
case EsInspectionPlan.fillInComments.value:
|
default:
|
||||||
case EsInspectionPlan.liaisonCollect.value:
|
|
||||||
fn = approvalInspectPlan
|
fn = approvalInspectPlan
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-1
@@ -19,7 +19,7 @@
|
|||||||
rowKey="id"
|
rowKey="id"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
:row-selection="hasTableOperator ? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange, getCheckboxProps } : null"
|
||||||
:scroll="{x: '100%'}"
|
:scroll="{x: '100%'}"
|
||||||
@change="tableOnChange">
|
@change="tableOnChange">
|
||||||
|
|
||||||
@@ -271,6 +271,14 @@ export default {
|
|||||||
this.filters.taskId = this.$route.query.taskId
|
this.filters.taskId = this.$route.query.taskId
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getCheckboxProps (record) {
|
||||||
|
const obj = { props: { disabled: false } }
|
||||||
|
// 第二个节点,只有自己的才能勾选删除
|
||||||
|
if (this.currentNode === EsInspectionPlan.fillInComments.value) {
|
||||||
|
obj.props.disabled = record.createBy !== this.$store.getters.userInfo.username
|
||||||
|
}
|
||||||
|
return obj
|
||||||
|
},
|
||||||
getData () {
|
getData () {
|
||||||
return this.dataSource
|
return this.dataSource
|
||||||
},
|
},
|
||||||
|
|||||||
+315
-86
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<internal-detail-page :title="pageTitle" :content-padding="0">
|
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||||
<!-- 标题右侧tab -->
|
<!-- 标题右侧tab -->
|
||||||
<template v-slot:titleRightCustom>
|
<template v-slot:titleRightCustom>
|
||||||
<div class="table-operator-tab">
|
<div class="table-operator-tab">
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
@change="event => event.target.value = event.target.value.trim()"
|
@change="event => event.target.value = event.target.value.trim()"
|
||||||
:disabled="disabled || processDisabled"
|
:disabled="disabled || processDisabled"
|
||||||
:maxLength="50"
|
:maxLength="50"
|
||||||
v-decorator="['processName', validatorRules.processName]" />
|
v-decorator="['prcName', validatorRules.processName]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
@@ -36,8 +36,8 @@
|
|||||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:disabled="disabled || processDisabled"
|
:disabled="disabled || processDisabled"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD hh:mm:ss"
|
||||||
v-decorator="['expirationDate']" />
|
v-decorator="['dueTime']" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
:maxLength="500"
|
:maxLength="500"
|
||||||
:rows="4"
|
:rows="4"
|
||||||
:disabled="disabled || processDisabled"
|
:disabled="disabled || processDisabled"
|
||||||
v-decorator="['processExplain']" />
|
v-decorator="['prcMes']" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
<!-- 业务基本信息 -->
|
<!-- 业务基本信息 -->
|
||||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||||
<!-- 流程表格 -->
|
<!-- 流程表格 -->
|
||||||
<inspection-process-table :current-node="currentNode" />
|
<inspection-process-table ref="inspectionProcessTable" :current-node="currentNode" :project-id="projectId"/>
|
||||||
|
|
||||||
<!-- 流程审批信息 -->
|
<!-- 流程审批信息 -->
|
||||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||||
@@ -66,86 +66,56 @@
|
|||||||
<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.remarks]" />
|
||||||
</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="['file']" return-id />
|
<j-upload v-decorator="['commitFile']" return-id />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</div>
|
||||||
<!-- 人员信息 -->
|
<!-- 人员信息 -->
|
||||||
<div v-if="switchValue === 'user'" class="detail-page-scroll-content p-0">
|
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
|
||||||
<process-detail-list :url="url">
|
<process-detail-list>
|
||||||
<personnel-info slot="personnelInfo" :data="personnelInfoData" :currentNode="currentNode"></personnel-info>
|
<template #personnelInfo>
|
||||||
|
<personnel-info ref="personnelInfo" :data="personnelInfoData" :current-node="currentNodeName" />
|
||||||
|
</template>
|
||||||
</process-detail-list>
|
</process-detail-list>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="detail-page-bottom-operate-box">
|
<div class="detail-page-bottom-operate-box">
|
||||||
<a-button type="primary" :loading="loading" @click="handleSave" ghost><i class="iconfont icon-save" />{{ $t('preservation') }}</a-button>
|
<!--转办-->
|
||||||
<a-button type="primary" :loading="loading" @click="handleSubmit" icon="upload">{{ $t('submit') }}</a-button>
|
<a-button v-if="1 & btn" type="primary" :loading="loading" @click="handleTurnTo" ghost icon="arrow-up">{{ $t('turnTo') }}</a-button>
|
||||||
<a-button type="primary" :loading="loading" @click="handleAgree" icon="check-circle">{{ $t('agree') }}</a-button>
|
<!--保存-->
|
||||||
|
<a-button v-if="2 & btn" type="primary" :loading="loading" @click="handleSave" ghost><i class="iconfont icon-save" />{{ $t('preservation') }}</a-button>
|
||||||
|
<!--提交-->
|
||||||
|
<a-button v-if="4 & btn" type="primary" :loading="loading" @click="handleSubmit" icon="upload">{{ $t('submit') }}</a-button>
|
||||||
|
<!--同意-->
|
||||||
|
<a-button v-if="8 & btn" type="primary" :loading="loading" @click="handleAgree" icon="check-circle">{{ $t('agree') }}</a-button>
|
||||||
|
<!--驳回-->
|
||||||
|
<a-button v-if="16 & btn" type="primary" :loading="loading" @click="handleReject" icon="close-circle">{{ $t('reject') }}</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!--转办选人-->
|
||||||
|
<user-select-modal ref="userSelectModal" check-required @change="continueTurnTo" />
|
||||||
</internal-detail-page>
|
</internal-detail-page>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import '@assets/less/common.less'
|
||||||
import InternalDetailPage from '@comp/InternalDetailPage'
|
import InternalDetailPage from '@comp/InternalDetailPage'
|
||||||
import ProcessDetailList from '@comp/ProcessDetailList'
|
|
||||||
import PersonnelInfo from '@comp/PersonnelInfo'
|
import PersonnelInfo from '@comp/PersonnelInfo'
|
||||||
|
import ProcessDetailList from '@comp/ProcessDetailList'
|
||||||
import InspectionProcessTable
|
import InspectionProcessTable
|
||||||
from '@views/workCenter/enterpriseStandardInspectionProcess/modules/InspectionProcessTable'
|
from '@views/workCenter/enterpriseStandardInspectionProcess/modules/InspectionProcessTable'
|
||||||
|
import UserSelectModal from '@comp/selection/UserSelectModal'
|
||||||
// 标准立项的人员信息
|
import { EsInspectionProcess, ProcessKey } from '@/enums/commonEnums'
|
||||||
const approvalPersonalInfo = [ // 人员信息的数据
|
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||||
{
|
import { getInspectPlanDetail, getInspectPlanProjectId } from '@api/workCenter'
|
||||||
id: 1,
|
|
||||||
nodeName: '稽查负责人发起计划',
|
|
||||||
nodeRoleName: '稽查负责人',
|
|
||||||
canChoose: false,
|
|
||||||
userList: `系统管理员`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
nodeName: '负责人主管级领导审批',
|
|
||||||
nodeRoleName: '负责人主管级领导',
|
|
||||||
canChoose: true,
|
|
||||||
chooseType: 'checkbox',
|
|
||||||
// chooseSource: 'contactManage',
|
|
||||||
fieldName: 'contactUser'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
nodeName: '稽查负责人上传稽查报告和整改计划',
|
|
||||||
nodeRoleName: '稽查负责人',
|
|
||||||
canChoose: false,
|
|
||||||
chooseType: 'checkbox',
|
|
||||||
// chooseSource: 'contactManage',
|
|
||||||
fieldName: 'contactUser'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 4,
|
|
||||||
nodeName: '负责人主管级领导审批',
|
|
||||||
nodeRoleName: '负责人主管级领导',
|
|
||||||
canChoose: false,
|
|
||||||
chooseType: 'radio',
|
|
||||||
// chooseSource: 'contactManage',
|
|
||||||
fieldName: 'contactUser'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 5,
|
|
||||||
nodeName: '相关人员会签',
|
|
||||||
nodeRoleName: '相关人员',
|
|
||||||
canChoose: true,
|
|
||||||
chooseType: 'checkbox',
|
|
||||||
// chooseSource: 'contactManage',
|
|
||||||
fieldName: 'contactUser'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'EnterpriseStandardInspectionProcess',
|
name: 'EnterpriseStandardInspectionProcess',
|
||||||
components: { InspectionProcessTable, PersonnelInfo, ProcessDetailList, InternalDetailPage },
|
components: { UserSelectModal, InspectionProcessTable, PersonnelInfo, ProcessDetailList, InternalDetailPage },
|
||||||
|
mixins: [WorkCenterMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
@@ -167,8 +137,14 @@ export default {
|
|||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 22 }
|
sm: { span: 22 }
|
||||||
},
|
},
|
||||||
currentNode: '5',
|
// 当前流程信息
|
||||||
personnelInfoData: [], // 人员信息数据
|
EsInspectionProcess,
|
||||||
|
info: {},
|
||||||
|
currentNode: '',
|
||||||
|
currentNodeName: '',
|
||||||
|
// 项目id
|
||||||
|
projectId: '',
|
||||||
|
btn: 0,
|
||||||
validatorRules: {
|
validatorRules: {
|
||||||
// 流程名称
|
// 流程名称
|
||||||
processName: {
|
processName: {
|
||||||
@@ -185,10 +161,10 @@ export default {
|
|||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 流程表单
|
||||||
processInfoForm: this.$form.createForm(this),
|
processInfoForm: this.$form.createForm(this),
|
||||||
|
// 流程审批信息表单
|
||||||
approvalInfoForm: this.$form.createForm(this),
|
approvalInfoForm: this.$form.createForm(this),
|
||||||
// 是否会签
|
|
||||||
isCountersign: null,
|
|
||||||
url: {
|
url: {
|
||||||
list: '' // 人员信息右侧表的分页查询接口
|
list: '' // 人员信息右侧表的分页查询接口
|
||||||
}
|
}
|
||||||
@@ -196,41 +172,294 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
pageTitle () {
|
pageTitle () {
|
||||||
return this.$t('flowCenter') + this.$route.meta.title
|
return this.$t('flowCenter') + this.$route.meta.title + '(' + this.nodeTitle + ')'
|
||||||
|
},
|
||||||
|
// 节点标题
|
||||||
|
nodeTitle () {
|
||||||
|
return this.$route.query.taskName || EsInspectionProcess.initiate.text
|
||||||
},
|
},
|
||||||
processDisabled () {
|
processDisabled () {
|
||||||
return +this.currentNode > 1
|
return this.currentNode !== EsInspectionProcess.initiate.value
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created () {
|
||||||
|
const { projectId, nodeId, taskName } = this.$route.query
|
||||||
|
// 发起、草稿进来没有nodeId,就默认发起节点
|
||||||
|
this.currentNode = nodeId || EsInspectionProcess.initiate.value
|
||||||
|
this.currentNodeName = taskName || EsInspectionProcess.initiate.text
|
||||||
|
this.projectId = projectId
|
||||||
|
this.btn = EsInspectionProcess.propertyOfValue('btn', this.currentNode)
|
||||||
|
// 查询人员信息
|
||||||
|
this.getPersonInfoStructure(ProcessKey.ES_INSPECTION_PROCESS.value, () => {
|
||||||
|
this.initPersonInfoData(this.currentNode === EsInspectionProcess.initiate.value)
|
||||||
|
})
|
||||||
|
// 如果是待办进来,就获取详情数据
|
||||||
|
if (this.$route.query.projectId) {
|
||||||
|
this.loadPage()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 如果是新建进来,就获取项目id
|
||||||
|
this.getProjectId()
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
switchChange (value) {
|
/**
|
||||||
this.switchValue = value
|
* 获取项目id
|
||||||
|
*/
|
||||||
|
getProjectId () {
|
||||||
|
this.loading = true
|
||||||
|
// 否则就是创建一个新的流程
|
||||||
|
getInspectPlanProjectId().then(res => {
|
||||||
|
if (res) {
|
||||||
|
this.projectId = res + ''
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
handleSave () {
|
/**
|
||||||
// if (this.loading) return
|
* 获取页面详情
|
||||||
|
*/
|
||||||
|
loadPage () {
|
||||||
|
const { projectId, taskId } = this.$route.query
|
||||||
|
this.btn = EsInspectionProcess.propertyOfValue('btn', this.currentNode)
|
||||||
|
this.loading = true
|
||||||
|
getInspectPlanDetail({
|
||||||
|
projectId,
|
||||||
|
taskId
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
const data = res.result || {}
|
||||||
|
const processAll = data.processAll || {}
|
||||||
|
const map = data.map || {}
|
||||||
|
const processApprovalRecord = data.processApprovalRecord || {}
|
||||||
|
this.info = data
|
||||||
|
// 页面回显
|
||||||
|
this.processInfoForm && this.processInfoForm.setFieldsValue({
|
||||||
|
prcName: processAll.prcName,
|
||||||
|
dueTime: processAll.dueTime,
|
||||||
|
prcMes: processAll.prcMes
|
||||||
|
})
|
||||||
|
this.countersignForm && this.countersignForm.setFieldsValue({
|
||||||
|
pass: this.convertPass(map.pass)
|
||||||
|
})
|
||||||
|
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
|
||||||
|
commitText: processApprovalRecord.commitText,
|
||||||
|
commitFile: processApprovalRecord.commitFile
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 获取人员信息
|
||||||
|
getPersonInfo (isValidate = true) {
|
||||||
|
let personnelObj = {}
|
||||||
|
const funName = isValidate ? 'getDataObjVerify' : 'getDataObj'
|
||||||
|
// 节点1:所有的人员信息
|
||||||
|
if (this.currentNode === EsInspectionProcess.initiate.value) {
|
||||||
|
// 人员信息的数据, 处理成对象
|
||||||
|
personnelObj = this.$refs.personnelInfo[funName]()
|
||||||
|
if (!personnelObj) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// List拆成数组
|
||||||
|
for (const key in personnelObj) {
|
||||||
|
if (personnelObj[key] && key.includes('List')) {
|
||||||
|
personnelObj[key] = personnelObj[key].split(',')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 通过表格中的所属部门人员获取稽查征求意见对象
|
||||||
|
const userList = this.$refs.inspectionPlanTable.dataSource.map(item => item.objectOfConsultation.split(',')).flat(Infinity)
|
||||||
|
personnelObj.opinionFillList = Array.from(new Set(userList))
|
||||||
|
}
|
||||||
|
return personnelObj
|
||||||
|
},
|
||||||
|
// 获取页面参数
|
||||||
|
async getPageParams (isValidate = true) {
|
||||||
|
if (this.$refs.inspectionPlanTable.dataSource.length === 0) {
|
||||||
|
this.$message.warning(this.$t('addAtLeastOneRowOfData'))
|
||||||
|
throw new Error('base')
|
||||||
|
}
|
||||||
|
const params = {}
|
||||||
|
// 收集所有表单信息
|
||||||
|
let formDataList = []
|
||||||
|
if (isValidate) {
|
||||||
|
formDataList = await this.validateFormList(this.processInfoForm, this.approvalInfoForm)
|
||||||
|
} else {
|
||||||
|
formDataList = [
|
||||||
|
this.processInfoForm.getFieldsValue(),
|
||||||
|
this.approvalInfoForm.getFieldsValue()
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// 收集人员信息
|
||||||
|
const getPersonInfo = this.getPersonInfo(isValidate)
|
||||||
|
if (!getPersonInfo) {
|
||||||
|
throw new Error('user')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开始处理信息
|
||||||
|
// 流程信息
|
||||||
|
params.processAll = Object.assign({}, this.info.processAll, formDataList[0], {
|
||||||
|
projectId: this.projectId,
|
||||||
|
taskId: this.$route.query.taskId
|
||||||
|
})
|
||||||
|
|
||||||
|
// 处理其他参数
|
||||||
|
params.map = Object.assign({}, getPersonInfo)
|
||||||
|
|
||||||
|
// 流程审批信息
|
||||||
|
params.processApprovalRecord = Object.assign({}, this.info.processApprovalRecord, formDataList[1], {
|
||||||
|
projectId: this.projectId
|
||||||
|
})
|
||||||
|
return params
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 转办弹框
|
||||||
|
*/
|
||||||
|
handleTurnTo () {
|
||||||
|
this.$refs.userSelectModal.open()
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 转办
|
||||||
|
*/
|
||||||
|
continueTurnTo (userId) {
|
||||||
|
if (this.loading) return
|
||||||
|
this.loading = true
|
||||||
|
const params = {
|
||||||
|
taskId: this.$route.query.taskId,
|
||||||
|
userId
|
||||||
|
}
|
||||||
|
Promise.resolve(params).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*/
|
||||||
|
handleSave () {
|
||||||
|
if (this.loading) return
|
||||||
|
this.loading = true
|
||||||
|
this.getPageParams(false).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
return Promise.resolve(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log(err)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 提交
|
||||||
|
*/
|
||||||
handleSubmit () {
|
handleSubmit () {
|
||||||
if (this.loading) return
|
if (this.loading) return
|
||||||
this.currentNode = +this.currentNode + 1 + ''
|
this.loading = true
|
||||||
|
let fn
|
||||||
|
switch (this.currentNode) {
|
||||||
|
case EsInspectionProcess.initiate.value:
|
||||||
|
fn = Promise.resolve
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
fn = Promise.resolve
|
||||||
|
break
|
||||||
|
}
|
||||||
|
this.getPageParams().then(res => {
|
||||||
|
console.log(res)
|
||||||
|
return fn && fn(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
this.switchChange(err.message)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 同意
|
||||||
|
*/
|
||||||
handleAgree () {
|
handleAgree () {
|
||||||
if (this.loading) return
|
if (this.loading) return
|
||||||
this.currentNode = +this.currentNode + 1 + ''
|
this.loading = true
|
||||||
|
this.getPageParams().then(res => {
|
||||||
|
res.map.pass = true
|
||||||
|
return Promise.resolve(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
this.switchChange(err.message)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 是否会签改变
|
/**
|
||||||
changeIsCountersign (val) {
|
* 驳回
|
||||||
if (val === '1') {
|
*/
|
||||||
this.isCountersign = true
|
handleReject () {
|
||||||
} else if (val === '2') {
|
if (this.loading) return
|
||||||
this.isCountersign = false
|
this.loading = true
|
||||||
} else {
|
this.getPageParams().then(res => {
|
||||||
this.isCountersign = null
|
res.map.pass = false
|
||||||
|
return Promise.resolve(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
this.switchChange(err.message)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 验证所有表单
|
||||||
|
* @param formList - 多个需要校验的表单实例
|
||||||
|
*/
|
||||||
|
validateFormList (...formList) {
|
||||||
|
const promiseList = []
|
||||||
|
for (const form of formList) {
|
||||||
|
promiseList.push(
|
||||||
|
new Promise((resolve, reject) => {
|
||||||
|
form.validateFields((err, val) => {
|
||||||
|
if (!err) {
|
||||||
|
resolve(val)
|
||||||
|
} else {
|
||||||
|
reject(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
return Promise.all(promiseList).catch(() => {
|
||||||
|
throw new Error('base')
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
|
||||||
mounted () {
|
|
||||||
this.personnelInfoData = approvalPersonalInfo
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
+3
@@ -91,6 +91,7 @@ export default {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
return {
|
return {
|
||||||
|
disableMixinCreated: true,
|
||||||
title: this.$t('workCenter.esInspectionProcess.inspectionContent'),
|
title: this.$t('workCenter.esInspectionProcess.inspectionContent'),
|
||||||
drawerWidth: 1000,
|
drawerWidth: 1000,
|
||||||
visible: false,
|
visible: false,
|
||||||
@@ -105,6 +106,8 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
show (record) {
|
show (record) {
|
||||||
|
this.filters = {}
|
||||||
|
this.loadData()
|
||||||
this.model = Object.assign({}, record)
|
this.model = Object.assign({}, record)
|
||||||
this.visible = true
|
this.visible = true
|
||||||
},
|
},
|
||||||
|
|||||||
+1
@@ -139,6 +139,7 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
show (record) {
|
show (record) {
|
||||||
|
this.filters = {}
|
||||||
this.loadData()
|
this.loadData()
|
||||||
this.model = Object.assign({}, record)
|
this.model = Object.assign({}, record)
|
||||||
this.visible = true
|
this.visible = true
|
||||||
|
|||||||
+1
@@ -142,6 +142,7 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
show (record) {
|
show (record) {
|
||||||
|
this.filters = {}
|
||||||
this.loadData()
|
this.loadData()
|
||||||
this.model = Object.assign({}, record)
|
this.model = Object.assign({}, record)
|
||||||
this.visible = true
|
this.visible = true
|
||||||
|
|||||||
+42
-41
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="table-operator" v-if="['1'].includes(currentNode)">
|
<div class="table-operator" v-if="isInitiate">
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<a-button icon="plus" type="primary" @click="handleAdd" v-has="'enterpriseStandard:add'">{{ $t('newlyAdded') }}</a-button>
|
<a-button icon="plus" type="primary" @click="handleAdd" v-has="'enterpriseStandard:add'">{{ $t('newlyAdded') }}</a-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -11,8 +11,7 @@
|
|||||||
:dataSource="dataSource"
|
:dataSource="dataSource"
|
||||||
:can-drag="true"
|
:can-drag="true"
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
:pagination="false"
|
||||||
:pagination="ipagination"
|
|
||||||
:scroll="{x: '100%'}"
|
:scroll="{x: '100%'}"
|
||||||
@change="tableOnChange">
|
@change="tableOnChange">
|
||||||
|
|
||||||
@@ -27,7 +26,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<!-- 实际稽查完成日期 -->
|
<!-- 实际稽查完成日期 -->
|
||||||
<template v-slot:actualInspectionCompletionDate="{text, record}">
|
<template v-slot:actualInspectionCompletionDate="{text, record}">
|
||||||
<div class="table-form" v-if="currentNode === '3'">
|
<div class="table-form" v-if="isInputInspectionReport">
|
||||||
<j-date v-model="record.actualInspectionCompletionDate" :placeholder="$t('pleaseSelect')+$t('date')" showType="day"
|
<j-date v-model="record.actualInspectionCompletionDate" :placeholder="$t('pleaseSelect')+$t('date')" showType="day"
|
||||||
style="width: 100%" :getCalendarContainer="(el) => getNumParentNode(el, 5)"></j-date>
|
style="width: 100%" :getCalendarContainer="(el) => getNumParentNode(el, 5)"></j-date>
|
||||||
</div>
|
</div>
|
||||||
@@ -40,7 +39,7 @@
|
|||||||
|
|
||||||
<!-- 实际稽查人 -->
|
<!-- 实际稽查人 -->
|
||||||
<template v-slot:actualInspector="{text, record}">
|
<template v-slot:actualInspector="{text, record}">
|
||||||
<div class="table-form" v-if="currentNode === '3'">
|
<div class="table-form" v-if="isInputInspectionReport">
|
||||||
<a-select v-model="record.actualInspector" style="width: 100%" allowClear
|
<a-select v-model="record.actualInspector" style="width: 100%" allowClear
|
||||||
:placeholder="$t('pleaseSelect')+$t('workCenter.esInspectionProcess.actualInspector')">
|
:placeholder="$t('pleaseSelect')+$t('workCenter.esInspectionProcess.actualInspector')">
|
||||||
<a-select-option v-for="item in userList" :key="item.id" :value="item.id">{{ item.realname + '(' + item.username + ')' }}</a-select-option>
|
<a-select-option v-for="item in userList" :key="item.id" :value="item.id">{{ item.realname + '(' + item.username + ')' }}</a-select-option>
|
||||||
@@ -56,10 +55,10 @@
|
|||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template slot="action" slot-scope="{text, record, index}">
|
<template slot="action" slot-scope="{text, record, index}">
|
||||||
<!-- 节点1显示稽查内容和删除、节点2显示稽查内容(只读) -->
|
<!-- 节点1显示稽查内容和删除、节点2显示稽查内容(只读) -->
|
||||||
<template v-if="['1', '2'].includes(currentNode)">
|
<template v-if="isInitiate || isDirectorLeaderApprovalOne">
|
||||||
<a @click="handleInspectionContent(record, index)" >{{ $t('workCenter.esInspectionProcess.inspectionContent') + `(${record.num || 0}${$t('strip')})` }}</a>
|
<a @click="handleInspectionContent(record, index)" >{{ $t('workCenter.esInspectionProcess.inspectionContent') + `(${record.num || 0}${$t('strip')})` }}</a>
|
||||||
<a-divider type="vertical" />
|
<a-divider type="vertical" />
|
||||||
<a v-if="currentNode === '1'" @click="handleDelete(record, index)" >{{ $t('delete') }}</a>
|
<a v-if="isInitiate" @click="handleDelete(record, index)" >{{ $t('delete') }}</a>
|
||||||
</template>
|
</template>
|
||||||
<!-- 后续节点都显示稽查报告和整改计划 -->
|
<!-- 后续节点都显示稽查报告和整改计划 -->
|
||||||
<template v-else>
|
<template v-else>
|
||||||
@@ -74,11 +73,11 @@
|
|||||||
<!-- 添加稽查计划 -->
|
<!-- 添加稽查计划 -->
|
||||||
<inspection-process-table-modal ref="inspectionProcessTableModal" @ok="modalFormOk"/>
|
<inspection-process-table-modal ref="inspectionProcessTableModal" @ok="modalFormOk"/>
|
||||||
<!-- 稽查内容:节点2只查看,后续不显示 -->
|
<!-- 稽查内容:节点2只查看,后续不显示 -->
|
||||||
<inspection-process-content ref="inspectionProcessContent" @ok="modalFormOk" :disabled="['2'].includes(currentNode)"/>
|
<inspection-process-content ref="inspectionProcessContent" @ok="modalFormOk" :disabled="!isInitiate"/>
|
||||||
<!-- 稽查报告:节点3填写,后续只查看 -->
|
<!-- 稽查报告:节点3填写,后续只查看 -->
|
||||||
<inspection-process-report v-drag-modal ref="inspectionProcessReport" @ok="modalFormOk" :disabled="['4', '5'].includes(currentNode)"/>
|
<inspection-process-report ref="inspectionProcessReport" @ok="modalFormOk" :disabled="!isInputInspectionReport"/>
|
||||||
<!-- 整改计划:节点3填写,后续只查看 -->
|
<!-- 整改计划:节点3填写,后续只查看 -->
|
||||||
<inspection-process-rectification-plan ref="inspectionProcessRectificationPlan" @ok="modalFormOk" :disabled="['4', '5'].includes(currentNode)"/>
|
<inspection-process-rectification-plan ref="inspectionProcessRectificationPlan" @ok="modalFormOk" :disabled="!isInputInspectionReport"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -94,6 +93,7 @@ import InspectionProcessReport
|
|||||||
from '@views/workCenter/enterpriseStandardInspectionProcess/modules/InspectionProcessReport'
|
from '@views/workCenter/enterpriseStandardInspectionProcess/modules/InspectionProcessReport'
|
||||||
import InspectionProcessRectificationPlan
|
import InspectionProcessRectificationPlan
|
||||||
from '@views/workCenter/enterpriseStandardInspectionProcess/modules/InspectionProcessRectificationPlan'
|
from '@views/workCenter/enterpriseStandardInspectionProcess/modules/InspectionProcessRectificationPlan'
|
||||||
|
import { EsInspectionProcess } from '@/enums/commonEnums'
|
||||||
export default {
|
export default {
|
||||||
name: 'InspectionProcessTable',
|
name: 'InspectionProcessTable',
|
||||||
components: { InspectionProcessRectificationPlan, InspectionProcessReport, InspectionProcessContent, InspectionProcessTableModal, JTable },
|
components: { InspectionProcessRectificationPlan, InspectionProcessReport, InspectionProcessContent, InspectionProcessTableModal, JTable },
|
||||||
@@ -112,34 +112,7 @@ export default {
|
|||||||
},
|
},
|
||||||
model: {},
|
model: {},
|
||||||
userList: [],
|
userList: [],
|
||||||
dataSource: [
|
dataSource: [],
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
inspectionBasisStandardName: '123',
|
|
||||||
inspectionBasisStandardNumber: '123',
|
|
||||||
detailFlag: true,
|
|
||||||
departOpinion: '123',
|
|
||||||
mainDutyStandardizationGroup: '1699358097292472322'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
inspectionBasisStandardName: 'qaaa',
|
|
||||||
inspectionBasisStandardNumber: '12asdasdas3',
|
|
||||||
detailFlag: true,
|
|
||||||
departOpinion: '123',
|
|
||||||
opinion: [],
|
|
||||||
mainDutyStandardizationGroup: '1699358097292472322'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
inspectionBasisStandardName: '123',
|
|
||||||
inspectionBasisStandardNumber: '123',
|
|
||||||
detailFlag: true,
|
|
||||||
departOpinion: '123',
|
|
||||||
userId: 'e9ca23d68d884d4ebb19d07889727dae'
|
|
||||||
// mainDutyStandardizationGroup: '1699358097292472322'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
allColumns: [
|
allColumns: [
|
||||||
{
|
{
|
||||||
title: this.$t('serialNumber'),
|
title: this.$t('serialNumber'),
|
||||||
@@ -205,7 +178,11 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 200,
|
width: 200,
|
||||||
dataIndex: 'actualInspectionCompletionDate',
|
dataIndex: 'actualInspectionCompletionDate',
|
||||||
showCodeList: ['3', '4', '5'],
|
showCodeList: [
|
||||||
|
EsInspectionProcess.inputInspectionReport.value,
|
||||||
|
EsInspectionProcess.directorLeaderApprovalTwo.value,
|
||||||
|
EsInspectionProcess.relevantPersonnelCountersign.value
|
||||||
|
],
|
||||||
scopedSlots: { customRender: 'actualInspectionCompletionDate' }
|
scopedSlots: { customRender: 'actualInspectionCompletionDate' }
|
||||||
},
|
},
|
||||||
{ // 实际稽查人
|
{ // 实际稽查人
|
||||||
@@ -213,7 +190,11 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 200,
|
width: 200,
|
||||||
dataIndex: 'actualInspector',
|
dataIndex: 'actualInspector',
|
||||||
showCodeList: ['3', '4', '5'],
|
showCodeList: [
|
||||||
|
EsInspectionProcess.inputInspectionReport.value,
|
||||||
|
EsInspectionProcess.directorLeaderApprovalTwo.value,
|
||||||
|
EsInspectionProcess.relevantPersonnelCountersign.value
|
||||||
|
],
|
||||||
scopedSlots: { customRender: 'actualInspector' }
|
scopedSlots: { customRender: 'actualInspector' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -229,6 +210,26 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
// 是否第一个节点
|
||||||
|
isInitiate () {
|
||||||
|
return this.currentNode === EsInspectionProcess.initiate.value
|
||||||
|
},
|
||||||
|
// 是否第二个节点
|
||||||
|
isDirectorLeaderApprovalOne () {
|
||||||
|
return this.currentNode === EsInspectionProcess.directorLeaderApprovalOne.value
|
||||||
|
},
|
||||||
|
// 是否第三个节点
|
||||||
|
isInputInspectionReport () {
|
||||||
|
return this.currentNode === EsInspectionProcess.inputInspectionReport.value
|
||||||
|
},
|
||||||
|
// 是否第四个节点
|
||||||
|
isDirectorLeaderApprovalTwo () {
|
||||||
|
return this.currentNode === EsInspectionProcess.directorLeaderApprovalTwo.value
|
||||||
|
},
|
||||||
|
// 是否第五个节点
|
||||||
|
isRelevantPersonnelCountersign () {
|
||||||
|
return this.currentNode === EsInspectionProcess.relevantPersonnelCountersign.value
|
||||||
|
},
|
||||||
// 按节点进行过滤
|
// 按节点进行过滤
|
||||||
columns () {
|
columns () {
|
||||||
return this.allColumns.filter(item => {
|
return this.allColumns.filter(item => {
|
||||||
@@ -242,7 +243,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
if (this.currentNode === '3') {
|
if (this.isInputInspectionReport) {
|
||||||
this.getUserList()
|
this.getUserList()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
+314
-77
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<internal-detail-page :title="pageTitle" :content-padding="0">
|
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||||
<!-- 标题右侧tab -->
|
<!-- 标题右侧tab -->
|
||||||
<template v-slot:titleRightCustom>
|
<template v-slot:titleRightCustom>
|
||||||
<div class="table-operator-tab">
|
<div class="table-operator-tab">
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
@change="event => event.target.value = event.target.value.trim()"
|
@change="event => event.target.value = event.target.value.trim()"
|
||||||
disabled
|
disabled
|
||||||
:maxLength="50"
|
:maxLength="50"
|
||||||
v-decorator="['processName', validatorRules.processName]" />
|
v-decorator="['prcName', validatorRules.processName]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
@@ -36,8 +36,8 @@
|
|||||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:disabled="disabled || processDisabled"
|
:disabled="disabled || processDisabled"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD hh:mm:ss"
|
||||||
v-decorator="['expirationDate']" />
|
v-decorator="['dueTime']" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
:maxLength="500"
|
:maxLength="500"
|
||||||
:rows="4"
|
:rows="4"
|
||||||
:disabled="disabled || processDisabled"
|
:disabled="disabled || processDisabled"
|
||||||
v-decorator="['processExplain']" />
|
v-decorator="['prcMes']" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -55,9 +55,8 @@
|
|||||||
|
|
||||||
<!-- 业务基本信息 -->
|
<!-- 业务基本信息 -->
|
||||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||||
|
|
||||||
<!-- 基本信息 -->
|
<!-- 基本信息 -->
|
||||||
<base-info-form :disabled="currentNode > 1"/>
|
<base-info-form ref="baseInfoForm" :disabled="processDisabled"/>
|
||||||
|
|
||||||
<!-- 流程审批信息 -->
|
<!-- 流程审批信息 -->
|
||||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||||
@@ -67,76 +66,55 @@
|
|||||||
<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.remarks]" />
|
||||||
</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="['file']" return-id />
|
<j-upload v-decorator="['commitFile']" return-id />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</div>
|
||||||
<!-- 人员信息 -->
|
<!-- 人员信息 -->
|
||||||
<div v-if="switchValue === 'user'" class="detail-page-scroll-content p-0">
|
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
|
||||||
<process-detail-list :url="url">
|
<process-detail-list>
|
||||||
<personnel-info slot="personnelInfo" :data="personnelInfoData" :currentNode="currentNode"></personnel-info>
|
<template #personnelInfo>
|
||||||
|
<personnel-info ref="personnelInfo" :data="personnelInfoData" :current-node="currentNodeName" />
|
||||||
|
</template>
|
||||||
</process-detail-list>
|
</process-detail-list>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="detail-page-bottom-operate-box">
|
<div class="detail-page-bottom-operate-box">
|
||||||
<a-button type="primary" :loading="loading" @click="handleSave" ghost><i class="iconfont icon-save" />{{ $t('preservation') }}</a-button>
|
<!--转办-->
|
||||||
<a-button type="primary" :loading="loading" @click="handleSubmit" icon="upload">{{ $t('submit') }}</a-button>
|
<a-button v-if="1 & btn" type="primary" :loading="loading" @click="handleTurnTo" ghost icon="arrow-up">{{ $t('turnTo') }}</a-button>
|
||||||
<a-button type="primary" :loading="loading" @click="handleAgree" icon="check-circle">{{ $t('agree') }}</a-button>
|
<!--保存-->
|
||||||
|
<a-button v-if="2 & btn" type="primary" :loading="loading" @click="handleSave" ghost><i class="iconfont icon-save" />{{ $t('preservation') }}</a-button>
|
||||||
|
<!--提交-->
|
||||||
|
<a-button v-if="4 & btn" type="primary" :loading="loading" @click="handleSubmit" icon="upload">{{ $t('submit') }}</a-button>
|
||||||
|
<!--同意-->
|
||||||
|
<a-button v-if="8 & btn" type="primary" :loading="loading" @click="handleAgree" icon="check-circle">{{ $t('agree') }}</a-button>
|
||||||
|
<!--驳回-->
|
||||||
|
<a-button v-if="16 & btn" type="primary" :loading="loading" @click="handleReject" icon="close-circle">{{ $t('reject') }}</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!--转办选人-->
|
||||||
|
<user-select-modal ref="userSelectModal" check-required @change="continueTurnTo" />
|
||||||
</internal-detail-page>
|
</internal-detail-page>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import '@assets/less/common.less'
|
||||||
import InternalDetailPage from '@comp/InternalDetailPage'
|
import InternalDetailPage from '@comp/InternalDetailPage'
|
||||||
import ProcessDetailList from '@comp/ProcessDetailList'
|
import ProcessDetailList from '@comp/ProcessDetailList'
|
||||||
import PersonnelInfo from '@comp/PersonnelInfo'
|
import PersonnelInfo from '@comp/PersonnelInfo'
|
||||||
import BaseInfoForm from '@views/workCenter/enterpriseStandardInspectionRectification/modules/BaseInfoForm'
|
import BaseInfoForm from '@views/workCenter/enterpriseStandardInspectionRectification/modules/BaseInfoForm'
|
||||||
|
import UserSelectModal from '@comp/selection/UserSelectModal'
|
||||||
// 标准立项的人员信息
|
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||||
const approvalPersonalInfo = [ // 人员信息的数据
|
import { getInspectPlanDetail, getInspectPlanProjectId } from '@api/workCenter'
|
||||||
{
|
import { EsInspectionRectification, ProcessKey } from '@/enums/commonEnums'
|
||||||
id: 1,
|
|
||||||
nodeName: '稽查负责人申请延期',
|
|
||||||
nodeRoleName: '稽查负责人',
|
|
||||||
canChoose: false,
|
|
||||||
userList: `系统管理员`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
nodeName: '负责人主管级领导审批',
|
|
||||||
nodeRoleName: '负责人主管级领导',
|
|
||||||
canChoose: true,
|
|
||||||
chooseType: 'radio',
|
|
||||||
// chooseSource: 'contactManage',
|
|
||||||
fieldName: 'contactUser'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
nodeName: '稽查联络人评估',
|
|
||||||
nodeRoleName: '稽查联络人',
|
|
||||||
canChoose: false,
|
|
||||||
chooseType: 'checkbox',
|
|
||||||
// chooseSource: 'contactManage',
|
|
||||||
fieldName: 'contactUser'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 4,
|
|
||||||
nodeName: '负责人主管级上一级领导审批',
|
|
||||||
nodeRoleName: '负责人主管级上一级领导',
|
|
||||||
canChoose: false,
|
|
||||||
chooseType: 'radio',
|
|
||||||
// chooseSource: 'contactManage',
|
|
||||||
fieldName: 'contactUser'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'EnterpriseStandardInspectionRectification',
|
name: 'EnterpriseStandardInspectionRectification',
|
||||||
components: { BaseInfoForm, PersonnelInfo, ProcessDetailList, InternalDetailPage },
|
components: { UserSelectModal, BaseInfoForm, PersonnelInfo, ProcessDetailList, InternalDetailPage },
|
||||||
|
mixins: [WorkCenterMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
@@ -158,8 +136,14 @@ export default {
|
|||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 22 }
|
sm: { span: 22 }
|
||||||
},
|
},
|
||||||
currentNode: '2',
|
// 当前流程信息
|
||||||
personnelInfoData: [], // 人员信息数据
|
EsInspectionRectification,
|
||||||
|
info: {},
|
||||||
|
currentNode: '',
|
||||||
|
currentNodeName: '',
|
||||||
|
// 项目id
|
||||||
|
projectId: '',
|
||||||
|
btn: 0,
|
||||||
validatorRules: {
|
validatorRules: {
|
||||||
// 流程名称
|
// 流程名称
|
||||||
processName: {
|
processName: {
|
||||||
@@ -176,10 +160,10 @@ export default {
|
|||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 流程表单
|
||||||
processInfoForm: this.$form.createForm(this),
|
processInfoForm: this.$form.createForm(this),
|
||||||
|
// 流程审批信息表单
|
||||||
approvalInfoForm: this.$form.createForm(this),
|
approvalInfoForm: this.$form.createForm(this),
|
||||||
// 是否会签
|
|
||||||
isCountersign: null,
|
|
||||||
url: {
|
url: {
|
||||||
list: '' // 人员信息右侧表的分页查询接口
|
list: '' // 人员信息右侧表的分页查询接口
|
||||||
}
|
}
|
||||||
@@ -187,41 +171,294 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
pageTitle () {
|
pageTitle () {
|
||||||
return this.$t('flowCenter') + this.$route.meta.title
|
return this.$t('flowCenter') + this.$route.meta.title + '(' + this.nodeTitle + ')'
|
||||||
|
},
|
||||||
|
// 节点标题
|
||||||
|
nodeTitle () {
|
||||||
|
return this.$route.query.taskName || EsInspectionRectification.initiate.text
|
||||||
},
|
},
|
||||||
processDisabled () {
|
processDisabled () {
|
||||||
return +this.currentNode > 1
|
return this.currentNode !== EsInspectionRectification.uploadRectificationResult.value
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created () {
|
||||||
|
const { projectId, nodeId, taskName } = this.$route.query
|
||||||
|
// 发起、草稿进来没有nodeId,就默认发起节点
|
||||||
|
this.currentNode = nodeId || EsInspectionRectification.initiate.value
|
||||||
|
this.currentNodeName = taskName || EsInspectionRectification.initiate.text
|
||||||
|
this.projectId = projectId
|
||||||
|
this.btn = EsInspectionRectification.propertyOfValue('btn', this.currentNode)
|
||||||
|
// 查询人员信息
|
||||||
|
this.getPersonInfoStructure(ProcessKey.ES_INSPECTION_RECTIFICATION.value, () => {
|
||||||
|
this.initPersonInfoData(this.currentNode === EsInspectionRectification.initiate.value)
|
||||||
|
})
|
||||||
|
// 如果是待办进来,就获取详情数据
|
||||||
|
if (this.$route.query.projectId) {
|
||||||
|
this.loadPage()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 如果是新建进来,就获取项目id
|
||||||
|
this.getProjectId()
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
switchChange (value) {
|
/**
|
||||||
this.switchValue = value
|
* 获取项目id
|
||||||
|
*/
|
||||||
|
getProjectId () {
|
||||||
|
this.loading = true
|
||||||
|
// 否则就是创建一个新的流程
|
||||||
|
getInspectPlanProjectId().then(res => {
|
||||||
|
if (res) {
|
||||||
|
this.projectId = res + ''
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
handleSave () {
|
/**
|
||||||
// if (this.loading) return
|
* 获取页面详情
|
||||||
|
*/
|
||||||
|
loadPage () {
|
||||||
|
const { projectId, taskId } = this.$route.query
|
||||||
|
this.btn = EsInspectionRectification.propertyOfValue('btn', this.currentNode)
|
||||||
|
this.loading = true
|
||||||
|
getInspectPlanDetail({
|
||||||
|
projectId,
|
||||||
|
taskId
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
const data = res.result || {}
|
||||||
|
const processAll = data.processAll || {}
|
||||||
|
const map = data.map || {}
|
||||||
|
const processApprovalRecord = data.processApprovalRecord || {}
|
||||||
|
this.info = data
|
||||||
|
// 页面回显
|
||||||
|
this.processInfoForm && this.processInfoForm.setFieldsValue({
|
||||||
|
prcName: processAll.prcName,
|
||||||
|
dueTime: processAll.dueTime,
|
||||||
|
prcMes: processAll.prcMes
|
||||||
|
})
|
||||||
|
this.countersignForm && this.countersignForm.setFieldsValue({
|
||||||
|
pass: this.convertPass(map.pass)
|
||||||
|
})
|
||||||
|
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
|
||||||
|
commitText: processApprovalRecord.commitText,
|
||||||
|
commitFile: processApprovalRecord.commitFile
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 获取人员信息
|
||||||
|
getPersonInfo (isValidate = true) {
|
||||||
|
let personnelObj = {}
|
||||||
|
const funName = isValidate ? 'getDataObjVerify' : 'getDataObj'
|
||||||
|
// 节点1:所有的人员信息
|
||||||
|
if (this.currentNode === EsInspectionRectification.uploadRectificationResult.value) {
|
||||||
|
// 人员信息的数据, 处理成对象
|
||||||
|
personnelObj = this.$refs.personnelInfo[funName]()
|
||||||
|
if (!personnelObj) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// List拆成数组
|
||||||
|
for (const key in personnelObj) {
|
||||||
|
if (personnelObj[key] && key.includes('List')) {
|
||||||
|
personnelObj[key] = personnelObj[key].split(',')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 通过表格中的所属部门人员获取稽查征求意见对象
|
||||||
|
const userList = this.$refs.inspectionPlanTable.dataSource.map(item => item.objectOfConsultation.split(',')).flat(Infinity)
|
||||||
|
personnelObj.opinionFillList = Array.from(new Set(userList))
|
||||||
|
}
|
||||||
|
return personnelObj
|
||||||
|
},
|
||||||
|
// 获取页面参数
|
||||||
|
async getPageParams (isValidate = true) {
|
||||||
|
if (this.$refs.inspectionPlanTable.dataSource.length === 0) {
|
||||||
|
this.$message.warning(this.$t('addAtLeastOneRowOfData'))
|
||||||
|
throw new Error('base')
|
||||||
|
}
|
||||||
|
const params = {}
|
||||||
|
// 收集所有表单信息
|
||||||
|
let formDataList = []
|
||||||
|
if (isValidate) {
|
||||||
|
formDataList = await this.validateFormList(this.processInfoForm, this.approvalInfoForm)
|
||||||
|
} else {
|
||||||
|
formDataList = [
|
||||||
|
this.processInfoForm.getFieldsValue(),
|
||||||
|
this.approvalInfoForm.getFieldsValue()
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// 收集人员信息
|
||||||
|
const getPersonInfo = this.getPersonInfo(isValidate)
|
||||||
|
if (!getPersonInfo) {
|
||||||
|
throw new Error('user')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开始处理信息
|
||||||
|
// 流程信息
|
||||||
|
params.processAll = Object.assign({}, this.info.processAll, formDataList[0], {
|
||||||
|
projectId: this.projectId,
|
||||||
|
taskId: this.$route.query.taskId
|
||||||
|
})
|
||||||
|
|
||||||
|
// 处理其他参数
|
||||||
|
params.map = Object.assign({}, getPersonInfo)
|
||||||
|
|
||||||
|
// 流程审批信息
|
||||||
|
params.processApprovalRecord = Object.assign({}, this.info.processApprovalRecord, formDataList[1], {
|
||||||
|
projectId: this.projectId
|
||||||
|
})
|
||||||
|
return params
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 转办弹框
|
||||||
|
*/
|
||||||
|
handleTurnTo () {
|
||||||
|
this.$refs.userSelectModal.open()
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 转办
|
||||||
|
*/
|
||||||
|
continueTurnTo (userId) {
|
||||||
|
if (this.loading) return
|
||||||
|
this.loading = true
|
||||||
|
const params = {
|
||||||
|
taskId: this.$route.query.taskId,
|
||||||
|
userId
|
||||||
|
}
|
||||||
|
Promise.resolve(params).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*/
|
||||||
|
handleSave () {
|
||||||
|
if (this.loading) return
|
||||||
|
this.loading = true
|
||||||
|
this.getPageParams(false).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
return Promise.resolve(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log(err)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 提交
|
||||||
|
*/
|
||||||
handleSubmit () {
|
handleSubmit () {
|
||||||
if (this.loading) return
|
if (this.loading) return
|
||||||
this.currentNode = +this.currentNode + 1 + ''
|
this.loading = true
|
||||||
|
let fn
|
||||||
|
switch (this.currentNode) {
|
||||||
|
case EsInspectionRectification.uploadRectificationResult.value:
|
||||||
|
fn = Promise.resolve
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
fn = Promise.resolve
|
||||||
|
break
|
||||||
|
}
|
||||||
|
this.getPageParams().then(res => {
|
||||||
|
console.log(res)
|
||||||
|
return fn && fn(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
this.switchChange(err.message)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 同意
|
||||||
|
*/
|
||||||
handleAgree () {
|
handleAgree () {
|
||||||
if (this.loading) return
|
if (this.loading) return
|
||||||
this.currentNode = +this.currentNode + 1 + ''
|
this.loading = true
|
||||||
|
this.getPageParams().then(res => {
|
||||||
|
res.map.pass = true
|
||||||
|
return Promise.resolve(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
this.switchChange(err.message)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 是否会签改变
|
/**
|
||||||
changeIsCountersign (val) {
|
* 驳回
|
||||||
if (val === '1') {
|
*/
|
||||||
this.isCountersign = true
|
handleReject () {
|
||||||
} else if (val === '2') {
|
if (this.loading) return
|
||||||
this.isCountersign = false
|
this.loading = true
|
||||||
} else {
|
this.getPageParams().then(res => {
|
||||||
this.isCountersign = null
|
res.map.pass = false
|
||||||
|
return Promise.resolve(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
this.switchChange(err.message)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 验证所有表单
|
||||||
|
* @param formList - 多个需要校验的表单实例
|
||||||
|
*/
|
||||||
|
validateFormList (...formList) {
|
||||||
|
const promiseList = []
|
||||||
|
for (const form of formList) {
|
||||||
|
promiseList.push(
|
||||||
|
new Promise((resolve, reject) => {
|
||||||
|
form.validateFields((err, val) => {
|
||||||
|
if (!err) {
|
||||||
|
resolve(val)
|
||||||
|
} else {
|
||||||
|
reject(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
return Promise.all(promiseList).catch(() => {
|
||||||
|
throw new Error('base')
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
|
||||||
mounted () {
|
|
||||||
this.personnelInfoData = approvalPersonalInfo
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
+315
-77
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<internal-detail-page :title="pageTitle" :content-padding="0">
|
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||||
<!-- 标题右侧tab -->
|
<!-- 标题右侧tab -->
|
||||||
<template v-slot:titleRightCustom>
|
<template v-slot:titleRightCustom>
|
||||||
<div class="table-operator-tab">
|
<div class="table-operator-tab">
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
@change="event => event.target.value = event.target.value.trim()"
|
@change="event => event.target.value = event.target.value.trim()"
|
||||||
:disabled="disabled || processDisabled"
|
:disabled="disabled || processDisabled"
|
||||||
:maxLength="50"
|
:maxLength="50"
|
||||||
v-decorator="['processName', validatorRules.processName]" />
|
v-decorator="['prcName', validatorRules.processName]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
@@ -36,8 +36,8 @@
|
|||||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:disabled="disabled || processDisabled"
|
:disabled="disabled || processDisabled"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD hh:mm:ss"
|
||||||
v-decorator="['expirationDate']" />
|
v-decorator="['dueTime']" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
:maxLength="500"
|
:maxLength="500"
|
||||||
:rows="4"
|
:rows="4"
|
||||||
:disabled="disabled || processDisabled"
|
:disabled="disabled || processDisabled"
|
||||||
v-decorator="['processExplain']" />
|
v-decorator="['prcMes']" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
<!-- 业务基本信息 -->
|
<!-- 业务基本信息 -->
|
||||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||||
<!-- 流程表格 -->
|
<!-- 流程表格 -->
|
||||||
<extension-request-table :current-node="currentNode"/>
|
<extension-request-table ref="extensionRequestTable" :current-node="currentNode" :project-id="projectId"/>
|
||||||
|
|
||||||
<!-- 流程审批信息 -->
|
<!-- 流程审批信息 -->
|
||||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||||
@@ -66,76 +66,55 @@
|
|||||||
<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.remarks]" />
|
||||||
</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="['file']" return-id />
|
<j-upload v-decorator="['commitFile']" return-id />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</div>
|
||||||
<!-- 人员信息 -->
|
<!-- 人员信息 -->
|
||||||
<div v-if="switchValue === 'user'" class="detail-page-scroll-content p-0">
|
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
|
||||||
<process-detail-list :url="url">
|
<process-detail-list>
|
||||||
<personnel-info slot="personnelInfo" :data="personnelInfoData" :currentNode="currentNode"></personnel-info>
|
<template #personnelInfo>
|
||||||
|
<personnel-info ref="personnelInfo" :data="personnelInfoData" :current-node="currentNodeName" />
|
||||||
|
</template>
|
||||||
</process-detail-list>
|
</process-detail-list>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="detail-page-bottom-operate-box">
|
<div class="detail-page-bottom-operate-box">
|
||||||
<a-button type="primary" :loading="loading" @click="handleSave" ghost><i class="iconfont icon-save" />{{ $t('preservation') }}</a-button>
|
<!--转办-->
|
||||||
<a-button type="primary" :loading="loading" @click="handleSubmit" icon="upload">{{ $t('submit') }}</a-button>
|
<a-button v-if="1 & btn" type="primary" :loading="loading" @click="handleTurnTo" ghost icon="arrow-up">{{ $t('turnTo') }}</a-button>
|
||||||
<a-button type="primary" :loading="loading" @click="handleAgree" icon="check-circle">{{ $t('agree') }}</a-button>
|
<!--保存-->
|
||||||
|
<a-button v-if="2 & btn" type="primary" :loading="loading" @click="handleSave" ghost><i class="iconfont icon-save" />{{ $t('preservation') }}</a-button>
|
||||||
|
<!--提交-->
|
||||||
|
<a-button v-if="4 & btn" type="primary" :loading="loading" @click="handleSubmit" icon="upload">{{ $t('submit') }}</a-button>
|
||||||
|
<!--同意-->
|
||||||
|
<a-button v-if="8 & btn" type="primary" :loading="loading" @click="handleAgree" icon="check-circle">{{ $t('agree') }}</a-button>
|
||||||
|
<!--驳回-->
|
||||||
|
<a-button v-if="16 & btn" type="primary" :loading="loading" @click="handleReject" icon="close-circle">{{ $t('reject') }}</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!--转办选人-->
|
||||||
|
<user-select-modal ref="userSelectModal" check-required @change="continueTurnTo" />
|
||||||
</internal-detail-page>
|
</internal-detail-page>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import '@assets/less/common.less'
|
||||||
import InternalDetailPage from '@comp/InternalDetailPage'
|
import InternalDetailPage from '@comp/InternalDetailPage'
|
||||||
import ProcessDetailList from '@comp/ProcessDetailList'
|
|
||||||
import PersonnelInfo from '@comp/PersonnelInfo'
|
import PersonnelInfo from '@comp/PersonnelInfo'
|
||||||
|
import ProcessDetailList from '@comp/ProcessDetailList'
|
||||||
import ExtensionRequestTable from '@views/workCenter/inspectionExtensionRequestProcess/modules/ExtensionRequestTable'
|
import ExtensionRequestTable from '@views/workCenter/inspectionExtensionRequestProcess/modules/ExtensionRequestTable'
|
||||||
|
import UserSelectModal from '@comp/selection/UserSelectModal'
|
||||||
// 标准立项的人员信息
|
import { InspectionExtensionRequestProcess, ProcessKey } from '@/enums/commonEnums'
|
||||||
const approvalPersonalInfo = [ // 人员信息的数据
|
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||||
{
|
import { getInspectPlanDetail, getInspectPlanProjectId } from '@api/workCenter'
|
||||||
id: 1,
|
|
||||||
nodeName: '稽查负责人申请延期',
|
|
||||||
nodeRoleName: '稽查负责人',
|
|
||||||
canChoose: false,
|
|
||||||
userList: `系统管理员`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
nodeName: '负责人主管级领导审批',
|
|
||||||
nodeRoleName: '负责人主管级领导',
|
|
||||||
canChoose: true,
|
|
||||||
chooseType: 'radio',
|
|
||||||
// chooseSource: 'contactManage',
|
|
||||||
fieldName: 'contactUser'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
nodeName: '稽查联络人评估',
|
|
||||||
nodeRoleName: '稽查联络人',
|
|
||||||
canChoose: false,
|
|
||||||
chooseType: 'checkbox',
|
|
||||||
// chooseSource: 'contactManage',
|
|
||||||
fieldName: 'contactUser'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 4,
|
|
||||||
nodeName: '负责人主管级上一级领导审批',
|
|
||||||
nodeRoleName: '负责人主管级上一级领导',
|
|
||||||
canChoose: false,
|
|
||||||
chooseType: 'radio',
|
|
||||||
// chooseSource: 'contactManage',
|
|
||||||
fieldName: 'contactUser'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'InspectionExtensionRequestProcess',
|
name: 'InspectionExtensionRequestProcess',
|
||||||
components: { ExtensionRequestTable, PersonnelInfo, ProcessDetailList, InternalDetailPage },
|
components: { UserSelectModal, ExtensionRequestTable, PersonnelInfo, ProcessDetailList, InternalDetailPage },
|
||||||
|
mixins: [WorkCenterMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
@@ -157,8 +136,14 @@ export default {
|
|||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 22 }
|
sm: { span: 22 }
|
||||||
},
|
},
|
||||||
currentNode: '4',
|
// 当前流程信息
|
||||||
personnelInfoData: [], // 人员信息数据
|
InspectionExtensionRequestProcess,
|
||||||
|
info: {},
|
||||||
|
currentNode: '',
|
||||||
|
currentNodeName: '',
|
||||||
|
// 项目id
|
||||||
|
projectId: '',
|
||||||
|
btn: 0,
|
||||||
validatorRules: {
|
validatorRules: {
|
||||||
// 流程名称
|
// 流程名称
|
||||||
processName: {
|
processName: {
|
||||||
@@ -175,10 +160,10 @@ export default {
|
|||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 流程表单
|
||||||
processInfoForm: this.$form.createForm(this),
|
processInfoForm: this.$form.createForm(this),
|
||||||
|
// 流程审批信息表单
|
||||||
approvalInfoForm: this.$form.createForm(this),
|
approvalInfoForm: this.$form.createForm(this),
|
||||||
// 是否会签
|
|
||||||
isCountersign: null,
|
|
||||||
url: {
|
url: {
|
||||||
list: '' // 人员信息右侧表的分页查询接口
|
list: '' // 人员信息右侧表的分页查询接口
|
||||||
}
|
}
|
||||||
@@ -186,41 +171,294 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
pageTitle () {
|
pageTitle () {
|
||||||
return this.$t('flowCenter') + this.$route.meta.title
|
return this.$t('flowCenter') + this.$route.meta.title + '(' + this.nodeTitle + ')'
|
||||||
|
},
|
||||||
|
// 节点标题
|
||||||
|
nodeTitle () {
|
||||||
|
return this.$route.query.taskName || InspectionExtensionRequestProcess.initiate.text
|
||||||
},
|
},
|
||||||
processDisabled () {
|
processDisabled () {
|
||||||
return +this.currentNode > 1
|
return this.currentNode !== InspectionExtensionRequestProcess.initiate.value
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created () {
|
||||||
|
const { projectId, nodeId, taskName } = this.$route.query
|
||||||
|
// 发起、草稿进来没有nodeId,就默认发起节点
|
||||||
|
this.currentNode = nodeId || InspectionExtensionRequestProcess.initiate.value
|
||||||
|
this.currentNodeName = taskName || InspectionExtensionRequestProcess.initiate.text
|
||||||
|
this.projectId = projectId
|
||||||
|
this.btn = InspectionExtensionRequestProcess.propertyOfValue('btn', this.currentNode)
|
||||||
|
// 查询人员信息
|
||||||
|
this.getPersonInfoStructure(ProcessKey.INSPECTION_EXTENSION_REQUEST_PROCESS.value, () => {
|
||||||
|
this.initPersonInfoData(this.currentNode === InspectionExtensionRequestProcess.initiate.value)
|
||||||
|
})
|
||||||
|
// 如果是待办进来,就获取详情数据
|
||||||
|
if (this.$route.query.projectId) {
|
||||||
|
this.loadPage()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 如果是新建进来,就获取项目id
|
||||||
|
this.getProjectId()
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
switchChange (value) {
|
/**
|
||||||
this.switchValue = value
|
* 获取项目id
|
||||||
|
*/
|
||||||
|
getProjectId () {
|
||||||
|
this.loading = true
|
||||||
|
// 否则就是创建一个新的流程
|
||||||
|
getInspectPlanProjectId().then(res => {
|
||||||
|
if (res) {
|
||||||
|
this.projectId = res + ''
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
handleSave () {
|
/**
|
||||||
// if (this.loading) return
|
* 获取页面详情
|
||||||
|
*/
|
||||||
|
loadPage () {
|
||||||
|
const { projectId, taskId } = this.$route.query
|
||||||
|
this.btn = InspectionExtensionRequestProcess.propertyOfValue('btn', this.currentNode)
|
||||||
|
this.loading = true
|
||||||
|
getInspectPlanDetail({
|
||||||
|
projectId,
|
||||||
|
taskId
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
const data = res.result || {}
|
||||||
|
const processAll = data.processAll || {}
|
||||||
|
const map = data.map || {}
|
||||||
|
const processApprovalRecord = data.processApprovalRecord || {}
|
||||||
|
this.info = data
|
||||||
|
// 页面回显
|
||||||
|
this.processInfoForm && this.processInfoForm.setFieldsValue({
|
||||||
|
prcName: processAll.prcName,
|
||||||
|
dueTime: processAll.dueTime,
|
||||||
|
prcMes: processAll.prcMes
|
||||||
|
})
|
||||||
|
this.countersignForm && this.countersignForm.setFieldsValue({
|
||||||
|
pass: this.convertPass(map.pass)
|
||||||
|
})
|
||||||
|
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
|
||||||
|
commitText: processApprovalRecord.commitText,
|
||||||
|
commitFile: processApprovalRecord.commitFile
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 获取人员信息
|
||||||
|
getPersonInfo (isValidate = true) {
|
||||||
|
let personnelObj = {}
|
||||||
|
const funName = isValidate ? 'getDataObjVerify' : 'getDataObj'
|
||||||
|
// 节点1:所有的人员信息
|
||||||
|
if (this.currentNode === InspectionExtensionRequestProcess.initiate.value) {
|
||||||
|
// 人员信息的数据, 处理成对象
|
||||||
|
personnelObj = this.$refs.personnelInfo[funName]()
|
||||||
|
if (!personnelObj) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// List拆成数组
|
||||||
|
for (const key in personnelObj) {
|
||||||
|
if (personnelObj[key] && key.includes('List')) {
|
||||||
|
personnelObj[key] = personnelObj[key].split(',')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 通过表格中的所属部门人员获取稽查征求意见对象
|
||||||
|
const userList = this.$refs.inspectionPlanTable.dataSource.map(item => item.objectOfConsultation.split(',')).flat(Infinity)
|
||||||
|
personnelObj.opinionFillList = Array.from(new Set(userList))
|
||||||
|
}
|
||||||
|
return personnelObj
|
||||||
|
},
|
||||||
|
// 获取页面参数
|
||||||
|
async getPageParams (isValidate = true) {
|
||||||
|
if (this.$refs.inspectionPlanTable.dataSource.length === 0) {
|
||||||
|
this.$message.warning(this.$t('addAtLeastOneRowOfData'))
|
||||||
|
throw new Error('base')
|
||||||
|
}
|
||||||
|
const params = {}
|
||||||
|
// 收集所有表单信息
|
||||||
|
let formDataList = []
|
||||||
|
if (isValidate) {
|
||||||
|
formDataList = await this.validateFormList(this.processInfoForm, this.approvalInfoForm)
|
||||||
|
} else {
|
||||||
|
formDataList = [
|
||||||
|
this.processInfoForm.getFieldsValue(),
|
||||||
|
this.approvalInfoForm.getFieldsValue()
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// 收集人员信息
|
||||||
|
const getPersonInfo = this.getPersonInfo(isValidate)
|
||||||
|
if (!getPersonInfo) {
|
||||||
|
throw new Error('user')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开始处理信息
|
||||||
|
// 流程信息
|
||||||
|
params.processAll = Object.assign({}, this.info.processAll, formDataList[0], {
|
||||||
|
projectId: this.projectId,
|
||||||
|
taskId: this.$route.query.taskId
|
||||||
|
})
|
||||||
|
|
||||||
|
// 处理其他参数
|
||||||
|
params.map = Object.assign({}, getPersonInfo)
|
||||||
|
|
||||||
|
// 流程审批信息
|
||||||
|
params.processApprovalRecord = Object.assign({}, this.info.processApprovalRecord, formDataList[1], {
|
||||||
|
projectId: this.projectId
|
||||||
|
})
|
||||||
|
return params
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 转办弹框
|
||||||
|
*/
|
||||||
|
handleTurnTo () {
|
||||||
|
this.$refs.userSelectModal.open()
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 转办
|
||||||
|
*/
|
||||||
|
continueTurnTo (userId) {
|
||||||
|
if (this.loading) return
|
||||||
|
this.loading = true
|
||||||
|
const params = {
|
||||||
|
taskId: this.$route.query.taskId,
|
||||||
|
userId
|
||||||
|
}
|
||||||
|
Promise.resolve(params).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*/
|
||||||
|
handleSave () {
|
||||||
|
if (this.loading) return
|
||||||
|
this.loading = true
|
||||||
|
this.getPageParams(false).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
return Promise.resolve(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log(err)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 提交
|
||||||
|
*/
|
||||||
handleSubmit () {
|
handleSubmit () {
|
||||||
if (this.loading) return
|
if (this.loading) return
|
||||||
this.currentNode = +this.currentNode + 1 + ''
|
this.loading = true
|
||||||
|
let fn
|
||||||
|
switch (this.currentNode) {
|
||||||
|
case InspectionExtensionRequestProcess.initiate.value:
|
||||||
|
fn = Promise.resolve
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
fn = Promise.resolve
|
||||||
|
break
|
||||||
|
}
|
||||||
|
this.getPageParams().then(res => {
|
||||||
|
console.log(res)
|
||||||
|
return fn && fn(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
this.switchChange(err.message)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 同意
|
||||||
|
*/
|
||||||
handleAgree () {
|
handleAgree () {
|
||||||
if (this.loading) return
|
if (this.loading) return
|
||||||
this.currentNode = +this.currentNode + 1 + ''
|
this.loading = true
|
||||||
|
this.getPageParams().then(res => {
|
||||||
|
res.map.pass = true
|
||||||
|
return Promise.resolve(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
this.switchChange(err.message)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 是否会签改变
|
/**
|
||||||
changeIsCountersign (val) {
|
* 驳回
|
||||||
if (val === '1') {
|
*/
|
||||||
this.isCountersign = true
|
handleReject () {
|
||||||
} else if (val === '2') {
|
if (this.loading) return
|
||||||
this.isCountersign = false
|
this.loading = true
|
||||||
} else {
|
this.getPageParams().then(res => {
|
||||||
this.isCountersign = null
|
res.map.pass = false
|
||||||
|
return Promise.resolve(res)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(res.message)
|
||||||
|
this.goBack()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
this.switchChange(err.message)
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 验证所有表单
|
||||||
|
* @param formList - 多个需要校验的表单实例
|
||||||
|
*/
|
||||||
|
validateFormList (...formList) {
|
||||||
|
const promiseList = []
|
||||||
|
for (const form of formList) {
|
||||||
|
promiseList.push(
|
||||||
|
new Promise((resolve, reject) => {
|
||||||
|
form.validateFields((err, val) => {
|
||||||
|
if (!err) {
|
||||||
|
resolve(val)
|
||||||
|
} else {
|
||||||
|
reject(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
return Promise.all(promiseList).catch(() => {
|
||||||
|
throw new Error('base')
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
|
||||||
mounted () {
|
|
||||||
this.personnelInfoData = approvalPersonalInfo
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
+28
-35
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="table-operator" v-if="['1'].includes(currentNode)">
|
<div class="table-operator" v-if="isInitiate">
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<a-button icon="plus" type="primary" @click="handleAdd" v-has="'enterpriseStandard:add'">{{ $t('newlyAdded') }}</a-button>
|
<a-button icon="plus" type="primary" @click="handleAdd" v-has="'enterpriseStandard:add'">{{ $t('newlyAdded') }}</a-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -11,8 +11,7 @@
|
|||||||
:dataSource="dataSource"
|
:dataSource="dataSource"
|
||||||
:can-drag="true"
|
:can-drag="true"
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
:pagination="false"
|
||||||
:pagination="ipagination"
|
|
||||||
:scroll="{x: '100%'}"
|
:scroll="{x: '100%'}"
|
||||||
@change="tableOnChange">
|
@change="tableOnChange">
|
||||||
|
|
||||||
@@ -28,7 +27,7 @@
|
|||||||
|
|
||||||
<!-- 稽查联络人 -->
|
<!-- 稽查联络人 -->
|
||||||
<template v-slot:inspectionContactPerson="{text, record}">
|
<template v-slot:inspectionContactPerson="{text, record}">
|
||||||
<div class="table-form" v-if="currentNode === '1'">
|
<div class="table-form" v-if="isInitiate">
|
||||||
<a-select v-model="record.inspectionContactPerson" style="width: 100%" allowClear
|
<a-select v-model="record.inspectionContactPerson" style="width: 100%" allowClear
|
||||||
:placeholder="$t('pleaseSelect')+$t('workCenter.incExtensionRequest.inspectionContactPerson')">
|
:placeholder="$t('pleaseSelect')+$t('workCenter.incExtensionRequest.inspectionContactPerson')">
|
||||||
<a-select-option v-for="item in userList" :key="item.id" :value="item.id">{{ item.realname + '(' + item.username + ')' }}</a-select-option>
|
<a-select-option v-for="item in userList" :key="item.id" :value="item.id">{{ item.realname + '(' + item.username + ')' }}</a-select-option>
|
||||||
@@ -64,6 +63,7 @@ import { getUserList } from '@api/api'
|
|||||||
import ExtensionRequestTableModal
|
import ExtensionRequestTableModal
|
||||||
from '@views/workCenter/inspectionExtensionRequestProcess/modules/ExtensionRequestTableModal'
|
from '@views/workCenter/inspectionExtensionRequestProcess/modules/ExtensionRequestTableModal'
|
||||||
import RequestExtensionModal from '@views/workCenter/inspectionExtensionRequestProcess/modules/RequestExtensionModal'
|
import RequestExtensionModal from '@views/workCenter/inspectionExtensionRequestProcess/modules/RequestExtensionModal'
|
||||||
|
import { InspectionExtensionRequestProcess } from '@/enums/commonEnums'
|
||||||
export default {
|
export default {
|
||||||
name: 'ExtensionRequestTable',
|
name: 'ExtensionRequestTable',
|
||||||
components: { RequestExtensionModal, ExtensionRequestTableModal, JTable },
|
components: { RequestExtensionModal, ExtensionRequestTableModal, JTable },
|
||||||
@@ -82,34 +82,7 @@ export default {
|
|||||||
},
|
},
|
||||||
model: {},
|
model: {},
|
||||||
userList: [],
|
userList: [],
|
||||||
dataSource: [
|
dataSource: [],
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
inspectionBasisStandardName: '123',
|
|
||||||
inspectionBasisStandardNumber: '123',
|
|
||||||
detailFlag: true,
|
|
||||||
departOpinion: '123',
|
|
||||||
mainDutyStandardizationGroup: '1699358097292472322'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
inspectionBasisStandardName: 'qaaa',
|
|
||||||
inspectionBasisStandardNumber: '12asdasdas3',
|
|
||||||
detailFlag: true,
|
|
||||||
departOpinion: '123',
|
|
||||||
opinion: [],
|
|
||||||
mainDutyStandardizationGroup: '1699358097292472322'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
inspectionBasisStandardName: '123',
|
|
||||||
inspectionBasisStandardNumber: '123',
|
|
||||||
detailFlag: true,
|
|
||||||
departOpinion: '123',
|
|
||||||
userId: 'e9ca23d68d884d4ebb19d07889727dae'
|
|
||||||
// mainDutyStandardizationGroup: '1699358097292472322'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
allColumns: [
|
allColumns: [
|
||||||
{
|
{
|
||||||
title: this.$t('serialNumber'),
|
title: this.$t('serialNumber'),
|
||||||
@@ -179,7 +152,9 @@ export default {
|
|||||||
},
|
},
|
||||||
{ // 稽查联络人
|
{ // 稽查联络人
|
||||||
title: this.$t('workCenter.incExtensionRequest.inspectionContactPerson'),
|
title: this.$t('workCenter.incExtensionRequest.inspectionContactPerson'),
|
||||||
showCodeList: ['1'],
|
showCodeList: [
|
||||||
|
InspectionExtensionRequestProcess.initiate.value
|
||||||
|
],
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 200,
|
width: 200,
|
||||||
dataIndex: 'inspectionContactPerson',
|
dataIndex: 'inspectionContactPerson',
|
||||||
@@ -189,7 +164,9 @@ export default {
|
|||||||
// 操作
|
// 操作
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
title: this.$t('operation'),
|
title: this.$t('operation'),
|
||||||
showCodeList: ['1'],
|
showCodeList: [
|
||||||
|
InspectionExtensionRequestProcess.initiate.value
|
||||||
|
],
|
||||||
// dataIndex: 'action',
|
// dataIndex: 'action',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
@@ -199,6 +176,22 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
// 是否第一个节点
|
||||||
|
isInitiate () {
|
||||||
|
return this.currentNode === InspectionExtensionRequestProcess.initiate.value
|
||||||
|
},
|
||||||
|
// 是否第二个节点
|
||||||
|
isDirectorLeaderApproval () {
|
||||||
|
return this.currentNode === InspectionExtensionRequestProcess.directorLeaderApproval.value
|
||||||
|
},
|
||||||
|
// 是否第三个节点
|
||||||
|
isContactEvaluation () {
|
||||||
|
return this.currentNode === InspectionExtensionRequestProcess.contactEvaluation.value
|
||||||
|
},
|
||||||
|
// 是否第四个节点
|
||||||
|
isDirectorSuperiorLeaderApproval () {
|
||||||
|
return this.currentNode === InspectionExtensionRequestProcess.directorSuperiorLeaderApproval.value
|
||||||
|
},
|
||||||
// 按节点进行过滤
|
// 按节点进行过滤
|
||||||
columns () {
|
columns () {
|
||||||
return this.allColumns.filter(item => {
|
return this.allColumns.filter(item => {
|
||||||
@@ -212,7 +205,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
if (this.currentNode === '1') {
|
if (this.isInitiate) {
|
||||||
this.getUserList()
|
this.getUserList()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user