Merge remote-tracking branch 'origin/fourthStage-snapshot' into fourthStage
# Conflicts: # src/views/workCenter/annualRevisionPlanActivelyReport/RevisionPlanActivelyReportFlow.vue # src/views/workCenter/annualRevisionPlanStandardizationInit/RevisionPlanStandardizationInitFlow.vue
This commit is contained in:
@@ -6,6 +6,10 @@ const getProcessNodeList = (params) => getAction('/activiti/getNodeList', params
|
||||
const urgeProcessNode = (params) => postAction('/workCenter/urging', params)
|
||||
// 获取taskName
|
||||
const queryTaskNameByTaskId = (params) => getAction('/workCenter/getByTaskId', params)
|
||||
// 流程中心-保存快照
|
||||
const saveSnapShot = (params) => postAction('/workCenter/snapshotSave', params)
|
||||
// 流程中心-查看-获取数据
|
||||
const getLookData = (params) => getAction('/workCenter/snapshotHandle', params)
|
||||
|
||||
// 流程配置-部署
|
||||
const deployWorkFlow = (params) => getAction('/activitiModel/deploy', params)
|
||||
@@ -448,6 +452,8 @@ export {
|
||||
getProcessNodeList,
|
||||
urgeProcessNode,
|
||||
queryTaskNameByTaskId,
|
||||
saveSnapShot,
|
||||
getLookData,
|
||||
|
||||
deployWorkFlow,
|
||||
getFlowNodeList,
|
||||
|
||||
@@ -56,6 +56,16 @@
|
||||
<!-- </a-tooltip>-->
|
||||
<!--</template>-->
|
||||
|
||||
<!-- 任务节点 -->
|
||||
<template v-slot:taskNode="{text, record}">
|
||||
<a-tooltip overlay-class-name="tooltip-style">
|
||||
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
||||
<a v-if="text && record.snapshotId" class="link-a" @click="handleLookDetail(record)">{{ text }}</a>
|
||||
<div v-else-if="text && !record.snapshotId" class="table-text">{{ text }}</div>
|
||||
<div v-else class="table-text">{{ global.emptyLine }}</div>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
|
||||
<!--审批意见-->
|
||||
<template v-slot:approvalOpinion="{text, record}">
|
||||
<a-tooltip overlay-class-name="tooltip-style">
|
||||
@@ -103,6 +113,7 @@ import UploadFile from './UploadFile'
|
||||
import { filterObj } from '../utils/util'
|
||||
import { kkFilePreview } from '../utils/kkFilePreview'
|
||||
import { urgeProcessNode } from '../api/workCenter'
|
||||
import { ProcessKey } from '../enums/commonEnums'
|
||||
|
||||
// 支持预览的文件后缀
|
||||
const CAN_PREVIEW_FILE_SUFFIX = ['jpg', 'jpeg', 'png', 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx']
|
||||
@@ -147,6 +158,30 @@ export default {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
},
|
||||
// 是否可以点击节点名称跳转
|
||||
nodeNameClick: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
},
|
||||
// 详情页从哪里点进来的(已办,已发还是监控流程)
|
||||
detailFrom: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
nodeNameClick: {
|
||||
immediate: true,
|
||||
handler (val) {
|
||||
if (val) {
|
||||
this.columns[0].scopedSlots.customRender = 'taskNode'
|
||||
} else {
|
||||
this.columns[0].scopedSlots.customRender = 'text'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -173,7 +208,8 @@ export default {
|
||||
{
|
||||
dataIndex: 'taskName',
|
||||
title: this.$t('workCenter.processDetail.taskNode'),
|
||||
width: 150
|
||||
width: 150,
|
||||
scopedSlots: { customRender: 'taskNode' }
|
||||
},
|
||||
// 任务受理人
|
||||
{
|
||||
@@ -248,6 +284,10 @@ export default {
|
||||
if (this.$route.query.source === 'monitorList' && this.$route.query.prcStatus === '3') {
|
||||
params.finishFlagSearch = '2,3,4'
|
||||
}
|
||||
// 是已办,已发还是监控流程的查审批记录
|
||||
if (this.detailFrom) {
|
||||
params.type = this.detailFrom
|
||||
}
|
||||
if (this.$route.query.processInstanceId) {
|
||||
params.processInstanceId = this.$route.query.processInstanceId
|
||||
} else {
|
||||
@@ -372,6 +412,112 @@ export default {
|
||||
}
|
||||
// 其余可预览文件仍使用KKFile进行预览
|
||||
kkFilePreview(fileFullUrl)
|
||||
},
|
||||
// 跳转流程基本信息页面
|
||||
handleLookDetail (record) {
|
||||
let path = ''
|
||||
console.log('-------processKey', this.$route.query.processKey)
|
||||
// 跳转到对应流程页面
|
||||
switch (this.$route.query.processKey + '') {
|
||||
// 标准法规入库/变更流程
|
||||
case ProcessKey.FB_ENTRY_CHANGE.value:
|
||||
path = '/workCenter/StandardEntryOrChangeProcess'
|
||||
break
|
||||
// 标准征求意见流程
|
||||
case ProcessKey.CONSULTATION.value:
|
||||
path = '/workCenter/StandardConsultationProcess'
|
||||
break
|
||||
// 项目合规评估流程
|
||||
case ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value:
|
||||
path = '/workCenter/ProjectComplianceEvaluationProcess'
|
||||
break
|
||||
// 未符合项跟踪流程
|
||||
case ProcessKey.NO_MATCH_TRACKING.value:
|
||||
path = '/workCenter/NoMatchTrackingProcess'
|
||||
break
|
||||
// 法规合规评估流程
|
||||
case ProcessKey.REGULATORY_COMPLIANCE_ASSESSMENT.value:
|
||||
path = '/workCenter/StandardComplianceProcess'
|
||||
break
|
||||
// 法规采购流程
|
||||
case ProcessKey.LEGAL_PROCUREMENT.value:
|
||||
path = '/workCenter/StandardProcurementProcess'
|
||||
break
|
||||
// 企标立项、变更计划
|
||||
case ProcessKey.ES_INIT_CHANGE.value:
|
||||
path = '/workCenter/enterpriseStandardInitChange/planApprovalChangeFlow'
|
||||
break
|
||||
// 年度制修订计划(各部门主动上报)
|
||||
case ProcessKey.ES_ANNUAL_REPORT.value:
|
||||
path = '/workCenter/annualRevisionPlanActivelyReport/revisionPlanActivelyReportFlow'
|
||||
break
|
||||
// 年度制修订计划(标准化发起)
|
||||
case ProcessKey.ES_ANNUAL_INIT.value:
|
||||
path = '/workCenter/annualRevisionPlanStandardizationInit/revisionPlanStandardizationInitFlow'
|
||||
break
|
||||
// 企标制修订流程
|
||||
case ProcessKey.ES_EDIT.value:
|
||||
path = '/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow'
|
||||
break
|
||||
// 企标更改流程
|
||||
case ProcessKey.ES_CHANGE.value:
|
||||
path = '/workCenter/enterpriseStandardChange/enterpriseStandardChangeFlow'
|
||||
break
|
||||
// 企标复审流程
|
||||
case ProcessKey.ES_RECHECK.value:
|
||||
path = '/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow'
|
||||
break
|
||||
// 企标废止流程
|
||||
case ProcessKey.ES_ABOLISH.value:
|
||||
path = '/workCenter/enterpriseStandardAnnul/enterpriseStandardAnnulFlow'
|
||||
break
|
||||
// 企标封存流程
|
||||
case ProcessKey.ES_ARCHIVE.value:
|
||||
path = '/workCenter/enterpriseStandardSealSave/enterpriseStandardSealSaveFlow'
|
||||
break
|
||||
// 已封存企标启用流程
|
||||
case ProcessKey.ES_ENABLE.value:
|
||||
path = '/workCenter/enterpriseStandardStartUse/enterpriseStandardStartUseFlow'
|
||||
break
|
||||
// 企标稽查计划
|
||||
case ProcessKey.ES_INSPECTION_PLAN.value:
|
||||
path = '/workCenter/EnterpriseStandardInspectionPlan'
|
||||
break
|
||||
// 企标稽查流程
|
||||
case ProcessKey.ES_INSPECTION_PROCESS.value:
|
||||
path = '/workCenter/EnterpriseStandardInspectionProcess'
|
||||
break
|
||||
// 稽查延期申请流程
|
||||
case ProcessKey.INSPECTION_EXTENSION_REQUEST_PROCESS.value:
|
||||
path = '/workCenter/InspectionExtensionRequestProcess'
|
||||
break
|
||||
// 企标稽查整改
|
||||
case ProcessKey.ES_INSPECTION_RECTIFICATION.value:
|
||||
path = '/workCenter/EnterpriseStandardInspectionRectification'
|
||||
break
|
||||
// 权限申请流程
|
||||
case ProcessKey.PERMISSION_APPLY.value:
|
||||
path = '/workCenter/PermissionApplicationProcess'
|
||||
break
|
||||
// 标准宣贯流程
|
||||
case ProcessKey.STANDARD_PROMOTION.value:
|
||||
path = '/workCenter/StandardPromotionProcess'
|
||||
break
|
||||
// 会后管理流程
|
||||
case ProcessKey.POST_MEETING_MANAGE.value:
|
||||
path = '/workCenter/PostMeetingManageProcess'
|
||||
break
|
||||
}
|
||||
const query = {}
|
||||
query.taskName = record.taskName
|
||||
query.taskId = record.taskId // 为了不影响部分节点的导出
|
||||
query.snapshotId = record.snapshotId // 快照id
|
||||
query.nodeId = record.nodeId // 节点的id
|
||||
query.isLook = 1
|
||||
this.$router.push({
|
||||
path: path,
|
||||
query: query
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,6 +170,15 @@ export const EnterpriseStandardStatus = {
|
||||
ARCHIVE: { text: '封存', value: '10' }
|
||||
}
|
||||
|
||||
// 流程中心-查看跳转详情需要传是已办,已发还是监控流程
|
||||
export const Process = {
|
||||
TO_DO: { text: '待办流程', value: 'todo' },
|
||||
DONE: { text: '已办流程', value: '1' },
|
||||
SENT: { text: '已发流程', value: '2' },
|
||||
MONITOR: { text: '监控流程', value: '3' },
|
||||
DRAFT: { text: '草稿', value: 'draft' }
|
||||
}
|
||||
|
||||
// 流程key,获取人员信息前需要获取流程定义id,传这里的名字到WorkCenterMixin的getFlowDefinition方法中
|
||||
export const ProcessKey = {
|
||||
// 企标立项/变更计划
|
||||
|
||||
+279
-55
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!-- 基础信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -23,7 +23,7 @@
|
||||
<!-- 流程名称 -->
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')" :colon="formItemColon">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
:disabled="disabled || processInfoDisabled"
|
||||
:disabled="disabled || processInfoDisabled || isLook"
|
||||
:maxLength="50"
|
||||
v-decorator="['prcName', validatorRules.prcName]" />
|
||||
</a-form-item>
|
||||
@@ -33,7 +33,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')" :colon="formItemColon">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled || processInfoDisabled"
|
||||
:disabled="disabled || processInfoDisabled || isLook"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -44,7 +44,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled || processInfoDisabled"
|
||||
:disabled="disabled || processInfoDisabled || isLook"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -64,19 +64,19 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 节点1、标准工程师发起的基本信息表单 -->
|
||||
<engineer-init-form v-if="currentNode === 1" ref="baseInfoFormRef"></engineer-init-form>
|
||||
<engineer-init-form v-if="currentNode === 1" ref="baseInfoFormRef" :disabled="isLook"></engineer-init-form>
|
||||
<!-- 节点2、各部所联络人填写/下发任务 -->
|
||||
<contact-enter-send-task-form v-else-if="currentNode === 2" ref="baseInfoFormRef"></contact-enter-send-task-form>
|
||||
<contact-enter-send-task-form v-else-if="currentNode === 2" ref="baseInfoFormRef" :disabled="isLook"></contact-enter-send-task-form>
|
||||
<!-- 节点3、工作组、所联络人填写企标-->
|
||||
<contact-enter-standard-form v-else-if="currentNode === 3" ref="baseInfoFormRef"></contact-enter-standard-form>
|
||||
<contact-enter-standard-form v-else-if="currentNode === 3" ref="baseInfoFormRef" :disabled="isLook"></contact-enter-standard-form>
|
||||
<!-- 节点4、收集联络人主管级领导审批 只有表格,不能操作 -->
|
||||
<only-table-form v-else-if="currentNode === 4" disabled noOperColumn ref="baseInfoFormRef"></only-table-form>
|
||||
<!-- 节点5、各部所联络人汇总 只有表格,可操作 -->
|
||||
<only-table-form v-else-if="currentNode === 5" ref="baseInfoFormRef" :currentNode="5"></only-table-form>
|
||||
<only-table-form v-else-if="currentNode === 5" ref="baseInfoFormRef" :disabled="isLook" :currentNode="5"></only-table-form>
|
||||
<!-- 节点6、联络人主管级上一级领导审批 表格不可操作,可以查看详情 -->
|
||||
<only-table-form v-else-if="currentNode === 6" :onlyCanLook="true" ref="baseInfoFormRef"></only-table-form>
|
||||
<only-table-form v-else-if="currentNode === 6" :onlyCanLook="true" ref="baseInfoFormRef" :disabled="isLook"></only-table-form>
|
||||
<!-- 节点7、标准化工程师归档 表格不可新增,可以编辑和删除 -->
|
||||
<only-table-form v-else-if="currentNode === 7" disabled :editAndDelete="true" canEditNewStandardNumber ref="baseInfoFormRef"></only-table-form>
|
||||
<only-table-form v-else-if="currentNode === 7" disabled :editAndDelete="!isLook" canEditNewStandardNumber ref="baseInfoFormRef"></only-table-form>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -86,11 +86,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['commitText', validatorRules.commitText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -103,7 +104,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 操作按钮 -->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="currentNode === 1">
|
||||
<!-- 保存 -->
|
||||
@@ -157,11 +158,13 @@ import {
|
||||
activelyReportAgree,
|
||||
activelyReportReject,
|
||||
activelyReportGetDataById,
|
||||
activelyReportGetDataDraft
|
||||
activelyReportGetDataDraft,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '@/api/workCenter'
|
||||
import pick from 'lodash.pick'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import { ProcessKey, EsRevisionPlanActivityReportNodes } from '@/enums/commonEnums'
|
||||
import { ProcessKey, EsRevisionPlanActivityReportNodes, ProcessType } from '@/enums/commonEnums'
|
||||
|
||||
export default {
|
||||
name: 'RevisionPlanActivelyReportFlow',
|
||||
@@ -229,13 +232,22 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.getProcessData('look', { snapshotId: this.$route.query.snapshotId })
|
||||
} else {
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
}
|
||||
}
|
||||
if (this.$route.query.taskName) {
|
||||
// 说明是已发起流程
|
||||
@@ -301,7 +313,8 @@ export default {
|
||||
url: {
|
||||
list: '' // 人员信息右侧表的分页查询接口
|
||||
},
|
||||
model: {}
|
||||
model: {},
|
||||
isLook: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -311,6 +324,9 @@ export default {
|
||||
if (type === 'todo') {
|
||||
func = activelyReportGetDataById
|
||||
params = param.taskId
|
||||
} else if (type === 'look') {
|
||||
func = getLookData
|
||||
params = param
|
||||
} else {
|
||||
func = activelyReportGetDataDraft
|
||||
params = param
|
||||
@@ -511,6 +527,189 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取快照json
|
||||
getParamJsonStr () {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
let infoJsonStr = ''
|
||||
// 业务基本信息
|
||||
const ruleForm = this.$refs.baseInfoFormRef.getData()
|
||||
if (this.currentNode === 1) {
|
||||
// 只有表单
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: [ruleForm.formInline],
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
} else if (this.currentNode === 2) {
|
||||
if (ruleForm.dataSource && ruleForm.dataSource.length > 0) {
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: ruleForm.dataSource.map(item => {
|
||||
return { ...item, ...ruleForm.formInline }
|
||||
}),
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
} else {
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: [ruleForm.formInline],
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
}
|
||||
} else if (this.currentNode === 3) {
|
||||
// 业务基本信息有表单也有表格
|
||||
if (ruleForm.dataSource && ruleForm.dataSource.length > 0) {
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: ruleForm.dataSource.map(item => {
|
||||
return { ...item, ...ruleForm.formInline }
|
||||
}),
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
} else {
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: [ruleForm.formInline],
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
}
|
||||
} else if (this.currentNode === 5) {
|
||||
// 业务基础信息中只有表格
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: ruleForm.dataSource,
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
} else {
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
// 业务基础信息中只有表格
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: ruleForm.dataSource,
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
}
|
||||
return infoJsonStr
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
let infoJsonStr = ''
|
||||
// 业务基本信息
|
||||
const ruleForm = this.$refs.baseInfoFormRef.getData()
|
||||
if (this.currentNode === 1) {
|
||||
// 只有表单
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: [ruleForm.formInline],
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
} else if (this.currentNode === 2) {
|
||||
if (ruleForm.dataSource && ruleForm.dataSource.length > 0) {
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: ruleForm.dataSource.map(item => {
|
||||
return { ...item, ...ruleForm.formInline }
|
||||
}),
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
} else {
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: [ruleForm.formInline],
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
}
|
||||
} else if (this.currentNode === 3) {
|
||||
// 业务基本信息有表单也有表格
|
||||
if (ruleForm.dataSource && ruleForm.dataSource.length > 0) {
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: ruleForm.dataSource.map(item => {
|
||||
return { ...item, ...ruleForm.formInline }
|
||||
}),
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
} else {
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: [ruleForm.formInline],
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
}
|
||||
} else if (this.currentNode === 5) {
|
||||
// 业务基础信息中只有表格
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: ruleForm.dataSource,
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
} else {
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
// 业务基础信息中只有表格
|
||||
infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: ruleForm.dataSource,
|
||||
personnelObj: personnelObj,
|
||||
processDescription: this.processInfoForm.getFieldValue('processDescription')
|
||||
})
|
||||
}
|
||||
params.infoJsonStr = infoJsonStr
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.ES_ANNUAL_REPORT.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 节点一时候的提交,发起变更
|
||||
handleStart () {
|
||||
if (this.loading) return
|
||||
@@ -542,16 +741,32 @@ export default {
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
} else {
|
||||
func = activelyReportApproval
|
||||
// 快照JSON
|
||||
param.common.infoJsonStr = this.getParamJsonStr()
|
||||
}
|
||||
if (this.$route.query.taskId) {
|
||||
this.saveParamJsonStr(() => {
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
func(param).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
}
|
||||
@@ -609,14 +824,17 @@ export default {
|
||||
}
|
||||
param.common = approvalValues
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
activelyReportAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
activelyReportAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
@@ -636,14 +854,17 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
activelyReportAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
activelyReportAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -663,14 +884,17 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
activelyReportReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
activelyReportReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="distributeFlag">
|
||||
<a-radio-group v-model="formInline.distributeFlag">
|
||||
<a-radio-group v-model="formInline.distributeFlag" :disabled="disabled">
|
||||
<a-radio value="1">
|
||||
{{ $t('yes') }}
|
||||
</a-radio>
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
</a-form-model>
|
||||
|
||||
<!-- 表格 -->
|
||||
<only-table-form ref="tableRef"></only-table-form>
|
||||
<only-table-form ref="tableRef" :disabled="disabled"></only-table-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
+141
-53
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!-- 基础信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -23,7 +23,7 @@
|
||||
<!-- 流程名称 -->
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')" :colon="formItemColon">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
:disabled="disabled || processInfoDisabled"
|
||||
:disabled="disabled || processInfoDisabled || isLook"
|
||||
:maxLength="50"
|
||||
v-decorator="['prcName', validatorRules.prcName]" />
|
||||
</a-form-item>
|
||||
@@ -33,7 +33,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')" :colon="formItemColon">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled || processInfoDisabled"
|
||||
:disabled="disabled || processInfoDisabled || isLook"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -44,7 +44,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled || processInfoDisabled"
|
||||
:disabled="disabled || processInfoDisabled || isLook"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -54,16 +54,16 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 节点1、标准工程师发起的基本信息表单 -->
|
||||
<engineer-init-base-info v-if="[1, 3, 10].includes(currentNode)" ref="baseInfoRef" :currentNode="currentNode"></engineer-init-base-info>
|
||||
<engineer-init-base-info v-if="[1, 3, 10].includes(currentNode)" ref="baseInfoRef" :disabled="isLook" :currentNode="currentNode"></engineer-init-base-info>
|
||||
<!-- 节点2、部所联络人选取审批人 -->
|
||||
<contact-select-approver-base-info v-else-if="[2, 5].includes(currentNode)" ref="baseInfoRef" :currentNode="currentNode" @batchReject="handleBatchReject"></contact-select-approver-base-info>
|
||||
<contact-select-approver-base-info v-else-if="[2, 5].includes(currentNode)" ref="baseInfoRef" :disabled="isLook" :currentNode="currentNode" @batchReject="handleBatchReject"></contact-select-approver-base-info>
|
||||
<!-- 节点3、主起草单位主管级领导审批下发 -->
|
||||
<leader-approve-sent-base-info v-else-if="currentNode === 4" ref="baseInfoRef"></leader-approve-sent-base-info>
|
||||
<leader-approve-sent-base-info v-else-if="currentNode === 4" ref="baseInfoRef" :disabled="isLook"></leader-approve-sent-base-info>
|
||||
<!-- 节点4、主起草人填写信息 -->
|
||||
<!-- 节点5、部所联络人汇总 -->
|
||||
<!-- 节点6、主起草单位主管级领导批准 -->
|
||||
<!-- 节点7、标准化归档 -->
|
||||
<table-base-info v-else ref="baseInfoRef" :current-node="currentNode" :canEditNewStandardNumber="currentNode === 9"></table-base-info>
|
||||
<table-base-info v-else ref="baseInfoRef" :disabled="isLook" :current-node="currentNode" :canEditNewStandardNumber="currentNode === 9"></table-base-info>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -73,11 +73,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['commitText', validatorRules.commitText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -90,7 +91,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 操作按钮 -->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="[1, 3, 10].includes(currentNode)">
|
||||
<!-- 保存 -->
|
||||
@@ -145,11 +146,13 @@ import {
|
||||
standardizationInitReject,
|
||||
standardizationInitGetDataById,
|
||||
standardizationInitGetDataDraft,
|
||||
standardizationInitBatchReject
|
||||
standardizationInitBatchReject,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '@/api/workCenter'
|
||||
import pick from 'lodash.pick'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import { ProcessKey, EsRevisionPlanStandardizationInitNodes } from '@/enums/commonEnums'
|
||||
import { ProcessKey, EsRevisionPlanStandardizationInitNodes, ProcessType } from '@/enums/commonEnums'
|
||||
|
||||
export default {
|
||||
name: 'RevisionPlanStandardizationInitFlow',
|
||||
@@ -227,13 +230,22 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.getProcessData('look', { snapshotId: this.$route.query.snapshotId })
|
||||
} else {
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
}
|
||||
}
|
||||
if (this.$route.query.taskName) {
|
||||
// 说明是已发起流程
|
||||
@@ -295,7 +307,8 @@ export default {
|
||||
url: {
|
||||
list: '' // 人员信息右侧表的分页查询接口
|
||||
},
|
||||
model: {}
|
||||
model: {},
|
||||
isLook: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -305,6 +318,9 @@ export default {
|
||||
if (type === 'todo') {
|
||||
func = standardizationInitGetDataById
|
||||
params = param.taskId
|
||||
} else if (type === 'look') {
|
||||
func = getLookData
|
||||
params = param
|
||||
} else {
|
||||
func = standardizationInitGetDataDraft
|
||||
params = param
|
||||
@@ -407,6 +423,52 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取快照json
|
||||
getParamJsonStr () {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const ruleForm = this.$refs.baseInfoRef.getData()
|
||||
const infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: ruleForm.dataSource,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
return infoJsonStr
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const ruleForm = this.$refs.baseInfoRef.getData()
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: ruleForm.dataSource,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.ES_ANNUAL_INIT.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 节点一时候的提交,发起变更
|
||||
handleStart () {
|
||||
if (this.loading) return
|
||||
@@ -435,16 +497,33 @@ export default {
|
||||
param.common.taskId = this.$route.query.taskId || ''
|
||||
} else {
|
||||
func = standardizationInitApproval
|
||||
// 快照JSON
|
||||
param.common.infoJsonStr = this.getParamJsonStr()
|
||||
}
|
||||
if (this.$route.query.taskId) {
|
||||
// 先保存快照再提交
|
||||
this.saveParamJsonStr(() => {
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
}
|
||||
@@ -491,14 +570,17 @@ export default {
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
param.dataList = data.dataSource
|
||||
this.loading = true
|
||||
standardizationInitAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
standardizationInitAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
@@ -521,14 +603,17 @@ export default {
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
param.dataList = data.dataSource
|
||||
this.loading = true
|
||||
standardizationInitAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
standardizationInitAgree(param).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -549,14 +634,17 @@ export default {
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
console.log(param, this.$route.query.taskId)
|
||||
standardizationInitReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
standardizationInitReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 操作区域 -->
|
||||
<div class="table-operator">
|
||||
<div v-if="!disabled" class="table-operator">
|
||||
<!-- 批量驳回 -->
|
||||
<!--<a-button icon="close" type="primary" ghost @click="batchReject">-->
|
||||
<!-- {{ $t('batchReject') }}-->
|
||||
|
||||
+4
-4
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 操作区域 -->
|
||||
<div class="table-operator">
|
||||
<div v-if="!disabled" class="table-operator">
|
||||
<!-- 新增 -->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">
|
||||
{{ $t('newlyAdded') }}
|
||||
@@ -53,9 +53,9 @@
|
||||
|
||||
<!-- 操作栏 -->
|
||||
<div slot="action" slot-scope="{record}" class="action-span-cell">
|
||||
<a @click="handleEdit(record)" class="table-ope-btn">{{ $t('edit') }}</a>
|
||||
<a-divider type="vertical" />
|
||||
<a @click="handleDelete(record.uid)" class="table-ope-btn">{{ $t('delete') }}</a>
|
||||
<a v-if="!disabled" @click="handleEdit(record)" class="table-ope-btn">{{ $t('edit') }}</a>
|
||||
<a-divider v-if="!disabled" type="vertical" />
|
||||
<a v-if="!disabled" @click="handleDelete(record.uid)" class="table-ope-btn">{{ $t('delete') }}</a>
|
||||
</div>
|
||||
|
||||
</j-table>
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 操作区域 -->
|
||||
<div class="table-operator">
|
||||
<div v-if="!disabled" class="table-operator">
|
||||
<!-- 批量设置主起草人 -->
|
||||
<a-button icon="setting" type="primary" ghost @click="batchSetDrafter">
|
||||
{{ $t('workCenter.revisionPlanActivelyReport.batchSetDrafter') }}
|
||||
|
||||
+3
-3
@@ -23,9 +23,9 @@
|
||||
|
||||
<!-- 操作栏 -->
|
||||
<div slot="action" slot-scope="{record, index}" class="action-span-cell">
|
||||
<a @click="handleEdit(record, index)" class="table-ope-btn">{{ $t('edit') }}</a>
|
||||
<a-divider v-if="currentNode === 9" type="vertical" />
|
||||
<a v-if="currentNode === 9" @click="handleDelete(record.id, index)" class="table-ope-btn">{{ $t('delete') }}</a>
|
||||
<a v-if="!disabled" @click="handleEdit(record, index)" class="table-ope-btn">{{ $t('edit') }}</a>
|
||||
<a-divider v-if="currentNode === 9 ? !disabled : false" type="vertical" />
|
||||
<a v-if="currentNode === 9 ? !disabled : false" @click="handleDelete(record.id, index)" class="table-ope-btn">{{ $t('delete') }}</a>
|
||||
</div>
|
||||
|
||||
</j-table>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@click="switchChange('base')">{{ $t('basicInformation') }}
|
||||
@@ -31,7 +31,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')" :colon="formItemColon">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -42,7 +42,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -52,7 +52,7 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 节点1、发起人发起 -->
|
||||
<base-info-form v-if="currentNode === 1" ref="baseInfoRef" @processNameChange="processNameChange"></base-info-form>
|
||||
<base-info-form v-if="currentNode === 1" ref="baseInfoRef" :disabled="isLook" @processNameChange="processNameChange"></base-info-form>
|
||||
<!-- 节点2、相关人员会签 -->
|
||||
<!-- 节点3、起草人和会签人主管级领导审批 -->
|
||||
<!-- 节点4、标准化审批 -->
|
||||
@@ -66,11 +66,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['commitText', validatorRules.commitText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -81,7 +82,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
<!-- 操作按钮 -->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="currentNode === 1">
|
||||
<!-- 保存 -->
|
||||
@@ -119,11 +120,13 @@ import {
|
||||
enStandardAnnulTurnTo,
|
||||
enStandardAnnulAgree,
|
||||
enStandardAnnulReject,
|
||||
enStandardAnnulGetDataDraft
|
||||
enStandardAnnulGetDataDraft,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '@/api/workCenter'
|
||||
import BaseInfoForm from './modules/BaseInfoForm'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import { ProcessKey, EsAnnulNodes } from '@/enums/commonEnums'
|
||||
import { ProcessKey, EsAnnulNodes, ProcessType } from '@/enums/commonEnums'
|
||||
|
||||
export default {
|
||||
name: 'EnterpriseStandardAnnulFlow',
|
||||
@@ -175,13 +178,22 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.getProcessData('look', { snapshotId: this.$route.query.snapshotId })
|
||||
} else {
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
}
|
||||
}
|
||||
if (this.$route.query.taskName) {
|
||||
// 说明是已发起流程
|
||||
@@ -238,7 +250,8 @@ export default {
|
||||
url: {
|
||||
list: '' // 人员信息的右侧表格获取接口
|
||||
},
|
||||
onlySelectFromFlowStation: [EsAnnulNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
|
||||
onlySelectFromFlowStation: [EsAnnulNodes.standardizationApproval.value], // 只能在标准与流程所里选人的节点
|
||||
isLook: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -250,6 +263,9 @@ export default {
|
||||
if (type === 'todo') {
|
||||
func = enStandardAnnulGetDataById
|
||||
params = param.taskId
|
||||
} else if (type === 'look') {
|
||||
func = getLookData
|
||||
params = param
|
||||
} else {
|
||||
func = enStandardAnnulGetDataDraft
|
||||
params = param
|
||||
@@ -360,6 +376,52 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取快照json
|
||||
getParamJsonStr () {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: baseInfo.formInline,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
return infoJsonStr
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: baseInfo.formInline,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.ES_ABOLISH.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 节点一时候的提交
|
||||
handleStart () {
|
||||
if (this.loading) return
|
||||
@@ -391,16 +453,33 @@ export default {
|
||||
paramObj.common.taskId = this.$route.query.taskId
|
||||
} else {
|
||||
func = enStandardAnnulApproval
|
||||
// 快照JSON
|
||||
paramObj.common.infoJsonStr = this.getParamJsonStr()
|
||||
}
|
||||
if (this.$route.query.taskId) {
|
||||
// 保存快照后同意
|
||||
this.saveParamJsonStr(() => {
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
func(paramObj).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
}
|
||||
@@ -446,14 +525,17 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardAnnulAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardAnnulAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -473,16 +555,19 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardAnnulReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardAnnulReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@click="switchChange('base')">{{ $t('basicInformation') }}
|
||||
@@ -31,7 +31,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')" :colon="formItemColon">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -42,7 +42,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -52,12 +52,12 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 节点1、主起草人发起 -->
|
||||
<main-drafter-init-base-info v-if="currentNode === 1" ref="baseInfoRef" @processNameChange="processNameChange" @save="handleSave"></main-drafter-init-base-info>
|
||||
<main-drafter-init-base-info v-if="currentNode === 1" ref="baseInfoRef" :disabled="isLook" @processNameChange="processNameChange" @save="handleSave"></main-drafter-init-base-info>
|
||||
<!-- 节点2、相关人员校对 -->
|
||||
<!-- 节点3、起草人主管级领导审批 -->
|
||||
<!-- 节点4、标准化审批 -->
|
||||
<!-- 节点5、起草人主管级上一级领导审批 -->
|
||||
<approve-base-info v-else ref="baseInfoRef"></approve-base-info>
|
||||
<approve-base-info v-else ref="baseInfoRef" :disabled="isLook"></approve-base-info>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -67,11 +67,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['commitText', validatorRules.commitText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -82,7 +83,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
<!-- 操作按钮 -->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="currentNode === 1">
|
||||
<!-- 保存 -->
|
||||
@@ -120,12 +121,14 @@ import {
|
||||
enStandardChangeReject,
|
||||
enStandardChangeTurnTo,
|
||||
enStandardChangeGetDataById,
|
||||
enStandardChangeGetDataDraft
|
||||
enStandardChangeGetDataDraft,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '@/api/workCenter'
|
||||
import MainDrafterInitBaseInfo from './modules/MainDrafterInitBaseInfo'
|
||||
import ApproveBaseInfo from './modules/ApproveBaseInfo'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import { ProcessKey, EsChangeNodes } from '@/enums/commonEnums'
|
||||
import { ProcessKey, EsChangeNodes, ProcessType } from '@/enums/commonEnums'
|
||||
|
||||
export default {
|
||||
name: 'EnterpriseStandardChangeFlow',
|
||||
@@ -176,13 +179,22 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.getProcessData('look', { snapshotId: this.$route.query.snapshotId })
|
||||
} else {
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
}
|
||||
}
|
||||
if (this.$route.query.taskName) {
|
||||
// 说明是已发起流程
|
||||
@@ -249,7 +261,8 @@ export default {
|
||||
list: '' // 人员信息的右侧表格获取接口
|
||||
},
|
||||
tempDraftId: '', // 临时草稿id,解决发起的时候点在线编辑会生成多条草稿的问题
|
||||
onlySelectFromFlowStation: [EsChangeNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
|
||||
onlySelectFromFlowStation: [EsChangeNodes.standardizationApproval.value], // 只能在标准与流程所里选人的节点
|
||||
isLook: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -260,6 +273,9 @@ export default {
|
||||
if (type === 'todo') {
|
||||
func = enStandardChangeGetDataById
|
||||
params = param.taskId
|
||||
} else if (type === 'look') {
|
||||
func = getLookData
|
||||
params = param
|
||||
} else {
|
||||
func = enStandardChangeGetDataDraft
|
||||
params = param
|
||||
@@ -391,6 +407,60 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取快照json
|
||||
getParamJsonStr () {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const baseInfoObj = Object.assign({}, baseInfo.formInline, { onEditFile: baseInfo.onEditFile, replaceFileId: baseInfo.replaceFileId })
|
||||
if (baseInfo.dataSource) {
|
||||
baseInfoObj.list = baseInfo.dataSource
|
||||
}
|
||||
const infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: baseInfoObj,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
return infoJsonStr
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const baseInfoObj = Object.assign({}, baseInfo.formInline, { onEditFile: baseInfo.onEditFile, replaceFileId: baseInfo.replaceFileId })
|
||||
if (baseInfo.dataSource) {
|
||||
baseInfoObj.list = baseInfo.dataSource
|
||||
}
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: baseInfoObj,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.ES_CHANGE.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 节点一时候的提交
|
||||
handleStart () {
|
||||
if (this.loading) return
|
||||
@@ -428,16 +498,32 @@ export default {
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
} else {
|
||||
func = enStandardChangeApproval
|
||||
// 快照JSON
|
||||
param.common.infoJsonStr = this.getParamJsonStr()
|
||||
}
|
||||
if (this.$route.query.taskId) {
|
||||
this.saveParamJsonStr(() => {
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
}
|
||||
@@ -483,14 +569,17 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardChangeAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardChangeAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -510,16 +599,19 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardChangeReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardChangeReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
<a-form-model-item class="item-model">
|
||||
<div class="online-edit-wrapper">
|
||||
<p>{{ $t('enterpriseStandard') }}</p>
|
||||
<a-button type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-if="!disabled" type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-else type="primary" @click="onlineEditView">{{ $t('view') }}</a-button>
|
||||
</div>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -266,7 +267,7 @@ import JTable from '@/components/jero/JTable'
|
||||
import UpdateListModal from './UpdateListModal'
|
||||
import TextContentModal from '../../../businessSupport/askForAdvice/modules/TextContentModal'
|
||||
import { getEnterpriseStandardInfoById } from '../../../../api/enterpriseStandardLibraryApi'
|
||||
import { onlineEditor } from '../../../../utils/onlyOfficeUtils'
|
||||
import { onlineEditor, onlineEditorView } from '../../../../utils/onlyOfficeUtils'
|
||||
import { getOnlineFileIdByFileId, getStandardEditFileByNo } from '@/api/workCenter'
|
||||
|
||||
export default {
|
||||
@@ -648,6 +649,15 @@ export default {
|
||||
// false表示保存后不返回
|
||||
this.$emit('save', false)
|
||||
}
|
||||
},
|
||||
// 在线编辑的查看
|
||||
onlineEditView () {
|
||||
if (!this.onEditFile) {
|
||||
this.$message.warning(this.$t('workCenter.enStandardRevision.noStandardTextLook'))
|
||||
return
|
||||
} else {
|
||||
onlineEditorView(this.onEditFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@click="switchChange('base')">{{ $t('basicInformation') }}
|
||||
@@ -21,7 +21,7 @@
|
||||
<!-- 流程名称 -->
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')" :colon="formItemColon">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
:disabled="disabled || processNameDisabled"
|
||||
:disabled="disabled || processNameDisabled || isLook"
|
||||
:maxLength="50"
|
||||
v-decorator="['prcName', validatorRules.prcName]" />
|
||||
</a-form-item>
|
||||
@@ -31,7 +31,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')" :colon="formItemColon">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -42,7 +42,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -70,7 +70,7 @@
|
||||
<!-- :triggerChange="false"-->
|
||||
<!-- dictCode="esp_application_category" />-->
|
||||
<a-select v-model="formInline.applicationCategory"
|
||||
:disabled="disabled || categoryTypeDisabled"
|
||||
:disabled="disabled || categoryTypeDisabled || isLook"
|
||||
@change="applicationCategoryChange"
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.applicationType')">
|
||||
<a-select-option :value="ApplicationCategory.INITIATION.value">{{ $t('workCenter.enterpriseInitChangePlan.standardProjectEstablishment') }}</a-select-option>
|
||||
@@ -89,7 +89,7 @@
|
||||
<a-form-model-item class="item-model" prop="projectType">
|
||||
<a-select v-if="formInline.applicationCategory === ApplicationCategory.INITIATION.value"
|
||||
v-model="formInline.projectType"
|
||||
:disabled="disabled || categoryTypeDisabled"
|
||||
:disabled="disabled || categoryTypeDisabled || isLook"
|
||||
@change="projectTypeChange"
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.itemCategory')">
|
||||
<a-select-option :value="ProjectType.ENACT.value">{{ $t('workCenter.enterpriseInitChangePlan.formulate') }}</a-select-option>
|
||||
@@ -97,7 +97,7 @@
|
||||
</a-select>
|
||||
<a-select v-else-if="formInline.applicationCategory === ApplicationCategory.CHANGE.value"
|
||||
v-model="formInline.projectType"
|
||||
:disabled="disabled || categoryTypeDisabled"
|
||||
:disabled="disabled || categoryTypeDisabled || isLook"
|
||||
@change="projectTypeChange"
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.itemCategory')">
|
||||
<a-select-option :value="ProjectType.COMPLETE_TIME_CHANGE.value">{{ $t('workCenter.enterpriseInitChangePlan.completionTimeChange') }}</a-select-option>
|
||||
@@ -118,7 +118,7 @@
|
||||
<approval-base-info
|
||||
v-if="formInline.applicationCategory === ApplicationCategory.INITIATION.value"
|
||||
ref="approvalBaseInfo"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
:currentNode="currentNode"
|
||||
:isInitData="isInitData"
|
||||
@processNameChange="processNameChange"
|
||||
@@ -128,7 +128,7 @@
|
||||
<finish-time-change-base-info
|
||||
v-else-if="formInline.applicationCategory === ApplicationCategory.CHANGE.value && formInline.projectType === ProjectType.COMPLETE_TIME_CHANGE.value"
|
||||
ref="changeBaseInfo"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
:currentNode="currentNode"
|
||||
:projectType="formInline.projectType"
|
||||
>
|
||||
@@ -137,7 +137,7 @@
|
||||
<job-end-base-info
|
||||
v-else-if="formInline.applicationCategory === ApplicationCategory.CHANGE.value && formInline.projectType === ProjectType.WORK_TERMINATE.value"
|
||||
ref="changeBaseInfo"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
:currentNode="currentNode"
|
||||
:projectType="formInline.projectType"
|
||||
>
|
||||
@@ -146,7 +146,8 @@
|
||||
<duty-depart-change-base-info
|
||||
v-else-if="formInline.applicationCategory === ApplicationCategory.CHANGE.value && formInline.projectType === ProjectType.RESPONSIBLE_DEPT_CHANGE.value"
|
||||
ref="changeBaseInfo"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
:isLook="isLook"
|
||||
@processNameChange="processNameChange"
|
||||
:currentNode="currentNode"
|
||||
:projectType="formInline.projectType"
|
||||
@@ -156,7 +157,7 @@
|
||||
<merge-base-info
|
||||
v-else-if="formInline.applicationCategory === ApplicationCategory.CHANGE.value && formInline.projectType === ProjectType.MERGE.value"
|
||||
ref="changeBaseInfo"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
:isInitData="isInitData"
|
||||
@processNameChange="processNameChange"
|
||||
:projectType="formInline.projectType"
|
||||
@@ -175,6 +176,7 @@
|
||||
@nameChange="userSelectNameChange"
|
||||
filedName="newMainDraftUserLeader"
|
||||
:nameStr="userFormModel.newMainDraftUserLeader_dictText"
|
||||
:disabled="isLook"
|
||||
input-type="textarea" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -187,6 +189,7 @@
|
||||
@nameChange="userSelectNameChange"
|
||||
filedName="relatedUserList"
|
||||
:nameStr="userFormModel.relatedUserList_dictText"
|
||||
:disabled="isLook"
|
||||
input-type="textarea" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -201,11 +204,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['commitText', validatorRules.commitText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -216,7 +220,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
<!-- 操作按钮 -->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="currentNode === 1">
|
||||
<!-- 保存 -->
|
||||
@@ -267,7 +271,9 @@ import {
|
||||
enterprisePlanApproval,
|
||||
getProcessDataById,
|
||||
getProcessNodeList,
|
||||
getProcessDataDraft
|
||||
getProcessDataDraft,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '@/api/workCenter'
|
||||
import ApprovalBaseInfo from './modules/ApprovalBaseInfo'
|
||||
import FinishTimeChangeBaseInfo from './modules/FinishTimeChangeBaseInfo'
|
||||
@@ -275,7 +281,7 @@ import ProcessDetailList from '@/components/ProcessDetailList'
|
||||
import JobEndBaseInfo from './modules/JobEndBaseInfo'
|
||||
import DutyDepartChangeBaseInfo from './modules/DutyDepartChangeBaseInfo'
|
||||
import MergeBaseInfo from './modules/MergeBaseInfo'
|
||||
import { ProjectType, ApplicationCategory, ProcessKey, EsInitChangeNodes } from '@/enums/commonEnums'
|
||||
import { ProjectType, ApplicationCategory, ProcessKey, EsInitChangeNodes, ProcessType } from '@/enums/commonEnums'
|
||||
import Vue from 'vue'
|
||||
import { USER_INFO } from '@/store/mutation-types'
|
||||
import pick from 'lodash.pick'
|
||||
@@ -379,15 +385,24 @@ export default {
|
||||
this.disabled = true
|
||||
}
|
||||
}
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
// 待办进来的节点1说明是被驳回的,不可修改申请类型和项目类别
|
||||
this.categoryTypeDisabled = true
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.getProcessData('look', { snapshotId: this.$route.query.snapshotId })
|
||||
} else {
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
// 待办进来的节点1说明是被驳回的,不可修改申请类型和项目类别
|
||||
this.categoryTypeDisabled = true
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
}
|
||||
}
|
||||
},
|
||||
data () {
|
||||
@@ -483,7 +498,8 @@ export default {
|
||||
list: '' // 人员信息的右侧表格获取接口
|
||||
},
|
||||
isInitData: false, // 是否正在初始化数据,正在初始化数据的时候不获取企标编号
|
||||
onlySelectFromFlowStation: [EsInitChangeNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
|
||||
onlySelectFromFlowStation: [EsInitChangeNodes.standardizationApproval.value], // 只能在标准与流程所里选人的节点
|
||||
isLook: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -566,6 +582,9 @@ export default {
|
||||
if (type === 'todo') {
|
||||
func = getProcessDataById
|
||||
params = param.taskId
|
||||
} else if (type === 'look') {
|
||||
func = getLookData
|
||||
params = param
|
||||
} else {
|
||||
func = getProcessDataDraft
|
||||
params = param
|
||||
@@ -872,6 +891,120 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 需要传给后端的快照用的json
|
||||
getParamJsonStr () {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 业务基本信息-申请类型和项目类别
|
||||
const ruleForm = this.formInline
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 部分节点的选人表单
|
||||
const userInfoForm = this.userForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基础信息组件中的数据
|
||||
let arr = []
|
||||
// 业务基本信息-立项表单
|
||||
if (this.$refs.approvalBaseInfo) {
|
||||
const approvalBaseInfo = Object.assign({}, this.$refs.approvalBaseInfo.formInline)
|
||||
// 企标体系处理成逗号分隔
|
||||
if (approvalBaseInfo.enStandardSystem && approvalBaseInfo.enStandardSystem.length > 0) {
|
||||
approvalBaseInfo.enStandardSystem = approvalBaseInfo.enStandardSystem.map(item => item.value).join(',')
|
||||
}
|
||||
// 处理隶属工作组
|
||||
if (approvalBaseInfo.workGroup) {
|
||||
approvalBaseInfo.workGroup_dictText = approvalBaseInfo.workGroup.label
|
||||
approvalBaseInfo.workGroup = approvalBaseInfo.workGroup.value
|
||||
}
|
||||
arr.push({ ...ruleForm, ...approvalBaseInfo })
|
||||
} else if (this.formInline.projectType === ProjectType.COMPLETE_TIME_CHANGE.value) {
|
||||
// 业务基本信息-变更-完成时间变更
|
||||
arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...ruleForm } })
|
||||
} else if (this.formInline.projectType === ProjectType.WORK_TERMINATE.value) {
|
||||
// 业务基本信息-变更-工作终止
|
||||
arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...ruleForm } })
|
||||
} else if (this.formInline.projectType === ProjectType.RESPONSIBLE_DEPT_CHANGE.value) {
|
||||
// 业务基本信息-变更-责任部门变更
|
||||
const dutyDepartChangeForm = this.$refs.changeBaseInfo.formInline
|
||||
arr.push({ ...ruleForm, ...dutyDepartChangeForm, ...userInfoForm })
|
||||
} else if (this.formInline.projectType === ProjectType.MERGE.value) {
|
||||
// 业务基本信息-变更-合并
|
||||
const mergeForm = this.$refs.changeBaseInfo.formInline
|
||||
arr.push({ ...ruleForm, ...mergeForm })
|
||||
}
|
||||
const infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: arr.map(item => {
|
||||
return { ...item, ...this.userFormModel }
|
||||
}),
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
return infoJsonStr
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 业务基本信息-申请类型和项目类别
|
||||
const ruleForm = this.formInline
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 部分节点的选人表单
|
||||
const userInfoForm = this.userForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基础信息组件中的数据
|
||||
let arr = []
|
||||
// 业务基本信息-立项表单
|
||||
if (this.$refs.approvalBaseInfo) {
|
||||
const approvalBaseInfo = Object.assign({}, this.$refs.approvalBaseInfo.formInline)
|
||||
// 企标体系处理成逗号分隔
|
||||
if (approvalBaseInfo.enStandardSystem && approvalBaseInfo.enStandardSystem.length > 0) {
|
||||
approvalBaseInfo.enStandardSystem = approvalBaseInfo.enStandardSystem.map(item => item.value).join(',')
|
||||
}
|
||||
// 处理隶属工作组
|
||||
if (approvalBaseInfo.workGroup) {
|
||||
approvalBaseInfo.workGroup_dictText = approvalBaseInfo.workGroup.label
|
||||
approvalBaseInfo.workGroup = approvalBaseInfo.workGroup.value
|
||||
}
|
||||
arr.push({ ...ruleForm, ...approvalBaseInfo })
|
||||
} else if (this.formInline.projectType === ProjectType.COMPLETE_TIME_CHANGE.value) {
|
||||
// 业务基本信息-变更-完成时间变更
|
||||
arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...ruleForm } })
|
||||
} else if (this.formInline.projectType === ProjectType.WORK_TERMINATE.value) {
|
||||
// 业务基本信息-变更-工作终止
|
||||
arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...ruleForm } })
|
||||
} else if (this.formInline.projectType === ProjectType.RESPONSIBLE_DEPT_CHANGE.value) {
|
||||
// 业务基本信息-变更-责任部门变更
|
||||
const dutyDepartChangeForm = this.$refs.changeBaseInfo.formInline
|
||||
arr.push({ ...ruleForm, ...dutyDepartChangeForm, ...userInfoForm })
|
||||
} else if (this.formInline.projectType === ProjectType.MERGE.value) {
|
||||
// 业务基本信息-变更-合并
|
||||
const mergeForm = this.$refs.changeBaseInfo.formInline
|
||||
arr.push({ ...ruleForm, ...mergeForm })
|
||||
}
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
dataList: arr.map(item => {
|
||||
return { ...item, ...this.userFormModel }
|
||||
}),
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.ES_INIT_CHANGE.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 节点一时候的提交,发起立项变更申请,有taskId就是驳回后的提交
|
||||
handleStart () {
|
||||
if (this.loading) return
|
||||
@@ -972,33 +1105,66 @@ export default {
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
} else {
|
||||
func = enterprisePlanApproval
|
||||
// 快照JSON
|
||||
param.common.infoJsonStr = this.getParamJsonStr()
|
||||
}
|
||||
func(param).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
if (res.message === this.$t('workCenter.enterpriseInitChangePlan.existingNumber')) {
|
||||
// 已经存在编号,重新生成
|
||||
if ([ProjectType.ENACT.value, ProjectType.MODIFY.value, ProjectType.MERGE.value].includes(this.formInline.projectType)) {
|
||||
// 是制定修订或者合并,重新获取企标编号
|
||||
this.loading = true
|
||||
if (this.$refs.approvalBaseInfo) {
|
||||
await this.$refs.approvalBaseInfo.getEnStandardNo()
|
||||
} else if (this.$refs.changeBaseInfo) {
|
||||
await this.$refs.changeBaseInfo.getEnStandardNo()
|
||||
if (this.$route.query.taskId) {
|
||||
this.saveParamJsonStr(() => {
|
||||
func(param).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
if (res.message === this.$t('workCenter.enterpriseInitChangePlan.existingNumber')) {
|
||||
// 已经存在编号,重新生成
|
||||
if ([ProjectType.ENACT.value, ProjectType.MODIFY.value, ProjectType.MERGE.value].includes(this.formInline.projectType)) {
|
||||
// 是制定修订或者合并,重新获取企标编号
|
||||
this.loading = true
|
||||
if (this.$refs.approvalBaseInfo) {
|
||||
await this.$refs.approvalBaseInfo.getEnStandardNo()
|
||||
} else if (this.$refs.changeBaseInfo) {
|
||||
await this.$refs.changeBaseInfo.getEnStandardNo()
|
||||
}
|
||||
setTimeout(() => {
|
||||
this.loading = false
|
||||
// 提示顺序号已重新生成
|
||||
this.$message.success(this.$t('workCenter.enterpriseInitChangePlan.numberReset'))
|
||||
}, 500)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
func(param).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
if (res.message === this.$t('workCenter.enterpriseInitChangePlan.existingNumber')) {
|
||||
// 已经存在编号,重新生成
|
||||
if ([ProjectType.ENACT.value, ProjectType.MODIFY.value, ProjectType.MERGE.value].includes(this.formInline.projectType)) {
|
||||
// 是制定修订或者合并,重新获取企标编号
|
||||
this.loading = true
|
||||
if (this.$refs.approvalBaseInfo) {
|
||||
await this.$refs.approvalBaseInfo.getEnStandardNo()
|
||||
} else if (this.$refs.changeBaseInfo) {
|
||||
await this.$refs.changeBaseInfo.getEnStandardNo()
|
||||
}
|
||||
setTimeout(() => {
|
||||
this.loading = false
|
||||
// 提示顺序号已重新生成
|
||||
this.$message.success(this.$t('workCenter.enterpriseInitChangePlan.numberReset'))
|
||||
}, 500)
|
||||
}
|
||||
setTimeout(() => {
|
||||
this.loading = false
|
||||
// 提示顺序号已重新生成
|
||||
this.$message.success(this.$t('workCenter.enterpriseInitChangePlan.numberReset'))
|
||||
}, 500)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -1014,14 +1180,17 @@ export default {
|
||||
param.common = Object.assign({}, approvalValues)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
param.flowUser = Object.assign({}, values)
|
||||
enterprisePlanApprovalAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enterprisePlanApprovalAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
@@ -1109,14 +1278,17 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
enterprisePlanApprovalAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enterprisePlanApprovalAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
@@ -1135,16 +1307,19 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enterprisePlanApprovalReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enterprisePlanApprovalReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -1159,14 +1334,17 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enterprisePlanApprovalAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enterprisePlanApprovalAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
+8
-3
@@ -94,7 +94,7 @@
|
||||
<a-form-model-item class="item-model" prop="newMainDraftingUser">
|
||||
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.newPrincipalDrafter')"
|
||||
v-model="formInline.newMainDraftingUser"
|
||||
:disabled="disabled && !newMainDrafterCanUpdate && !onlyNewMainDrafterCanUpdate"
|
||||
:disabled="(disabled && !newMainDrafterCanUpdate && !onlyNewMainDrafterCanUpdate) || isLook"
|
||||
filedName="newMainDraftingUser"
|
||||
@nameChange="userSelectNameChange"
|
||||
:nameStr="formInline.newMainDraftingUser_dictText"
|
||||
@@ -111,7 +111,7 @@
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="newMainDraftingUnit">
|
||||
<j-select-depart v-model="formInline.newMainDraftingUnit"
|
||||
:disabled="disabled && !newMainDrafterCanUpdate"
|
||||
:disabled="(disabled && !newMainDrafterCanUpdate) || isLook"
|
||||
:isSomeDisabled="true"
|
||||
:backDepart="true" />
|
||||
</a-form-model-item>
|
||||
@@ -127,7 +127,7 @@
|
||||
<a-form-model-item class="item-model" prop="newMainDraftingUnitResponsiblePerson">
|
||||
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.newHeadOfMainDraftingUnit')"
|
||||
v-model="formInline.newMainDraftingUnitResponsiblePerson"
|
||||
:disabled="disabled && !newMainDrafterCanUpdate"
|
||||
:disabled="(disabled && !newMainDrafterCanUpdate) || isLook"
|
||||
filedName="newMainDraftingUnitResponsiblePerson"
|
||||
@nameChange="userSelectNameChange"
|
||||
:nameStr="formInline.newMainDraftingUnitResponsiblePerson_dictText"
|
||||
@@ -175,6 +175,11 @@ export default {
|
||||
type: Number,
|
||||
required: false,
|
||||
default: 1
|
||||
},
|
||||
isLook: { // 是否是查看
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
|
||||
+121
-24
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!disabled">
|
||||
<div class="table-operator-tab">
|
||||
<!-- 基础信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<inspection-plan-table style="margin-bottom: 40px;" ref="inspectionPlanTable" :current-node="currentNode" :project-id="projectId"/>
|
||||
<inspection-plan-table style="margin-bottom: 40px;" ref="inspectionPlanTable" :current-node="currentNode" :project-id="projectId" :disabled="disabled"/>
|
||||
<!-- 会签表单 -->
|
||||
<a-form :form="countersignForm" v-if="currentNode === EsInspectionPlan.liaisonCollect.value">
|
||||
<div class="form-flex-box">
|
||||
@@ -63,6 +63,7 @@
|
||||
<j-dict-select-tag :placeholder="$t('pleaseSelect') + $t('workCenter.esInspectionPlan.isCountersign')"
|
||||
type="radio"
|
||||
dictCode="yn"
|
||||
:disabled="disabled"
|
||||
@change="changeIsCountersign"
|
||||
v-decorator="['countersignTag', validatorRules.isCountersign]" />
|
||||
</a-form-item>
|
||||
@@ -71,6 +72,8 @@
|
||||
<a-form-item v-if="isCountersign" :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('workCenter.esInspectionPlan.countersignRelevantPersonnel')">
|
||||
<user-selection :placeholder="$t('pleaseSelect') + $t('workCenter.esInspectionPlan.countersignRelevantPersonnel')"
|
||||
type="checkbox" :nameStr="info.countersignDictText"
|
||||
@nameChange="involveListNameChange"
|
||||
:disabled="disabled"
|
||||
v-decorator="['involveList', validatorRules.countersignRelevantPersonnel]" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
@@ -84,11 +87,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
v-decorator="['commitText', validatorRules.remarks]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" :disabled="disabled" return-id multiple />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -101,7 +105,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div class="detail-page-bottom-operate-box" v-if="!disabled">
|
||||
<!--转办-->
|
||||
<a-button v-if="btn.includes('transfer')" type="primary" :loading="loading" @click="handleTurnTo" ghost icon="arrow-up">{{ $t('turnTo') }}</a-button>
|
||||
<!--保存-->
|
||||
@@ -126,12 +130,12 @@ import ProcessDetailList from '@comp/ProcessDetailList'
|
||||
import InspectionPlanTable from '@views/workCenter/enterpriseStandardInspectionPlan/modules/InspectionPlanTable'
|
||||
import UserSelection from '@comp/selection/UserSelection'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import { ApprovalOpinions, EsInspectionPlan, ProcessKey } from '@/enums/commonEnums'
|
||||
import { ApprovalOpinions, EsInspectionPlan, ProcessKey, ProcessType } from '@/enums/commonEnums'
|
||||
import {
|
||||
approvalInspectPlan,
|
||||
getInspectPlanDetail,
|
||||
getInspectPlanProjectId, rejectInspectPlan,
|
||||
saveInspectPlan,
|
||||
getInspectPlanProjectId, getLookData, rejectInspectPlan,
|
||||
saveInspectPlan, saveSnapShot,
|
||||
startInspectPlan, transferInspectPlan
|
||||
} from '@api/workCenter'
|
||||
import UserSelectModal from '@comp/selection/UserSelectModal'
|
||||
@@ -145,7 +149,7 @@ export default {
|
||||
return {
|
||||
loading: false,
|
||||
switchValue: 'base',
|
||||
disabled: false,
|
||||
disabled: false, // 快照禁用
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 4 }
|
||||
@@ -228,7 +232,8 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
const { projectId, nodeId, taskName } = this.$route.query
|
||||
const { projectId, nodeId, taskName, isLook } = this.$route.query
|
||||
this.disabled = isLook === '1'
|
||||
// 发起、草稿进来没有nodeId,就默认发起节点
|
||||
this.currentNode = nodeId || EsInspectionPlan.initiate.value
|
||||
this.currentNodeName = taskName || EsInspectionPlan.initiate.text
|
||||
@@ -239,6 +244,11 @@ export default {
|
||||
// 同意按钮
|
||||
this.btn = ['agree']
|
||||
}
|
||||
// 快照回显
|
||||
if (this.$route.query.snapshotId) {
|
||||
this.loadSnapshotPage()
|
||||
return
|
||||
}
|
||||
// 查询人员信息
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
this.initPersonInfoData(this.isInitiate)
|
||||
@@ -404,6 +414,8 @@ export default {
|
||||
// 保存清空校验
|
||||
this.approvalInfoForm.validateFields(['commitText'], { force: true }, () => {})
|
||||
}
|
||||
// 保存一下所有表单收集的数据用于快照回显
|
||||
params.formDataList = formDataList
|
||||
// 收集人员信息
|
||||
const personInfo = this.getPersonInfo(isValidate && !flag)
|
||||
if (!personInfo) {
|
||||
@@ -428,9 +440,9 @@ export default {
|
||||
}
|
||||
if (params.map.involveList && typeof params.map.involveList === 'string') {
|
||||
params.countersign = params.map.involveList
|
||||
params.countersignDictText = this.info.countersignDictText
|
||||
params.map.involveList = params.map.involveList.split(',')
|
||||
}
|
||||
|
||||
// 流程审批信息
|
||||
params.processApprovalRecord = Object.assign({}, this.info.processApprovalRecord, formDataList[2], {
|
||||
projectId: this.projectId
|
||||
@@ -442,7 +454,9 @@ export default {
|
||||
// 人员信息(要重新获取,流程里的信息不能直接用,后端需要多选人员处理成数组了)
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 业务表格数据,用于强制撤回后回显
|
||||
draftData: params.processEsInspectPlanList
|
||||
draftData: params.processEsInspectPlanList,
|
||||
// 将流程数据保存json,后续进行快照回显
|
||||
prcData: params
|
||||
})
|
||||
}
|
||||
|
||||
@@ -452,6 +466,71 @@ export default {
|
||||
}
|
||||
return params
|
||||
},
|
||||
/**
|
||||
* 保存快照信息
|
||||
*/
|
||||
saveSnapShotInfo (prcParams) {
|
||||
// 没有taskId就不保存
|
||||
if (!this.$route.query.taskId) {
|
||||
return Promise.resolve({ success: true })
|
||||
}
|
||||
const { processAll = {}, processApprovalRecord = {} } = prcParams
|
||||
const params = Object.assign({}, {
|
||||
taskId: this.$route.query.taskId,
|
||||
pcrType: ProcessType.ES_INSPECTION_PLAN.value,
|
||||
// 流程信息
|
||||
prcName: processAll.prcName,
|
||||
processDueDate: processAll.dueTime,
|
||||
processDescription: processAll.prcMes,
|
||||
// 流程审批信息
|
||||
handleText: processApprovalRecord.commitText,
|
||||
handleFile: processApprovalRecord.commitFile,
|
||||
// 流程json字符串存储全部信息
|
||||
infoJsonStr: JSON.stringify({
|
||||
// 人员信息
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 流程信息
|
||||
prcData: prcParams
|
||||
})
|
||||
})
|
||||
return saveSnapShot(params)
|
||||
},
|
||||
// 回显快照页面
|
||||
loadSnapshotPage () {
|
||||
const { snapshotId } = this.$route.query
|
||||
if (!snapshotId) {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
getLookData({ snapshotId }).then(res => {
|
||||
const result = res.result || {}
|
||||
const jsonData = JSON.parse(result.infoJsonStr || '{}')
|
||||
const prcData = jsonData.prcData || {}
|
||||
const countersignForm = prcData.formDataList[1] || {}
|
||||
this.info = prcData
|
||||
this.$refs.inspectionPlanTable.setData(prcData.processEsInspectPlanList || [])
|
||||
this.processInfoForm && this.processInfoForm.setFieldsValue({
|
||||
prcName: prcData.processAll.prcName,
|
||||
dueTime: prcData.processAll.dueTime,
|
||||
prcMes: prcData.processAll.prcMes
|
||||
})
|
||||
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
|
||||
commitText: prcData.processApprovalRecord.commitText,
|
||||
commitFile: prcData.processApprovalRecord.commitFile
|
||||
})
|
||||
// 回显会签表单
|
||||
this.$nextTick(() => {
|
||||
this.countersignForm && this.countersignForm.setFieldsValue({
|
||||
countersignTag: countersignForm.countersignTag,
|
||||
involveList: countersignForm.countersign
|
||||
})
|
||||
})
|
||||
// 触发会签改变
|
||||
this.changeIsCountersign(countersignForm.countersignTag)
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办弹框
|
||||
*/
|
||||
@@ -549,25 +628,32 @@ export default {
|
||||
handleAgree (isSubmitBtn) {
|
||||
if (this.loading) return
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
this.getPageParams().then(params => {
|
||||
// 节点三,pass决定是否跳过会签
|
||||
if (this.currentNode === EsInspectionPlan.liaisonCollect.value) {
|
||||
res.map.pass = this.convertPass(res.map.countersignTag)
|
||||
params.map.pass = this.convertPass(params.map.countersignTag)
|
||||
} else {
|
||||
// 其他情况一直传true
|
||||
res.map.pass = true
|
||||
params.map.pass = true
|
||||
}
|
||||
// 不是提交按钮
|
||||
if (isSubmitBtn !== true) {
|
||||
// 没有填写注释,就默认同意
|
||||
if (!res.processApprovalRecord.commitText) {
|
||||
res.processApprovalRecord.commitText = '同意'
|
||||
if (!params.processApprovalRecord.commitText) {
|
||||
params.processApprovalRecord.commitText = '同意'
|
||||
}
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
}
|
||||
return approvalInspectPlan(res)
|
||||
}).then(res => {
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return approvalInspectPlan(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
@@ -605,12 +691,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
res.map.pass = false
|
||||
this.getPageParams().then(params => {
|
||||
params.map.pass = false
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
return rejectInspectPlan(res)
|
||||
}).then(res => {
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return rejectInspectPlan(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
@@ -628,6 +721,10 @@ export default {
|
||||
}, 1000)
|
||||
})
|
||||
},
|
||||
// 会签人员名改变
|
||||
involveListNameChange (name) {
|
||||
this.info.countersignDictText = name
|
||||
},
|
||||
// 是否会签改变
|
||||
changeIsCountersign (val) {
|
||||
if (val === '1') {
|
||||
|
||||
+12
-6
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="table-operator" v-if="hasTableOperator">
|
||||
<div class="table-operator" v-if="!disabled && hasTableOperator">
|
||||
<!-- 新增 -->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
<!-- 下载模板 -->
|
||||
@@ -43,14 +43,14 @@
|
||||
<template slot="action" slot-scope="{text, record, index}">
|
||||
<!-- 编辑 and 删除:节点1 或 节点3 或 节点2且当前登录人是创建人 -->
|
||||
<template v-if="isInitiateOrLiaisonCollect || (currentNode === EsInspectionPlan.fillInComments.value && currentUserName === record.createBy)">
|
||||
<a @click="handleEdit(record, index)" >{{ $t('edit') }}</a>
|
||||
<a :disabled="disabled" @click="handleEdit(record, index)" >{{ $t('edit') }}</a>
|
||||
<a-divider type="vertical" />
|
||||
<a @click="handleDelete(index)" >{{ $t('delete') }}</a>
|
||||
<a :disabled="disabled" @click="handleDelete(index)" >{{ $t('delete') }}</a>
|
||||
</template>
|
||||
<!-- 意见 or 填写意见:节点2非自己创建的就是意见和填写意见 -->
|
||||
<!-- (被禁用只能查看意见)意见 or 填写意见:节点2非自己创建的就是意见和填写意见 -->
|
||||
<template v-else-if="currentNode === EsInspectionPlan.fillInComments.value">
|
||||
<a v-if="isShowOpinion(record)" @click="handleWriteOpinion(record, index)" >{{ $t('workCenter.esInspectionPlan.opinion') }}</a>
|
||||
<a v-else @click="handleWriteOpinion(record, index)" >{{ $t('workCenter.esInspectionPlan.writeOpinion') }}</a>
|
||||
<a :disabled="disabled" v-else @click="handleWriteOpinion(record, index)" >{{ $t('workCenter.esInspectionPlan.writeOpinion') }}</a>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
<!-- 新增/编辑稽查计划 -->
|
||||
<inspection-plan-drawer ref="modalForm" @ok="handleAddOrEditCallback" :project-id="projectId"/>
|
||||
<!-- 节点2:填写意见、意见回显 -->
|
||||
<write-opinion-modal ref="writeOpinionModal" @ok="handleWriteOpinionCallback"/>
|
||||
<write-opinion-modal ref="writeOpinionModal" @ok="handleWriteOpinionCallback" :disabled="disabled"/>
|
||||
<!-- 节点3:所属部门意见-查看 -->
|
||||
<show-opinion-modal ref="showOpinionModal"/>
|
||||
</div>
|
||||
@@ -84,6 +84,12 @@ export default {
|
||||
components: { ShowOpinionModal, WriteOpinionModal, InspectionPlanDrawer, JTable },
|
||||
mixins: [JeroListMixin],
|
||||
props: {
|
||||
// 禁用
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: false
|
||||
},
|
||||
// 当前节点
|
||||
currentNode: {
|
||||
type: String,
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
:visible="visible"
|
||||
:confirmLoading="confirmLoading"
|
||||
switchFullscreen
|
||||
:footer="null"
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
:cancelText="$t('close')">
|
||||
|
||||
+18
-2
@@ -5,7 +5,6 @@
|
||||
:visible="visible"
|
||||
:confirmLoading="confirmLoading"
|
||||
switchFullscreen
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
:cancelText="$t('close')">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
@@ -34,11 +33,21 @@
|
||||
<a-form-model-item
|
||||
prop="opinion"
|
||||
:label="$t('workCenter.esInspectionPlan.opinion')">
|
||||
<a-textarea :max-length="500" :rows="4"
|
||||
<a-textarea :max-length="500" :rows="4" :disabled="disabled"
|
||||
:placeholder="$t('pleaseEnter') + $t('workCenter.esInspectionPlan.opinion')" v-model="formData.opinion"/>
|
||||
</a-form-model-item>
|
||||
</a-form-model>
|
||||
</a-spin>
|
||||
|
||||
<!-- 操作按钮 -->
|
||||
<template slot="footer">
|
||||
<a-button :loading="confirmLoading" @click="handleCancel">
|
||||
{{ $t('cancel') }}
|
||||
</a-button>
|
||||
<a-button v-if="!disabled" type="primary" :loading="confirmLoading" @click="handleOk">
|
||||
{{ $t('submit') }}
|
||||
</a-button>
|
||||
</template>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
@@ -49,6 +58,13 @@ import moment from 'moment'
|
||||
export default {
|
||||
name: 'WriteOpinionModal',
|
||||
components: { JTable },
|
||||
props: {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
title: this.$t('workCenter.esInspectionPlan.writeOpinion'),
|
||||
|
||||
+105
-19
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!disabled">
|
||||
<div class="table-operator-tab">
|
||||
<!-- 基础信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -55,7 +55,7 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 流程表格 -->
|
||||
<inspection-process-table ref="inspectionProcessTable" :current-node="currentNode" :project-id="projectId"/>
|
||||
<inspection-process-table ref="inspectionProcessTable" :current-node="currentNode" :project-id="projectId" :disabled="disabled"/>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -65,11 +65,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
v-decorator="['commitText', validatorRules.remarks]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="disabled" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -82,7 +83,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div class="detail-page-bottom-operate-box" v-if="!disabled">
|
||||
<!--转办-->
|
||||
<a-button v-if="btn.includes('transfer')" type="primary" :loading="loading" @click="handleTurnTo" ghost icon="arrow-up">{{ $t('turnTo') }}</a-button>
|
||||
<!--保存-->
|
||||
@@ -107,12 +108,17 @@ import ProcessDetailList from '@comp/ProcessDetailList'
|
||||
import InspectionProcessTable
|
||||
from '@views/workCenter/enterpriseStandardInspectionProcess/modules/InspectionProcessTable'
|
||||
import UserSelectModal from '@comp/selection/UserSelectModal'
|
||||
import { ApprovalOpinions, EsInspectionProcess, ProcessKey } from '@/enums/commonEnums'
|
||||
import { ApprovalOpinions, EsInspectionProcess, ProcessKey, ProcessType } from '@/enums/commonEnums'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import {
|
||||
approvalInspectProcess,
|
||||
getInspectProcessDetail,
|
||||
getInspectProcessProjectId, rejectInspectProcess, saveInspectProcess, startInspectProcess, transferInspectProcess
|
||||
getInspectProcessProjectId, getLookData,
|
||||
rejectInspectProcess,
|
||||
saveInspectProcess,
|
||||
saveSnapShot,
|
||||
startInspectProcess,
|
||||
transferInspectProcess
|
||||
} from '@api/workCenter'
|
||||
|
||||
const tabList = ['base', 'user']
|
||||
@@ -124,7 +130,7 @@ export default {
|
||||
return {
|
||||
loading: false,
|
||||
switchValue: 'base',
|
||||
disabled: false,
|
||||
disabled: false, // 全部禁用
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 4 }
|
||||
@@ -197,7 +203,8 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
const { projectId, nodeId, taskName } = this.$route.query
|
||||
const { projectId, nodeId, taskName, isLook } = this.$route.query
|
||||
this.disabled = isLook === '1'
|
||||
// 发起、草稿进来没有nodeId,就默认发起节点
|
||||
this.currentNode = nodeId || EsInspectionProcess.initiate.value
|
||||
this.currentNodeName = taskName || EsInspectionProcess.initiate.text
|
||||
@@ -208,6 +215,11 @@ export default {
|
||||
// 同意按钮
|
||||
this.btn = ['agree']
|
||||
}
|
||||
// 快照回显
|
||||
if (this.$route.query.snapshotId) {
|
||||
this.loadSnapshotPage()
|
||||
return
|
||||
}
|
||||
// 查询人员信息
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
this.initPersonInfoData(this.isInitiate)
|
||||
@@ -381,6 +393,8 @@ export default {
|
||||
// 保存清空校验
|
||||
this.approvalInfoForm.validateFields(['commitText'], { force: true }, () => {})
|
||||
}
|
||||
// 保存一下所有表单收集的数据用于快照回显
|
||||
params.formDataList = formDataList
|
||||
// 收集人员信息
|
||||
const personInfo = this.getPersonInfo(isValidate && !flag)
|
||||
if (!personInfo) {
|
||||
@@ -410,7 +424,9 @@ export default {
|
||||
// 人员信息(要重新获取,流程里的信息不能直接用,后端需要多选人员处理成数组了)
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 业务表格数据,用于强制撤回后回显
|
||||
draftData: params.processEsInspectList
|
||||
draftData: params.processEsInspectList,
|
||||
// 将流程数据保存json,后续进行快照回显
|
||||
prcData: params
|
||||
})
|
||||
}
|
||||
|
||||
@@ -420,6 +436,61 @@ export default {
|
||||
}
|
||||
return params
|
||||
},
|
||||
/**
|
||||
* 保存快照信息
|
||||
*/
|
||||
saveSnapShotInfo (prcParams) {
|
||||
// 没有taskId就不保存
|
||||
if (!this.$route.query.taskId) {
|
||||
return Promise.resolve({ success: true })
|
||||
}
|
||||
const { processAll = {}, processApprovalRecord = {} } = prcParams
|
||||
const params = Object.assign({}, {
|
||||
taskId: this.$route.query.taskId,
|
||||
pcrType: ProcessType.ES_INSPECTION_PROCESS.value,
|
||||
// 流程信息
|
||||
prcName: processAll.prcName,
|
||||
processDueDate: processAll.dueTime,
|
||||
processDescription: processAll.prcMes,
|
||||
// 流程审批信息
|
||||
handleText: processApprovalRecord.commitText,
|
||||
handleFile: processApprovalRecord.commitFile,
|
||||
// 流程json字符串存储全部信息
|
||||
infoJsonStr: JSON.stringify({
|
||||
// 人员信息
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 流程信息
|
||||
prcData: prcParams
|
||||
})
|
||||
})
|
||||
return saveSnapShot(params)
|
||||
},
|
||||
// 回显快照页面
|
||||
loadSnapshotPage () {
|
||||
const { snapshotId } = this.$route.query
|
||||
if (!snapshotId) {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
getLookData({ snapshotId }).then(res => {
|
||||
const result = res.result || {}
|
||||
const jsonData = JSON.parse(result.infoJsonStr || '{}')
|
||||
const prcData = jsonData.prcData || {}
|
||||
this.info = prcData
|
||||
this.$refs.inspectionProcessTable.setData(prcData.processEsInspectList || [])
|
||||
this.processInfoForm && this.processInfoForm.setFieldsValue({
|
||||
prcName: prcData.processAll.prcName,
|
||||
dueTime: prcData.processAll.dueTime,
|
||||
prcMes: prcData.processAll.prcMes
|
||||
})
|
||||
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
|
||||
commitText: prcData.processApprovalRecord.commitText,
|
||||
commitFile: prcData.processApprovalRecord.commitFile
|
||||
})
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办弹框
|
||||
*/
|
||||
@@ -526,19 +597,27 @@ export default {
|
||||
handleAgree (isSubmitBtn) {
|
||||
if (this.loading) return
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
this.getPageParams().then(params => {
|
||||
// 同意和提交一直传true
|
||||
res.map.pass = true
|
||||
params.map.pass = true
|
||||
// 不是提交按钮
|
||||
if (isSubmitBtn !== true) {
|
||||
// 没有填写注释,就默认同意
|
||||
if (!res.processApprovalRecord.commitText) {
|
||||
res.processApprovalRecord.commitText = '同意'
|
||||
if (!params.processApprovalRecord.commitText) {
|
||||
params.processApprovalRecord.commitText = '同意'
|
||||
}
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
}
|
||||
return approvalInspectProcess(res)
|
||||
console.log(params)
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return approvalInspectProcess(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
@@ -577,11 +656,18 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
res.map.pass = false
|
||||
this.getPageParams().then(params => {
|
||||
params.map.pass = false
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
return rejectInspectProcess(res)
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return rejectInspectProcess(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
|
||||
+13
-5
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="table-operator" v-if="isInitiate">
|
||||
<div class="table-operator" v-if="isInitiate && !disabled">
|
||||
<!-- 新增 -->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
</div>
|
||||
@@ -33,6 +33,7 @@
|
||||
<div class="table-form" v-if="isInputInspectionReport">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect')+$t('date')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
value-format="YYYY-MM-DD hh:mm:ss"
|
||||
v-model="record.completeDate" />
|
||||
</div>
|
||||
@@ -52,6 +53,7 @@
|
||||
<div class="table-form" v-if="isInputInspectionReport">
|
||||
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.esInspectionProcess.actualInspector')" :show-btn="false"
|
||||
type="radio" :nameStr="record.actualInspectUser_dictText" @nameChange="nameChange($event, record)"
|
||||
:disabled="disabled"
|
||||
v-model="record.actualInspectUser" />
|
||||
</div>
|
||||
<a-tooltip v-else overlay-class-name="tooltip-style">
|
||||
@@ -67,7 +69,7 @@
|
||||
<template v-if="isInitiate || isDirectorLeaderApprovalOne">
|
||||
<a @click="handleInspectionContent(record, index)" >{{ $t('workCenter.esInspectionProcess.inspectionContent') + `(${record.standardInspectContentCount || 0}${$t('strip')})` }}</a>
|
||||
<a-divider v-if="isInitiate" type="vertical" />
|
||||
<a v-if="isInitiate" @click="handleDelete(index)" >{{ $t('delete') }}</a>
|
||||
<a v-if="isInitiate" @click="handleDelete(index)" :disabled="disabled">{{ $t('delete') }}</a>
|
||||
</template>
|
||||
<!-- 后续节点都显示稽查报告和整改计划 -->
|
||||
<template v-else>
|
||||
@@ -82,11 +84,11 @@
|
||||
<!-- 添加稽查计划 -->
|
||||
<inspection-process-table-modal ref="inspectionProcessTableModal" @ok="handleAddPlanCallback" v-if="isInitiate"/>
|
||||
<!-- 稽查内容:节点2只查看,后续不显示 -->
|
||||
<inspection-process-content ref="inspectionProcessContent" @ok="handleContentCallback" @delIds="addDelIds" :disabled="!isInitiate"/>
|
||||
<inspection-process-content ref="inspectionProcessContent" @ok="handleContentCallback" @delIds="addDelIds" :disabled="!isInitiate || disabled"/>
|
||||
<!-- 稽查报告:节点3填写,后续只查看 -->
|
||||
<inspection-process-report ref="inspectionProcessReport" @ok="handleReportCallback" @delIds="addDelIds" :disabled="!isInputInspectionReport"/>
|
||||
<inspection-process-report ref="inspectionProcessReport" @ok="handleReportCallback" @delIds="addDelIds" :disabled="!isInputInspectionReport || disabled"/>
|
||||
<!-- 整改计划:节点3填写,后续只查看 -->
|
||||
<inspection-process-rectification-plan ref="inspectionProcessRectificationPlan" @ok="handleRectificationCallback" @delIds="addDelIds" :disabled="!isInputInspectionReport"/>
|
||||
<inspection-process-rectification-plan ref="inspectionProcessRectificationPlan" @ok="handleRectificationCallback" @delIds="addDelIds" :disabled="!isInputInspectionReport || disabled"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -108,6 +110,12 @@ export default {
|
||||
components: { UserSelection, InspectionProcessRectificationPlan, InspectionProcessReport, InspectionProcessContent, InspectionProcessTableModal, JTable },
|
||||
mixins: [JeroListMixin],
|
||||
props: {
|
||||
// 禁用
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: false
|
||||
},
|
||||
// 当前节点
|
||||
currentNode: {
|
||||
type: String,
|
||||
|
||||
+119
-24
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!disabled">
|
||||
<div class="table-operator-tab">
|
||||
<!-- 基础信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -55,7 +55,7 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 基本信息 -->
|
||||
<base-info-form ref="baseInfoForm" :disabled="processDisabled"/>
|
||||
<base-info-form ref="baseInfoForm" :disabled="disabled || processDisabled"/>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -64,12 +64,13 @@
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('remarks')">
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:disabled="disabled"
|
||||
:rows="4"
|
||||
v-decorator="['commitText', validatorRules.remarks]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="disabled" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -82,7 +83,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div class="detail-page-bottom-operate-box" v-if="!disabled">
|
||||
<!--转办-->
|
||||
<a-button v-if="btn.includes('transfer')" type="primary" :loading="loading" @click="handleTurnTo" ghost icon="arrow-up">{{ $t('turnTo') }}</a-button>
|
||||
<!--保存-->
|
||||
@@ -108,10 +109,16 @@ import BaseInfoForm from '@views/workCenter/enterpriseStandardInspectionRectific
|
||||
import UserSelectModal from '@comp/selection/UserSelectModal'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import {
|
||||
approvalInspectRectify, getInspectRectifyDataById,
|
||||
getInspectRectifyDetail, rejectInspectRectify, saveInspectRectify, startInspectRectify, transferInspectRectify
|
||||
approvalInspectRectify,
|
||||
getInspectRectifyDataById,
|
||||
getInspectRectifyDetail, getLookData,
|
||||
rejectInspectRectify,
|
||||
saveInspectRectify,
|
||||
saveSnapShot,
|
||||
startInspectRectify,
|
||||
transferInspectRectify
|
||||
} from '@api/workCenter'
|
||||
import { ApprovalOpinions, EsInspectionRectification, ProcessKey } from '@/enums/commonEnums'
|
||||
import { ApprovalOpinions, EsInspectionRectification, ProcessKey, ProcessType } from '@/enums/commonEnums'
|
||||
|
||||
const tabList = ['base', 'user']
|
||||
export default {
|
||||
@@ -197,7 +204,8 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
const { projectId, nodeId, taskName } = this.$route.query
|
||||
const { projectId, nodeId, taskName, isLook } = this.$route.query
|
||||
this.disabled = isLook === '1'
|
||||
// 自动发起流程: 没有默认节点
|
||||
this.currentNode = nodeId || ''
|
||||
this.currentNodeName = taskName || ''
|
||||
@@ -212,6 +220,11 @@ export default {
|
||||
// 同意按钮
|
||||
this.btn = ['agree']
|
||||
}
|
||||
// 快照回显
|
||||
if (this.$route.query.snapshotId) {
|
||||
this.loadSnapshotPage()
|
||||
return
|
||||
}
|
||||
// 查询人员信息
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
this.personnelInfoData = this.personnelInfoData.map(item => {
|
||||
@@ -348,6 +361,8 @@ export default {
|
||||
// 保存清空校验
|
||||
this.approvalInfoForm.validateFields(['commitText'], { force: true }, () => {})
|
||||
}
|
||||
// 保存一下所有表单收集的数据用于快照回显
|
||||
params.formDataList = formDataList
|
||||
// 收集人员信息
|
||||
const personInfo = this.getPersonInfo(isValidate && !flag)
|
||||
if (!personInfo) {
|
||||
@@ -389,7 +404,9 @@ export default {
|
||||
// 人员信息(要重新获取,流程里的信息不能直接用,后端需要多选人员处理成数组了)
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 业务表格数据,用于强制撤回后回显
|
||||
draftData
|
||||
draftData,
|
||||
// 将流程数据保存json,后续进行快照回显
|
||||
prcData: params
|
||||
})
|
||||
}
|
||||
|
||||
@@ -399,6 +416,63 @@ export default {
|
||||
}
|
||||
return params
|
||||
},
|
||||
/**
|
||||
* 保存快照信息
|
||||
*/
|
||||
saveSnapShotInfo (prcParams) {
|
||||
// 没有taskId就不保存
|
||||
if (!this.$route.query.taskId) {
|
||||
return Promise.resolve({ success: true })
|
||||
}
|
||||
const { processAll = {}, processApprovalRecord = {} } = prcParams
|
||||
const params = Object.assign({}, {
|
||||
taskId: this.$route.query.taskId,
|
||||
pcrType: ProcessType.ES_INSPECTION_RECTIFICATION.value,
|
||||
// 流程信息
|
||||
prcName: processAll.prcName,
|
||||
processDueDate: processAll.dueTime,
|
||||
processDescription: processAll.prcMes,
|
||||
// 流程审批信息
|
||||
handleText: processApprovalRecord.commitText,
|
||||
handleFile: processApprovalRecord.commitFile,
|
||||
// 流程json字符串存储全部信息
|
||||
infoJsonStr: JSON.stringify({
|
||||
// 人员信息
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 流程信息
|
||||
prcData: prcParams
|
||||
})
|
||||
})
|
||||
return saveSnapShot(params)
|
||||
},
|
||||
// 回显快照页面
|
||||
loadSnapshotPage () {
|
||||
const { snapshotId } = this.$route.query
|
||||
if (!snapshotId) {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
getLookData({ snapshotId }).then(res => {
|
||||
const result = res.result || {}
|
||||
const jsonData = JSON.parse(result.infoJsonStr || '{}')
|
||||
const prcData = jsonData.prcData || {}
|
||||
this.info = prcData
|
||||
this.processInfoForm && this.processInfoForm.setFieldsValue({
|
||||
prcName: prcData.processAll.prcName,
|
||||
dueTime: prcData.processAll.dueTime,
|
||||
prcMes: prcData.processAll.prcMes
|
||||
})
|
||||
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
|
||||
commitText: prcData.processApprovalRecord.commitText,
|
||||
commitFile: prcData.processApprovalRecord.commitFile
|
||||
})
|
||||
this.$nextTick(() => {
|
||||
this.$refs.baseInfoForm.initData(prcData.processEsInspectRectify)
|
||||
})
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办弹框
|
||||
*/
|
||||
@@ -463,17 +537,24 @@ export default {
|
||||
handleSubmit () {
|
||||
if (this.loading) return
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
console.log(res)
|
||||
res.map.pass = true
|
||||
this.getPageParams().then(params => {
|
||||
console.log(params)
|
||||
params.map.pass = true
|
||||
let fn = approvalInspectRectify
|
||||
// 是否强制撤回(强制撤回的话,就发起接口)
|
||||
if (this.isForceRevoke) {
|
||||
fn = startInspectRectify
|
||||
// 重新发起置空业务id
|
||||
delete res.processEsInspectRectify.id
|
||||
delete params.processEsInspectRectify.id
|
||||
}
|
||||
return fn(res)
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return fn(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
@@ -499,19 +580,26 @@ export default {
|
||||
handleAgree (isSubmitBtn) {
|
||||
if (this.loading) return
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
this.getPageParams().then(params => {
|
||||
// 同意和提交一直传true
|
||||
res.map.pass = true
|
||||
params.map.pass = true
|
||||
// 不是提交按钮
|
||||
if (isSubmitBtn !== true) {
|
||||
// 没有填写注释,就默认同意
|
||||
if (!res.processApprovalRecord.commitText) {
|
||||
res.processApprovalRecord.commitText = '同意'
|
||||
if (!params.processApprovalRecord.commitText) {
|
||||
params.processApprovalRecord.commitText = '同意'
|
||||
}
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
}
|
||||
return approvalInspectRectify(res)
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return approvalInspectRectify(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
@@ -550,11 +638,18 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
res.map.pass = false
|
||||
this.getPageParams().then(params => {
|
||||
params.map.pass = false
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
return rejectInspectRectify(res)
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return rejectInspectRectify(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@click="switchChange('base')">{{ $t('basicInformation') }}
|
||||
@@ -31,7 +31,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')" :colon="formItemColon">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -42,7 +42,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -52,14 +52,14 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 节点1、是标准化发起 -->
|
||||
<standardization-init-base-info v-if="currentNode === 1" ref="baseInfoRef" @processNameChange="processNameChange"></standardization-init-base-info>
|
||||
<standardization-init-base-info v-if="currentNode === 1" ref="baseInfoRef" :disabled="isLook" @processNameChange="processNameChange"></standardization-init-base-info>
|
||||
<!-- 节点2、是联络人发起 -->
|
||||
<contact-init-base-info v-else-if="currentNode === 2" ref="baseInfoRef" @processNameChange="processNameChange"></contact-init-base-info>
|
||||
<contact-init-base-info v-else-if="currentNode === 2" ref="baseInfoRef" :disabled="isLook" @processNameChange="processNameChange"></contact-init-base-info>
|
||||
<!-- 节点3、起草人填写意见 -->
|
||||
<drafter-enter-option-base-info v-else-if="currentNode === 3" ref="baseInfoRef"></drafter-enter-option-base-info>
|
||||
<drafter-enter-option-base-info v-else-if="currentNode === 3" ref="baseInfoRef" :disabled="isLook"></drafter-enter-option-base-info>
|
||||
<!-- 节点4、起草人部长审批 -->
|
||||
<!-- 节点5、标准化审批 -->
|
||||
<recheck-approve-base-info v-else-if="currentNode === 4 || currentNode === 5" ref="baseInfoRef"></recheck-approve-base-info>
|
||||
<recheck-approve-base-info v-else-if="currentNode === 4 || currentNode === 5" ref="baseInfoRef" :disabled="isLook"></recheck-approve-base-info>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -69,11 +69,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['commitText', validatorRules.commitText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -84,7 +85,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
<!-- 操作按钮 -->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="currentNode === 1 || currentNode === 2">
|
||||
<!-- 保存 -->
|
||||
@@ -131,14 +132,16 @@ import {
|
||||
enStandardRecheckTurnTo,
|
||||
enStandardRecheckAgree,
|
||||
enStandardRecheckReject,
|
||||
enStandardRecheckGetDataDraft
|
||||
enStandardRecheckGetDataDraft,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '@/api/workCenter'
|
||||
import ContactInitBaseInfo from './modules/ContactInitBaseInfo'
|
||||
import StandardizationInitBaseInfo from './modules/StandardizationInitBaseInfo'
|
||||
import DrafterEnterOptionBaseInfo from './modules/DrafterEnterOptionBaseInfo'
|
||||
import RecheckApproveBaseInfo from './modules/RecheckApproveBaseInfo'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import { ProcessKey, EsRecheckNodes } from '@/enums/commonEnums'
|
||||
import { ProcessKey, EsRecheckNodes, ProcessType } from '@/enums/commonEnums'
|
||||
import Vue from 'vue'
|
||||
import { USER_INFO } from '../../../store/mutation-types'
|
||||
|
||||
@@ -217,13 +220,22 @@ export default {
|
||||
this.personnelInfoData[0].userList = Vue.ls.get(USER_INFO).realname + '(' + Vue.ls.get(USER_INFO).username + ')'
|
||||
}
|
||||
})
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.getProcessData('look', { snapshotId: this.$route.query.snapshotId })
|
||||
} else {
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
}
|
||||
}
|
||||
if (this.$route.query.taskName) {
|
||||
// 说明是已发起流程
|
||||
@@ -286,7 +298,8 @@ export default {
|
||||
url: {
|
||||
list: '' // 人员信息的右侧表格获取接口
|
||||
},
|
||||
onlySelectFromFlowStation: [EsRecheckNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
|
||||
onlySelectFromFlowStation: [EsRecheckNodes.standardizationApproval.value], // 只能在标准与流程所里选人的节点
|
||||
isLook: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -298,6 +311,9 @@ export default {
|
||||
if (type === 'todo') {
|
||||
func = enStandardRecheckGetDataById
|
||||
params = param.taskId
|
||||
} else if (type === 'look') {
|
||||
func = getLookData
|
||||
params = param
|
||||
} else {
|
||||
func = enStandardRecheckGetDataDraft
|
||||
params = param
|
||||
@@ -417,6 +433,52 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取快照json
|
||||
getParamJsonStr () {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: baseInfo.formInline,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
return infoJsonStr
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: baseInfo.formInline,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.ES_RECHECK.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 节点一时候的提交
|
||||
handleStart () {
|
||||
if (this.loading) return
|
||||
@@ -448,16 +510,32 @@ export default {
|
||||
paramObj.common.taskId = this.$route.query.taskId
|
||||
} else {
|
||||
func = enStandardRecheckApproval
|
||||
// 快照JSON
|
||||
paramObj.common.infoJsonStr = this.getParamJsonStr()
|
||||
}
|
||||
if (this.$route.query.taskId) {
|
||||
this.saveParamJsonStr(() => {
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
}
|
||||
@@ -502,14 +580,17 @@ export default {
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
param.data = Object.assign({}, data.formInline)
|
||||
console.log(param)
|
||||
enStandardRecheckAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardRecheckAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
@@ -529,14 +610,17 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardRecheckAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardRecheckAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -556,16 +640,19 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardRecheckReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardRecheckReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
+1
-1
@@ -117,7 +117,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="recheckAdvice">
|
||||
<a-radio-group v-model="formInline.recheckAdvice">
|
||||
<a-radio-group v-model="formInline.recheckAdvice" :disabled="disabled">
|
||||
<!-- 继续有效 -->
|
||||
<a-radio :value="Recheck.STAND_GOOD.value">
|
||||
{{ $t('workCenter.enStandardRecheck.standGood') }}
|
||||
|
||||
+179
-81
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!-- 基础信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -33,7 +33,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')" :colon="formItemColon">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -44,7 +44,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -54,41 +54,48 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 节点1、主起草人起草分发 -->
|
||||
<main-drafter-sent-base-info v-if="currentNode === 1" :flowInitType="flowInitType" ref="baseInfoRef" @processNameChange="processNameChange" @save="handleSave"></main-drafter-sent-base-info>
|
||||
<main-drafter-sent-base-info
|
||||
v-if="currentNode === 1" :flowInitType="flowInitType" ref="baseInfoRef" :disabled="isLook"
|
||||
@processNameChange="processNameChange" @save="handleSave" @onlineEditView="onlineEditView"
|
||||
></main-drafter-sent-base-info>
|
||||
<!-- 节点2、其他起草人上传企标 -->
|
||||
<other-drafter-upload-standard-base-info v-if="currentNode === 2" ref="baseInfoRef" @onlineEditView="onlineEditView"></other-drafter-upload-standard-base-info>
|
||||
<other-drafter-upload-standard-base-info
|
||||
v-if="currentNode === 2" ref="baseInfoRef" :disabled="isLook"
|
||||
@onlineEditView="onlineEditView"></other-drafter-upload-standard-base-info>
|
||||
<!-- 节点3、主起草人汇总上传会议纪要 -->
|
||||
<main-drafter-collect-upload-minute-base-info v-if="currentNode === 3" ref="baseInfoRef" @save="handleSave"></main-drafter-collect-upload-minute-base-info>
|
||||
<main-drafter-collect-upload-minute-base-info
|
||||
v-if="currentNode === 3" ref="baseInfoRef" :disabled="isLook"
|
||||
@save="handleSave" @onlineEditView="onlineEditView"></main-drafter-collect-upload-minute-base-info>
|
||||
<!-- 节点4、标准化审核 -->
|
||||
<standardization-audit-base-info
|
||||
v-if="currentNode === 4" ref="baseInfoRef"
|
||||
v-if="currentNode === 4" ref="baseInfoRef" :disabled="isLook"
|
||||
@standardizationAuditIsMeeting="standardizationAuditIsMeeting"
|
||||
@onlineEditView="onlineEditView"></standardization-audit-base-info>
|
||||
<!-- 节点5、评分人打分 -->
|
||||
<scorer-mark-base-info v-if="currentNode === 5" ref="baseInfoRef" @onlineEditView="onlineEditView"></scorer-mark-base-info>
|
||||
<scorer-mark-base-info v-if="currentNode === 5" ref="baseInfoRef" :disabled="isLook" @onlineEditView="onlineEditView"></scorer-mark-base-info>
|
||||
<!-- 节点6、标准化确认是否开启征求意见 -->
|
||||
<confirm-whether-comment-base-info v-if="currentNode === 6" ref="baseInfoRef" @onlineEditView="onlineEditView"></confirm-whether-comment-base-info>
|
||||
<confirm-whether-comment-base-info v-if="currentNode === 6" ref="baseInfoRef" :disabled="isLook" @onlineEditView="onlineEditView"></confirm-whether-comment-base-info>
|
||||
<!-- 节点7、部所联络人下发 -->
|
||||
<depart-liaison-issue-base-info v-if="currentNode === 7" ref="baseInfoRef" @onlineEditView="onlineEditView"></depart-liaison-issue-base-info>
|
||||
<depart-liaison-issue-base-info v-if="currentNode === 7" ref="baseInfoRef" :disabled="isLook" @onlineEditView="onlineEditView"></depart-liaison-issue-base-info>
|
||||
<!-- 节点8、征求意见对象填写意见 -->
|
||||
<comment-object-enter-base-info v-if="currentNode === 8" ref="baseInfoRef" @onlineEditView="onlineEditView"></comment-object-enter-base-info>
|
||||
<comment-object-enter-base-info v-if="currentNode === 8" ref="baseInfoRef" :disabled="isLook" @onlineEditView="onlineEditView"></comment-object-enter-base-info>
|
||||
<!-- 节点9、部所联络人汇总数据 -->
|
||||
<depart-liaison-collect-base-info v-if="currentNode === 9" ref="baseInfoRef" @onlineEditView="onlineEditView"></depart-liaison-collect-base-info>
|
||||
<depart-liaison-collect-base-info v-if="currentNode === 9" ref="baseInfoRef" :disabled="isLook" @onlineEditView="onlineEditView"></depart-liaison-collect-base-info>
|
||||
<!-- 节点10、部所联络人主管级领导审批 -->
|
||||
<depart-liaison-leader-approve-base-info v-if="currentNode === 10" ref="baseInfoRef" @onlineEditView="onlineEditView"></depart-liaison-leader-approve-base-info>
|
||||
<depart-liaison-leader-approve-base-info v-if="currentNode === 10" ref="baseInfoRef" :disabled="isLook" @onlineEditView="onlineEditView"></depart-liaison-leader-approve-base-info>
|
||||
<!-- 节点11、主起草人汇总 -->
|
||||
<main-drafter-collect-base-info v-if="currentNode === 11" ref="baseInfoRef" @save="handleSave"></main-drafter-collect-base-info>
|
||||
<main-drafter-collect-base-info v-if="currentNode === 11" ref="baseInfoRef" :disabled="isLook" @save="handleSave" @onlineEditView="onlineEditView"></main-drafter-collect-base-info>
|
||||
<!-- 节点12、主起草人上传会议纪要 -->
|
||||
<main-drafter-upload-minute-base-info v-if="currentNode === 12" ref="baseInfoRef" @save="handleSave"></main-drafter-upload-minute-base-info>
|
||||
<main-drafter-upload-minute-base-info v-if="currentNode === 12" ref="baseInfoRef" :disabled="isLook" @save="handleSave" @onlineEditView="onlineEditView"></main-drafter-upload-minute-base-info>
|
||||
<!-- 节点13、其他起草人校对 -->
|
||||
<!-- 节点14、主管级领导审批 -->
|
||||
<!-- 节点15、标准化审批 -->
|
||||
<!-- 节点16、相关部门领导会签 -->
|
||||
<!-- 节点17、总工程师审批 -->
|
||||
<!-- 只有标准文本 -->
|
||||
<other-drafter-proofread-base-info v-if="[13, 14, 15, 16, 17].includes(currentNode)" ref="baseInfoRef" @onlineEditView="onlineEditView"></other-drafter-proofread-base-info>
|
||||
<other-drafter-proofread-base-info v-if="[13, 14, 15, 16, 17].includes(currentNode)" ref="baseInfoRef" :disabled="isLook" @onlineEditView="onlineEditView"></other-drafter-proofread-base-info>
|
||||
<!-- 节点18、主起草人发布 -->
|
||||
<main-drafter-publish-base-info v-if="currentNode === 18" ref="baseInfoRef" @save="handleSave"></main-drafter-publish-base-info>
|
||||
<main-drafter-publish-base-info v-if="currentNode === 18" ref="baseInfoRef" :disabled="isLook" @save="handleSave" @onlineEditView="onlineEditView"></main-drafter-publish-base-info>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -98,11 +105,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['commitText', validatorRules.commitText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -115,7 +123,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 操作按钮 -->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="currentNode === 1">
|
||||
<!-- 保存 -->
|
||||
@@ -173,7 +181,7 @@ import MainDrafterCollectUploadMinuteBaseInfo from './modules/MainDrafterCollect
|
||||
import MainDrafterUploadMinuteBaseInfo from './modules/MainDrafterUploadMinuteBaseInfo'
|
||||
import OtherDrafterProofreadBaseInfo from './modules/OtherDrafterProofreadBaseInfo'
|
||||
import MainDrafterPublishBaseInfo from './modules/MainDrafterPublishBaseInfo'
|
||||
import { ProcessKey, EsRevisionNodes } from '../../../enums/commonEnums'
|
||||
import { ProcessKey, EsRevisionNodes, ProcessType } from '../../../enums/commonEnums'
|
||||
import {
|
||||
enStandardEditAgree,
|
||||
enStandardEditApproval,
|
||||
@@ -182,10 +190,10 @@ import {
|
||||
enStandardEditReject,
|
||||
enStandardEditSave,
|
||||
enStandardEditTurnTo,
|
||||
queryFileInfoByEditId
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '@/api/workCenter'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { onlineEditorView } from '../../../utils/onlyOfficeUtils'
|
||||
|
||||
export default {
|
||||
@@ -293,13 +301,22 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.getProcessData('look', { snapshotId: this.$route.query.snapshotId })
|
||||
} else {
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
}
|
||||
}
|
||||
if (this.$route.query.taskName) {
|
||||
// 说明是已发起流程
|
||||
@@ -371,7 +388,8 @@ export default {
|
||||
rejectBtnDisabled: false, // 驳回按钮是否置灰
|
||||
agreeBtnDisabled: false, // 同意按钮是否置灰
|
||||
tempDraftId: '', // 临时草稿id,解决发起的时候点在线编辑会生成多条草稿的问题
|
||||
onlySelectFromFlowStation: [EsRevisionNodes.standardizationAudit.value] // 只能在标准与流程所里选人的节点
|
||||
onlySelectFromFlowStation: [EsRevisionNodes.standardizationAudit.value], // 只能在标准与流程所里选人的节点
|
||||
isLook: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -382,6 +400,9 @@ export default {
|
||||
if (type === 'todo') {
|
||||
func = enStandardEditGetDataById
|
||||
params = param.taskId
|
||||
} else if (type === 'look') {
|
||||
func = getLookData
|
||||
params = param
|
||||
} else {
|
||||
func = enStandardEditGetDataDraft
|
||||
params = param
|
||||
@@ -540,6 +561,52 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取快照json
|
||||
getParamJsonStr () {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: Object.assign({}, baseInfo, { id: this.model.data ? this.model.data.id : '' }),
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
return infoJsonStr
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: Object.assign({}, baseInfo, { id: this.model.data ? this.model.data.id : '' }),
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.ES_EDIT.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 节点一时候的提交,发起变更
|
||||
handleStart () {
|
||||
if (this.loading) return
|
||||
@@ -588,16 +655,32 @@ export default {
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
} else {
|
||||
func = enStandardEditApproval
|
||||
// 快照JSON
|
||||
param.common.infoJsonStr = this.getParamJsonStr()
|
||||
}
|
||||
if (this.$route.query.taskId) {
|
||||
this.saveParamJsonStr(() => {
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
}
|
||||
@@ -652,14 +735,17 @@ export default {
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
param.data = data
|
||||
this.loading = true
|
||||
enStandardEditAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardEditAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
@@ -676,14 +762,17 @@ export default {
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
param.data = data
|
||||
this.loading = true
|
||||
enStandardEditAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardEditAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
@@ -707,14 +796,17 @@ export default {
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
param.data = data
|
||||
enStandardEditAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardEditAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
} else {
|
||||
@@ -723,14 +815,17 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardEditAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardEditAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -751,16 +846,19 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardEditReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardEditReject(param).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
@@ -151,6 +151,8 @@ export default {
|
||||
const data = {}
|
||||
data.advices = this.dataSource
|
||||
data.businessJson = JSON.stringify(this.$refs.baseInfoForm.getData())
|
||||
// 在线编辑文件id
|
||||
data.onEditFile = this.onEditFile
|
||||
return data
|
||||
},
|
||||
// 外层获取数据要过校验,返回false表示没有通过校验
|
||||
|
||||
+3
-1
@@ -25,7 +25,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="adviceFlag">
|
||||
<a-radio-group v-model="formInline.adviceFlag">
|
||||
<a-radio-group v-model="formInline.adviceFlag" :disabled="disabled">
|
||||
<a-radio value="1">
|
||||
{{ $t('yes') }}
|
||||
</a-radio>
|
||||
@@ -132,6 +132,8 @@ export default {
|
||||
getData () {
|
||||
// 把数据抛出,在线编辑不知道要不要抛
|
||||
const data = Object.assign({}, this.formInline)
|
||||
// 在线编辑文件id
|
||||
data.onEditFile = this.onEditFile
|
||||
return data
|
||||
},
|
||||
// 外层获取数据要过校验,返回false表示没有通过校验
|
||||
|
||||
+2
@@ -179,6 +179,8 @@ export default {
|
||||
// 把数据抛出,在线编辑不知道要不要抛
|
||||
const data = Object.assign({}, this.formInline)
|
||||
data.advices = this.dataSource
|
||||
// 在线编辑文件id
|
||||
data.onEditFile = this.onEditFile
|
||||
return data
|
||||
},
|
||||
// 外层获取数据要过校验,返回false表示没有通过校验
|
||||
|
||||
@@ -116,6 +116,8 @@ export default {
|
||||
getData () {
|
||||
// 把数据抛出,在线编辑不知道要不要抛
|
||||
const data = Object.assign({}, this.formInline)
|
||||
// 在线编辑文件id
|
||||
data.onEditFile = this.onEditFile
|
||||
return data
|
||||
},
|
||||
// 外层获取数据要过校验,返回false表示没有通过校验
|
||||
|
||||
+2
@@ -158,6 +158,8 @@ export default {
|
||||
const data = {}
|
||||
data.advices = this.dataSource
|
||||
data.businessJson = JSON.stringify(this.$refs.baseInfoForm.getData())
|
||||
// 在线编辑文件id
|
||||
data.onEditFile = this.onEditFile
|
||||
return data
|
||||
},
|
||||
// 外层获取数据要过校验,返回false表示没有通过校验
|
||||
|
||||
+8
-3
@@ -11,7 +11,8 @@
|
||||
<a-form-model-item class="item-model">
|
||||
<div class="online-edit-wrapper">
|
||||
<p>{{ $t('enterpriseStandard') }}</p>
|
||||
<a-button type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-if="!disabled" type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-else type="primary" @click="onlineEditView">{{ $t('view') }}</a-button>
|
||||
</div>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -128,7 +129,7 @@ export default {
|
||||
slots: { title: 'customTitleHandlingSuggestion' },
|
||||
customRender: (text, row, index) => {
|
||||
const obj = {
|
||||
children: <a-select v-model={row.handleAdvice}
|
||||
children: <a-select v-model={row.handleAdvice} disabled={this.disabled}
|
||||
placeholder={this.$t('pleaseSelect')} class={'handle-suggest-select'}
|
||||
options={this.handlingSuggestionOption}
|
||||
/>,
|
||||
@@ -144,7 +145,7 @@ export default {
|
||||
dataIndex: 'reason',
|
||||
customRender: (text, row, index) => {
|
||||
const obj = {
|
||||
children: <a-input v-model={row.reason} maxLength={50}
|
||||
children: <a-input v-model={row.reason} maxLength={50} disabled={this.disabled}
|
||||
title={row.reason} placeholder={this.$t('pleaseEnter')}
|
||||
onChange={ e => {
|
||||
e.target.value = e.target.value.trim()
|
||||
@@ -292,6 +293,10 @@ export default {
|
||||
} else {
|
||||
onlineEditor(params, this.onEditFile)
|
||||
}
|
||||
},
|
||||
// 在线编辑的查看
|
||||
onlineEditView () {
|
||||
this.$emit('onlineEditView', this.onEditFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
-4
@@ -38,7 +38,8 @@
|
||||
<a-form-model-item class="item-model">
|
||||
<div class="online-edit-wrapper">
|
||||
<p>{{ $t('enterpriseStandard') }}</p>
|
||||
<a-button type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-if="!disabled" type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-else type="primary" @click="onlineEditView">{{ $t('view') }}</a-button>
|
||||
</div>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -109,7 +110,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="inspectFlag">
|
||||
<a-radio-group v-model="formInline.inspectFlag">
|
||||
<a-radio-group v-model="formInline.inspectFlag" :disabled="disabled">
|
||||
<a-radio value="1">
|
||||
{{ $t('yes') }}
|
||||
</a-radio>
|
||||
@@ -321,8 +322,7 @@ export default {
|
||||
width: 200,
|
||||
dataIndex: 'rectificationDepartment',
|
||||
customRender: (value, row, index) => {
|
||||
return <j-select-depart v-model={row.rectificationDepartment}
|
||||
backDepart={true} />
|
||||
return <j-select-depart v-model={row.rectificationDepartment} disabled={this.disabled} backDepart={true} />
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -541,6 +541,10 @@ export default {
|
||||
} else {
|
||||
onlineEditor(params, this.onEditFile)
|
||||
}
|
||||
},
|
||||
// 在线编辑的查看
|
||||
onlineEditView () {
|
||||
this.$emit('onlineEditView', this.onEditFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-1
@@ -48,7 +48,8 @@
|
||||
<a-form-model-item class="item-model">
|
||||
<div class="online-edit-wrapper">
|
||||
<p>{{ $t('enterpriseStandard') }}</p>
|
||||
<a-button type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-if="!disabled" type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-else type="primary" @click="onlineEditView">{{ $t('view') }}</a-button>
|
||||
</div>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -184,6 +185,10 @@ export default {
|
||||
} else {
|
||||
onlineEditor(params, this.onEditFile)
|
||||
}
|
||||
},
|
||||
// 在线编辑的查看
|
||||
onlineEditView () {
|
||||
this.$emit('onlineEditView', this.onEditFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
<a-form-model-item class="item-model">
|
||||
<div class="online-edit-wrapper">
|
||||
<p>{{ $t('enterpriseStandard') }}</p>
|
||||
<a-button type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-if="!disabled" type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-else type="primary" @click="onlineEditView">{{ $t('view') }}</a-button>
|
||||
</div>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -242,6 +243,10 @@ export default {
|
||||
// false表示保存后不返回
|
||||
this.$emit('save', false)
|
||||
}
|
||||
},
|
||||
// 在线编辑的查看
|
||||
onlineEditView () {
|
||||
this.$emit('onlineEditView', this.onEditFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-1
@@ -156,7 +156,8 @@
|
||||
<a-form-model-item class="item-model">
|
||||
<div class="online-edit-wrapper">
|
||||
<p>{{ $t('enterpriseStandard') }}</p>
|
||||
<a-button type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-if="!disabled" type="primary" @click="toOnlineEditor">{{ $t('workCenter.enStandardRevision.onLineEditing') }}</a-button>
|
||||
<a-button v-else type="primary" @click="onlineEditView">{{ $t('view') }}</a-button>
|
||||
</div>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -392,6 +393,10 @@ export default {
|
||||
} else {
|
||||
onlineEditor(params, this.onEditFile)
|
||||
}
|
||||
},
|
||||
// 在线编辑的查看
|
||||
onlineEditView () {
|
||||
this.$emit('onlineEditView', this.onEditFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -46,6 +46,8 @@ export default {
|
||||
getData () {
|
||||
const data = {}
|
||||
data.businessJson = JSON.stringify(this.$refs.baseInfoForm.getData())
|
||||
// 在线编辑文件id
|
||||
data.onEditFile = this.onEditFile
|
||||
return data
|
||||
},
|
||||
// 在线编辑的查看
|
||||
|
||||
+2
-1
@@ -40,7 +40,6 @@
|
||||
<a v-if="record.operateType !== '1'"
|
||||
@click="handleUploadStandard(record)"
|
||||
class="table-ope-btn"
|
||||
:disabled="disabled"
|
||||
>
|
||||
{{ $t('workCenter.enStandardRevision.uploadStandard') }}
|
||||
</a>
|
||||
@@ -160,6 +159,8 @@ export default {
|
||||
const data = {}
|
||||
data.otherDraftUserVOS = this.dataSource
|
||||
data.businessJson = JSON.stringify(this.$refs.baseInfoForm.getData())
|
||||
// 在线编辑文件id
|
||||
data.onEditFile = this.onEditFile
|
||||
return data
|
||||
},
|
||||
// 外层获取数据要过校验,返回false表示没有通过校验
|
||||
|
||||
@@ -178,6 +178,13 @@ const fixDataSourse = [
|
||||
export default {
|
||||
name: 'ScorerMarkBaseInfo',
|
||||
components: { BaseInfoForm },
|
||||
props: {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
columns: [
|
||||
@@ -267,7 +274,7 @@ export default {
|
||||
const obj = {
|
||||
children: <a-input-number v-model={this.dataSource[index].evaluateScore}
|
||||
min={this.dataSource[index].min} max={this.dataSource[index].max} precision={0}
|
||||
title={this.dataSource[index].evaluateScore + ''} placeholder={'请输入'}
|
||||
title={this.dataSource[index].evaluateScore + ''} placeholder={'请输入'} disabled={this.disabled}
|
||||
/>,
|
||||
// children: <a-input v-model={this.dataSource[index].evaluateScore} maxLength={50}
|
||||
// title={this.dataSource[index].evaluateScore} placeholder={'请输入'}
|
||||
@@ -305,7 +312,7 @@ export default {
|
||||
// } }
|
||||
// />,
|
||||
children: <a-textarea v-model={this.dataSource[index].deductionScoreReason} maxLength={500}
|
||||
title={this.dataSource[index].deductionScoreReason} placeholder={'请输入'}
|
||||
title={this.dataSource[index].deductionScoreReason} placeholder={'请输入'} disabled={this.disabled}
|
||||
/>,
|
||||
attrs: {}
|
||||
}
|
||||
@@ -377,6 +384,8 @@ export default {
|
||||
}
|
||||
data.reviewMeetingDetails = arr
|
||||
data.businessJson = JSON.stringify(this.$refs.baseInfoForm.getData())
|
||||
// 在线编辑文件id
|
||||
data.onEditFile = this.onEditFile
|
||||
return data
|
||||
},
|
||||
// 外层获取数据要过校验,返回false表示没有通过校验
|
||||
|
||||
+3
-1
@@ -26,7 +26,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="reviewMeetingFlag">
|
||||
<a-radio-group v-model="formInline.reviewMeetingFlag" @change="reviewMeetingFlagChange" :defaultValue="1">
|
||||
<a-radio-group v-model="formInline.reviewMeetingFlag" @change="reviewMeetingFlagChange" :defaultValue="1" :disabled="disabled">
|
||||
<a-radio value="1">
|
||||
{{ $t('yes') }}
|
||||
</a-radio>
|
||||
@@ -195,6 +195,8 @@ export default {
|
||||
getData () {
|
||||
// 把数据抛出,在线编辑不知道要不要抛
|
||||
const data = Object.assign({}, this.formInline)
|
||||
// 在线编辑文件id
|
||||
data.onEditFile = this.onEditFile
|
||||
return data
|
||||
},
|
||||
// 外层获取数据要过校验,返回false表示没有通过校验
|
||||
|
||||
+127
-43
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@click="switchChange('base')">{{ $t('basicInformation') }}
|
||||
@@ -31,7 +31,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')" :colon="formItemColon">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -42,7 +42,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -52,7 +52,7 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 节点1、发起人发起 -->
|
||||
<base-info-form v-if="currentNode === 1" ref="baseInfoRef" @processNameChange="processNameChange"></base-info-form>
|
||||
<base-info-form v-if="currentNode === 1" ref="baseInfoRef" :disabled="isLook" @processNameChange="processNameChange"></base-info-form>
|
||||
<!-- 节点2、相关人员会签 -->
|
||||
<!-- 节点3、起草人和会签人主管级领导审批 -->
|
||||
<!-- 节点4、标准化审批 -->
|
||||
@@ -66,11 +66,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['commitText', validatorRules.commitText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -81,7 +82,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
<!-- 操作按钮 -->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="currentNode === 1">
|
||||
<!-- 保存 -->
|
||||
@@ -119,11 +120,13 @@ import {
|
||||
enStandardSealSaveTurnTo,
|
||||
enStandardSealSaveAgree,
|
||||
enStandardSealSaveReject,
|
||||
enStandardSealSaveGetDataDraft
|
||||
enStandardSealSaveGetDataDraft,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '@/api/workCenter'
|
||||
import BaseInfoForm from './modules/BaseInfoForm'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import { ProcessKey, EsSealSaveNodes } from '@/enums/commonEnums'
|
||||
import { ProcessKey, EsSealSaveNodes, ProcessType } from '@/enums/commonEnums'
|
||||
|
||||
export default {
|
||||
name: 'EnterpriseStandardSealSaveFlow',
|
||||
@@ -175,13 +178,22 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.getProcessData('look', { snapshotId: this.$route.query.snapshotId })
|
||||
} else {
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
}
|
||||
}
|
||||
if (this.$route.query.taskName) {
|
||||
// 说明是已发起流程
|
||||
@@ -238,7 +250,8 @@ export default {
|
||||
url: {
|
||||
list: '' // 人员信息的右侧表格获取接口
|
||||
},
|
||||
onlySelectFromFlowStation: [EsSealSaveNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
|
||||
onlySelectFromFlowStation: [EsSealSaveNodes.standardizationApproval.value], // 只能在标准与流程所里选人的节点
|
||||
isLook: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -250,6 +263,9 @@ export default {
|
||||
if (type === 'todo') {
|
||||
func = enStandardSealSaveGetDataById
|
||||
params = param.taskId
|
||||
} else if (type === 'look') {
|
||||
func = getLookData
|
||||
params = param
|
||||
} else {
|
||||
func = enStandardSealSaveGetDataDraft
|
||||
params = param
|
||||
@@ -362,6 +378,52 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取快照json
|
||||
getParamJsonStr () {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: baseInfo.formInline,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
return infoJsonStr
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: baseInfo.formInline,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.ES_ARCHIVE.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 节点一时候的提交
|
||||
handleStart () {
|
||||
if (this.loading) return
|
||||
@@ -393,16 +455,32 @@ export default {
|
||||
paramObj.common.taskId = this.$route.query.taskId
|
||||
} else {
|
||||
func = enStandardSealSaveApproval
|
||||
// 快照JSON
|
||||
paramObj.common.infoJsonStr = this.getParamJsonStr()
|
||||
}
|
||||
if (this.$route.query.taskId) {
|
||||
this.saveParamJsonStr(() => {
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
}
|
||||
@@ -448,14 +526,17 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardSealSaveAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardSealSaveAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -475,16 +556,19 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardSealSaveReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardSealSaveReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
+128
-43
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@click="switchChange('base')">{{ $t('basicInformation') }}
|
||||
@@ -31,7 +31,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')" :colon="formItemColon">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -42,7 +42,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -52,7 +52,7 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 节点1、发起人发起 -->
|
||||
<base-info-form v-if="currentNode === 1" ref="baseInfoRef" @processNameChange="processNameChange"></base-info-form>
|
||||
<base-info-form v-if="currentNode === 1" ref="baseInfoRef" :disabled="isLook" @processNameChange="processNameChange"></base-info-form>
|
||||
<!-- 节点2、相关人员会签 -->
|
||||
<!-- 节点3、起草人和会签人主管级领导审批 -->
|
||||
<!-- 节点4、标准化审批 -->
|
||||
@@ -66,11 +66,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['commitText', validatorRules.commitText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -81,7 +82,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
<!-- 操作按钮 -->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="currentNode === 1">
|
||||
<!-- 保存 -->
|
||||
@@ -119,11 +120,13 @@ import {
|
||||
enStandardStartUseApproval,
|
||||
enStandardStartUseTurnTo,
|
||||
enStandardStartUseAgree,
|
||||
enStandardStartUseReject
|
||||
enStandardStartUseReject,
|
||||
getLookData,
|
||||
saveSnapShot
|
||||
} from '@/api/workCenter'
|
||||
import BaseInfoForm from './modules/BaseInfoForm'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import { ProcessKey, EsStartUseNodes } from '@/enums/commonEnums'
|
||||
import { ProcessKey, EsStartUseNodes, ProcessType } from '@/enums/commonEnums'
|
||||
|
||||
export default {
|
||||
name: 'EnterpriseStandardStartUseFlow',
|
||||
@@ -175,13 +178,22 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.getProcessData('look', { snapshotId: this.$route.query.snapshotId })
|
||||
} else {
|
||||
if (this.$route.query.taskId && !this.$route.query.draftId) {
|
||||
// 有流程id说明是从流程中心来的,需要初始化数据
|
||||
this.getProcessData('todo', { taskId: this.$route.query.taskId })
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
// 有草稿id,说明是从流程中心-草稿来的,需要初始化数据
|
||||
this.getProcessData('draft', { draftId: this.$route.query.draftId, projectId: this.$route.query.projectId })
|
||||
}
|
||||
}
|
||||
if (this.$route.query.taskName) {
|
||||
// 说明是已发起流程
|
||||
@@ -238,7 +250,8 @@ export default {
|
||||
url: {
|
||||
list: '' // 人员信息的右侧表格获取接口
|
||||
},
|
||||
onlySelectFromFlowStation: [EsStartUseNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
|
||||
onlySelectFromFlowStation: [EsStartUseNodes.standardizationApproval.value], // 只能在标准与流程所里选人的节点
|
||||
isLook: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -250,6 +263,9 @@ export default {
|
||||
if (type === 'todo') {
|
||||
func = enStandardStartUseGetDataById
|
||||
params = param.taskId
|
||||
} else if (type === 'look') {
|
||||
func = getLookData
|
||||
params = param
|
||||
} else {
|
||||
func = enStandardStartUseGetDataDraft
|
||||
params = param
|
||||
@@ -360,6 +376,52 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取快照json
|
||||
getParamJsonStr () {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: baseInfo.formInline,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
return infoJsonStr
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
// 业务基本信息
|
||||
const baseInfo = this.$refs.baseInfoRef.getData()
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify({
|
||||
basicProcessInfoDTO: processInfoForm,
|
||||
basicTaskInfoDTO: approvalInfoForm,
|
||||
data: baseInfo.formInline,
|
||||
personnelObj: personnelObj
|
||||
})
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.ES_ENABLE.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 节点一时候的提交
|
||||
handleStart () {
|
||||
if (this.loading) return
|
||||
@@ -391,16 +453,33 @@ export default {
|
||||
paramObj.common.taskId = this.$route.query.taskId
|
||||
} else {
|
||||
func = enStandardStartUseApproval
|
||||
// 快照JSON
|
||||
paramObj.common.infoJsonStr = this.getParamJsonStr()
|
||||
}
|
||||
if (this.$route.query.taskId) {
|
||||
// 先保存快照再提交
|
||||
this.saveParamJsonStr(() => {
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
func(paramObj).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.switchValue = 'base'
|
||||
}
|
||||
@@ -446,14 +525,17 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardStartUseAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardStartUseAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -473,16 +555,19 @@ export default {
|
||||
const param = {}
|
||||
param.common = Object.assign({}, values)
|
||||
param.common.taskId = this.$route.query.taskId
|
||||
enStandardStartUseReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
enStandardStartUseReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.validatorRules.commitText.rules[0].required = false
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
+100
-20
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!disabled">
|
||||
<div class="table-operator-tab">
|
||||
<!-- 基础信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -55,7 +55,7 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 流程表格 -->
|
||||
<extension-request-table ref="extensionRequestTable" :current-node="currentNode" :project-id="projectId"/>
|
||||
<extension-request-table ref="extensionRequestTable" :current-node="currentNode" :project-id="projectId" :disabled="disabled"/>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -65,11 +65,12 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
v-decorator="['commitText', validatorRules.remarks]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="disabled" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -82,7 +83,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div class="detail-page-bottom-operate-box" v-if="!disabled">
|
||||
<!--转办-->
|
||||
<a-button v-if="btn.includes('transfer')" type="primary" :loading="loading" @click="handleTurnTo" ghost icon="arrow-up">{{ $t('turnTo') }}</a-button>
|
||||
<!--保存-->
|
||||
@@ -106,14 +107,14 @@ import PersonnelInfo from '@comp/PersonnelInfo'
|
||||
import ProcessDetailList from '@comp/ProcessDetailList'
|
||||
import ExtensionRequestTable from '@views/workCenter/inspectionExtensionRequestProcess/modules/ExtensionRequestTable'
|
||||
import UserSelectModal from '@comp/selection/UserSelectModal'
|
||||
import { ApprovalOpinions, InspectionExtensionRequestProcess, ProcessKey } from '@/enums/commonEnums'
|
||||
import { ApprovalOpinions, InspectionExtensionRequestProcess, ProcessKey, ProcessType } from '@/enums/commonEnums'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import {
|
||||
approvalInspectExtension,
|
||||
getInspectExtensionDetail,
|
||||
getInspectExtensionProjectId,
|
||||
getInspectExtensionProjectId, getLookData,
|
||||
rejectInspectExtension,
|
||||
saveInspectExtension,
|
||||
saveInspectExtension, saveSnapShot,
|
||||
startInspectExtension,
|
||||
transferInspectExtension
|
||||
} from '@api/workCenter'
|
||||
@@ -127,7 +128,7 @@ export default {
|
||||
return {
|
||||
loading: false,
|
||||
switchValue: 'base',
|
||||
disabled: false,
|
||||
disabled: false, // 全部禁用
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 4 }
|
||||
@@ -195,7 +196,8 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
const { projectId, nodeId, taskName } = this.$route.query
|
||||
const { projectId, nodeId, taskName, isLook } = this.$route.query
|
||||
this.disabled = isLook === '1'
|
||||
// 发起、草稿进来没有nodeId,就默认发起节点
|
||||
this.currentNode = nodeId || InspectionExtensionRequestProcess.initiate.value
|
||||
this.currentNodeName = taskName || InspectionExtensionRequestProcess.initiate.text
|
||||
@@ -206,6 +208,11 @@ export default {
|
||||
// 同意按钮
|
||||
this.btn = ['agree']
|
||||
}
|
||||
// 快照回显
|
||||
if (this.$route.query.snapshotId) {
|
||||
this.loadSnapshotPage()
|
||||
return
|
||||
}
|
||||
// 查询人员信息
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
this.initPersonInfoData(this.isInitiate)
|
||||
@@ -339,6 +346,8 @@ export default {
|
||||
// 保存清空校验
|
||||
this.approvalInfoForm.validateFields(['commitText'], { force: true }, () => {})
|
||||
}
|
||||
// 保存一下所有表单收集的数据用于快照回显
|
||||
params.formDataList = formDataList
|
||||
// 收集人员信息
|
||||
const personInfo = this.getPersonInfo(isValidate && !flag)
|
||||
if (!personInfo) {
|
||||
@@ -368,7 +377,9 @@ export default {
|
||||
// 人员信息(要重新获取,流程里的信息不能直接用,后端需要多选人员处理成数组了)
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 业务表格数据,用于强制撤回后回显
|
||||
draftData: params.processEsInspectDelayApplyList
|
||||
draftData: params.processEsInspectDelayApplyList,
|
||||
// 将流程数据保存json,后续进行快照回显
|
||||
prcData: params
|
||||
})
|
||||
}
|
||||
|
||||
@@ -378,6 +389,61 @@ export default {
|
||||
}
|
||||
return params
|
||||
},
|
||||
/**
|
||||
* 保存快照信息
|
||||
*/
|
||||
saveSnapShotInfo (prcParams) {
|
||||
// 没有taskId就不保存
|
||||
if (!this.$route.query.taskId) {
|
||||
return Promise.resolve({ success: true })
|
||||
}
|
||||
const { processAll = {}, processApprovalRecord = {} } = prcParams
|
||||
const params = Object.assign({}, {
|
||||
taskId: this.$route.query.taskId,
|
||||
pcrType: ProcessType.INSPECTION_EXTENSION_REQUEST_PROCESS.value,
|
||||
// 流程信息
|
||||
prcName: processAll.prcName,
|
||||
processDueDate: processAll.dueTime,
|
||||
processDescription: processAll.prcMes,
|
||||
// 流程审批信息
|
||||
handleText: processApprovalRecord.commitText,
|
||||
handleFile: processApprovalRecord.commitFile,
|
||||
// 流程json字符串存储全部信息
|
||||
infoJsonStr: JSON.stringify({
|
||||
// 人员信息
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 流程信息
|
||||
prcData: prcParams
|
||||
})
|
||||
})
|
||||
return saveSnapShot(params)
|
||||
},
|
||||
// 回显快照页面
|
||||
loadSnapshotPage () {
|
||||
const { snapshotId } = this.$route.query
|
||||
if (!snapshotId) {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
getLookData({ snapshotId }).then(res => {
|
||||
const result = res.result || {}
|
||||
const jsonData = JSON.parse(result.infoJsonStr || '{}')
|
||||
const prcData = jsonData.prcData || {}
|
||||
this.info = prcData
|
||||
this.$refs.extensionRequestTable.setData(prcData.processEsInspectDelayApplyList || [])
|
||||
this.processInfoForm && this.processInfoForm.setFieldsValue({
|
||||
prcName: prcData.processAll.prcName,
|
||||
dueTime: prcData.processAll.dueTime,
|
||||
prcMes: prcData.processAll.prcMes
|
||||
})
|
||||
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
|
||||
commitText: prcData.processApprovalRecord.commitText,
|
||||
commitFile: prcData.processApprovalRecord.commitFile
|
||||
})
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办弹框
|
||||
*/
|
||||
@@ -487,19 +553,26 @@ export default {
|
||||
handleAgree (isSubmitBtn) {
|
||||
if (this.loading) return
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
this.getPageParams().then(params => {
|
||||
// 同意和提交一直传true
|
||||
res.map.pass = true
|
||||
params.map.pass = true
|
||||
// 不是提交按钮
|
||||
if (isSubmitBtn !== true) {
|
||||
// 没有填写注释,就默认同意
|
||||
if (!res.processApprovalRecord.commitText) {
|
||||
res.processApprovalRecord.commitText = '同意'
|
||||
if (!params.processApprovalRecord.commitText) {
|
||||
params.processApprovalRecord.commitText = '同意'
|
||||
}
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
}
|
||||
return approvalInspectExtension(res)
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return approvalInspectExtension(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
@@ -538,11 +611,18 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
res.map.pass = false
|
||||
this.getPageParams().then(params => {
|
||||
params.map.pass = false
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
return rejectInspectExtension(res)
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return rejectInspectExtension(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
|
||||
+10
-3
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="table-operator" v-if="isInitiate">
|
||||
<div class="table-operator" v-if="isInitiate && !disabled">
|
||||
<!-- 新增 -->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
</div>
|
||||
@@ -35,6 +35,7 @@
|
||||
v-model="record.liaisons"
|
||||
:name-str="record.liaisons_dictText"
|
||||
:showBtn="false"
|
||||
:disabled="disabled"
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.incExtensionRequest.inspectionContactPerson')"
|
||||
@nameChange="nameChange($event, record)" />
|
||||
</div>
|
||||
@@ -48,9 +49,9 @@
|
||||
<!-- 操作 -->
|
||||
<template slot="action" slot-scope="{text, record, index}">
|
||||
<!-- 节点1,显示申请延期和删除,后续不显示操作列 -->
|
||||
<a @click="handleRequestExtension(record, index)" >{{ $t('workCenter.incExtensionRequest.requestExtension') }}</a>
|
||||
<a @click="handleRequestExtension(record, index)" :disabled="disabled">{{ $t('workCenter.incExtensionRequest.requestExtension') }}</a>
|
||||
<a-divider type="vertical" />
|
||||
<a @click="handleDelete(index)" >{{ $t('delete') }}</a>
|
||||
<a @click="handleDelete(index)" :disabled="disabled">{{ $t('delete') }}</a>
|
||||
</template>
|
||||
</j-table>
|
||||
</div>
|
||||
@@ -75,6 +76,12 @@ export default {
|
||||
components: { UserSelectByContact, RequestExtensionModal, ExtensionRequestTableModal, JTable },
|
||||
mixins: [JeroListMixin],
|
||||
props: {
|
||||
// 禁用
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: false
|
||||
},
|
||||
// 当前节点
|
||||
currentNode: {
|
||||
type: String,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -25,7 +25,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
:maxLength="50"
|
||||
:disabled="disabledProcessInfo"
|
||||
:disabled="disabledProcessInfo || isLook"
|
||||
v-decorator="['processName', validatorRules.processName]" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -38,7 +38,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="disabledProcessInfo"
|
||||
:disabled="disabledProcessInfo || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -48,7 +48,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="disabledProcessInfo"
|
||||
:disabled="disabledProcessInfo || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -62,7 +62,7 @@
|
||||
<div class="form-flex-item custom-flex-form-item">
|
||||
<a-form-item :label="$t('projectLibrary.vehicleItemLibrary.standardNumberStandardName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('projectLibrary.vehicleItemLibrary.standardNumberStandardName')"
|
||||
:maxLength="50"
|
||||
:maxLength="50" :disabled="isLook"
|
||||
v-decorator="['standardNumberOrName', validatorRules.standardNumberOrName]" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
@@ -73,6 +73,7 @@
|
||||
v-decorator="['projectId']"
|
||||
show-search
|
||||
allowClear
|
||||
:disabled="isLook"
|
||||
:filter-option="filterOption">
|
||||
<a-select-option v-for="item in projectSelectOptions" :key="item.id">{{ item.projectName }}</a-select-option>
|
||||
</a-select>
|
||||
@@ -82,6 +83,7 @@
|
||||
<div class="form-flex-item custom-flex-form-item">
|
||||
<a-form-item :label="$t('workCenter.standardConsultationProcess.designEngineer')">
|
||||
<user-selection v-decorator="['engineerId', validatorRules.engineerId]"
|
||||
:disabled="isLook"
|
||||
:name-str="businessInfo.engineerId_dictText"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
|
||||
@nameChange="handleDesignEngineerNameChange" />
|
||||
@@ -89,7 +91,7 @@
|
||||
</div>
|
||||
|
||||
<!--按条件查询-->
|
||||
<a-button type="primary" class="form-search-btn" @click="selectStandard">
|
||||
<a-button type="primary" class="form-search-btn" @click="selectStandard" :disabled="isLook">
|
||||
{{ $t('workCenter.noMatchTracking.queryByCondition') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -104,7 +106,7 @@
|
||||
:pagination="false"
|
||||
:scroll="{x: '100%'}"
|
||||
:extra-form="extraForm"
|
||||
:all-disabled="expandTableDisabled">
|
||||
:all-disabled="expandTableDisabled || isLook">
|
||||
<!--跳转标准详情-->
|
||||
<template v-slot:detail="{text, record}">
|
||||
<a-tooltip overlay-class-name="tooltip-style">
|
||||
@@ -124,11 +126,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -143,7 +146,7 @@
|
||||
</div>
|
||||
|
||||
<!--底部按钮-->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办 审批节点存在-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -178,7 +181,12 @@ import PersonnelInfo from '../../../components/PersonnelInfo'
|
||||
import InternalDetailPage from '../../../components/InternalDetailPage'
|
||||
import ProcessDetailList from '../../../components/ProcessDetailList'
|
||||
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
|
||||
import { ProcessKey, NoMatchTrackingNodes, StandardSource } from '../../../enums/commonEnums'
|
||||
import {
|
||||
ProcessKey,
|
||||
NoMatchTrackingNodes,
|
||||
StandardSource,
|
||||
ProcessType
|
||||
} from '../../../enums/commonEnums'
|
||||
import UserSelection from '../../../components/selection/UserSelection'
|
||||
import NoMatchItemSelectDrawer from './modules/NoMatchItemSelectDrawer'
|
||||
import { getCarTypeProjectList } from '../../../api/projectLibraryApi'
|
||||
@@ -186,7 +194,12 @@ import {
|
||||
saveNoMatchTrackingProcess,
|
||||
queryNoMatchTrackingProcess,
|
||||
initialNoMatchTrackingProcess,
|
||||
submitNoMatchTrackingProcess, processTransfer, agreeNoMatchTrackingProcess, rejectNoMatchTrackingProcess
|
||||
submitNoMatchTrackingProcess,
|
||||
processTransfer,
|
||||
agreeNoMatchTrackingProcess,
|
||||
rejectNoMatchTrackingProcess,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '../../../api/workCenter'
|
||||
import { cloneDeep } from 'lodash'
|
||||
import UserSelectModal from '../../../components/selection/UserSelectModal'
|
||||
@@ -348,7 +361,8 @@ export default {
|
||||
]
|
||||
},
|
||||
projectSelectOptions: [], // 项目下拉数据
|
||||
disabledBtnClick: false
|
||||
disabledBtnClick: false,
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -377,19 +391,30 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getPersonInfoStructure(ProcessKey.NO_MATCH_TRACKING.value, () => {
|
||||
this.initDict()
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || NoMatchTrackingNodes.initial.value
|
||||
this.initPersonInfoData(this.currentNode === NoMatchTrackingNodes.initial.value)
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.currentNode = NoMatchTrackingNodes.initial.value
|
||||
this.initPersonInfoData(this.currentNode === NoMatchTrackingNodes.initial.value)
|
||||
}
|
||||
// 如果节点不是固定节点,就默认显示审批节点的信息
|
||||
this.btnList = NoMatchTrackingNodes.propertyOfValue('btn', this.currentNode) || NoMatchTrackingNodes.regulatoryEngineer.btn
|
||||
})
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.getPersonInfoStructure(ProcessKey.NO_MATCH_TRACKING.value, () => {
|
||||
this.initDict()
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || NoMatchTrackingNodes.initial.value
|
||||
this.initPersonInfoData(this.currentNode === NoMatchTrackingNodes.initial.value)
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.currentNode = NoMatchTrackingNodes.initial.value
|
||||
this.initPersonInfoData(this.currentNode === NoMatchTrackingNodes.initial.value)
|
||||
}
|
||||
// 如果节点不是固定节点,就默认显示审批节点的信息
|
||||
this.btnList = NoMatchTrackingNodes.propertyOfValue('btn', this.currentNode) || NoMatchTrackingNodes.regulatoryEngineer.btn
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
@@ -409,15 +434,23 @@ export default {
|
||||
*/
|
||||
initProcessInfo () {
|
||||
this.loading = true
|
||||
const params = {
|
||||
taskId: this.$route.query.taskId
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
params.draftId = this.$route.query.draftId
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params.processInstanceId = this.$route.query.processInstanceId
|
||||
params = {
|
||||
taskId: this.$route.query.taskId
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
params.draftId = this.$route.query.draftId
|
||||
} else {
|
||||
params.processInstanceId = this.$route.query.processInstanceId
|
||||
}
|
||||
func = queryNoMatchTrackingProcess
|
||||
}
|
||||
queryNoMatchTrackingProcess(params).then(res => {
|
||||
func(params).then(res => {
|
||||
if (res.success) {
|
||||
const { result = {} } = res
|
||||
// 草稿从json里取得
|
||||
@@ -497,6 +530,26 @@ export default {
|
||||
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
)
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify(this.dealSaveJsonData())
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.NO_MATCH_TRACKING.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办
|
||||
*/
|
||||
@@ -654,17 +707,34 @@ export default {
|
||||
} else {
|
||||
submitFunc = submitNoMatchTrackingProcess
|
||||
}
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
if (this.currentNode === NoMatchTrackingNodes.initial.value && (!this.$route.query.processInstanceId || this.$route.query.draftId)) {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 同意
|
||||
@@ -684,16 +754,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
agreeNoMatchTrackingProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeNoMatchTrackingProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -712,16 +785,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
rejectNoMatchTrackingProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectNoMatchTrackingProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
handleDesignEngineerNameChange (name) {
|
||||
|
||||
+126
-26
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!disabledAll">
|
||||
<div class="table-operator-tab">
|
||||
<!-- 基础信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -25,7 +25,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
:maxLength="50"
|
||||
:disabled="disabled || processDisabled"
|
||||
:disabled="disabled || processDisabled || disabledAll"
|
||||
v-decorator="['prcName', validatorRules.processName]" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -34,7 +34,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled || processDisabled"
|
||||
:disabled="disabled || processDisabled || disabledAll"
|
||||
value-format="YYYY-MM-DD hh:mm:ss"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -45,7 +45,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled || processDisabled"
|
||||
:disabled="disabled || processDisabled || disabledAll"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -56,7 +56,7 @@
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
|
||||
<!-- 标准表格 -->
|
||||
<base-info-table v-if="isInitiate" ref="baseInfoTable" :info="info" style="margin-bottom: 40px;"></base-info-table>
|
||||
<base-info-table v-if="isInitiate" ref="baseInfoTable" :info="info" style="margin-bottom: 40px;" :disabled-all="disabledAll"></base-info-table>
|
||||
<!-- 表单 -->
|
||||
<a-form :form="baseInfoForm">
|
||||
<a-row>
|
||||
@@ -66,7 +66,7 @@
|
||||
<a-form-item :labelCol="labelColBaseInfo" :wrapperCol="wrapperColBaseInfo" :label="$t('workCenter.permissionApplicationProcess.applicant')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('workCenter.permissionApplicationProcess.applicant')"
|
||||
:maxLength="50"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || disabledAll"
|
||||
v-decorator="['userDictText', validatorRules.applicant]" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -74,7 +74,7 @@
|
||||
<a-col :span="24">
|
||||
<!-- 申请权限 -->
|
||||
<a-form-item :labelCol="longLabelColBaseInfo" :wrapperCol="longWrapperColBaseInfo" :label="$t('workCenter.permissionApplicationProcess.applyForPermission')">
|
||||
<base-info-table v-if="!isInitiate" :disabled="!isInitiate" ref="applyPermissionTable"></base-info-table>
|
||||
<base-info-table v-if="!isInitiate" :disabled="!isInitiate" :disabled-all="disabledAll" ref="applyPermissionTable"></base-info-table>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
<a-col :span="12">
|
||||
<!-- 授权到期日期 -->
|
||||
<a-form-item :labelCol="labelColBaseInfo" :wrapperCol="wrapperColBaseInfo" :label="$t('workCenter.permissionApplicationProcess.authExpirationDate')">
|
||||
<j-date date-format="YYYY-MM-DD" style="width: 100%" showType="day" :disabled="disabled" :disabled-date="expirationDisabledDate"
|
||||
<j-date date-format="YYYY-MM-DD" style="width: 100%" showType="day" :disabled="disabled || disabledAll" :disabled-date="expirationDisabledDate"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.permissionApplicationProcess.authExpirationDate')"
|
||||
v-decorator="['expirationDate', validatorRules.authExpirationDate]" />
|
||||
</a-form-item>
|
||||
@@ -94,7 +94,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseSelect') + $t('workCenter.permissionApplicationProcess.applicationDescription')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || disabledAll"
|
||||
v-decorator="['applyDetail', validatorRules.applicationDescription]" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -107,12 +107,13 @@
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('remarks')">
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:disabled="disabledAll"
|
||||
:rows="4"
|
||||
v-decorator="['commitText', validatorRules.remarks]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="disabledAll" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -126,7 +127,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div class="detail-page-bottom-operate-box" v-if="!disabledAll">
|
||||
<!--转办-->
|
||||
<a-button v-if="btn.includes('transfer')" type="primary" :loading="loading" @click="handleTurnTo" ghost icon="arrow-up">{{ $t('turnTo') }}</a-button>
|
||||
<!--保存-->
|
||||
@@ -152,12 +153,12 @@ import PersonnelInfo from '@comp/PersonnelInfo'
|
||||
import BaseInfoTable from '@views/workCenter/permissionApplicationProcess/modules/BaseInfoTable'
|
||||
import UserSelectModal from '@comp/selection/UserSelectModal'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import { ApprovalOpinions, PermissionApply, ProcessKey } from '@/enums/commonEnums'
|
||||
import { ApprovalOpinions, PermissionApply, ProcessKey, ProcessType } from '@/enums/commonEnums'
|
||||
import {
|
||||
approvalPermissionApply, checkPermissionApply, getPermissionApplyDataById,
|
||||
approvalPermissionApply, checkPermissionApply, getLookData, getPermissionApplyDataById,
|
||||
getPermissionApplyDetail,
|
||||
getPermissionApplyProjectId, rejectPermissionApply,
|
||||
savePermissionApply, startPermissionApply,
|
||||
savePermissionApply, saveSnapShot, startPermissionApply,
|
||||
transferPermissionApply
|
||||
} from '@api/workCenter'
|
||||
import { cloneDeep } from 'lodash'
|
||||
@@ -172,6 +173,7 @@ export default {
|
||||
return {
|
||||
loading: false,
|
||||
switchValue: 'base',
|
||||
disabledAll: false, // 禁用全部
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 4 }
|
||||
@@ -271,7 +273,8 @@ export default {
|
||||
// standardApproval
|
||||
},
|
||||
created () {
|
||||
const { projectId, nodeId, taskName } = this.$route.query
|
||||
const { projectId, nodeId, taskName, isLook } = this.$route.query
|
||||
this.disabledAll = isLook === '1'
|
||||
// 发起、草稿进来没有nodeId,就默认发起节点
|
||||
this.currentNode = nodeId || PermissionApply.initiate.value
|
||||
this.currentNodeName = taskName || PermissionApply.initiate.text
|
||||
@@ -282,6 +285,11 @@ export default {
|
||||
// 同意按钮
|
||||
this.btn = ['agree']
|
||||
}
|
||||
// 快照回显
|
||||
if (this.$route.query.snapshotId) {
|
||||
this.loadSnapshotPage()
|
||||
return
|
||||
}
|
||||
// 查询人员信息
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
this.initPersonInfoData(this.isInitiate)
|
||||
@@ -457,6 +465,12 @@ export default {
|
||||
}
|
||||
}
|
||||
const params = {}
|
||||
if (this.$refs.baseInfoTable) {
|
||||
params.lawsEnterpriseStandardList = this.$refs.baseInfoTable.dataSource || []
|
||||
}
|
||||
if (this.$refs.applyPermissionTable) {
|
||||
params.lawsEnterpriseStandardList = this.$refs.applyPermissionTable.dataSource || []
|
||||
}
|
||||
// 收集所有表单信息
|
||||
let formDataList = []
|
||||
if (isValidate) {
|
||||
@@ -476,6 +490,8 @@ export default {
|
||||
// 保存清空校验
|
||||
this.approvalInfoForm.validateFields(['commitText'], { force: true }, () => {})
|
||||
}
|
||||
// 保存一下所有表单收集的数据用于快照回显
|
||||
params.formDataList = formDataList
|
||||
// 收集人员信息
|
||||
const personInfo = this.getPersonInfo(isValidate && !flag)
|
||||
if (!personInfo) {
|
||||
@@ -518,7 +534,9 @@ export default {
|
||||
// 业务数据,用于强制撤回后回显
|
||||
draftData: Object.assign({}, params.processEsPermissionApply, {
|
||||
lawsEnterpriseStandardList: this.$refs.baseInfoTable.dataSource
|
||||
})
|
||||
}),
|
||||
// 将流程数据保存json,后续进行快照回显
|
||||
prcData: params
|
||||
})
|
||||
}
|
||||
|
||||
@@ -528,6 +546,72 @@ export default {
|
||||
}
|
||||
return params
|
||||
},
|
||||
/**
|
||||
* 保存快照信息
|
||||
*/
|
||||
saveSnapShotInfo (prcParams) {
|
||||
// 没有taskId就不保存
|
||||
if (!this.$route.query.taskId) {
|
||||
return Promise.resolve({ success: true })
|
||||
}
|
||||
const { processAll = {}, processApprovalRecord = {} } = prcParams
|
||||
const params = Object.assign({}, {
|
||||
taskId: this.$route.query.taskId,
|
||||
pcrType: ProcessType.PERMISSION_APPLY.value,
|
||||
// 流程信息
|
||||
prcName: processAll.prcName,
|
||||
processDueDate: processAll.dueTime,
|
||||
processDescription: processAll.prcMes,
|
||||
// 流程审批信息
|
||||
handleText: processApprovalRecord.commitText,
|
||||
handleFile: processApprovalRecord.commitFile,
|
||||
// 流程json字符串存储全部信息
|
||||
infoJsonStr: JSON.stringify({
|
||||
// 人员信息
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 流程信息
|
||||
prcData: prcParams
|
||||
})
|
||||
})
|
||||
return saveSnapShot(params)
|
||||
},
|
||||
// 回显快照页面
|
||||
loadSnapshotPage () {
|
||||
const { snapshotId } = this.$route.query
|
||||
if (!snapshotId) {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
getLookData({ snapshotId }).then(res => {
|
||||
const result = res.result || {}
|
||||
const jsonData = JSON.parse(result.infoJsonStr || '{}')
|
||||
const prcData = jsonData.prcData || {}
|
||||
this.info = prcData
|
||||
this.processInfoForm && this.processInfoForm.setFieldsValue({
|
||||
prcName: prcData.processAll.prcName,
|
||||
dueTime: prcData.processAll.dueTime,
|
||||
prcMes: prcData.processAll.prcMes
|
||||
})
|
||||
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
|
||||
commitText: prcData.processApprovalRecord.commitText,
|
||||
commitFile: prcData.processApprovalRecord.commitFile
|
||||
})
|
||||
this.formInfo = prcData.processEsPermissionApply || {}
|
||||
this.$nextTick(() => {
|
||||
// 发起节点的表格和审批节点的表格,哪个存在回显哪个的数据
|
||||
this.$refs.baseInfoTable && this.$refs.baseInfoTable.setData(prcData.lawsEnterpriseStandardList)
|
||||
this.$refs.applyPermissionTable && this.$refs.applyPermissionTable.setData(prcData.lawsEnterpriseStandardList)
|
||||
this.baseInfoForm.setFieldsValue({
|
||||
expirationDate: this.formInfo.expirationDate,
|
||||
userDictText: this.formInfo.userDictText,
|
||||
standardNumbers: this.formInfo.standardNumbers,
|
||||
applyDetail: this.formInfo.applyDetail
|
||||
})
|
||||
})
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办弹框
|
||||
*/
|
||||
@@ -626,19 +710,27 @@ export default {
|
||||
handleAgree (isSubmitBtn) {
|
||||
if (this.loading) return
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
this.getPageParams().then(params => {
|
||||
// 同意和提交一直传true
|
||||
res.map.pass = true
|
||||
params.map.pass = true
|
||||
// 不是提交按钮
|
||||
if (isSubmitBtn !== true) {
|
||||
// 没有填写注释,就默认同意
|
||||
if (!res.processApprovalRecord.commitText) {
|
||||
res.processApprovalRecord.commitText = '同意'
|
||||
if (!params.processApprovalRecord.commitText) {
|
||||
params.processApprovalRecord.commitText = '同意'
|
||||
}
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
}
|
||||
return approvalPermissionApply(res)
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
console.log(params)
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return approvalPermissionApply(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
@@ -647,6 +739,7 @@ export default {
|
||||
this.$message.warn(res.message)
|
||||
}
|
||||
}).catch((err) => {
|
||||
console.log(err)
|
||||
if (err && err.message && tabList.includes(err.message)) {
|
||||
this.switchChange(err.message)
|
||||
}
|
||||
@@ -677,11 +770,18 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
res.map.pass = false
|
||||
this.getPageParams().then(params => {
|
||||
params.map.pass = false
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
return rejectPermissionApply(res)
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
// 保存快照,成功了就调接口,失败了就提示
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return rejectPermissionApply(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="table-operator" v-if="!disabled">
|
||||
<div class="table-operator" v-if="!disabled && !disabledAll">
|
||||
<!-- 新增 -->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
</div>
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
<!-- 操作 -->
|
||||
<template slot="action" slot-scope="{text, record, index}">
|
||||
<a @click="handleDelete(index)" >{{ $t('delete') }}</a>
|
||||
<a @click="handleDelete(index)" :disabled="disabledAll">{{ $t('delete') }}</a>
|
||||
</template>
|
||||
|
||||
</j-table>
|
||||
@@ -46,6 +46,10 @@ export default {
|
||||
name: 'BaseInfoTable',
|
||||
components: { StandardSelection, JTable },
|
||||
props: {
|
||||
disabledAll: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!disabled">
|
||||
<div class="table-operator-tab">
|
||||
<!-- 基础信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -58,7 +58,7 @@
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
|
||||
<base-info-form ref="baseInfoForm" :disabled="currentNode !== PostMeetingManage.initiate.value" :current-node="currentNode"/>
|
||||
<base-info-form ref="baseInfoForm" :disabled="(currentNode !== PostMeetingManage.initiate.value) || disabled" :current-node="currentNode"/>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -67,12 +67,13 @@
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('remarks')">
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:disabled="disabled"
|
||||
:rows="4"
|
||||
v-decorator="['commitText', validatorRules.remarks]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="disabled" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -85,7 +86,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div class="detail-page-bottom-operate-box" v-if="!disabled">
|
||||
<!--未参加-->
|
||||
<a-button v-if="btn.includes('uncommitted')" type="primary" :loading="loading" @click="handleUncommitted" ghost>{{ $t('workCenter.postMeetingManageProcess.uncommitted') }}</a-button>
|
||||
<!--转办-->
|
||||
@@ -108,12 +109,12 @@ import InternalDetailPage from '@comp/InternalDetailPage'
|
||||
import BaseInfoForm from '@views/workCenter/postMeetingManageProcess/modules/BaseInfoForm'
|
||||
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
|
||||
import UserSelectModal from '@comp/selection/UserSelectModal'
|
||||
import { ApprovalOpinions, PostMeetingManage, ProcessKey } from '@/enums/commonEnums'
|
||||
import { ApprovalOpinions, PostMeetingManage, ProcessKey, ProcessType } from '@/enums/commonEnums'
|
||||
import {
|
||||
approvalPostMeetingManage,
|
||||
approvalPostMeetingManage, getLookData,
|
||||
getPostMeetingManageDataById,
|
||||
getPostMeetingManageDetail,
|
||||
getPostMeetingManageProjectId, savePostMeetingManage, startPostMeetingManage, transferPostMeetingManage
|
||||
getPostMeetingManageProjectId, savePostMeetingManage, saveSnapShot, startPostMeetingManage, transferPostMeetingManage
|
||||
} from '@api/workCenter'
|
||||
|
||||
const tabList = ['base', 'user']
|
||||
@@ -127,7 +128,7 @@ export default {
|
||||
isShowProcessInfo: true,
|
||||
loading: false,
|
||||
switchValue: 'base',
|
||||
disabled: false,
|
||||
disabled: false, // 禁用全部
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 4 }
|
||||
@@ -204,7 +205,8 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
const { projectId, nodeId, taskName } = this.$route.query
|
||||
const { projectId, nodeId, taskName, isLook } = this.$route.query
|
||||
this.disabled = isLook === '1'
|
||||
// 发起、草稿进来没有nodeId,就默认发起节点
|
||||
this.currentNode = nodeId || PostMeetingManage.initiate.value
|
||||
this.currentNodeName = taskName || PostMeetingManage.initiate.text
|
||||
@@ -215,6 +217,11 @@ export default {
|
||||
// 提交按钮
|
||||
this.btn = ['submit']
|
||||
}
|
||||
// 快照回显
|
||||
if (this.$route.query.snapshotId) {
|
||||
this.loadSnapshotPage()
|
||||
return
|
||||
}
|
||||
// 查询人员信息
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
this.initPersonInfoData(this.isInitiate)
|
||||
@@ -365,6 +372,8 @@ export default {
|
||||
// 保存清空校验
|
||||
this.approvalInfoForm.validateFields(['commitText'], { force: true }, () => {})
|
||||
}
|
||||
// 保存一下所有表单收集的数据用于快照回显
|
||||
params.formDataList = formDataList
|
||||
|
||||
// 收集人员信息
|
||||
const personInfo = this.getPersonInfo(isValidate && !flag)
|
||||
@@ -406,7 +415,9 @@ export default {
|
||||
// 人员信息(要重新获取,流程里的信息不能直接用,后端需要多选人员处理成数组了)
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 业务数据,用于强制撤回后回显
|
||||
draftData: params.processMeetingManage
|
||||
draftData: params.processMeetingManage,
|
||||
// 将流程数据保存json,后续进行快照回显
|
||||
prcData: params
|
||||
})
|
||||
}
|
||||
|
||||
@@ -416,6 +427,65 @@ export default {
|
||||
}
|
||||
return params
|
||||
},
|
||||
/**
|
||||
* 保存快照信息
|
||||
*/
|
||||
saveSnapShotInfo (prcParams) {
|
||||
// 没有taskId就不保存
|
||||
if (!this.$route.query.taskId) {
|
||||
return Promise.resolve({ success: true })
|
||||
}
|
||||
const { processAll = {}, processApprovalRecord = {} } = prcParams
|
||||
const params = Object.assign({}, {
|
||||
taskId: this.$route.query.taskId,
|
||||
pcrType: ProcessType.POST_MEETING_MANAGE.value,
|
||||
// 流程信息
|
||||
prcName: processAll.prcName,
|
||||
processDueDate: processAll.dueTime,
|
||||
processDescription: processAll.prcMes,
|
||||
// 流程审批信息
|
||||
handleText: processApprovalRecord.commitText,
|
||||
handleFile: processApprovalRecord.commitFile,
|
||||
// 流程json字符串存储全部信息
|
||||
infoJsonStr: JSON.stringify({
|
||||
// 人员信息
|
||||
personInfo: this.$refs.personnelInfo.getDataObj(),
|
||||
// 流程信息
|
||||
prcData: prcParams
|
||||
})
|
||||
})
|
||||
return saveSnapShot(params)
|
||||
},
|
||||
// 回显快照页面
|
||||
loadSnapshotPage () {
|
||||
const { snapshotId } = this.$route.query
|
||||
if (!snapshotId) {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
getLookData({ snapshotId }).then(res => {
|
||||
const result = res.result || {}
|
||||
const jsonData = JSON.parse(result.infoJsonStr || '{}')
|
||||
const prcData = jsonData.prcData || {}
|
||||
this.info = prcData
|
||||
this.processInfoForm && this.processInfoForm.setFieldsValue({
|
||||
prcName: prcData.processAll.prcName,
|
||||
dueTime: prcData.processAll.dueTime,
|
||||
prcMes: prcData.processAll.prcMes
|
||||
})
|
||||
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
|
||||
commitText: prcData.processApprovalRecord.commitText,
|
||||
commitFile: prcData.processApprovalRecord.commitFile
|
||||
})
|
||||
// 保存并回显表单信息
|
||||
this.formInfo = prcData.processMeetingManage
|
||||
this.$nextTick(() => {
|
||||
this.$refs.baseInfoForm.initData(prcData.processMeetingManage)
|
||||
})
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办弹框
|
||||
*/
|
||||
@@ -513,20 +583,26 @@ export default {
|
||||
handleAgree (isSubmitBtn) {
|
||||
if (this.loading) return
|
||||
this.loading = true
|
||||
this.getPageParams().then(res => {
|
||||
this.getPageParams().then(params => {
|
||||
// 同意和提交一直传true
|
||||
res.map.pass = true
|
||||
res.notAttend = false
|
||||
params.map.pass = true
|
||||
params.notAttend = false
|
||||
// 不是提交按钮
|
||||
if (isSubmitBtn !== true) {
|
||||
// 没有填写注释,就默认同意
|
||||
if (!res.processApprovalRecord.commitText) {
|
||||
res.processApprovalRecord.commitText = '同意'
|
||||
if (!params.processApprovalRecord.commitText) {
|
||||
params.processApprovalRecord.commitText = '同意'
|
||||
}
|
||||
// 审批意见
|
||||
res.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
}
|
||||
return approvalPostMeetingManage(res)
|
||||
return this.saveSnapShotInfo(params).then(res => {
|
||||
if (res.success) {
|
||||
return approvalPostMeetingManage(params)
|
||||
} else {
|
||||
return res
|
||||
}
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<process-detail-list :processKey="processKey" show-urge-button>
|
||||
<process-detail-list :processKey="processKey" show-urge-button nodeNameClick :detailFrom="$route.query.detailFrom">
|
||||
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData"></personnel-info>
|
||||
</process-detail-list>
|
||||
</internal-detail-page>
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
<script>
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import { ProcessType, ProcessKey } from '../../../../enums/commonEnums'
|
||||
import { ProcessType, ProcessKey, Process } from '../../../../enums/commonEnums'
|
||||
import { getAction } from '../../../../api/manage'
|
||||
|
||||
export default {
|
||||
@@ -309,7 +309,8 @@ export default {
|
||||
query: {
|
||||
processKey: processKey,
|
||||
processDefinitionId: record.processDefinitionId,
|
||||
processInstanceId: record.processInstanceId
|
||||
processInstanceId: record.processInstanceId,
|
||||
detailFrom: Process.DONE.value
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import { compulsoryWithdrawal } from '@/api/workCenter'
|
||||
import { ProcessType, ProcessKey } from '@/enums/commonEnums'
|
||||
import { ProcessType, ProcessKey, Process } from '@/enums/commonEnums'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
@@ -291,7 +291,8 @@ export default {
|
||||
processInstanceId: record.processInstanceId,
|
||||
// 流程监控并且是已撤回,详情不查进行中的
|
||||
source: 'monitorList',
|
||||
prcStatus: record.prcStatus
|
||||
prcStatus: record.prcStatus,
|
||||
detailFrom: Process.MONITOR.value
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import { compulsoryWithdrawal } from '@/api/workCenter'
|
||||
import { ProcessType, ProcessKey } from '@/enums/commonEnums'
|
||||
import { ProcessType, ProcessKey, Process } from '@/enums/commonEnums'
|
||||
|
||||
export default {
|
||||
name: 'SentList',
|
||||
@@ -289,7 +289,8 @@ export default {
|
||||
query: {
|
||||
processKey: processKey,
|
||||
processDefinitionId: record.processDefinitionId,
|
||||
processInstanceId: record.processInstanceId
|
||||
processInstanceId: record.processInstanceId,
|
||||
detailFrom: Process.SENT.value
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
+136
-57
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -31,7 +31,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
:maxLength="50"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
v-decorator="['processName', validatorRules.processName]" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -44,7 +44,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -83,7 +83,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -95,6 +95,7 @@
|
||||
v-if="comp"
|
||||
ref="projectStandardTable"
|
||||
:project-id="projectId"
|
||||
:disabled="isLook"
|
||||
:echo-data-source="currentStep === 1 ? projectDataSource : standardDataSource" />
|
||||
</keep-alive>
|
||||
|
||||
@@ -103,11 +104,11 @@
|
||||
<div class="process-part-title">{{ middlePartTitle }}</div>
|
||||
<div class="table-operator" v-if="!showExpandTable">
|
||||
<!--批量选择人员-->
|
||||
<a-button type="primary" ghost @click="batchSelector">
|
||||
<a-button type="primary" ghost @click="batchSelector" :disabled="isLook">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
|
||||
</a-button>
|
||||
<!--批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="isInit">
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="isInit" :disabled="isLook">
|
||||
{{ $t('batchDelete') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -145,6 +146,7 @@
|
||||
:value="record.responsibleUnitLeaders"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.responsibleUnitHead')"
|
||||
type="checkbox"
|
||||
:disabled="isLook"
|
||||
@listChange="value => handleUserChange(value, record, index, 'responsibleUnitLeaders')" />
|
||||
<div class="table-text" v-else>{{ global.emptyLine }}</div>
|
||||
</template>
|
||||
@@ -162,6 +164,7 @@
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.moduleOwner')"
|
||||
type="checkbox"
|
||||
v-if="!record.notInvolved && record.canAssignFlag + '' === '1'"
|
||||
:disabled="isLook"
|
||||
@listChange="value => handleUserChange(value, record, index, 'moduleOwners')" />
|
||||
<div v-else>{{ global.emptyLine }}</div>
|
||||
</template>
|
||||
@@ -179,18 +182,19 @@
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
|
||||
type="radio"
|
||||
v-if="!record.notInvolved && record.canAssignFlag + '' === '1'"
|
||||
:disabled="isLook"
|
||||
@listChange="value => handleUserChange(value, record, index, 'designEngineers')" />
|
||||
<div v-else>{{ global.emptyLine }}</div>
|
||||
</template>
|
||||
|
||||
<!--操作(删除)-->
|
||||
<template v-slot:action="{text, record}">
|
||||
<a @click="handleDelete(record.tableRowKey)">{{ $t('delete') }}</a>
|
||||
<a @click="handleDelete(record.tableRowKey)" :disabled="isLook">{{ $t('delete') }}</a>
|
||||
</template>
|
||||
|
||||
<!--操作(不涉及/不涉及原因)-->
|
||||
<template v-slot:notInvolved="{text, record}">
|
||||
<a @click="handleUninvolved(record)" :disabled="record.canAssignFlag + '' !== '1'">
|
||||
<a @click="handleUninvolved(record)" :disabled="record.canAssignFlag + '' !== '1' || isLook">
|
||||
{{
|
||||
!record.notInvolved ? $t('projectLibrary.vehicleItemLibrary.uninvolved') : $t('workCenter.projectComplianceEvaluationProcess.noCauseInvolved')
|
||||
}}
|
||||
@@ -204,7 +208,7 @@
|
||||
:columns="columns"
|
||||
:data-source="dataSource"
|
||||
:pagination="ipagination"
|
||||
:all-disabled="expandTableDisabled"
|
||||
:all-disabled="expandTableDisabled || isLook"
|
||||
form-is-depend="evaluationFeedback"
|
||||
:extra-form="extraForm"
|
||||
:scroll="{x: '100%'}"
|
||||
@@ -232,7 +236,7 @@
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.evaluationFeedback')"
|
||||
:value="record.evaluationFeedback"
|
||||
dict-code="assess_results"
|
||||
:disabled="!!record.notInvolved"
|
||||
:disabled="!!record.notInvolved || isLook"
|
||||
@change="value => handleEvaluationFeedBackChange(value, record, index)" />
|
||||
|
||||
<template v-else>
|
||||
@@ -255,6 +259,7 @@
|
||||
:label="$t('workCenter.projectComplianceEvaluationProcess.ccPerson')">
|
||||
<user-selection :placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.ccPerson')"
|
||||
type="checkbox"
|
||||
:disabled="isLook"
|
||||
:name-str="dispatchInfo.carbonCopyPersonnels_dictText"
|
||||
v-decorator="['carbonCopyPersonnels', validatorRules.carbonCopyPersonnels]"
|
||||
@nameChange="handleCarbonCopyNameChange" />
|
||||
@@ -274,11 +279,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -294,7 +300,7 @@
|
||||
</div>
|
||||
|
||||
<!--底部按钮-->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -324,6 +330,16 @@
|
||||
{{ $t('reject') }}
|
||||
</a-button>
|
||||
</div>
|
||||
<div v-else class="detail-page-bottom-operate-box">
|
||||
<!--上一步-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('pre')" @click="handleLastStep">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.lastStep') }}
|
||||
</a-button>
|
||||
<!--下一步-->
|
||||
<a-button type="primary" :loading="loading" icon="arrow-down" v-if="btnList.includes('next')" @click="handleNextStep">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.nextStep') }}
|
||||
</a-button>
|
||||
</div>
|
||||
|
||||
<!--选人-->
|
||||
<user-select-modal :type="userSelectType" ref="userSelectModal" @listChange="handleBatchSelectorOk" @change="continueTransfer" />
|
||||
@@ -344,7 +360,8 @@ import {
|
||||
EvaluationResultType,
|
||||
ProcessKey,
|
||||
ProjectComplianceEvaluationProcessNode,
|
||||
StandardSource
|
||||
StandardSource,
|
||||
ProcessType
|
||||
} from '../../../enums/commonEnums'
|
||||
import JTable from '../../../components/jero/JTable'
|
||||
import ProjectTable from './components/ProjectTable'
|
||||
@@ -360,7 +377,9 @@ import {
|
||||
queryProjectComplianceEvaluation,
|
||||
processTransfer,
|
||||
agreeProjectComplianceEvaluation,
|
||||
rejectProjectComplianceEvaluation
|
||||
rejectProjectComplianceEvaluation,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '../../../api/workCenter'
|
||||
import SplitClauseDetail from '../../documentTool/documentSplit/modules/SplitClauseDetail'
|
||||
import moment from 'moment'
|
||||
@@ -640,7 +659,8 @@ export default {
|
||||
},
|
||||
businessId: null,
|
||||
isTransfer: false, // 是否转办选人
|
||||
tableLoading: false
|
||||
tableLoading: false,
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -897,28 +917,47 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ProjectComplianceEvaluationProcessNode.initiate.value
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.currentNode = ProjectComplianceEvaluationProcessNode.initiate.value
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ProjectComplianceEvaluationProcessNode.initiate.value
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.currentNode = ProjectComplianceEvaluationProcessNode.initiate.value
|
||||
}
|
||||
this.getPersonInfoStructure(ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value, () => {
|
||||
this.initPersonInfoData(this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value)
|
||||
})
|
||||
}
|
||||
this.getPersonInfoStructure(ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value, () => {
|
||||
this.initPersonInfoData(this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value)
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 获取流程数据
|
||||
*/
|
||||
initProcessInfo () {
|
||||
const params = {
|
||||
draftId: this.$route.query.draftId,
|
||||
processInstanceId: this.$route.query.draftId ? null : this.$route.query.processInstanceId,
|
||||
taskId: this.$route.query.taskId
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params = {
|
||||
draftId: this.$route.query.draftId,
|
||||
processInstanceId: this.$route.query.draftId ? null : this.$route.query.processInstanceId,
|
||||
taskId: this.$route.query.taskId
|
||||
}
|
||||
func = queryProjectComplianceEvaluation
|
||||
}
|
||||
this.loading = true
|
||||
queryProjectComplianceEvaluation(params).then(res => {
|
||||
func(params).then(res => {
|
||||
if (res.success) {
|
||||
const { result = {} } = res
|
||||
this.approvalInfo = Object.assign({}, result.basicTaskInfoDTO)
|
||||
@@ -1399,6 +1438,26 @@ export default {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify(this.dealSaveJsonData())
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.PROJECT_COMPLIANCE_EVALUATION.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交
|
||||
*/
|
||||
@@ -1422,20 +1481,34 @@ export default {
|
||||
formData.infoJsonStr = JSON.stringify(saveJsonObj)
|
||||
}
|
||||
submitFunc = initiateProjectComplianceEvaluation
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
submitFunc = submitProjectComplianceEvaluation
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办
|
||||
@@ -1487,16 +1560,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
agreeProjectComplianceEvaluation(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeProjectComplianceEvaluation(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -1514,16 +1590,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
rejectProjectComplianceEvaluation(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectProjectComplianceEvaluation(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
handleTableChange (pagination) {
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
<div class="process-part-title">{{ $t('project') }}</div>
|
||||
<div class="table-operator">
|
||||
<!-- 新增-->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
<a-button icon="plus" type="primary" @click="handleAdd" :disabled="disabled">{{ $t('newlyAdded') }}</a-button>
|
||||
<!-- 批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel">{{ $t('delete') }}</a-button>
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" :disabled="disabled">{{ $t('delete') }}</a-button>
|
||||
</div>
|
||||
<div>
|
||||
<j-table
|
||||
@@ -41,6 +41,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
@@ -122,4 +127,4 @@ export default {
|
||||
.process-part-title:first-child {
|
||||
margin-top: 32px;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
<div class="process-part-title">{{ $t('workCenter.projectComplianceEvaluationProcess.rDComplianceList') }}</div>
|
||||
<div class="table-operator">
|
||||
<!-- 新增-->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
<a-button icon="plus" type="primary" @click="handleAdd" :disabled="disabled">{{ $t('newlyAdded') }}</a-button>
|
||||
<!-- 批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel">{{ $t('delete') }}</a-button>
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" :disabled="disabled">{{ $t('delete') }}</a-button>
|
||||
</div>
|
||||
<div>
|
||||
<j-table
|
||||
@@ -25,6 +25,7 @@
|
||||
<a-select :placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.salvageListSource')"
|
||||
:value="record.decompositionOrderSource"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
@change="value => handleSourceChange(value, record, index)">
|
||||
<a-select-option v-for="item in record.dictOptions" :key="item.value" :value="item.value" :disabled="item.disabled">
|
||||
{{ item.text }}
|
||||
@@ -60,6 +61,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -38,7 +38,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="!isInitial"
|
||||
:disabled="!isInitial || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -48,7 +48,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="!isInitial"
|
||||
:disabled="!isInitial || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -69,37 +69,40 @@
|
||||
<initial-basic-service-info ref="standardList"
|
||||
:selected-standard="selectedStandard"
|
||||
@source:change="handleSourceChange"
|
||||
@standard:change="handleStandardChange" />
|
||||
@standard:change="handleStandardChange"
|
||||
:disabled="isLook"/>
|
||||
<!--业务分派信息-->
|
||||
<initial-assign-table ref="termList"
|
||||
:selected-spilt-info-id="selectedSpiltInfoId"
|
||||
:selected-standard="selectedStandard"
|
||||
:display-data-source="dispatchDataSource" />
|
||||
:display-data-source="dispatchDataSource"
|
||||
:disabled="isLook"/>
|
||||
</template>
|
||||
|
||||
<!--部所主管级领导下发-->
|
||||
<depart-leader-issue-table v-if="isDepartLeaderIssue" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
<depart-leader-issue-table v-if="isDepartLeaderIssue" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
|
||||
|
||||
<!--模块责任人分发-->
|
||||
<module-owner-issue-table v-if="isModuleOwnerIssue" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
<module-owner-issue-table v-if="isModuleOwnerIssue" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
|
||||
|
||||
<!--设计工程师评估-->
|
||||
<design-engineer-assess v-if="isDesignEngineerAssess"
|
||||
ref="asyncTermList"
|
||||
:display-data-source="dispatchDataSource"
|
||||
:pre-node-user="preNodeUser" />
|
||||
:pre-node-user="preNodeUser"
|
||||
:disabled="isLook"/>
|
||||
|
||||
<!--模块负责人评审-->
|
||||
<module-owner-approve-table v-if="isModuleOwnerApprove" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
|
||||
<!--部所主管级领导审批-->
|
||||
<depart-leader-approve-table v-if="isDepartLeaderApprove" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
<depart-leader-approve-table v-if="isDepartLeaderApprove" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
|
||||
|
||||
<!--法规工程师审批-->
|
||||
<regulatory-engineer-approval v-if="isRegulatoryEngineerApproval" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
<regulatory-engineer-approval v-if="isRegulatoryEngineerApproval" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
|
||||
|
||||
<!--设计工程师补充立项项目号-->
|
||||
<design-engineer-write-project v-if="isDesignEngineerWriteProject" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
<design-engineer-write-project v-if="isDesignEngineerWriteProject" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
|
||||
|
||||
<!--流程审批信息-->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -110,11 +113,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -132,7 +136,7 @@
|
||||
</div>
|
||||
|
||||
<!--底部按钮-->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办 审批节点存在-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -165,7 +169,7 @@ import PersonnelInfo from '../../../components/PersonnelInfo'
|
||||
import InternalDetailPage from '../../../components/InternalDetailPage'
|
||||
import ProcessDetailList from '../../../components/ProcessDetailList'
|
||||
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
|
||||
import { ProcessKey, StandardComplianceNodes, StandardSource } from '../../../enums/commonEnums'
|
||||
import { ProcessKey, StandardComplianceNodes, StandardSource, ProcessType } from '../../../enums/commonEnums'
|
||||
import InitialBasicServiceInfo from './components/InitialBasicServiceInfo'
|
||||
import InitialAssignTable from './components/InitialAssignTable'
|
||||
import DepartLeaderIssueTable from './components/DepartLeaderIssueTable'
|
||||
@@ -182,7 +186,9 @@ import {
|
||||
queryStandardCompliance,
|
||||
processTransfer,
|
||||
agreeStandardCompliance,
|
||||
rejectStandardCompliance
|
||||
rejectStandardCompliance,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '../../../api/workCenter'
|
||||
import UserSelectModal from '../../../components/selection/UserSelectModal'
|
||||
|
||||
@@ -245,7 +251,8 @@ export default {
|
||||
dispatchDataSource: [], // 业务分派信息的数据
|
||||
currentNodePrefix: null, // 判断节点的前缀
|
||||
preNodeUser: null, // 上一节点处理人
|
||||
disabledBtnClick: false
|
||||
disabledBtnClick: false,
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -287,29 +294,48 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getPersonInfoStructure(ProcessKey.REGULATORY_COMPLIANCE_ASSESSMENT.value, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || StandardComplianceNodes.initial.value
|
||||
this.initProcessData()
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessData()
|
||||
} else {
|
||||
this.getPersonInfoStructure(ProcessKey.REGULATORY_COMPLIANCE_ASSESSMENT.value, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || StandardComplianceNodes.initial.value
|
||||
this.initProcessData()
|
||||
|
||||
} else {
|
||||
this.currentNode = StandardComplianceNodes.initial.value
|
||||
}
|
||||
const key = StandardComplianceNodes.keyOfValueByLike(this.currentNode)
|
||||
this.btnList = StandardComplianceNodes[key].btn || []
|
||||
this.currentNodePrefix = StandardComplianceNodes[key].value
|
||||
this.initPersonInfoData()
|
||||
})
|
||||
} else {
|
||||
this.currentNode = StandardComplianceNodes.initial.value
|
||||
}
|
||||
const key = StandardComplianceNodes.keyOfValueByLike(this.currentNode)
|
||||
this.btnList = StandardComplianceNodes[key].btn || []
|
||||
this.currentNodePrefix = StandardComplianceNodes[key].value
|
||||
this.initPersonInfoData()
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
initProcessData () {
|
||||
this.loading = true
|
||||
const params = {
|
||||
taskId: this.$route.query.taskId,
|
||||
processInstanceId: this.$route.query.processInstanceId,
|
||||
draftId: this.$route.query.draftId
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params = {
|
||||
taskId: this.$route.query.taskId,
|
||||
processInstanceId: this.$route.query.processInstanceId,
|
||||
draftId: this.$route.query.draftId
|
||||
}
|
||||
func = queryStandardCompliance
|
||||
}
|
||||
queryStandardCompliance(params).then(res => {
|
||||
func(params).then(res => {
|
||||
if (res.success) {
|
||||
let { result = {} } = res
|
||||
if (result.infoJsonStr) {
|
||||
@@ -507,6 +533,27 @@ export default {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 保存快照
|
||||
async saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
const saveForm = await this.dealSaveFormData()
|
||||
params.infoJsonStr = JSON.stringify(saveForm)
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.REGULATORY_COMPLIANCE_ASSESSMENT.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交
|
||||
*/
|
||||
@@ -531,17 +578,34 @@ export default {
|
||||
submitFunc = submitStandardCompliance
|
||||
}
|
||||
this.loading = true
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
if (this.currentNode.indexOf(StandardComplianceNodes.initial.value) === 0) {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 同意
|
||||
@@ -562,16 +626,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
agreeStandardCompliance(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeStandardCompliance(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -590,16 +657,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
rejectStandardCompliance(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectStandardCompliance(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
toStandardDetail () {
|
||||
|
||||
+6
-1
@@ -15,7 +15,7 @@
|
||||
|
||||
<!--是否立项-->
|
||||
<template v-slot:projectApprovalFlag="{text,record,index}">
|
||||
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" style="width: 100%" />
|
||||
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" :disabled="disabled" style="width: 100%" />
|
||||
</template>
|
||||
|
||||
<!--条文内容-->
|
||||
@@ -54,6 +54,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
+8
-2
@@ -4,7 +4,7 @@
|
||||
<div class="process-part-title">{{ $t('workCenter.dispatchInformation') }}</div>
|
||||
<div class="table-operator">
|
||||
<!--批量选择人员-->
|
||||
<a-button type="primary" @click="handleSelectPerson">
|
||||
<a-button type="primary" @click="handleSelectPerson" :disabled="disabled">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -31,6 +31,7 @@
|
||||
v-model="record.moduleOwner"
|
||||
:name-str="record.moduleOwner_dictText"
|
||||
v-if="!record.notInvolved"
|
||||
:disabled="disabled"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardCompliance.moduleOwner')"
|
||||
@nameChange="nameStr => record.moduleOwner_dictText = nameStr" />
|
||||
<div v-else>{{ global.emptyLine }}</div>
|
||||
@@ -47,7 +48,7 @@
|
||||
<!--操作-->
|
||||
<template v-slot:action="{text,record,index}">
|
||||
<div class="action-span-cell">
|
||||
<a @click="handleUninvolved(record, index)">
|
||||
<a :disabled="disabled" @click="handleUninvolved(record, index)">
|
||||
{{
|
||||
!record.notInvolved ? $t('projectLibrary.vehicleItemLibrary.uninvolved') : $t('workCenter.projectComplianceEvaluationProcess.noCauseInvolved')
|
||||
}}
|
||||
@@ -84,6 +85,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
:options="resultOptions"
|
||||
style="width: 100%"
|
||||
:value="record.assessResults"
|
||||
:disabled="disabled"
|
||||
@change="value => handleEvaluationResultChange(value, record, record.dataSourceIndex)" />
|
||||
</template>
|
||||
|
||||
@@ -62,6 +63,7 @@
|
||||
prop="isRelate">
|
||||
<j-dict-select-tag v-model="record.isRelate"
|
||||
dict-code="yn"
|
||||
:disabled="disabled"
|
||||
type="radio" />
|
||||
</a-form-model-item>
|
||||
<!--不符合车型系列-->
|
||||
@@ -71,6 +73,7 @@
|
||||
prop="modelSeries"
|
||||
v-if="record.isRelate === yesValue">
|
||||
<j-multi-select-tag v-model="record.modelSeries"
|
||||
:disabled="disabled"
|
||||
dict-code="model_series" />
|
||||
</a-form-model-item>
|
||||
</template>
|
||||
@@ -80,7 +83,7 @@
|
||||
:labelCol="{span: 4}"
|
||||
:wrapperCol="{span: 18}"
|
||||
prop="description">
|
||||
<a-input type="textarea" :maxLength="500" v-model="record.description" />
|
||||
<a-input type="textarea" :maxLength="500" :disabled="disabled" v-model="record.description" />
|
||||
</a-form-model-item>
|
||||
<!--佐证材料-->
|
||||
<a-form-model-item :label="$t('projectLibrary.specialProjectLibrary.supportingMaterial')"
|
||||
@@ -90,6 +93,7 @@
|
||||
<j-upload return-id
|
||||
multiple
|
||||
v-model="record.fileId"
|
||||
:disabled="disabled"
|
||||
file-type="pdf,doc,docx,pptx,ppt,jpg,jpeg,png,xls,xlsx,bmp" />
|
||||
</a-form-model-item>
|
||||
</template>
|
||||
@@ -127,6 +131,11 @@ export default {
|
||||
type: String,
|
||||
required: false,
|
||||
default: ''
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
+6
-1
@@ -15,7 +15,7 @@
|
||||
|
||||
<!--操作-->
|
||||
<template v-slot:action="{text, record, index}">
|
||||
<a @click="handleEdit(record)">{{ $t('edit') }}</a>
|
||||
<a @click="handleEdit(record)" :disabled="disabled">{{ $t('edit') }}</a>
|
||||
</template>
|
||||
</j-table>
|
||||
</div>
|
||||
@@ -42,6 +42,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
<div class="process-part-title">{{ $t('workCenter.dispatchInformation') }}</div>
|
||||
<div class="table-operator">
|
||||
<!--批量选择人员-->
|
||||
<a-button type="primary" @click="handleSelectPerson">
|
||||
<a-button type="primary" @click="handleSelectPerson" :disabled="disabled">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
|
||||
</a-button>
|
||||
<!--批量删除-->
|
||||
<a-button type="primary" ghost @click="batchDelete">
|
||||
<a-button type="primary" ghost @click="batchDelete" :disabled="disabled">
|
||||
{{ $t('batchDelete') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -37,6 +37,7 @@
|
||||
v-model="record.responsibleUnitLeader"
|
||||
:name-str="record.responsibleUnitLeader_dictText"
|
||||
type="checkbox"
|
||||
:disabled="disabled"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardCompliance.responsibleUnitContactPerson')"
|
||||
@nameChange="nameStr => record.responsibleUnitLeader_dictText = nameStr" />
|
||||
</template>
|
||||
@@ -52,7 +53,7 @@
|
||||
<!--操作-->
|
||||
<template v-slot:action="{text,record,index}">
|
||||
<div class="action-span-cell">
|
||||
<a :disabled="index === 0 && dataSource.length === 1" @click="handleDelete(record.rowKey)">{{ $t('delete') }}</a>
|
||||
<a :disabled="index === 0 && dataSource.length === 1 || disabled" @click="handleDelete(record.rowKey)">{{ $t('delete') }}</a>
|
||||
</div>
|
||||
</template>
|
||||
</j-table>
|
||||
@@ -97,6 +98,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
||||
+8
-2
@@ -4,11 +4,11 @@
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<div class="table-operator">
|
||||
<!--添加标准-->
|
||||
<a-button type="primary" @click="handleAdd">
|
||||
<a-button type="primary" @click="handleAdd" :disabled="disabled">
|
||||
{{ $t('workCenter.standardCompliance.addStandard') }}
|
||||
</a-button>
|
||||
<!--删除-->
|
||||
<a-button type="primary" ghost @click="handleDelete">
|
||||
<a-button type="primary" ghost @click="handleDelete" :disabled="disabled">
|
||||
{{ $t('delete') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -36,6 +36,7 @@
|
||||
v-model="record.decompositionOrderSource"
|
||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
@change="value => handleSourceChange(value, record)">
|
||||
<a-select-option v-for="item in record.decompositionOrderSourceVOList"
|
||||
:key="item.value"
|
||||
@@ -71,6 +72,11 @@ export default {
|
||||
default: () => {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="process-part-title">{{ $t('workCenter.dispatchInformation') }}</div>
|
||||
<div class="table-operator">
|
||||
<!--批量选择人员-->
|
||||
<a-button type="primary" @click="handleSelectPerson">
|
||||
<a-button type="primary" @click="handleSelectPerson" :disabled="disabled">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -32,6 +32,7 @@
|
||||
:name-str="record.designEngineer_dictText"
|
||||
v-if="!record.notInvolved"
|
||||
type="checkbox"
|
||||
:disabled="disabled"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
|
||||
@nameChange="nameStr => record.designEngineer_dictText = nameStr" />
|
||||
<div v-else>{{ global.emptyLine }}</div>
|
||||
@@ -48,7 +49,7 @@
|
||||
<!--操作-->
|
||||
<template v-slot:action="{text,record}">
|
||||
<div class="action-span-cell">
|
||||
<a @click="handleUninvolved(record)">{{
|
||||
<a :disabled="disabled" @click="handleUninvolved(record)">{{
|
||||
!record.notInvolved ? $t('projectLibrary.vehicleItemLibrary.uninvolved') : $t('workCenter.projectComplianceEvaluationProcess.noCauseInvolved')
|
||||
}}</a>
|
||||
</div>
|
||||
@@ -83,6 +84,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
+10
-3
@@ -5,11 +5,11 @@
|
||||
<div>
|
||||
<div class="table-operator">
|
||||
<!--批量选择设计工程师-->
|
||||
<a-button type="primary" @click="handleSelectPerson('designEngineer')">
|
||||
<a-button type="primary" @click="handleSelectPerson('designEngineer')" :disabled="disabled">
|
||||
{{ $t('workCenter.standardCompliance.batchSelectDesignEngineer') }}
|
||||
</a-button>
|
||||
<!--批量选择抄送人员-->
|
||||
<a-button type="primary" @click="handleSelectPerson('carbonCopyPersonnels')">
|
||||
<a-button type="primary" @click="handleSelectPerson('carbonCopyPersonnels')" :disabled="disabled">
|
||||
{{ $t('workCenter.standardCompliance.batchSelectCCPersonnel') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
<!--是否立项-->
|
||||
<template v-slot:projectApprovalFlag="{text,record}">
|
||||
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" style="width: 100%" />
|
||||
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" :disabled="disabled" style="width: 100%" />
|
||||
</template>
|
||||
|
||||
<!--设计工程师-->
|
||||
@@ -58,6 +58,7 @@
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
|
||||
style="width: 100%"
|
||||
type="radio"
|
||||
:disabled="disabled"
|
||||
@nameChange="nameStr => record.designEngineer_dictText = nameStr" />
|
||||
<div v-else>{{ global.emptyLine }}</div>
|
||||
</template>
|
||||
@@ -70,6 +71,7 @@
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.ccPerson')"
|
||||
style="width: 100%"
|
||||
type="checkbox"
|
||||
:disabled="disabled"
|
||||
@nameChange="nameStr => record.carbonCopyPersonnels_dictText = nameStr" />
|
||||
<!--<div>{{ global.emptyLine }}</div>-->
|
||||
</template>
|
||||
@@ -127,6 +129,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -38,7 +38,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -48,7 +48,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -62,7 +62,7 @@
|
||||
<!--标准编号-->
|
||||
<a-form-item :label="$t('standardNumber')">
|
||||
<standard-selection v-decorator="['standardNumber', validatorRules.standardNumber]"
|
||||
:disabled="basicServiceInfoDisabled"
|
||||
:disabled="basicServiceInfoDisabled || isLook"
|
||||
:placeholder="$t('pleaseSelect') + $t('standardNumber')"
|
||||
:can-selected-source="[StandardSource.DOMESTIC.value]"
|
||||
type="radio"
|
||||
@@ -82,7 +82,7 @@
|
||||
<!--标准文本-->
|
||||
<a-form-item :label="$t('workCenter.standardConsultationProcess.standardText')"
|
||||
:class="{'add-required': basicServiceInfoDisabled}">
|
||||
<div class="box-title-text" v-if="!basicServiceInfoDisabled">
|
||||
<div class="box-title-text" v-if="!basicServiceInfoDisabled && !isLook">
|
||||
<a-input class="box-input disabled-white-input"
|
||||
v-decorator="['standardTextFileName', validatorRules.standardText]"
|
||||
readonly
|
||||
@@ -99,7 +99,7 @@
|
||||
<div class="form-flex-item custom-flex-form-item">
|
||||
<!--相关文件-->
|
||||
<a-form-item :label="$t('workCenter.standardConsultationProcess.relevantDocument')">
|
||||
<j-upload multiple return-id v-decorator="['relatedFile', validatorRules.relatedFile]" :disabled="basicServiceInfoDisabled" />
|
||||
<j-upload multiple return-id v-decorator="['relatedFile', validatorRules.relatedFile]" :disabled="basicServiceInfoDisabled || isLook" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
<div class="form-flex-item custom-flex-form-item">
|
||||
@@ -108,7 +108,7 @@
|
||||
<j-date show-type="day"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.endDate')"
|
||||
v-decorator="['consultationDueDate', validatorRules.consultationDueDate]"
|
||||
:disabled="basicServiceInfoDisabled"
|
||||
:disabled="basicServiceInfoDisabled || isLook"
|
||||
:disabled-date="consultationDueDateDisabledDate" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
@@ -128,6 +128,7 @@
|
||||
type="select"
|
||||
dict-code="sender_type"
|
||||
:triggerChange="false"
|
||||
:disabled="isLook"
|
||||
@change="handleSenderTypeChange" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
@@ -139,6 +140,7 @@
|
||||
<user-selection v-decorator="['moduleOwnerId', validatorRules.moduleOwnerId]"
|
||||
:name-str="dispatchInfo.moduleOwnerId_dictText"
|
||||
type="checkbox"
|
||||
:disabled="isLook"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.moduleOwner')"
|
||||
@nameChange="handleModuleOwnerNameChange" />
|
||||
</a-form-item>
|
||||
@@ -151,6 +153,7 @@
|
||||
<user-selection v-decorator="['designEngineerId', validatorRules.designEngineerId]"
|
||||
:name-str="dispatchInfo.designEngineerId_dictText"
|
||||
type="checkbox"
|
||||
:disabled="isLook"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
|
||||
@nameChange="handleDesignEngineerNameChange" />
|
||||
</a-form-item>
|
||||
@@ -166,9 +169,9 @@
|
||||
<template v-if="currentNode.indexOf(ConsultationProcess.designEngineerFillIn.value) === 0">
|
||||
<div class="table-operator">
|
||||
<!-- 新增-->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
<a-button icon="plus" type="primary" :disabled="isLook" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
<!-- 批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel">{{ $t('delete') }}</a-button>
|
||||
<a-button type="primary" icon="delete" ghost :disabled="isLook" @click="batchDel">{{ $t('delete') }}</a-button>
|
||||
</div>
|
||||
<div>
|
||||
<j-table
|
||||
@@ -190,7 +193,7 @@
|
||||
|
||||
<!-- 操作栏 -->
|
||||
<div slot="action" slot-scope="{record, index}" class="action-span-cell">
|
||||
<a @click="handleEdit(record, index)" class="table-ope-btn">{{ $t('edit') }}</a>
|
||||
<a @click="handleEdit(record, index)" class="table-ope-btn" :disabled="isLook">{{ $t('edit') }}</a>
|
||||
</div>
|
||||
|
||||
</j-table>
|
||||
@@ -201,7 +204,7 @@
|
||||
<template v-if="showAuditTable">
|
||||
<div class="table-operator">
|
||||
<!--批量操作,汇总节点才有的按钮-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchOperate" v-if="isSummaryNode">
|
||||
<a-button type="primary" icon="delete" ghost @click="batchOperate" v-if="isSummaryNode" :disabled="isLook">
|
||||
{{ $t('batchOperation') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -215,7 +218,7 @@
|
||||
:locale="tableLocale"
|
||||
:class="{'empty-no-opinion': tableEmptyShowNoOpinion}"
|
||||
:extra-form="collectExtraForm"
|
||||
:all-disabled="disabledConsultationList"
|
||||
:all-disabled="disabledConsultationList || isLook"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
|
||||
|
||||
<!--表头插槽 start-->
|
||||
@@ -238,6 +241,7 @@
|
||||
:triggerChange="false"
|
||||
class="opinion-select"
|
||||
dict-code="consultation_opinion"
|
||||
:disabled="isLook"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.esInspectionPlan.opinion')"
|
||||
@change="value => {handleOpinionChange(value, index, record)}" />
|
||||
</template>
|
||||
@@ -254,11 +258,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -275,7 +280,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办 审批节点存在-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -314,7 +319,7 @@
|
||||
<script>
|
||||
import InternalDetailPage from '../../../components/InternalDetailPage.vue'
|
||||
import StandardSelection from '../../../components/selection/StandardSelection.vue'
|
||||
import { ConsultationProcess, SenderType, ProcessKey, StandardSource } from '../../../enums/commonEnums'
|
||||
import { ConsultationProcess, SenderType, ProcessKey, StandardSource, ProcessType } from '../../../enums/commonEnums'
|
||||
import UserSelection from '../../../components/selection/UserSelection'
|
||||
import JTable from '../../../components/jero/JTable'
|
||||
import ConsultationModal from './modules/ConsultationModal'
|
||||
@@ -332,7 +337,9 @@ import {
|
||||
submitConsultationProcess,
|
||||
transferConsultationProcess,
|
||||
agreeConsultationProcess,
|
||||
rejectConsultationProcess
|
||||
rejectConsultationProcess,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '../../../api/workCenter'
|
||||
import UserSelectModal from '../../../components/selection/UserSelectModal'
|
||||
import { getFileInfo } from '../../../api/api'
|
||||
@@ -755,7 +762,8 @@ export default {
|
||||
tableEmptyShowNoOpinion: false, // 表格暂无数据文本在汇总节点显示无意见
|
||||
tableLocale: {
|
||||
emptyText: <a-empty image={Empty.PRESENTED_IMAGE_SIMPLE}><span slot="description"> {this.$t('noData')} </span></a-empty>
|
||||
}
|
||||
},
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -831,36 +839,55 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
// 获取人员信息数据
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
// 有流程id或者草稿id点进来的
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ConsultationProcess.initiate.value
|
||||
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
|
||||
this.initProcessDetailData()
|
||||
} else {
|
||||
this.currentNode = ConsultationProcess.initiate.value
|
||||
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
|
||||
}
|
||||
// 找不到这个节点默认使用审批节点页面及按钮,发起除外
|
||||
this.nodeEnumsKey = this.currentNode ? ConsultationProcess.keyOfValueByLike(this.currentNode) || 'regulatoryEngineerApproval' : 'initiate'
|
||||
this.currentNodePrefix = ConsultationProcess[this.nodeEnumsKey].value
|
||||
this.btnList = ConsultationProcess[this.nodeEnumsKey].btn
|
||||
})
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessDetailData()
|
||||
} else {
|
||||
// 获取人员信息数据
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
// 有流程id或者草稿id点进来的
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ConsultationProcess.initiate.value
|
||||
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
|
||||
this.initProcessDetailData()
|
||||
} else {
|
||||
this.currentNode = ConsultationProcess.initiate.value
|
||||
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
|
||||
}
|
||||
// 找不到这个节点默认使用审批节点页面及按钮,发起除外
|
||||
this.nodeEnumsKey = this.currentNode ? ConsultationProcess.keyOfValueByLike(this.currentNode) || 'regulatoryEngineerApproval' : 'initiate'
|
||||
this.currentNodePrefix = ConsultationProcess[this.nodeEnumsKey].value
|
||||
this.btnList = ConsultationProcess[this.nodeEnumsKey].btn
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
initProcessDetailData () {
|
||||
this.loading = true
|
||||
const params = {
|
||||
taskId: this.$route.query.taskId,
|
||||
projectId: this.$route.query.projectId
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
params.draftId = this.$route.query.draftId
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params.processInstanceId = this.$route.query.processInstanceId
|
||||
params = {
|
||||
taskId: this.$route.query.taskId,
|
||||
projectId: this.$route.query.projectId
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
params.draftId = this.$route.query.draftId
|
||||
} else {
|
||||
params.processInstanceId = this.$route.query.processInstanceId
|
||||
}
|
||||
func = queryConsultationProcessDetail
|
||||
}
|
||||
queryConsultationProcessDetail(params).then(async res => {
|
||||
func(params).then(async res => {
|
||||
if (res.success) {
|
||||
let result = res.result || {}
|
||||
// 草稿有数据需要从草稿里取
|
||||
@@ -1193,6 +1220,27 @@ export default {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 保存快照
|
||||
async saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
const saveForm = await this.dealFormData(true)
|
||||
params.infoJsonStr = JSON.stringify(saveForm)
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.CONSULTATION.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交
|
||||
*/
|
||||
@@ -1214,20 +1262,34 @@ export default {
|
||||
if (saveForm) {
|
||||
formData.infoJsonStr = JSON.stringify(saveForm)
|
||||
}
|
||||
func(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
func = submitConsultationProcess
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
func(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
func(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 同意
|
||||
@@ -1248,16 +1310,19 @@ export default {
|
||||
}
|
||||
this.loading = true
|
||||
formData.basicTaskInfoDTO.commitFlag = 1 // 同意就传1,驳回传2,其他都为空
|
||||
agreeConsultationProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeConsultationProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -1276,16 +1341,19 @@ export default {
|
||||
}
|
||||
this.loading = true
|
||||
formData.basicTaskInfoDTO.commitFlag = 2 // 同意就传1,驳回传2,其他都为空
|
||||
rejectConsultationProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectConsultationProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
|
||||
+177
-106
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -37,7 +37,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -47,7 +47,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -78,7 +78,7 @@
|
||||
<a-form-model-item class="item-model" prop="source">
|
||||
<j-dict-select-tag class="box-input"
|
||||
v-model="formInline.source"
|
||||
:disabled="disabled || disabledFieldList.includes('source') || isFromList"
|
||||
:disabled="disabled || disabledFieldList.includes('source') || isFromList || isLook"
|
||||
:placeholder="$t('pleaseSelect')+$t('standardSelect.source')"
|
||||
:type="'select'"
|
||||
:triggerChange="false"
|
||||
@@ -95,7 +95,7 @@
|
||||
<a-form-model-item class="item-model" prop="operateType">
|
||||
<j-dict-select-tag class="box-input"
|
||||
v-model="formInline.operateType"
|
||||
:disabled="disabled || disabledFieldList.includes('operateType') || isFromList"
|
||||
:disabled="disabled || disabledFieldList.includes('operateType') || isFromList || isLook"
|
||||
:placeholder="$t('pleaseSelect')+$t('log.operationType')"
|
||||
:type="'select'"
|
||||
:triggerChange="false"
|
||||
@@ -123,7 +123,7 @@
|
||||
:name-str="formInline.standard_number_temp"
|
||||
:source="formInline.source"
|
||||
:disabledSourceSearch="true"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
type="radio"
|
||||
select-only
|
||||
:placeholder="$t('pleaseEnter')+item.dbFieldTxt"
|
||||
@@ -132,7 +132,7 @@
|
||||
<!--文本框-->
|
||||
<a-input v-else
|
||||
class="box-input"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:maxLength="50"
|
||||
:placeholder="specialPlaceholder[item.dbFieldName] || $t('pleaseEnter')+item.dbFieldTxt" />
|
||||
@@ -146,7 +146,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
style="width: 100%" />
|
||||
<!-- 2, 单选用户 -->
|
||||
<user-selection v-else-if="item.fieldShowType === FieldType.USER_SINGLE.value"
|
||||
@@ -156,22 +156,22 @@
|
||||
@nameChange="userSelectNameChange"
|
||||
:nameStr="formInline[item.dbFieldName + '_dictText']"
|
||||
type="radio"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook" />
|
||||
<!-- 3, 单选组织机构 -->
|
||||
<j-select-depart v-else-if="item.fieldShowType === FieldType.ORGAN_SINGLE.value"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:backDepart="true" />
|
||||
<!-- 4, 日期多选 -->
|
||||
<j-multiple-date-picker v-else-if="item.fieldShowType === FieldType.DATE_MORE.value"
|
||||
class="box-input"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:fieldName="item.dbFieldName"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook" />
|
||||
<!-- 5, 多行文本 -->
|
||||
<a-textarea v-else-if="item.fieldShowType === FieldType.TEXTAREA.value"
|
||||
:placeholder="$t('pleaseEnter')+item.dbFieldTxt"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:maxLength="500"
|
||||
v-model="formInline[item.dbFieldName]" :rows="4" />
|
||||
<!-- 6, 标准多选 -->
|
||||
@@ -179,13 +179,13 @@
|
||||
:placeholder="specialPlaceholder[item.dbFieldName] || $t('pleaseSelectStandard')"
|
||||
:source="getStandardSource(item)"
|
||||
:disabledSourceSearch="true"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:exclude-standard-numbers="excludeStandardFields.includes(item.dbFieldName) ? excludeStandardNumbers : null"
|
||||
v-model="formInline[item.dbFieldName]" />
|
||||
<!-- 7, 多选组织机构 -->
|
||||
<j-select-depart v-else-if="item.fieldShowType === FieldType.ORGAN_MORE.value"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:multi="true"
|
||||
:backDepart="true"
|
||||
:treeOpera="true" />
|
||||
@@ -206,7 +206,7 @@
|
||||
<!-- 9, 文本框 -->
|
||||
<a-input v-else-if="item.fieldShowType === FieldType.TEXT_BOX.value"
|
||||
class="box-input"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:maxLength="item.dbLength"
|
||||
:placeholder="specialPlaceholder[item.dbFieldName] || $t('pleaseEnter')+item.dbFieldTxt" />
|
||||
@@ -214,7 +214,7 @@
|
||||
<j-dict-select-tag v-else-if="item.fieldShowType === FieldType.OPTION_SINGLE.value"
|
||||
class="box-input"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||
:type="'select'"
|
||||
:triggerChange="false"
|
||||
@@ -224,7 +224,7 @@
|
||||
<j-multi-select-tag v-else-if="item.fieldShowType === FieldType.OPTION_MORE.value"
|
||||
class="box-input"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||
:type="'select'"
|
||||
:triggerChange="false"
|
||||
@@ -233,7 +233,7 @@
|
||||
<s-tree-select
|
||||
v-else-if="item.fieldShowType === FieldType.TREE.value"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:tree-data="optionsData[item.dbFieldName]"
|
||||
tree-checkable
|
||||
treeCheckStrictly
|
||||
@@ -242,7 +242,7 @@
|
||||
<!-- 14, 年份选择 -->
|
||||
<j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value"
|
||||
show-type="year"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:default-value="defaultValue[item.dbFieldName]"
|
||||
date-format="YYYY"
|
||||
@@ -250,7 +250,7 @@
|
||||
<!-- 15, 树选择(单选) -->
|
||||
<s-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:tree-data="optionsData[item.dbFieldName]"
|
||||
:label-in-value="false"
|
||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
|
||||
@@ -264,7 +264,7 @@
|
||||
:options-href="item.fieldHref"
|
||||
:nameStr="formInline[item.dbFieldName + '_dictText']"
|
||||
:dict-id="item.dictId"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook" />
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</template>
|
||||
@@ -282,11 +282,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -298,7 +299,7 @@
|
||||
</template>
|
||||
</process-detail-list>
|
||||
</div>
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办 审批节点存在-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -321,7 +322,7 @@
|
||||
</a-button>
|
||||
</div>
|
||||
|
||||
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false" :disabled="disabled" />
|
||||
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false" :disabled="disabled || isLook" />
|
||||
|
||||
<!--转办选人-->
|
||||
<user-select-modal ref="userSelectModal" check-required @change="continueTurnTo" />
|
||||
@@ -337,7 +338,8 @@ import {
|
||||
StandardProperty,
|
||||
ProcessKey,
|
||||
FGEntryChangeProcessNode,
|
||||
StandardStatus
|
||||
StandardStatus,
|
||||
ProcessType
|
||||
} from '../../../enums/commonEnums.js'
|
||||
import {
|
||||
getDomesticStandardDocumentInfo,
|
||||
@@ -360,7 +362,10 @@ import {
|
||||
saveStandardECProcess,
|
||||
queryStandardECProcessData,
|
||||
turnToStandardECProcess,
|
||||
agreeStandardECProcess, rejectStandardECProcess
|
||||
agreeStandardECProcess,
|
||||
rejectStandardECProcess,
|
||||
saveSnapShot,
|
||||
getLookData, queryProcurementProcessInfo
|
||||
} from '../../../api/workCenter'
|
||||
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
|
||||
import STreeSelect from '../../../components/STreeSelect'
|
||||
@@ -443,7 +448,8 @@ export default {
|
||||
},
|
||||
businessId: null,
|
||||
standardGetState: null, // 标准从接口获取到数据时候的标准状态值
|
||||
disabledBtnClick: false // 防连点
|
||||
disabledBtnClick: false, // 防连点
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -523,53 +529,64 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
// 获取人员信息
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || FGEntryChangeProcessNode.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
|
||||
this.initProcessData()
|
||||
} else {
|
||||
this.currentNode = FGEntryChangeProcessNode.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
|
||||
// 处理非管理员从国内/海外标准模块进入发起页面,不可修改来源和操作类型
|
||||
if (this.$route.query.source && this.$route.query.operateType) {
|
||||
this.formInline = {
|
||||
source: this.$route.query.source,
|
||||
operateType: this.$route.query.operateType
|
||||
}
|
||||
switch (this.$route.query.source) {
|
||||
// 国内标准
|
||||
case StandardSource.DOMESTIC.value:
|
||||
this.initDomesticStandardForm()
|
||||
if (this.$route.query.standardId) {
|
||||
this.initDomesticFormData(this.$route.query.standardId)
|
||||
}
|
||||
break
|
||||
// 海外标准
|
||||
case StandardSource.OVERSEAS.value:
|
||||
this.initOverseasStandardForm()
|
||||
if (this.$route.query.standardId) {
|
||||
this.initOverseasFormData(this.$route.query.standardId)
|
||||
}
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessData()
|
||||
} else {
|
||||
// 获取人员信息
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || FGEntryChangeProcessNode.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
|
||||
this.initProcessData()
|
||||
} else {
|
||||
// 默认选中国内
|
||||
this.initDomesticStandardForm()
|
||||
this.currentNode = FGEntryChangeProcessNode.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
|
||||
// 处理非管理员从国内/海外标准模块进入发起页面,不可修改来源和操作类型
|
||||
if (this.$route.query.source && this.$route.query.operateType) {
|
||||
this.formInline = {
|
||||
source: this.$route.query.source,
|
||||
operateType: this.$route.query.operateType
|
||||
}
|
||||
switch (this.$route.query.source) {
|
||||
// 国内标准
|
||||
case StandardSource.DOMESTIC.value:
|
||||
this.initDomesticStandardForm()
|
||||
if (this.$route.query.standardId) {
|
||||
this.initDomesticFormData(this.$route.query.standardId)
|
||||
}
|
||||
break
|
||||
// 海外标准
|
||||
case StandardSource.OVERSEAS.value:
|
||||
this.initOverseasStandardForm()
|
||||
if (this.$route.query.standardId) {
|
||||
this.initOverseasFormData(this.$route.query.standardId)
|
||||
}
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
} else {
|
||||
// 默认选中国内
|
||||
this.initDomesticStandardForm()
|
||||
}
|
||||
}
|
||||
}
|
||||
// 获取按钮清单
|
||||
const btnList = FGEntryChangeProcessNode.propertyOfValue('btn', this.currentNode)
|
||||
if (btnList && btnList.length > 0) {
|
||||
this.btnList = btnList
|
||||
} else {
|
||||
this.btnList = FGEntryChangeProcessNode.approve.btn
|
||||
}
|
||||
this.disabled = FGEntryChangeProcessNode.propertyOfValue('disabled', this.currentNode) || false
|
||||
})
|
||||
// 获取按钮清单
|
||||
const btnList = FGEntryChangeProcessNode.propertyOfValue('btn', this.currentNode)
|
||||
if (btnList && btnList.length > 0) {
|
||||
this.btnList = btnList
|
||||
} else {
|
||||
this.btnList = FGEntryChangeProcessNode.approve.btn
|
||||
}
|
||||
this.disabled = FGEntryChangeProcessNode.propertyOfValue('disabled', this.currentNode) || false
|
||||
})
|
||||
}
|
||||
this.getSourceOptions()
|
||||
},
|
||||
methods: {
|
||||
@@ -598,7 +615,18 @@ export default {
|
||||
initProcessData () {
|
||||
this.loading = true
|
||||
const { processInstanceId, draftId, taskId, projectId } = this.$route.query
|
||||
queryStandardECProcessData({ processInstanceId, draftId, taskId, projectId }).then(async res => {
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params = {
|
||||
processInstanceId, draftId, taskId, projectId
|
||||
}
|
||||
func = queryStandardECProcessData
|
||||
}
|
||||
func(params).then(async res => {
|
||||
if (res.success) {
|
||||
let result = res.result || {}
|
||||
// 如果草稿中有内容,就从草稿里取值
|
||||
@@ -613,9 +641,9 @@ export default {
|
||||
// 获取对应类型的表单
|
||||
await this.handleSourceChange()
|
||||
// 处理流程信息回显
|
||||
this.processInfo = Object.assign({}, res.result.basicProcessInfoDTO || {})
|
||||
this.processInfo = Object.assign({}, res.result.basicProcessInfoDTO || result.basicProcessInfoDTO || {})
|
||||
// 处理流程审批信息
|
||||
this.approvalInfo = Object.assign({}, res.result.basicTaskInfoDTO || {})
|
||||
this.approvalInfo = Object.assign({}, res.result.basicTaskInfoDTO || result.basicTaskInfoDTO || {})
|
||||
this.$nextTick(() => {
|
||||
// 处理表单数据回显
|
||||
this.processInfoForm.setFieldsValue(this.processInfo)
|
||||
@@ -990,6 +1018,26 @@ export default {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify(this.dealSaveJsonData())
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.FB_ENTRY_CHANGE.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交(发起)
|
||||
*/
|
||||
@@ -1014,17 +1062,34 @@ export default {
|
||||
} else {
|
||||
submitFunc = agreeStandardECProcess
|
||||
}
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
if (this.currentNode === FGEntryChangeProcessNode.initiate.value && (!this.$route.query.processInstanceId || this.$route.query.draftId)) {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 同意
|
||||
@@ -1045,16 +1110,19 @@ export default {
|
||||
}
|
||||
formData.basicTaskInfoDTO.commitFlag = 1 // 同意就传1,驳回传2,其他都为空
|
||||
this.loading = true
|
||||
agreeStandardECProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeStandardECProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -1073,16 +1141,19 @@ export default {
|
||||
}
|
||||
formData.basicTaskInfoDTO.commitFlag = 2 // 同意就传1,驳回传2,其他都为空
|
||||
this.loading = true
|
||||
rejectStandardECProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectStandardECProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -25,7 +25,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
:maxLength="50"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
v-decorator="['processName', validatorRules.processName]" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -38,7 +38,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -48,7 +48,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -58,9 +58,9 @@
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<div class="table-operator">
|
||||
<!-- 新增-->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd" v-if="canTableOperate">{{ $t('newlyAdded') }}</a-button>
|
||||
<a-button icon="plus" type="primary" @click="handleAdd" v-if="canTableOperate && !isLook">{{ $t('newlyAdded') }}</a-button>
|
||||
<!-- 批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="canTableOperate">{{ $t('batchDelete') }}</a-button>
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="canTableOperate && !isLook">{{ $t('batchDelete') }}</a-button>
|
||||
<a-button icon="upload" type="primary" ghost @click="handleExportXls" v-if="!canTableOperate">
|
||||
{{ $t('export') }}
|
||||
</a-button>
|
||||
@@ -77,9 +77,9 @@
|
||||
:loading="loading">
|
||||
|
||||
<template v-slot:action="{text, record, index}">
|
||||
<a @click="handleEdit(record, index)">{{ $t('edit') }}</a>
|
||||
<a @click="handleEdit(record, index)" :disabled="isLook">{{ $t('edit') }}</a>
|
||||
<a-divider type="vertical" />
|
||||
<a @click="handleDelete(index)">{{ $t('delete') }}</a>
|
||||
<a @click="handleDelete(index)" :disabled="isLook">{{ $t('delete') }}</a>
|
||||
</template>
|
||||
|
||||
</j-table>
|
||||
@@ -95,6 +95,7 @@
|
||||
type="radio"
|
||||
v-decorator="['confirmEngineer', validatorRules.confirmEngineer]"
|
||||
@nameChange="userSelectNameChange"
|
||||
:disabled="isLook"
|
||||
filedName="confirmEngineer"
|
||||
:nameStr="businessFormData.confirmEngineer_dictText" />
|
||||
</a-form-item>
|
||||
@@ -110,11 +111,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -129,7 +131,7 @@
|
||||
</div>
|
||||
|
||||
<!--底部按钮-->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办 审批节点存在-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -172,7 +174,7 @@ import InternalDetailPage from '../../../components/InternalDetailPage'
|
||||
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
|
||||
import PersonnelInfo from '../../../components/PersonnelInfo'
|
||||
import ProcessDetailList from '../../../components/ProcessDetailList'
|
||||
import { ProcessKey, ProcurementProcessNodes } from '../../../enums/commonEnums'
|
||||
import { ProcessKey, ProcurementProcessNodes, ProcessType } from '../../../enums/commonEnums'
|
||||
import JTable from '../../../components/jero/JTable'
|
||||
import TableFormModal from './modules/TableFormModal'
|
||||
import {
|
||||
@@ -182,7 +184,9 @@ import {
|
||||
agreeProcurementProcess,
|
||||
rejectProcurementProcess,
|
||||
transferProcurementProcess,
|
||||
carbonCopyProcurementProcess
|
||||
carbonCopyProcurementProcess,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '../../../api/workCenter'
|
||||
import UserSelection from '../../../components/selection/UserSelection'
|
||||
import UserSelectModal from '../../../components/selection/UserSelectModal'
|
||||
@@ -271,7 +275,8 @@ export default {
|
||||
isTransfer: true, // 是否转办
|
||||
businessId: null,
|
||||
carbonCopyPersonIds: null, // 抄送选择人的id
|
||||
disabledBtnClick: false
|
||||
disabledBtnClick: false,
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -305,20 +310,31 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ProcurementProcessNodes.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.currentNode = ProcurementProcessNodes.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
|
||||
}
|
||||
if (this.currentNode === ProcurementProcessNodes.initiate.value) {
|
||||
this.columns.push(this.operateColumn)
|
||||
}
|
||||
this.btnList = ProcurementProcessNodes.propertyOfValue('btn', this.currentNode)
|
||||
})
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ProcurementProcessNodes.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.currentNode = ProcurementProcessNodes.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
|
||||
}
|
||||
if (this.currentNode === ProcurementProcessNodes.initiate.value) {
|
||||
this.columns.push(this.operateColumn)
|
||||
}
|
||||
this.btnList = ProcurementProcessNodes.propertyOfValue('btn', this.currentNode)
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 选择用户得到用户名
|
||||
@@ -371,20 +387,28 @@ export default {
|
||||
},
|
||||
initProcessInfo () {
|
||||
this.loading = true
|
||||
const params = {
|
||||
processInstanceId: this.$route.query.processInstanceId,
|
||||
draftId: this.$route.query.draftId,
|
||||
taskId: this.$route.query.taskId,
|
||||
projectId: this.$route.query.projectId
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params = {
|
||||
processInstanceId: this.$route.query.processInstanceId,
|
||||
draftId: this.$route.query.draftId,
|
||||
taskId: this.$route.query.taskId,
|
||||
projectId: this.$route.query.projectId
|
||||
}
|
||||
func = queryProcurementProcessInfo
|
||||
}
|
||||
queryProcurementProcessInfo(params).then(res => {
|
||||
func(params).then(res => {
|
||||
if (res.success) {
|
||||
let result = res.result || {}
|
||||
if (result.infoJsonStr) {
|
||||
result = JSON.parse(result.infoJsonStr)
|
||||
this.draftInitPersonInfo(result.userInfoMap)
|
||||
}
|
||||
this.businessId = result.businessId
|
||||
this.businessId = result.businessId || result.businessInfoDTO[0].businessId
|
||||
this.processInfo = Object.assign({}, result.basicProcessInfoDTO || {})
|
||||
this.dataSource = result.businessInfoDTO || []
|
||||
this.approvalInfo = Object.assign({}, result.basicTaskInfoDTO || {})
|
||||
@@ -480,6 +504,26 @@ export default {
|
||||
}
|
||||
return !flag ? flag : formData
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify(this.dealFormData(true))
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.LEGAL_PROCUREMENT.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办
|
||||
*/
|
||||
@@ -587,17 +631,34 @@ export default {
|
||||
submitFunc = agreeProcurementProcess
|
||||
}
|
||||
this.loading = true
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
if (this.currentNode === ProcurementProcessNodes.initiate.value && (!this.$route.query.processInstanceId || this.$route.query.draftId)) {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 同意
|
||||
@@ -618,16 +679,19 @@ export default {
|
||||
}
|
||||
formData.basicTaskInfoDTO.commitFlag = 1 // 同意就传1,驳回传2,其他都为空
|
||||
this.loading = true
|
||||
agreeProcurementProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeProcurementProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -646,16 +710,19 @@ export default {
|
||||
}
|
||||
formData.basicTaskInfoDTO.commitFlag = 2 // 同意就传1,驳回传2,其他都为空
|
||||
this.loading = true
|
||||
rejectProcurementProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectProcurementProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
handleExportXls () {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
:maxLength="50"
|
||||
:disabled="disabled || processDisabled"
|
||||
:disabled="disabled || processDisabled || disabledAll"
|
||||
v-decorator="['prcName', validatorRules.processName]" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -20,7 +20,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')">
|
||||
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled || processDisabled"
|
||||
:disabled="disabled || processDisabled || disabledAll"
|
||||
value-format="YYYY-MM-DD hh:mm:ss"
|
||||
v-decorator="['dueTime']" />
|
||||
</a-form-item>
|
||||
@@ -31,7 +31,7 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabled || processDisabled"
|
||||
:disabled="disabled || processDisabled || disabledAll"
|
||||
v-decorator="['prcMes']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
<!-- 业务基本信息 -->
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<base-info-form :disabled="disabled" ref="baseInfoForm"/>
|
||||
<base-info-form :disabled="disabled" :disabled-all="disabledAll" ref="baseInfoForm"/>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -50,16 +50,17 @@
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
:disabled="disabledAll"
|
||||
v-decorator="['commitText', validatorRules.remarks]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple />
|
||||
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="disabledAll" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div class="detail-page-bottom-operate-box" v-if="!disabledAll">
|
||||
<!--取消-->
|
||||
<a-button v-if="btn.includes('cancel')" type="primary" :loading="loading" ghost @click="handleCancel">{{ $t('cancel') }}</a-button>
|
||||
<!--保存-->
|
||||
@@ -76,6 +77,7 @@ import InternalDetailPage from '@comp/InternalDetailPage'
|
||||
import BaseInfoForm from '@views/workCenter/standardPromotionProcess/modules/BaseInfoForm'
|
||||
import { ProcessKey, StandardPromotion } from '@/enums/commonEnums'
|
||||
import {
|
||||
getLookData,
|
||||
getStandardPromotionDataById, getStandardPromotionDetail,
|
||||
getStandardPromotionProjectId,
|
||||
saveStandardPromotion,
|
||||
@@ -89,6 +91,7 @@ export default {
|
||||
return {
|
||||
loading: false,
|
||||
switchValue: 'base',
|
||||
disabledAll: false, // 禁用全部
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 4 }
|
||||
@@ -169,7 +172,8 @@ export default {
|
||||
// standardApproval
|
||||
},
|
||||
created () {
|
||||
const { projectId, nodeId, taskName } = this.$route.query
|
||||
const { projectId, nodeId, taskName, isLook } = this.$route.query
|
||||
this.disabledAll = isLook === '1'
|
||||
// 发起、草稿进来没有nodeId,就默认发起节点
|
||||
this.currentNode = nodeId || StandardPromotion.initiate.value
|
||||
this.currentNodeName = taskName || StandardPromotion.initiate.text
|
||||
@@ -180,6 +184,11 @@ export default {
|
||||
// 提交按钮
|
||||
this.btn = ['submit']
|
||||
}
|
||||
// 快照回显
|
||||
if (this.$route.query.snapshotId) {
|
||||
this.loadSnapshotPage()
|
||||
return
|
||||
}
|
||||
// 如果是待办进来,就获取详情数据
|
||||
if (this.$route.query.projectId) {
|
||||
this.loadPage()
|
||||
@@ -273,6 +282,8 @@ export default {
|
||||
this.$refs.baseInfoForm.getData()
|
||||
]
|
||||
}
|
||||
// 保存一下所有表单收集的数据用于快照回显
|
||||
params.formDataList = formDataList
|
||||
|
||||
// 开始处理信息
|
||||
// 流程信息
|
||||
@@ -298,8 +309,47 @@ export default {
|
||||
projectId: this.projectId,
|
||||
id: this.formInfo.id
|
||||
})
|
||||
|
||||
// 发起保存草稿信息
|
||||
if (this.isInitiate) {
|
||||
params.infoJsonStr = JSON.stringify({
|
||||
// 将流程数据保存json,后续进行快照回显
|
||||
prcData: params
|
||||
})
|
||||
}
|
||||
|
||||
return params
|
||||
},
|
||||
// 回显快照页面
|
||||
loadSnapshotPage () {
|
||||
const { snapshotId } = this.$route.query
|
||||
if (!snapshotId) {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
getLookData({ snapshotId }).then(res => {
|
||||
const result = res.result || {}
|
||||
const jsonData = JSON.parse(result.infoJsonStr || '{}')
|
||||
const prcData = jsonData.prcData || {}
|
||||
this.info = prcData
|
||||
// 保存并回显表单信息
|
||||
this.formInfo = prcData.processEsDeclare
|
||||
this.$nextTick(() => {
|
||||
this.$refs.baseInfoForm.initData(prcData.processEsDeclare)
|
||||
})
|
||||
this.processInfoForm && this.processInfoForm.setFieldsValue({
|
||||
prcName: prcData.processAll.prcName,
|
||||
dueTime: prcData.processAll.dueTime,
|
||||
prcMes: prcData.processAll.prcMes
|
||||
})
|
||||
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
|
||||
commitText: prcData.processApprovalRecord.commitText,
|
||||
commitFile: prcData.processApprovalRecord.commitFile
|
||||
})
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="emergencyDegree">
|
||||
<j-dict-select-tag :disabled="disabled"
|
||||
<j-dict-select-tag :disabled="disabled || disabledAll"
|
||||
v-model="formInline.emergencyDegree"
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.standardPromotionProcess.urgency')"
|
||||
:triggerChange="false"
|
||||
@@ -30,7 +30,7 @@
|
||||
<a-form-model-item class="item-model" prop="standardNo">
|
||||
<standard-selection :source="StandardSource.ENTERPRISE.value" type="radio"
|
||||
:disabledSourceSearch="true"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || disabledAll"
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.standardPromotionProcess.esNumber')"
|
||||
@nameChange="changeStandardName"
|
||||
v-model="formInline.standardNo" />
|
||||
@@ -61,8 +61,9 @@
|
||||
<a-form-model-item class="item-model" prop="declareUser">
|
||||
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.standardPromotionProcess.promoter')"
|
||||
v-model="formInline.declareUser"
|
||||
@nameChange="(name) => nameChange('declareUserDictText', name)"
|
||||
:name-str="formInline.declareUserDictText"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || disabledAll"
|
||||
type="radio" />
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -78,6 +79,7 @@
|
||||
<a-input v-model="formInline.mainDepart"
|
||||
@change="event => formInline.mainDepart = event.target.value"
|
||||
:maxLength="50"
|
||||
:disabled="disabledAll"
|
||||
:placeholder="$t('pleaseEnter')+$t('workCenter.standardPromotionProcess.mainDeliveryDepart')" />
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -93,6 +95,7 @@
|
||||
<a-input v-model="formInline.declareTopic"
|
||||
@change="event => formInline.declareTopic = event.target.value"
|
||||
:maxLength="50"
|
||||
:disabled="disabledAll"
|
||||
:placeholder="$t('pleaseEnter')+$t('workCenter.standardPromotionProcess.subject')" />
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -105,7 +108,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="declareDate">
|
||||
<j-date date-format="YYYY-MM-DD" style="width: 100%" showType="day" :disabled="disabled"
|
||||
<j-date date-format="YYYY-MM-DD" style="width: 100%" showType="day" :disabled="disabled || disabledAll"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardPromotionProcess.promotionDate')"
|
||||
v-model="formInline.declareDate" />
|
||||
</a-form-model-item>
|
||||
@@ -120,7 +123,7 @@
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="attendUnit">
|
||||
<j-select-depart
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || disabledAll"
|
||||
v-model="formInline.attendUnit"
|
||||
:multi="true"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardPromotionProcess.participatingUnits')"
|
||||
@@ -140,7 +143,9 @@
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="initiator">
|
||||
<user-selection :placeholder="$t('pleaseEnter')+$t('workCenter.standardPromotionProcess.contactPerson')"
|
||||
type="checkbox" :nameStr="initiatorName"
|
||||
@nameChange="(name) => nameChange('initiatorDictText', name)"
|
||||
type="checkbox" :nameStr="formInline.initiatorDictText"
|
||||
:disabled="disabledAll"
|
||||
v-model="formInline.initiator" />
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -156,6 +161,7 @@
|
||||
<a-textarea :maxLength="500"
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.standardPromotionProcess.content')"
|
||||
:rows="4"
|
||||
:disabled="disabledAll"
|
||||
v-model="formInline.declareContent" />
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -179,7 +185,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 上传 -->
|
||||
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false" :disabled="disabled"></upload-file>
|
||||
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false" :disabled="disabled || disabledAll"></upload-file>
|
||||
</a-form-model>
|
||||
</template>
|
||||
|
||||
@@ -197,6 +203,12 @@ export default {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
},
|
||||
// 查看,禁用全部表单
|
||||
disabledAll: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
@@ -207,8 +219,6 @@ export default {
|
||||
model: {},
|
||||
// 操作类型
|
||||
operationType: null,
|
||||
// 联络人名字
|
||||
initiatorName: '',
|
||||
// 是否禁用联络人
|
||||
disabledInitiator: true,
|
||||
rules: {
|
||||
@@ -303,7 +313,6 @@ export default {
|
||||
this.formInline = {
|
||||
...data
|
||||
}
|
||||
this.initiatorName = data.initiatorDictText
|
||||
},
|
||||
// 外层要获取数据
|
||||
getData () {
|
||||
@@ -352,7 +361,7 @@ export default {
|
||||
const names = data.map(item => item.contactIdDictText).join(',')
|
||||
// 如果是清空,设置禁用,否则根据返回内容设置禁用
|
||||
this.disabledInitiator = val ? !!ids : true
|
||||
this.initiatorName = names
|
||||
this.formInline.initiatorDictText = names
|
||||
this.$set(this.formInline, 'initiator', ids)
|
||||
// 如果接口有回显,就去掉校验信息
|
||||
if (ids) {
|
||||
@@ -360,6 +369,9 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
nameChange (field, name) {
|
||||
this.formInline[field] = name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user