[update] 修改新建流程页,企标计划立项/变更流程

This commit is contained in:
lideqin
2023-10-08 09:28:38 +08:00
parent 1ebd6d3cf2
commit 691270caf0
9 changed files with 926 additions and 63 deletions
+26 -26
View File
@@ -17,30 +17,30 @@ export default {
dataList: [
{ // 外部标准管理流程
uid: 1,
text: this.$t('newProcess.externalStandardsManagementProcess'),
text: this.$t('workCenter.newProcess.externalStandardsManagementProcess'),
list: [
{ // 标准法规入库/更正流程
title: this.$t('newProcess.standardRegulationEntryCorrectionProcess'),
title: this.$t('workCenter.newProcess.standardRegulationEntryCorrectionProcess'),
path: '/workCenter/StandardEntryOrChangeProcess'
},
{ // 标准征求意见流程
title: this.$t('newProcess.annotateTheConsultationProcess'),
title: this.$t('workCenter.newProcess.annotateTheConsultationProcess'),
path: ''
},
{ // 项目合规评估流程
title: this.$t('newProcess.projectComplianceAssessmentProcess'),
title: this.$t('workCenter.newProcess.projectComplianceAssessmentProcess'),
path: ''
},
{ // 未符合项跟踪流程
title: this.$t('newProcess.noMatchTrackingProcess'),
title: this.$t('workCenter.newProcess.noMatchTrackingProcess'),
path: ''
},
{ // 法规合规评估流程
title: this.$t('newProcess.regulatoryComplianceAssessmentProcess'),
title: this.$t('workCenter.newProcess.regulatoryComplianceAssessmentProcess'),
path: ''
},
{ // 法规采购流程
title: this.$t('newProcess.regulatoryProcurementProcess'),
title: this.$t('workCenter.newProcess.regulatoryProcurementProcess'),
path: ''
}
]
@@ -50,73 +50,73 @@ export default {
text: '企标管理流程',
list: [
{ // 企标立项/变更计划
title: this.$t('newProcess.enterpriseProjectChangePlan'),
title: this.$t('workCenter.newProcess.enterpriseProjectChangePlan'),
path: '/workCenter/enterpriseStandardInitChange/flow/planApprovalChangeFlow'
},
{ // 年度制修订计划审批流程(各部门主动上报)
title: this.$t('newProcess.annualRevisionPlanActivelyReport'),
title: this.$t('workCenter.newProcess.annualRevisionPlanActivelyReport'),
path: ''
},
{ // 年度制修订计划审批流程(标准化发起)
title: this.$t('newProcess.annualRevisionPlanStandardizationInit'),
title: this.$t('workCenter.newProcess.annualRevisionPlanStandardizationInit'),
path: ''
},
{ // 企标制修订流程
title: this.$t('newProcess.enterpriseStandardSystemRevisionProcess'),
title: this.$t('workCenter.newProcess.enterpriseStandardSystemRevisionProcess'),
path: ''
},
{ // 企标更改流程
title: this.$t('newProcess.bidChangeProcess'),
title: this.$t('workCenter.newProcess.bidChangeProcess'),
path: ''
},
{ // 企标复审流程
title: this.$t('newProcess.processOfEnterpriseBidReview'),
title: this.$t('workCenter.newProcess.processOfEnterpriseBidReview'),
path: ''
},
{ // 企标废止流程
title: this.$t('newProcess.processOfEnterpriseBidAnnulment'),
title: this.$t('workCenter.newProcess.processOfEnterpriseBidAnnulment'),
path: ''
},
{ // 企标封存流程
title: this.$t('newProcess.processOfSealingEnterpriseStandard'),
title: this.$t('workCenter.newProcess.processOfSealingEnterpriseStandard'),
path: ''
},
{ // 已封存企标启用流程
title: this.$t('newProcess.theSealedEnterpriseBidHasBeenActivatedProcess'),
title: this.$t('workCenter.newProcess.theSealedEnterpriseBidHasBeenActivatedProcess'),
path: ''
},
{ // 企标稽查计划
title: this.$t('newProcess.enterpriseStandardAuditPlan'),
title: this.$t('workCenter.newProcess.enterpriseStandardAuditPlan'),
path: ''
},
{ // 企标稽查流程
title: this.$t('newProcess.processOfEnterpriseStandardAudit'),
title: this.$t('workCenter.newProcess.processOfEnterpriseStandardAudit'),
path: ''
},
{ // 稽查延期申请流程
title: this.$t('newProcess.auditExtensionApplicationProcess'),
title: this.$t('workCenter.newProcess.auditExtensionApplicationProcess'),
path: ''
},
{ // 企标稽查整改
title: this.$t('newProcess.enterpriseStandardInspectionAndRectification'),
title: this.$t('workCenter.newProcess.enterpriseStandardInspectionAndRectification'),
path: ''
},
{ // 权限申请流程
title: '权限申请流程',
title: this.$t('workCenter.newProcess.permissionApplicationProcess'),
path: ''
},
{
title: '标准宣贯流程',
{ // 标准宣贯流程
title: this.$t('workCenter.newProcess.standardPromotionProcess'),
path: ''
}
]
},
{ // 工作组相关流程
uid: 3,
text: '工作组相关流程',
text: this.$t('workCenter.newProcess.workgroupProcess'),
list: [
{
title: '会后管理流程',
{ // 会后管理流程
title: this.$t('workCenter.newProcess.postMeetingManagementProcess'),
path: ''
}
]
@@ -1,20 +1,805 @@
<template>
<internal-detail-page :title="$t('flowCenter') + $t('enterpriseStandardLibrary.initChangeFlow.title')" :loading="loading" :content-padding="0">
<internal-detail-page :title="pageTitle">
<a-form :form="form">
<div class="process-part-title">{{ $t('processInformation') }}</div>
<!-- 流程名称 -->
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
@change="event => event.target.value = event.target.value.trim()"
:maxLength="50"
v-decorator="['processName']" />
</a-form-item>
<!-- 截止日期 -->
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')">
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
value-format="YYYY-MM-DD"
v-decorator="['expirationDate']" />
</a-form-item>
<!-- 流程说明 -->
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processExplain')">
<a-textarea :placeholder="$t('pleaseSelect') + $t('processExplain')"
maxLength="500"
:rows="4"
v-decorator="['processExplain']" />
</a-form-item>
<div class="title-wrapper">流程信息</div>
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
<a-form-model :model="formInline" v-if="isFormInline" class="form-add" :rules="rules" ref="ruleForm">
<!-- 基础信息部分 -->
<div class="collapsible-panel-form">
<div class="collapsible-panel-form-header">
<span>基础信息</span>
<div class="retractable-btn" @click="handleChangeRetractable('baseInfo')">
<a-icon type="double-right" :class="retractableFlag.baseInfo ? 'pack-up-btn' : 'unfold-btn'" />
{{ retractableFlag.baseInfo ? '收起' : '展开' }}
</div>
</div>
<div class="form-flex-box collapsible-panel-form-content" v-show="retractableFlag.baseInfo">
<!-- 申请类型 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.applicationType')">
{{ $t('workCenter.enterpriseInitChangePlan.applicationType') }}
</span>
</div>
<a-form-model-item class="item-model" prop="applicationType">
<a-select v-model="formInline.applicationType"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.applicationType')">
<a-select-option :value="1">{{ $t('workCenter.enterpriseInitChangePlan.standardProjectEstablishment') }}</a-select-option>
<a-select-option :value="2">{{ $t('workCenter.enterpriseInitChangePlan.change') }}</a-select-option>
</a-select>
</a-form-model-item>
</div>
<!-- 项目类别 -->
<div v-if="formInline.applicationType === 1" class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.itemCategory')">
{{ $t('workCenter.enterpriseInitChangePlan.itemCategory') }}
</span>
</div>
<a-form-model-item class="item-model" prop="itemCategory">
<a-select v-model="formInline.itemCategory"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.itemCategory')">
<a-select-option :value="1">{{ $t('workCenter.enterpriseInitChangePlan.formulate') }}</a-select-option>
<a-select-option :value="2">{{ $t('workCenter.enterpriseInitChangePlan.revise') }}</a-select-option>
</a-select>
</a-form-model-item>
</div>
<!-- 标准立项-制定 -->
<template v-if="formInline.itemCategory && formInline.itemCategory === 1">
<!-- 企业编号 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.enterpriseStandardNum')">
{{ $t('workCenter.enterpriseInitChangePlan.enterpriseStandardNum') }}
</span>
</div>
<a-form-model-item class="item-model" prop="enterpriseStandardNum">
<a-input class="box-input"
v-model="formInline.enterpriseStandardNum"
:maxLength="50"
disabled
:placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.enterpriseStandardNum')" />
</a-form-model-item>
</div>
<!-- 企业名称 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.enterpriseStandardName')">
{{ $t('workCenter.enterpriseInitChangePlan.enterpriseStandardName') }}
</span>
</div>
<a-form-model-item class="item-model" prop="enterpriseStandardName">
<a-input class="box-input"
v-model="formInline.enterpriseStandardName"
:maxLength="50"
:placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.enterpriseStandardName')" />
</a-form-model-item>
</div>
<!-- 企业标准代号 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.enterpriseStandardCode')">
{{ $t('workCenter.enterpriseInitChangePlan.enterpriseStandardCode') }}
</span>
</div>
<a-form-model-item class="item-model" prop="enterpriseStandardCode">
<j-dict-select-tag class="box-input"
v-model="formInline.enterpriseStandardCode"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.enterpriseStandardCode')"
:type="'select'"
:triggerChange="false"
dictCode="enterprise_standard_code" />
</a-form-model-item>
</div>
<!-- 企业名称代号 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.enterpriseNameCode')">
{{ $t('workCenter.enterpriseInitChangePlan.enterpriseNameCode') }}
</span>
</div>
<a-form-model-item class="item-model" prop="enterpriseNameCode">
<j-dict-select-tag class="box-input"
v-model="formInline.enterpriseNameCode"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.enterpriseNameCode')"
:type="'select'"
:triggerChange="false"
dictCode="enterprise_name_code" />
</a-form-model-item>
</div>
<!-- 标准类别代号 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.standardCategoryCode')">
{{ $t('workCenter.enterpriseInitChangePlan.standardCategoryCode') }}
</span>
</div>
<a-form-model-item class="item-model" prop="standardCategoryCode">
<j-dict-select-tag class="box-input"
v-model="formInline.standardCategoryCode"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.standardCategoryCode')"
:type="'select'"
:triggerChange="false"
dictCode="standard_category_code" />
</a-form-model-item>
</div>
<!-- 年代号 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.yearNumber')">
{{ $t('workCenter.enterpriseInitChangePlan.yearNumber') }}
</span>
</div>
<a-form-model-item class="item-model" prop="yearNumber">
<j-date show-type="year"
v-model="formInline.yearNumber"
:default-value="yearNumberDefaultValue"
date-format="YYYY"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.yearNumber')" />
</a-form-model-item>
</div>
</template>
<!-- 标准立项-修订 -->
<template v-else-if="formInline.itemCategory && formInline.itemCategory === 2">
<!-- 企标编号 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.enterpriseStandardNum')">
{{ $t('workCenter.enterpriseInitChangePlan.enterpriseStandardNum') }}
</span>
</div>
<a-form-model-item class="item-model" prop="enterpriseStandardNum">
<standard-selection :source="StandardSource.ENTERPRISE.value"
:disabledSourceSearch="true"
changeType="radio"
v-model="formInline.enterpriseStandardNum"
@nameChange="nameChange"/>
</a-form-model-item>
</div>
<!-- 企标名称 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.enterpriseStandardName')">
{{ $t('workCenter.enterpriseInitChangePlan.enterpriseStandardName') }}
</span>
</div>
<a-form-model-item class="item-model" prop="enterpriseStandardName">
<a-input class="box-input"
v-model="formInline.enterpriseStandardName"
:maxLength="50"
disabled
:placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.enterpriseStandardName')" />
</a-form-model-item>
</div>
<!-- 新企标编号 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.newEnterpriseStandardNum')">
{{ $t('workCenter.enterpriseInitChangePlan.newEnterpriseStandardNum') }}
</span>
</div>
<a-form-model-item class="item-model" prop="newEnterpriseStandardNum">
<a-input class="box-input"
v-model="formInline.newEnterpriseStandardNum"
:maxLength="50"
disabled
:placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.newEnterpriseStandardNum')" />
</a-form-model-item>
</div>
<!-- 新企标名称 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.newEnterpriseStandardName')">
{{ $t('workCenter.enterpriseInitChangePlan.newEnterpriseStandardName') }}
</span>
</div>
<a-form-model-item class="item-model" prop="newEnterpriseStandardName">
<a-input class="box-input"
v-model="formInline.newEnterpriseStandardName"
:maxLength="50"
:placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.newEnterpriseStandardName')" />
</a-form-model-item>
</div>
<!-- 年代号 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.yearNumber')">
{{ $t('workCenter.enterpriseInitChangePlan.yearNumber') }}
</span>
</div>
<a-form-model-item class="item-model" prop="yearNumber">
<j-date show-type="year"
v-model="formInline.yearNumber"
:default-value="yearNumberDefaultValue"
date-format="YYYY"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.yearNumber')" />
</a-form-model-item>
</div>
</template>
<!-- 标准英文名称 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.standardEnglishName')">
{{ $t('workCenter.enterpriseInitChangePlan.standardEnglishName') }}
</span>
</div>
<a-form-model-item class="item-model" prop="standardEnglishName">
<a-input class="box-input"
v-model="formInline.standardEnglishName"
:maxLength="50"
:placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.standardEnglishName')" />
</a-form-model-item>
</div>
<!-- 标准体系 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.standardSystem')">
{{ $t('workCenter.enterpriseInitChangePlan.standardSystem') }}
</span>
</div>
<a-form-model-item class="item-model" prop="standardSystem">
<j-dict-select-tag class="box-input"
v-model="formInline.standardSystem"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.standardSystem')"
:type="'select'"
:triggerChange="false"
dictCode="standard_system" />
</a-form-model-item>
</div>
<!-- 标准类型 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.standardType')">
{{ $t('workCenter.enterpriseInitChangePlan.standardType') }}
</span>
</div>
<a-form-model-item class="item-model" prop="standardType">
<j-dict-select-tag class="box-input"
v-model="formInline.standardType"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.standardType')"
:type="'select'"
:triggerChange="false"
dictCode="esp_standard_type" />
</a-form-model-item>
</div>
<!-- 标准等级分类 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.standardGradeClassification')">
{{ $t('workCenter.enterpriseInitChangePlan.standardGradeClassification') }}
</span>
</div>
<a-form-model-item class="item-model" prop="standardGradeClassification">
<j-dict-select-tag class="box-input"
v-model="formInline.standardGradeClassification"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.standardGradeClassification')"
:type="'select'"
:triggerChange="false"
dictCode="standard_grade_classify" />
</a-form-model-item>
</div>
<!-- 编制说明 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.compilationIllustration')">
{{ $t('workCenter.enterpriseInitChangePlan.compilationIllustration') }}
</span>
</div>
<a-form-model-item class="item-model" prop="compilationIllustration">
<a-button type="primary" class="button-text" @click="clickButtonToUpload('compilationIllustration')">
{{
(formInline.compilationIllustration === 'null' || formInline.compilationIllustration === ''
|| formInline.compilationIllustration === null || formInline.compilationIllustration === undefined)
? $t('uploadFile.clickUpload')
: $t('uploadFile.viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</div>
</div>
<!-- 完成日期部分 -->
<div class="collapsible-panel-form">
<div class="collapsible-panel-form-header">
<span>完成日期</span>
<div class="retractable-btn" @click="handleChangeRetractable('finishDate')">
<a-icon type="double-right" :class="retractableFlag.finishDate ? 'pack-up-btn' : 'unfold-btn'" />
{{ retractableFlag.finishDate ? '收起' : '展开' }}
</div>
</div>
<div class="form-flex-box collapsible-panel-form-content" v-show="retractableFlag.finishDate">
<!-- 草稿计划完成日期 -->
<div class="box-title-text form-flex-item">
<div class="title-text title-text-long">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.draftPlanFinishDate')">
{{ $t('workCenter.enterpriseInitChangePlan.draftPlanFinishDate') }}
</span>
</div>
<a-form-model-item class="item-model" prop="draftPlanFinishDate">
<a-date-picker v-model="formInline.draftPlanFinishDate" :showTime="false" value-format="YYYY-MM-DD"></a-date-picker>
</a-form-model-item>
</div>
<!-- 征求意见稿计划完成日期 -->
<div class="box-title-text form-flex-item">
<div class="title-text title-text-long">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.exposureDraftPlanFinishDate')">
{{ $t('workCenter.enterpriseInitChangePlan.exposureDraftPlanFinishDate') }}
</span>
</div>
<a-form-model-item class="item-model" prop="exposureDraftPlanFinishDate">
<a-date-picker v-model="formInline.exposureDraftPlanFinishDate" :showTime="false" value-format="YYYY-MM-DD"></a-date-picker>
</a-form-model-item>
</div>
<!-- 计划报批日期 -->
<div class="box-title-text form-flex-item">
<div class="title-text title-text-long">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.planSubmissionDate')">
{{ $t('workCenter.enterpriseInitChangePlan.planSubmissionDate') }}
</span>
</div>
<a-form-model-item class="item-model" prop="planSubmissionDate">
<a-date-picker v-model="formInline.planSubmissionDate" :showTime="false" value-format="YYYY-MM-DD"></a-date-picker>
</a-form-model-item>
</div>
</div>
</div>
<!-- 适用范围部分 -->
<div class="collapsible-panel-form">
<div class="collapsible-panel-form-header">
<span>适用范围</span>
<div class="retractable-btn" @click="handleChangeRetractable('rangeOfApplication')">
<a-icon type="double-right" :class="retractableFlag.rangeOfApplication ? 'pack-up-btn' : 'unfold-btn'" />
{{ retractableFlag.rangeOfApplication ? '收起' : '展开' }}
</div>
</div>
<div class="form-flex-box collapsible-panel-form-content" v-show="retractableFlag.rangeOfApplication">
<!-- 零部件名称 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.partName')">
{{ $t('workCenter.enterpriseInitChangePlan.partName') }}
</span>
</div>
<a-form-model-item class="item-model" prop="partName">
<a-tree-select v-model="formInline.partName"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%"
:tree-data="partNameOptions"
:label-in-value="false"
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.partName')" />
</a-form-model-item>
</div>
<!-- 授权部门 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.authorizationDepart')">
{{ $t('workCenter.enterpriseInitChangePlan.authorizationDepart') }}
</span>
</div>
<a-form-model-item class="item-model" prop="authorizationDepart">
<j-select-depart v-model="formInline.authorizationDepart"
:backDepart="true" />
</a-form-model-item>
</div>
<!-- 主起草人 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.principalDrafter')">
{{ $t('workCenter.enterpriseInitChangePlan.principalDrafter') }}
</span>
</div>
<a-form-model-item class="item-model" prop="principalDrafter">
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.principalDrafter')"
v-model="formInline.principalDrafter"
filedName="principalDrafter"
@nameChange="userSelectNameChange"
:nameStr="formInline.principalDrafter_dictText"
type="radio" />
</a-form-model-item>
</div>
<!-- 主起草单位 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.mainDraftUnit')">
{{ $t('workCenter.enterpriseInitChangePlan.mainDraftUnit') }}
</span>
</div>
<a-form-model-item class="item-model" prop="mainDraftUnit">
<j-select-depart v-model="formInline.mainDraftUnit"
:backDepart="true" />
</a-form-model-item>
</div>
<!-- 起草单位负责人 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.headOfMainDraftingUnit')">
{{ $t('workCenter.enterpriseInitChangePlan.headOfMainDraftingUnit') }}
</span>
</div>
<a-form-model-item class="item-model" prop="headOfMainDraftingUnit">
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.headOfMainDraftingUnit')"
v-model="formInline.headOfMainDraftingUnit"
filedName="headOfMainDraftingUnit"
@nameChange="userSelectNameChange"
:nameStr="formInline.headOfMainDraftingUnit_dictText"
type="radio" />
</a-form-model-item>
</div>
<!-- 标准推进人 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.standardPusher')">
{{ $t('workCenter.enterpriseInitChangePlan.standardPusher') }}
</span>
</div>
<a-form-model-item class="item-model" prop="standardPusher">
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.standardPusher')"
v-model="formInline.standardPusher"
filedName="standardPusher"
@nameChange="userSelectNameChange"
:nameStr="formInline.standardPusher_dictText"
type="radio" />
</a-form-model-item>
</div>
<!-- 配合单位 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="required">*</span>
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.suitUnit')">
{{ $t('workCenter.enterpriseInitChangePlan.suitUnit') }}
</span>
</div>
<a-form-model-item class="item-model" prop="suitUnit">
<j-select-depart v-model="formInline.suitUnit"
:backDepart="true" />
</a-form-model-item>
</div>
</div>
</div>
<!-- 立项说明部分 -->
<div class="collapsible-panel-form">
<div class="collapsible-panel-form-header">
<span>立项说明</span>
<div class="retractable-btn" @click="handleChangeRetractable('projectStatement')">
<a-icon type="double-right" :class="retractableFlag.projectStatement ? 'pack-up-btn' : 'unfold-btn'" />
{{ retractableFlag.projectStatement ? '收起' : '展开' }}
</div>
</div>
<div class="form-flex-box collapsible-panel-form-content" v-show="retractableFlag.projectStatement">
<!-- 立项/变更原因 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.projectApprovalChangeReason')">
{{ $t('workCenter.enterpriseInitChangePlan.projectApprovalChangeReason') }}
</span>
</div>
<a-form-model-item class="item-model" prop="projectApprovalChangeReason">
<a-textarea :placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.projectApprovalChangeReason')"
:maxLength="500"
v-model="formInline.projectApprovalChangeReason" :rows="4" />
</a-form-model-item>
</div>
<!-- 立项背景立项依据 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.projectBackground')">
{{ $t('workCenter.enterpriseInitChangePlan.projectBackground') }}
</span>
</div>
<a-form-model-item class="item-model" prop="projectBackground">
<a-textarea :placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.projectBackground')"
:maxLength="500"
v-model="formInline.projectBackground" :rows="4" />
</a-form-model-item>
</div>
<!-- 国际国家及行业同类标准分析 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.homogeneousStandardAnalysis')">
{{ $t('workCenter.enterpriseInitChangePlan.homogeneousStandardAnalysis') }}
</span>
</div>
<a-form-model-item class="item-model" prop="homogeneousStandardAnalysis">
<a-textarea :placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.homogeneousStandardAnalysis')"
:maxLength="500"
v-model="formInline.homogeneousStandardAnalysis" :rows="4" />
</a-form-model-item>
</div>
<!-- 企业同类标准对比分析 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.standardContrastiveAnalysis')">
{{ $t('workCenter.enterpriseInitChangePlan.standardContrastiveAnalysis') }}
</span>
</div>
<a-form-model-item class="item-model" prop="standardContrastiveAnalysis">
<a-textarea :placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.standardContrastiveAnalysis')"
:maxLength="500"
v-model="formInline.standardContrastiveAnalysis" :rows="4" />
</a-form-model-item>
</div>
<!-- 立项标准的领先性与必要性 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.leadershipAndNecessity')">
{{ $t('workCenter.enterpriseInitChangePlan.leadershipAndNecessity') }}
</span>
</div>
<a-form-model-item class="item-model" prop="leadershipAndNecessity">
<a-textarea :placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.leadershipAndNecessity')"
:maxLength="500"
v-model="formInline.leadershipAndNecessity" :rows="4" />
</a-form-model-item>
</div>
<!-- 立项目的及预期效果等 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.initiatedProject')">
{{ $t('workCenter.enterpriseInitChangePlan.initiatedProject') }}
</span>
</div>
<a-form-model-item class="item-model" prop="initiatedProject">
<a-textarea :placeholder="$t('pleaseEnter')+$t('workCenter.enterpriseInitChangePlan.initiatedProject')"
:maxLength="500"
v-model="formInline.initiatedProject" :rows="4" />
</a-form-model-item>
</div>
<!-- 上传附件 -->
<div class="box-title-text form-flex-item">
<div class="title-text">
<span class="title-text-text" :title="$t('workCenter.enterpriseInitChangePlan.uploadAttachment')">
{{ $t('workCenter.enterpriseInitChangePlan.uploadAttachment') }}
</span>
</div>
<a-form-model-item class="item-model" prop="uploadAttachment">
<a-button type="primary" class="button-text" @click="clickButtonToUpload('uploadAttachment')">
{{
(formInline.uploadAttachment === 'null' || formInline.uploadAttachment === ''
|| formInline.uploadAttachment === null || formInline.uploadAttachment === undefined)
? $t('uploadFile.clickUpload')
: $t('uploadFile.viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</div>
</div>
</a-form-model>
<!-- 流程审批信息 -->
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
<a-textarea :placeholder="$t('pleaseEnter')"
:maxLength="500"
v-model="remark" :rows="4" />
<j-upload v-model="attach" return-id/>
</a-form>
<!-- 操作按钮 -->
<div class="bottom-operate-box">
<!-- 委托 -->
<a-button type="primary" ghost :loading="loading" icon="arrow-up">{{ $t('entrust') }}</a-button>
<!-- 保存 -->
<a-button type="primary" ghost :loading="loading" icon="icon-save">{{ $t('preservation') }}</a-button>
<!-- 同意 -->
<a-button type="primary" :loading="loading" @click="handleConsent">{{ $t('consent') }}</a-button>
<!-- 驳回 -->
<a-button type="primary" :loading="loading" @click="handleTurnDown">{{ $t('turnDown') }}</a-button>
</div>
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false"></upload-file>
</internal-detail-page>
</template>
<script>
import InternalDetailPage from '@/components/InternalDetailPage'
import { StandardSource } from '@/enums/commonEnums.js'
import StandardSelection from '@/components/selection/StandardSelection'
import UploadFile from '@/components/UploadFile'
import UserSelection from '@/components/selection/UserSelection'
import Vue from 'vue'
import { USER_INFO } from '@/store/mutation-types'
import { getFormDictTreeList } from '../../../../api/api'
export default {
name: 'PlanApprovalFlow',
components: {
InternalDetailPage
InternalDetailPage,
StandardSelection,
UploadFile,
UserSelection
},
computed: {
pageTitle () {
return this.$t('flowCenter') + '——' + this.$route.meta.title
},
yearNumberDefaultValue () {
return new Date().getFullYear() + ''
}
},
mounted () {
const userInfo = Vue.ls.get(USER_INFO)
// 初始化主起草人信息
this.formInline.principalDrafter = userInfo.id
this.formInline.principalDrafter_dictText = userInfo.realname
// 初始化主起草单位信息
this.formInline.mainDraftUnit = userInfo.departIds
// 获取零部件名称下拉框数据
this.initPartNameOptions()
},
data () {
return {
StandardSource,
loading: false,
form: this.$form.createForm(this),
labelCol: {
xs: { span: 24 },
sm: { span: 4 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 20 }
},
formInline: {},
isFormInline: true,
rules: {},
// 各模块的收齐和展开状态
retractableFlag: {
baseInfo: true, // 基础信息部分
finishDate: true, // 完成日期部分
rangeOfApplication: true, // 适用范围部分
projectStatement: true // 立项说明部分
},
uploadName: '',
partNameOptions: [],
remark: '', // 备注
attach: '' // 附件
}
},
methods: {
initPartNameOptions () {
getFormDictTreeList({ dictId: '1696821512600637441' }).then(res => {
if (res.success) {
this.partNameOptions = res.result
}
})
},
handleChangeRetractable (module) {
this.$set(this.retractableFlag, module, !this.retractableFlag[module])
this.$forceUpdate()
},
nameChange (value) {
this.formInline.enterpriseStandardName = value
},
// 点击文件上传
clickButtonToUpload (fieldName) {
this.$refs.uploadFile.open(this.formInline[fieldName])
this.uploadName = fieldName
},
// 文件上传改变后的回调
uploadFileChange (data) {
const attIdList = []
if (data && data.length > 0) {
data.map(item => {
attIdList.push(item.id)
})
}
/** 赋值给当前对应的表单文件 */
this.formInline[this.uploadName] = attIdList.join(',')
this.formInline = { ...this.formInline }
},
// 选择用户得到用户名
userSelectNameChange (value, fieldName) {
this.formInline[fieldName + '_dictText'] = value
},
}
}
</script>
<style scoped>
<style scoped lang="less">
/deep/ .ant-form-item-children {
width: 100%;
display: inline-block;
}
.form-flex-box {
display: flex;
flex-wrap: wrap;
}
.form-flex-item-line {
width: 100%;
}
.collapsible-panel-form {
margin-top: 20px;
&-header {
height: 56px;
line-height: 56px;
background: rgba(245, 245, 245, 0.6);
border-radius: 8px 8px 0 0;
border: 1px solid #E5E6EB;
padding: 0 20px;
font-size: 16px;
font-family: PingFang SC-Medium, PingFang SC, sans-serif;
font-weight: 600;
color: #1D2129;
display: flex;
justify-content: space-between;
.retractable-btn {
cursor: pointer;
font-size: 14px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
color: #D52C26;
}
.anticon {
margin-right: 8px;
}
.pack-up-btn {
transform: rotate(-90deg);
}
.unfold-btn {
transform: rotate(90deg);
}
}
&-content {
border: 1px solid #E5E6EB;
border-top: none;
border-radius: 0 0 8px 8px;
padding: 20px;
}
}
.form-flex-item {
width: calc(100% / 3);
}
.title-text-long {
width: 210px;
}
</style>