更新采购申请前端
This commit is contained in:
@@ -15,13 +15,13 @@
|
|||||||
ref="formRef"
|
ref="formRef"
|
||||||
:model="dataForm"
|
:model="dataForm"
|
||||||
:rules="dataRules"
|
:rules="dataRules"
|
||||||
label-width="120px"
|
label-width="150px"
|
||||||
:disabled="isViewMode"
|
:disabled="isViewMode"
|
||||||
class="compact-form">
|
class="compact-form">
|
||||||
|
|
||||||
<!-- 第一步:基本信息(查看模式下一并展示,新增/编辑按步骤切换) -->
|
<!-- 第一步:基本信息(查看模式下一并展示,新增/编辑按步骤切换) -->
|
||||||
<div v-show="isViewMode || currentStep === 0">
|
<div v-show="isViewMode || currentStep === 0">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="24">
|
||||||
<el-col :span="12" class="mb16">
|
<el-col :span="12" class="mb16">
|
||||||
<el-form-item label="采购项目名称" prop="projectName">
|
<el-form-item label="采购项目名称" prop="projectName">
|
||||||
<el-input
|
<el-input
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="24">
|
||||||
<el-col :span="12" class="mb16">
|
<el-col :span="12" class="mb16">
|
||||||
<el-form-item label="资金来源" prop="fundSource">
|
<el-form-item label="资金来源" prop="fundSource">
|
||||||
<el-select
|
<el-select
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="24">
|
||||||
<el-col :span="12" class="mb16">
|
<el-col :span="12" class="mb16">
|
||||||
<el-form-item label="是否集采" prop="isCentralized">
|
<el-form-item label="是否集采" prop="isCentralized">
|
||||||
<el-select
|
<el-select
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="24">
|
||||||
<el-col :span="24" class="mb16">
|
<el-col :span="24" class="mb16">
|
||||||
<el-form-item label="品目编码" prop="categoryCode">
|
<el-form-item label="品目编码" prop="categoryCode">
|
||||||
<el-cascader
|
<el-cascader
|
||||||
@@ -133,9 +133,11 @@
|
|||||||
|
|
||||||
<!-- 第二步:采购详情(查看模式下一并展示,新增/编辑按步骤切换) -->
|
<!-- 第二步:采购详情(查看模式下一并展示,新增/编辑按步骤切换) -->
|
||||||
<div v-show="isViewMode || currentStep === 1">
|
<div v-show="isViewMode || currentStep === 1">
|
||||||
<!-- 分支一:部门自行采购 -->
|
<!-- 分支一:部门自行采购(单行两列流式布局,条件显示的项自动填满两列) -->
|
||||||
<div class="mb20" v-if="isDeptPurchase">
|
<div class="mb20" v-if="isDeptPurchase">
|
||||||
<div class="step-title mb16">部门自行采购</div>
|
<div class="step-title mb16">部门自行采购</div>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :span="12" class="mb16">
|
||||||
<el-form-item label="采购内容" prop="projectContent" class="mb16">
|
<el-form-item label="采购内容" prop="projectContent" class="mb16">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.projectContent"
|
v-model="dataForm.projectContent"
|
||||||
@@ -146,7 +148,9 @@
|
|||||||
placeholder="请输入采购内容(限制1000字)"
|
placeholder="请输入采购内容(限制1000字)"
|
||||||
clearable />
|
clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="采购方式" prop="purchaseType" class="mb16">
|
</el-col>
|
||||||
|
<el-col :span="12" class="mb16">
|
||||||
|
<el-form-item label="采购方式" prop="purchaseType" required class="mb16">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="dataForm.purchaseType"
|
v-model="dataForm.purchaseType"
|
||||||
placeholder="请选择采购方式"
|
placeholder="请选择采购方式"
|
||||||
@@ -160,472 +164,176 @@
|
|||||||
:value="item.value" />
|
:value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<!-- 商务洽谈 -->
|
<el-col :span="12" class="mb16" v-if="isPurchaseType(PURCHASE_TYPE_IDS.BUSINESS_NEGOTIATION)">
|
||||||
<el-form-item
|
<el-form-item label="商务洽谈表" prop="businessNegotiationTable" required class="mb16">
|
||||||
v-if="isPurchaseType(PURCHASE_TYPE_IDS.BUSINESS_NEGOTIATION)"
|
<upload-file v-model="dataForm.businessNegotiationTable" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.businessNegotiationTable }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
label="商务洽谈表"
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('business_negotiation')" style="margin-top: 8px; display: inline-block">下载商务洽谈表模版</el-button>
|
||||||
prop="businessNegotiationTable"
|
|
||||||
class="mb16">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('business_negotiation')"
|
|
||||||
class="mb10">
|
|
||||||
下载商务洽谈表模版
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.businessNegotiationTable"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.businessNegotiationTable }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<!-- 市场采购 -->
|
<el-col :span="12" class="mb16" v-if="isPurchaseType(PURCHASE_TYPE_IDS.MARKET_PURCHASE)">
|
||||||
<el-form-item
|
<el-form-item label="市场采购纪要" prop="marketPurchaseMinutes" required class="mb16">
|
||||||
v-if="isPurchaseType(PURCHASE_TYPE_IDS.MARKET_PURCHASE)"
|
<upload-file v-model="dataForm.marketPurchaseMinutes" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.marketPurchaseMinutes }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
label="市场采购纪要"
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('market_purchase_minutes')" style="margin-top: 8px; display: inline-block">下载市场采购纪要模版</el-button>
|
||||||
prop="marketPurchaseMinutes"
|
|
||||||
class="mb16">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('market_purchase_minutes')"
|
|
||||||
class="mb10">
|
|
||||||
下载市场采购纪要模版
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.marketPurchaseMinutes"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.marketPurchaseMinutes }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<!-- 网上商城 -->
|
<el-col :span="12" class="mb16" v-if="isPurchaseType(PURCHASE_TYPE_IDS.ONLINE_MALL)">
|
||||||
<el-form-item
|
<el-form-item label="网上商城采购相关材料" prop="onlineMallMaterials" required class="mb16">
|
||||||
v-if="isPurchaseType(PURCHASE_TYPE_IDS.ONLINE_MALL)"
|
<upload-file v-model="dataForm.onlineMallMaterials" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.onlineMallMaterials }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
label="网上商城采购相关材料"
|
|
||||||
prop="onlineMallMaterials"
|
|
||||||
class="mb16">
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.onlineMallMaterials"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.onlineMallMaterials }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<!-- 询价 -->
|
<el-col :span="12" class="mb16" v-if="isInquiryPurchaseType">
|
||||||
<el-form-item
|
<el-form-item label="询价模板" prop="inquiryTemplate" required class="mb16">
|
||||||
v-if="isInquiryPurchaseType"
|
<upload-file v-model="dataForm.inquiryTemplate" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.inquiryTemplate }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
label="询价模板"
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('inquiry')" style="margin-top: 8px; display: inline-block">下载《部门采购询价模版》模版</el-button>
|
||||||
prop="inquiryTemplate"
|
|
||||||
class="mb16">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('inquiry')"
|
|
||||||
class="mb10">
|
|
||||||
下载《部门采购询价模版》模版
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.inquiryTemplate"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.inquiryTemplate }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<!-- 委托采购中心 -->
|
<el-col :span="12" class="mb16" v-if="isPurchaseType(PURCHASE_TYPE_IDS.ENTRUST_CENTER)">
|
||||||
<template v-if="isPurchaseType(PURCHASE_TYPE_IDS.ENTRUST_CENTER)">
|
|
||||||
<el-form-item label="委托采购中心方式" prop="entrustCenterType" class="mb16">
|
<el-form-item label="委托采购中心方式" prop="entrustCenterType" class="mb16">
|
||||||
<!-- 由系统根据品目末级节点标记自动判断,不允许用户手动选择 -->
|
|
||||||
<el-radio-group v-model="dataForm.entrustCenterType" disabled>
|
<el-radio-group v-model="dataForm.entrustCenterType" disabled>
|
||||||
<el-radio label="service_online">服务类网上商城</el-radio>
|
<el-radio label="service_online">服务类网上商城</el-radio>
|
||||||
<el-radio label="other">其他方式</el-radio>
|
<el-radio label="other">其他方式</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<!-- 服务类网上商城:判断品目编码的第一个值是否为C -->
|
<el-col :span="12" class="mb16" v-if="isPurchaseType(PURCHASE_TYPE_IDS.ENTRUST_CENTER) && dataForm.entrustCenterType === 'service_online' && categoryCodePath && categoryCodePath.length > 0 && categoryCodePath[0] === 'C'">
|
||||||
<template v-if="dataForm.entrustCenterType === 'service_online' && categoryCodePath && categoryCodePath.length > 0 && categoryCodePath[0] === 'C'">
|
|
||||||
<el-form-item label="是否有供应商" prop="hasSupplier" class="mb16">
|
<el-form-item label="是否有供应商" prop="hasSupplier" class="mb16">
|
||||||
<el-radio-group v-model="dataForm.hasSupplier">
|
<el-radio-group v-model="dataForm.hasSupplier">
|
||||||
<el-radio label="1">有</el-radio>
|
<el-radio label="1">有</el-radio>
|
||||||
<el-radio label="0">无</el-radio>
|
<el-radio label="0">无</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 有供应商:显示供应商名称输入框 -->
|
</el-col>
|
||||||
<template v-if="dataForm.hasSupplier === '1'">
|
<el-col :span="12" class="mb16" v-if="isPurchaseType(PURCHASE_TYPE_IDS.ENTRUST_CENTER) && dataForm.entrustCenterType === 'service_online' && categoryCodePath && categoryCodePath[0] === 'C' && dataForm.hasSupplier === '1'">
|
||||||
<el-form-item
|
<el-form-item label="供应商名称" prop="suppliers" class="mb16">
|
||||||
label="供应商名称"
|
<el-input v-model="dataForm.suppliers" type="textarea" :rows="2" placeholder="请输入供应商名称,多个供应商请用逗号或分号分隔" maxlength="500" show-word-limit />
|
||||||
prop="suppliers"
|
<div class="template-note mt5"><el-text type="info" size="small">多个供应商请用逗号(,)或分号(;)分隔</el-text></div>
|
||||||
class="mb16">
|
|
||||||
<el-input
|
|
||||||
v-model="dataForm.suppliers"
|
|
||||||
type="textarea"
|
|
||||||
:rows="2"
|
|
||||||
placeholder="请输入供应商名称,多个供应商请用逗号或分号分隔"
|
|
||||||
maxlength="500"
|
|
||||||
show-word-limit />
|
|
||||||
<div class="template-note mt5">
|
|
||||||
<el-text type="info" size="small">多个供应商请用逗号(,)或分号(;)分隔</el-text>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
</el-col>
|
||||||
label="服务商城项目需求模板(直选)"
|
<el-col :span="12" class="mb16" v-if="isPurchaseType(PURCHASE_TYPE_IDS.ENTRUST_CENTER) && dataForm.entrustCenterType === 'service_online' && categoryCodePath && categoryCodePath[0] === 'C' && dataForm.hasSupplier === '1'">
|
||||||
prop="serviceDirectSelect"
|
<el-form-item label="需求文件" prop="serviceDirectSelect" required class="mb16">
|
||||||
class="mb16">
|
<upload-file v-model="dataForm.serviceDirectSelect" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.serviceDirectSelect }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
<el-button
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('direct_select')" style="margin-top: 8px; display: inline-block">下载《服务商城项目需求模板(直选)》模版</el-button>
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('direct_select')"
|
|
||||||
class="mb10">
|
|
||||||
下载《服务商城项目需求模板(直选)》模版
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.serviceDirectSelect"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.serviceDirectSelect }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</el-col>
|
||||||
<el-form-item
|
<el-col :span="12" class="mb16" v-if="isPurchaseType(PURCHASE_TYPE_IDS.ENTRUST_CENTER) && dataForm.entrustCenterType === 'service_online' && categoryCodePath && categoryCodePath[0] === 'C' && dataForm.hasSupplier === '0'">
|
||||||
v-if="dataForm.hasSupplier === '0'"
|
<el-form-item label="需求文件" prop="serviceInviteSelect" required class="mb16">
|
||||||
label="服务商城项目需求模板(邀请比选)"
|
<upload-file v-model="dataForm.serviceInviteSelect" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.serviceInviteSelect }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
prop="serviceInviteSelect"
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('invite_select')" style="margin-top: 8px; display: inline-block">下载《服务商城项目需求模板(邀请比选)》模版</el-button>
|
||||||
class="mb16">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('invite_select')"
|
|
||||||
class="mb10">
|
|
||||||
下载《服务商城项目需求模板(邀请比选)》模版
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.serviceInviteSelect"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.serviceInviteSelect }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</el-col>
|
||||||
|
<el-col :span="12" class="mb16" v-if="isPurchaseType(PURCHASE_TYPE_IDS.ENTRUST_CENTER) && dataForm.entrustCenterType === 'other' && categoryCodePath && categoryCodePath[0] === 'A'">
|
||||||
<!-- 其他方式(货物类) -->
|
<el-form-item label="需求模板" prop="purchaseRequirementTemplate" required class="mb16">
|
||||||
<el-form-item
|
<upload-file v-model="dataForm.purchaseRequirementTemplate" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.purchaseRequirementTemplate }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
v-if="dataForm.entrustCenterType === 'other' && categoryCodePath && categoryCodePath[0] === 'A'"
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('purchase_requirement')" style="margin-top: 8px; display: inline-block">下载《表1:需求模板》模版</el-button>
|
||||||
label="采购需求填报模板"
|
|
||||||
prop="purchaseRequirementTemplate"
|
|
||||||
class="mb16">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('purchase_requirement')"
|
|
||||||
class="mb10">
|
|
||||||
下载《表1:采购需求填报模板》模版
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.purchaseRequirementTemplate"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.purchaseRequirementTemplate }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</el-col>
|
||||||
|
<el-col :span="12" class="mb16" v-if="showAutoInviteSelect">
|
||||||
<!-- 特殊规则:5万<=金额<40万,服务类目,自动使用邀请比选模版 -->
|
|
||||||
<template v-if="showAutoInviteSelect">
|
|
||||||
<el-form-item label="是否有推荐供应商" prop="hasSupplier" class="mb16">
|
<el-form-item label="是否有推荐供应商" prop="hasSupplier" class="mb16">
|
||||||
<el-radio-group v-model="dataForm.hasSupplier">
|
<el-radio-group v-model="dataForm.hasSupplier">
|
||||||
<el-radio label="1">有</el-radio>
|
<el-radio label="1">有</el-radio>
|
||||||
<el-radio label="0">无</el-radio>
|
<el-radio label="0">无</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 有推荐供应商:显示推荐供应商输入框和邀请比选模板 -->
|
</el-col>
|
||||||
<template v-if="dataForm.hasSupplier === '1'">
|
<el-col :span="12" class="mb16" v-if="showAutoInviteSelect && dataForm.hasSupplier === '1'">
|
||||||
<el-form-item
|
<el-form-item label="推荐供应商" prop="suppliers" class="mb16">
|
||||||
label="推荐供应商"
|
<el-input v-model="dataForm.suppliers" placeholder="请输入三家供应商名称,用逗号分隔" clearable />
|
||||||
prop="suppliers"
|
<div class="template-note mt5"><el-text type="info" size="small">请输入三家供应商名称,用逗号分隔</el-text></div>
|
||||||
class="mb16">
|
|
||||||
<el-input
|
|
||||||
v-model="dataForm.suppliers"
|
|
||||||
placeholder="请输入三家供应商名称,用逗号分隔"
|
|
||||||
clearable />
|
|
||||||
<div class="template-note mt5">
|
|
||||||
<el-text type="info" size="small">请输入三家供应商名称,用逗号分隔</el-text>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
</el-col>
|
||||||
label="服务商城项目需求模板(邀请比选)"
|
<el-col :span="12" class="mb16" v-if="showAutoInviteSelect && dataForm.hasSupplier === '1'">
|
||||||
prop="serviceInviteSelect"
|
<el-form-item label="服务商城项目需求模板(邀请比选)" prop="serviceInviteSelect" required class="mb16">
|
||||||
class="mb16">
|
<upload-file v-model="dataForm.serviceInviteSelect" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.serviceInviteSelect }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
<el-button
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('invite_select')" style="margin-top: 8px; display: inline-block">下载《服务商城项目需求模板(邀请比选)》模版</el-button>
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('invite_select')"
|
|
||||||
class="mb10">
|
|
||||||
下载《服务商城项目需求模板(邀请比选)》模版
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.serviceInviteSelect"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.serviceInviteSelect }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</el-col>
|
||||||
<!-- 无推荐供应商:显示公开比选模板 -->
|
<el-col :span="12" class="mb16" v-if="showAutoInviteSelect && dataForm.hasSupplier === '0'">
|
||||||
<el-form-item
|
<el-form-item label="服务商城项目需求模板(公开比选)" prop="servicePublicSelectAuto" required class="mb16">
|
||||||
v-if="dataForm.hasSupplier === '0'"
|
<upload-file v-model="dataForm.servicePublicSelectAuto" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.servicePublicSelectAuto }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
label="服务商城项目需求模板(公开比选)"
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('public_select')" style="margin-top: 8px; display: inline-block">下载《服务商城项目需求模板(公开比选)》模版</el-button>
|
||||||
prop="servicePublicSelectAuto"
|
|
||||||
class="mb16">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('public_select')"
|
|
||||||
class="mb10">
|
|
||||||
下载《服务商城项目需求模板(公开比选)》模版
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.servicePublicSelectAuto"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.servicePublicSelectAuto }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</el-col>
|
||||||
|
<el-col :span="12" class="mb16">
|
||||||
<!-- 其他材料(zip压缩包) -->
|
|
||||||
<el-form-item label="其他材料" prop="otherMaterials" class="mb16">
|
<el-form-item label="其他材料" prop="otherMaterials" class="mb16">
|
||||||
<upload-file
|
<upload-file v-model="dataForm.otherMaterials" :limit="1" :file-type="['zip']" :data="{ fileType: FILE_TYPE_MAP.otherMaterials }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
v-model="dataForm.otherMaterials"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['zip']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.otherMaterials }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
<div class="template-note">支持上传zip格式的压缩包文件</div>
|
<div class="template-note">支持上传zip格式的压缩包文件</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 分支二:学校统一采购 -->
|
<!-- 分支二:学校统一采购(单行两列流式布局,条件显示的项自动填满两列) -->
|
||||||
<div class="mb20" v-else>
|
<div class="mb20" v-else>
|
||||||
<div class="step-title mb16">学校统一采购</div>
|
<div class="step-title mb16">学校统一采购</div>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="24">
|
||||||
<el-col :span="12" class="mb16">
|
<el-col :span="12" class="mb16">
|
||||||
<el-form-item label="采购形式" prop="purchaseMode">
|
<el-form-item label="采购形式" prop="purchaseMode">
|
||||||
<el-radio-group v-model="dataForm.purchaseMode">
|
<el-radio-group v-model="dataForm.purchaseMode">
|
||||||
<el-radio
|
<el-radio v-for="item in purchaseModeSchoolList" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
|
||||||
v-for="item in purchaseModeSchoolList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.value">
|
|
||||||
{{ item.label }}
|
|
||||||
</el-radio>
|
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" class="mb16">
|
<el-col :span="12" class="mb16">
|
||||||
<el-form-item label="采购方式" prop="purchaseTypeUnion">
|
<el-form-item label="采购方式" prop="purchaseType" :required="!isDeptPurchase">
|
||||||
<el-select
|
<el-select v-model="dataForm.purchaseType" placeholder="请选择采购方式" clearable :disabled="isAutoSelectPurchaseTypeUnion" style="width: 100%">
|
||||||
v-model="dataForm.purchaseType"
|
<el-option v-for="item in purchaseTypeUnionList" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
placeholder="请选择采购方式"
|
|
||||||
clearable
|
|
||||||
:disabled="isAutoSelectPurchaseTypeUnion"
|
|
||||||
style="width: 100%">
|
|
||||||
<el-option
|
|
||||||
v-for="item in purchaseTypeUnionList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value" />
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<!-- 业务分管处室 -->
|
|
||||||
<el-col :span="12" class="mb16">
|
<el-col :span="12" class="mb16">
|
||||||
<el-form-item label="业务分管处室" prop="deptClassifyUserId">
|
<el-form-item label="业务分管处室" prop="deptClassifyUserId" :required="!isDeptPurchase">
|
||||||
<el-select
|
<el-select v-model="dataForm.deptClassifyUserId" placeholder="请选择业务分管处室" clearable filterable @change="handleBusinessDeptChange" style="width: 100%">
|
||||||
v-model="dataForm.deptClassifyUserId"
|
<el-option v-for="item in businessDeptList" :key="item.id" :label="item.deptName" :value="item.username" />
|
||||||
placeholder="请选择业务分管处室"
|
|
||||||
clearable
|
|
||||||
filterable
|
|
||||||
@change="handleBusinessDeptChange"
|
|
||||||
style="width: 100%">
|
|
||||||
<el-option
|
|
||||||
v-for="item in businessDeptList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.deptName"
|
|
||||||
:value="item.username" />
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<!-- 分管校领导 -->
|
|
||||||
<el-col :span="12" class="mb16">
|
<el-col :span="12" class="mb16">
|
||||||
<el-form-item label="分管校领导" prop="schoolLeaderUserId">
|
<el-form-item label="分管校领导" prop="schoolLeaderUserId" :required="!isDeptPurchase">
|
||||||
<el-select
|
<el-select v-model="dataForm.schoolLeaderUserId" placeholder="请选择分管校领导" clearable filterable @change="handleSchoolLeaderChange" style="width: 100%">
|
||||||
v-model="dataForm.schoolLeaderUserId"
|
<el-option v-for="item in schoolLeaderList" :key="item.id" :label="item.name" :value="item.userId" />
|
||||||
placeholder="请选择分管校领导"
|
|
||||||
clearable
|
|
||||||
filterable
|
|
||||||
@change="handleSchoolLeaderChange"
|
|
||||||
style="width: 100%">
|
|
||||||
<el-option
|
|
||||||
v-for="item in schoolLeaderList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.userId" />
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
<el-col :span="12" class="mb16" v-if="dataForm.budget && dataForm.budget >= 300000">
|
||||||
|
<el-form-item label="项目可行性论证报告" prop="feasibilityReport" required>
|
||||||
<!-- 金额>=30万,显示可行性论证报告和会议纪要 -->
|
<upload-file v-model="dataForm.feasibilityReport" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.feasibilityReport }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
<template v-if="dataForm.budget && dataForm.budget >= 300000">
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('feasibility_report')" style="margin-top: 8px; display: inline-block">下载《项目可行性论证报告模板.doc》</el-button>
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12" class="mb16">
|
|
||||||
<el-form-item
|
|
||||||
label="项目可行性论证报告"
|
|
||||||
prop="feasibilityReport">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('feasibility_report')"
|
|
||||||
class="mb10">
|
|
||||||
下载《项目可行性论证报告模板.doc》
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.feasibilityReport"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.feasibilityReport }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- 通用会议纪要:只有在没有选择特殊情况时才显示 -->
|
<el-col :span="12" class="mb16" v-if="dataForm.budget && dataForm.budget >= 300000 && !isUrgentSpecial && !isSpecialType('2') && !isSpecialType('3')">
|
||||||
<el-col
|
<el-form-item label="会议纪要" prop="meetingMinutes" required>
|
||||||
v-if="!isUrgentSpecial && !isSpecialType('2') && !isSpecialType('3')"
|
<upload-file v-model="dataForm.meetingMinutes" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.meetingMinutes }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
:span="12"
|
|
||||||
class="mb16">
|
|
||||||
<el-form-item
|
|
||||||
label="会议纪要"
|
|
||||||
prop="meetingMinutes">
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.meetingMinutes"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.meetingMinutes }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
<el-col :span="12" class="mb16" v-if="isUrgentSpecial">
|
||||||
</template>
|
<el-form-item label="会议纪要" prop="meetingMinutesUrgent" required>
|
||||||
|
<upload-file v-model="dataForm.meetingMinutesUrgent" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.meetingMinutesUrgent }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
<!-- 特殊情况:紧急 -->
|
|
||||||
<template v-if="isUrgentSpecial">
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12" class="mb16">
|
|
||||||
<el-form-item label="会议纪要" prop="meetingMinutesUrgent">
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.meetingMinutesUrgent"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.meetingMinutesUrgent }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
<el-col :span="12" class="mb16" v-if="isSpecialType('2')">
|
||||||
</template>
|
<el-form-item label="单一来源论专家证附件" prop="singleSourceProof" required>
|
||||||
|
<upload-file v-model="dataForm.singleSourceProof" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.singleSourceProof }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
<!-- 特殊情况:单一来源 -->
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('single_source')" style="margin-top: 8px; display: inline-block">下载《单一来源论专家证附件.docx》</el-button>
|
||||||
<template v-if="isSpecialType('2')">
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12" class="mb16">
|
|
||||||
<el-form-item
|
|
||||||
label="单一来源论专家证附件"
|
|
||||||
prop="singleSourceProof">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('single_source')"
|
|
||||||
class="mb10">
|
|
||||||
下载《单一来源论专家证附件.docx》
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.singleSourceProof"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.singleSourceProof }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" class="mb16">
|
<el-col :span="12" class="mb16" v-if="isSpecialType('2')">
|
||||||
<el-form-item label="会议纪要" prop="meetingMinutesSingle">
|
<el-form-item label="会议纪要" prop="meetingMinutesSingle" required>
|
||||||
<upload-file
|
<upload-file v-model="dataForm.meetingMinutesSingle" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.meetingMinutesSingle }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
v-model="dataForm.meetingMinutesSingle"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.meetingMinutesSingle }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
<el-col :span="12" class="mb16" v-if="isSpecialType('3')">
|
||||||
</template>
|
<el-form-item label="进口产品申请及专家论证意见表" prop="importApplication" required>
|
||||||
|
<upload-file v-model="dataForm.importApplication" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.importApplication }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
<!-- 特殊情况:进口 -->
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('import_application')" style="margin-top: 8px; display: inline-block">下载《进口产品申请及专家论证意见表.doc》</el-button>
|
||||||
<template v-if="isSpecialType('3')">
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12" class="mb16">
|
|
||||||
<el-form-item
|
|
||||||
label="进口产品申请及专家论证意见表"
|
|
||||||
prop="importApplication">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('import_application')"
|
|
||||||
class="mb10">
|
|
||||||
下载《进口产品申请及专家论证意见表.doc》
|
|
||||||
</el-button>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.importApplication"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.importApplication }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" class="mb16">
|
<el-col :span="12" class="mb16" v-if="isSpecialType('3')">
|
||||||
<el-form-item label="会议纪要" prop="meetingMinutesImport">
|
<el-form-item label="会议纪要" prop="meetingMinutesImport" required>
|
||||||
<upload-file
|
<upload-file v-model="dataForm.meetingMinutesImport" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.meetingMinutesImport }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
v-model="dataForm.meetingMinutesImport"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.meetingMinutesImport }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
<el-col :span="12" class="mb16" v-if="showAutoInviteSelectSchool">
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 特殊规则:5万<=金额<40万,服务类目(isMallService=1、isProjectService=1),自动使用邀请比选模版 -->
|
|
||||||
<template v-if="showAutoInviteSelectSchool">
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12" class="mb16">
|
|
||||||
<el-form-item label="是否有推荐供应商" prop="hasSupplier">
|
<el-form-item label="是否有推荐供应商" prop="hasSupplier">
|
||||||
<el-radio-group v-model="dataForm.hasSupplier">
|
<el-radio-group v-model="dataForm.hasSupplier">
|
||||||
<el-radio label="1">有</el-radio>
|
<el-radio label="1">有</el-radio>
|
||||||
@@ -633,140 +341,42 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- 有推荐供应商:显示推荐供应商输入框 -->
|
<el-col :span="12" class="mb16" v-if="showAutoInviteSelectSchool && dataForm.hasSupplier === '1'">
|
||||||
<el-col
|
<el-form-item label="推荐供应商" prop="suppliers">
|
||||||
v-if="dataForm.hasSupplier === '1'"
|
<el-input v-model="dataForm.suppliers" type="textarea" :rows="2" placeholder="请输入至少三家供应商名称,用逗号或分号分隔" clearable />
|
||||||
:span="12"
|
<div class="template-note mt5"><el-text type="info" size="small">请输入至少三家供应商名称,用逗号或分号分隔</el-text></div>
|
||||||
class="mb16">
|
|
||||||
<el-form-item
|
|
||||||
label="推荐供应商"
|
|
||||||
prop="suppliers">
|
|
||||||
<el-input
|
|
||||||
v-model="dataForm.suppliers"
|
|
||||||
type="textarea"
|
|
||||||
:rows="2"
|
|
||||||
placeholder="请输入至少三家供应商名称,用逗号或分号分隔"
|
|
||||||
clearable />
|
|
||||||
<div class="template-note mt5">
|
|
||||||
<el-text type="info" size="small">请输入至少三家供应商名称,用逗号或分号分隔</el-text>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
<el-col :span="12" class="mb16">
|
||||||
</template>
|
<el-form-item label="需求文件" :prop="getRequirementFileProp()" required class="mb16">
|
||||||
|
|
||||||
<!-- 需求文件 -->
|
|
||||||
<el-form-item label="需求文件" :prop="getRequirementFileProp()" class="mb16">
|
|
||||||
<!-- 特殊规则:5万<=金额<40万,服务类目(isMallService=1、isProjectService=1),自动使用邀请比选模版 -->
|
|
||||||
<template v-if="showAutoInviteSelectSchool">
|
<template v-if="showAutoInviteSelectSchool">
|
||||||
<!-- 有推荐供应商:显示邀请比选模板 -->
|
|
||||||
<template v-if="dataForm.hasSupplier === '1'">
|
<template v-if="dataForm.hasSupplier === '1'">
|
||||||
<div class="mb10">
|
<upload-file v-model="dataForm.serviceInviteSelectSchool" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.serviceInviteSelectSchool }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
<el-button
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('invite_select')" style="margin-top: 8px; display: inline-block">下载《服务商城项目需求模板(邀请比选)》模版</el-button>
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('invite_select')"
|
|
||||||
class="mb10">
|
|
||||||
下载《服务商城项目需求模板(邀请比选)》模版
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.serviceInviteSelectSchool"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.serviceInviteSelectSchool }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</template>
|
</template>
|
||||||
<!-- 无推荐供应商:显示公开比选模板 -->
|
|
||||||
<template v-else-if="dataForm.hasSupplier === '0'">
|
<template v-else-if="dataForm.hasSupplier === '0'">
|
||||||
<div class="mb10">
|
<upload-file v-model="dataForm.servicePublicSelectSchoolAuto" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.servicePublicSelectSchoolAuto }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
<el-button
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('public_select')" style="margin-top: 8px; display: inline-block">下载《服务商城项目需求模板(公开比选)》模版</el-button>
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('public_select')"
|
|
||||||
class="mb10">
|
|
||||||
下载《服务商城项目需求模板(公开比选)》模版
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.servicePublicSelectSchoolAuto"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.servicePublicSelectSchoolAuto }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- 特殊规则:40万<=金额<100万,服务类目,自动使用公开比选需求模版 -->
|
|
||||||
<template v-else-if="showAutoPublicSelect">
|
<template v-else-if="showAutoPublicSelect">
|
||||||
<div class="mb10">
|
<upload-file v-model="dataForm.servicePublicSelectSchool" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.servicePublicSelectSchool }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
<el-button
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('public_select')" style="margin-top: 8px; display: inline-block">下载《服务商城项目需求模板(公开比选)》模版</el-button>
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('public_select')"
|
|
||||||
class="mb10">
|
|
||||||
下载《服务商城项目需求模板(公开比选)》模版
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.servicePublicSelectSchool"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.servicePublicSelectSchool }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- 默认:采购需求填报模板 -->
|
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div class="mb10">
|
<upload-file v-model="dataForm.purchaseRequirement" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.purchaseRequirement }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
<el-button
|
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('purchase_requirement')" style="margin-top: 8px; display: inline-block">下载《需求模板》模版</el-button>
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
icon="Download"
|
|
||||||
@click="downloadTemplate('purchase_requirement')"
|
|
||||||
class="mb10">
|
|
||||||
下载《采购需求填报模板》模版
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.purchaseRequirement"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.purchaseRequirement }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</template>
|
</template>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<!-- 金额>=100万,政府采购意向表 -->
|
|
||||||
<el-col
|
|
||||||
v-if="dataForm.budget && dataForm.budget >= 1000000"
|
|
||||||
:span="12"
|
|
||||||
class="mb16">
|
|
||||||
<el-form-item
|
|
||||||
label="政府采购意向申请表"
|
|
||||||
prop="governmentPurchaseIntent">
|
|
||||||
<upload-file
|
|
||||||
v-model="dataForm.governmentPurchaseIntent"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['doc', 'docx', 'pdf']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.governmentPurchaseIntent }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="12" class="mb16" v-if="dataForm.budget && dataForm.budget >= 1000000">
|
||||||
<!-- 其他材料(zip压缩包) -->
|
<el-form-item label="政府采购意向申请表" prop="governmentPurchaseIntent" required>
|
||||||
|
<upload-file v-model="dataForm.governmentPurchaseIntent" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.governmentPurchaseIntent }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="12" class="mb16">
|
<el-col :span="12" class="mb16">
|
||||||
<el-form-item label="其他材料" prop="otherMaterials">
|
<el-form-item label="其他材料" prop="otherMaterials">
|
||||||
<upload-file
|
<upload-file v-model="dataForm.otherMaterials" :limit="1" :file-type="['zip']" :data="{ fileType: FILE_TYPE_MAP.otherMaterials }" upload-file-url="/purchase/purchasingfiles/upload" />
|
||||||
v-model="dataForm.otherMaterials"
|
|
||||||
:limit="1"
|
|
||||||
:file-type="['zip']"
|
|
||||||
:data="{ fileType: FILE_TYPE_MAP.otherMaterials }"
|
|
||||||
upload-file-url="/purchase/purchasingfiles/upload" />
|
|
||||||
<div class="template-note">支持上传zip格式的压缩包文件</div>
|
<div class="template-note">支持上传zip格式的压缩包文件</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -774,7 +384,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-form-item label="备注" prop="remark" v-if="currentStep === 1" class="mb16">
|
<el-row :gutter="24" v-if="currentStep === 1">
|
||||||
|
<el-col :span="12" class="mb16">
|
||||||
|
<el-form-item label="备注" prop="remark" class="mb16">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.remark"
|
v-model="dataForm.remark"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
@@ -782,6 +394,8 @@
|
|||||||
placeholder="请输入备注"
|
placeholder="请输入备注"
|
||||||
clearable />
|
clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
@@ -807,13 +421,13 @@
|
|||||||
:disabled="loading">
|
:disabled="loading">
|
||||||
暂存
|
暂存
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<!-- <el-button -->
|
||||||
v-if="currentStep === 1"
|
<!-- v-if="currentStep === 1" -->
|
||||||
type="primary"
|
<!-- type="primary" -->
|
||||||
@click="handleSubmit"
|
<!-- @click="handleSubmit" -->
|
||||||
:disabled="loading">
|
<!-- :disabled="loading">-->
|
||||||
{{ isEditMode ? '保存' : '提交' }}
|
<!-- {{ isEditMode ? '保存' : '提交' }}-->
|
||||||
</el-button>
|
<!-- </el-button>-->
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
@@ -950,8 +564,8 @@ const FILE_TYPE_MAP: Record<string, string> = {
|
|||||||
serviceInviteSelect: '120', // 服务商城项目需求模板(邀请比选)- 采购需求表
|
serviceInviteSelect: '120', // 服务商城项目需求模板(邀请比选)- 采购需求表
|
||||||
servicePublicSelect: '120', // 服务商城项目需求模板(公开比选)- 采购需求表
|
servicePublicSelect: '120', // 服务商城项目需求模板(公开比选)- 采购需求表
|
||||||
servicePublicSelectAuto: '120', // 服务商城项目需求模板(公开比选-自动)- 采购需求表
|
servicePublicSelectAuto: '120', // 服务商城项目需求模板(公开比选-自动)- 采购需求表
|
||||||
purchaseRequirementTemplate: '120', // 采购需求填报模板 - 采购需求表
|
purchaseRequirementTemplate: '120', // 需求模板 - 采购需求表
|
||||||
purchaseRequirement: '120', // 采购需求填报模板 - 采购需求表
|
purchaseRequirement: '120', // 需求模板 - 采购需求表
|
||||||
serviceInviteSelectSchool: '120', // 服务商城项目需求模板(邀请比选-学校)- 采购需求表
|
serviceInviteSelectSchool: '120', // 服务商城项目需求模板(邀请比选-学校)- 采购需求表
|
||||||
servicePublicSelectSchoolAuto: '120', // 服务商城项目需求模板(公开比选-学校-自动)- 采购需求表
|
servicePublicSelectSchoolAuto: '120', // 服务商城项目需求模板(公开比选-学校-自动)- 采购需求表
|
||||||
servicePublicSelectSchool: '120', // 服务商城项目需求模板(公开比选-学校)- 采购需求表
|
servicePublicSelectSchool: '120', // 服务商城项目需求模板(公开比选-学校)- 采购需求表
|
||||||
@@ -1254,7 +868,7 @@ const downloadTemplate = async (type: string) => {
|
|||||||
'direct_select': { fileName: '服务商城项目需求模板(直选).doc', displayName: '服务商城项目需求模板(直选).doc' },
|
'direct_select': { fileName: '服务商城项目需求模板(直选).doc', displayName: '服务商城项目需求模板(直选).doc' },
|
||||||
'public_select': { fileName: '服务商城项目需求模板(公开比选).doc', displayName: '服务商城项目需求模板(公开比选).doc' },
|
'public_select': { fileName: '服务商城项目需求模板(公开比选).doc', displayName: '服务商城项目需求模板(公开比选).doc' },
|
||||||
'invite_select': { fileName: '服务商城项目需求模板(邀请比选).doc', displayName: '服务商城项目需求模板(邀请比选).doc' },
|
'invite_select': { fileName: '服务商城项目需求模板(邀请比选).doc', displayName: '服务商城项目需求模板(邀请比选).doc' },
|
||||||
'purchase_requirement': { fileName: '表1:采购需求填报模板.doc', displayName: '采购需求填报模板.doc' },
|
'purchase_requirement': { fileName: '表1:需求模板.doc', displayName: '需求模板.doc' },
|
||||||
'import_application': { fileName: '附件1:进口产品申请及专家论证意见表.doc', displayName: '进口产品申请及专家论证意见表.doc' },
|
'import_application': { fileName: '附件1:进口产品申请及专家论证意见表.doc', displayName: '进口产品申请及专家论证意见表.doc' },
|
||||||
'single_source': { fileName: '表7:单一来源论专家证附件.docx', displayName: '单一来源论专家证附件.docx' },
|
'single_source': { fileName: '表7:单一来源论专家证附件.docx', displayName: '单一来源论专家证附件.docx' },
|
||||||
'feasibility_report': { fileName: '表6:项目可行性论证报告模板.doc', displayName: '项目可行性论证报告模板.doc' },
|
'feasibility_report': { fileName: '表6:项目可行性论证报告模板.doc', displayName: '项目可行性论证报告模板.doc' },
|
||||||
@@ -1326,6 +940,35 @@ const dataRules = reactive({
|
|||||||
purchaseType: [
|
purchaseType: [
|
||||||
{ required: true, message: '请选择采购方式', trigger: 'change' }
|
{ required: true, message: '请选择采购方式', trigger: 'change' }
|
||||||
],
|
],
|
||||||
|
// 学校统一采购时必填
|
||||||
|
deptClassifyUserId: [
|
||||||
|
{
|
||||||
|
validator: (_rule: any, value: string, callback: (e?: Error) => void) => {
|
||||||
|
if (!isDeptPurchase.value) {
|
||||||
|
if (!value || String(value).trim() === '') {
|
||||||
|
callback(new Error('请选择业务分管处室'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
callback();
|
||||||
|
},
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
schoolLeaderUserId: [
|
||||||
|
{
|
||||||
|
validator: (_rule: any, value: string, callback: (e?: Error) => void) => {
|
||||||
|
if (!isDeptPurchase.value) {
|
||||||
|
if (!value || String(value).trim() === '') {
|
||||||
|
callback(new Error('请选择分管校领导'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
callback();
|
||||||
|
},
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
// 下一步
|
// 下一步
|
||||||
|
|||||||
Reference in New Issue
Block a user