更新采购申请文件模版下载
This commit is contained in:
@@ -11,9 +11,9 @@
|
||||
</div>
|
||||
</template>
|
||||
<div v-loading="loading" style="padding-bottom: 20px">
|
||||
<!-- <div class="form-toolbar mb12" style="text-align: right">-->
|
||||
<!-- <el-button type="primary" link icon="QuestionFilled" @click="helpDialogVisible = true"> 帮助 </el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-toolbar mb12" style="text-align: right">-->
|
||||
<!-- <el-button type="primary" link icon="QuestionFilled" @click="helpDialogVisible = true"> 帮助 </el-button>-->
|
||||
<!-- </div>-->
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="dataForm"
|
||||
@@ -145,7 +145,7 @@
|
||||
<upload-file
|
||||
v-model="dataForm.deptSelfMeetingMinutes"
|
||||
:limit="1"
|
||||
:file-type="[ 'pdf', 'jpg', 'jpeg', 'png']"
|
||||
:file-type="['pdf', 'jpg', 'jpeg', 'png']"
|
||||
:data="{ fileType: FILE_TYPE_MAP.deptSelfMeetingMinutes }"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
:disabled="flowFieldDisabled('deptSelfMeetingMinutes')"
|
||||
@@ -238,9 +238,9 @@
|
||||
<upload-file
|
||||
v-model="dataForm.serviceDirectSelect"
|
||||
:limit="1"
|
||||
:file-type="[ 'doc', 'docx']"
|
||||
:file-type="['doc', 'docx']"
|
||||
:data="{ fileType: FILE_TYPE_MAP.serviceDirectSelect }"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
:disabled="flowFieldDisabled('serviceDirectSelect')"
|
||||
/>
|
||||
<el-button
|
||||
@@ -266,7 +266,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
<upload-file
|
||||
v-model="dataForm.serviceInviteSelect"
|
||||
:limit="1"
|
||||
:file-type="[ 'doc', 'docx']"
|
||||
:file-type="['doc', 'docx']"
|
||||
:data="{ fileType: FILE_TYPE_MAP.serviceInviteSelect }"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
:disabled="flowFieldDisabled('serviceInviteSelect')"
|
||||
@@ -312,7 +312,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12" v-if="showAutoInviteSelect && dataForm.hasSupplier === '1'">
|
||||
<el-col :span="8" class="mb12" v-if="showAutoInviteSelect && dataForm.hasSupplier === '1'">
|
||||
<el-form-item label="服务商城项目需求模板(邀请比选)" prop="serviceInviteSelect" required>
|
||||
<upload-file
|
||||
v-model="dataForm.serviceInviteSelect"
|
||||
@@ -333,7 +333,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12" v-if="showAutoInviteSelect && dataForm.hasSupplier === '0'">
|
||||
<el-col :span="8" class="mb12" v-if="showAutoInviteSelect && dataForm.hasSupplier === '0'">
|
||||
<el-form-item label="服务商城项目需求模板(公开比选)" prop="servicePublicSelectAuto" required>
|
||||
<upload-file
|
||||
v-model="dataForm.servicePublicSelectAuto"
|
||||
@@ -468,7 +468,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
<upload-file
|
||||
v-model="dataForm.feasibilityReport"
|
||||
:limit="1"
|
||||
:file-type="[ 'pdf', 'jpg', 'jpeg', 'png']"
|
||||
:file-type="['pdf', 'jpg', 'jpeg', 'png']"
|
||||
:data="{ fileType: FILE_TYPE_MAP.feasibilityReport }"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
:disabled="flowFieldDisabled('feasibilityReport')"
|
||||
@@ -489,7 +489,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
<upload-file
|
||||
v-model="dataForm.meetingMinutes"
|
||||
:limit="1"
|
||||
:file-type="[ 'pdf', 'jpg', 'jpeg', 'png']"
|
||||
:file-type="['pdf', 'jpg', 'jpeg', 'png']"
|
||||
:data="{ fileType: FILE_TYPE_MAP.meetingMinutes }"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
:disabled="flowFieldDisabled('meetingMinutes')"
|
||||
@@ -502,7 +502,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
<upload-file
|
||||
v-model="dataForm.singleSourceProof"
|
||||
:limit="1"
|
||||
:file-type="[ 'pdf', 'jpg', 'jpeg', 'png']"
|
||||
:file-type="['pdf', 'jpg', 'jpeg', 'png']"
|
||||
:data="{ fileType: FILE_TYPE_MAP.singleSourceProof }"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
:disabled="flowFieldDisabled('singleSourceProof')"
|
||||
@@ -523,7 +523,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
<upload-file
|
||||
v-model="dataForm.meetingMinutesSingle"
|
||||
:limit="1"
|
||||
:file-type="[ 'pdf', 'jpg', 'jpeg', 'png']"
|
||||
:file-type="['pdf', 'jpg', 'jpeg', 'png']"
|
||||
:data="{ fileType: FILE_TYPE_MAP.meetingMinutesSingle }"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
:disabled="flowFieldDisabled('meetingMinutesSingle')"
|
||||
@@ -535,7 +535,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
<upload-file
|
||||
v-model="dataForm.importApplication"
|
||||
:limit="1"
|
||||
:file-type="[ 'pdf', 'jpg', 'jpeg', 'png']"
|
||||
:file-type="['pdf', 'jpg', 'jpeg', 'png']"
|
||||
:data="{ fileType: FILE_TYPE_MAP.importApplication }"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
:disabled="flowFieldDisabled('importApplication')"
|
||||
@@ -556,7 +556,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
<upload-file
|
||||
v-model="dataForm.meetingMinutesImport"
|
||||
:limit="1"
|
||||
:file-type="[ 'pdf', 'jpg', 'jpeg', 'png']"
|
||||
:file-type="['pdf', 'jpg', 'jpeg', 'png']"
|
||||
:data="{ fileType: FILE_TYPE_MAP.meetingMinutesImport }"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
:disabled="flowFieldDisabled('meetingMinutesImport')"
|
||||
@@ -599,7 +599,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
>下载《{{ getTemplateName('invite_select') }}》模版
|
||||
</el-button>
|
||||
</template>
|
||||
<template v-else-if="dataForm.hasSupplier === '0'">
|
||||
<template v-else-if="dataForm.hasSupplier === '0'">
|
||||
<upload-file
|
||||
v-model="dataForm.servicePublicSelectSchoolAuto"
|
||||
:limit="1"
|
||||
@@ -619,7 +619,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
</el-button>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else-if="showAutoPublicSelect">
|
||||
<template v-else-if="showAutoPublicSelect">
|
||||
<upload-file
|
||||
v-model="dataForm.servicePublicSelectSchool"
|
||||
:limit="1"
|
||||
@@ -638,7 +638,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
>下载《{{ getTemplateName('public_select') }}》模版
|
||||
</el-button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-else>
|
||||
<upload-file
|
||||
v-model="dataForm.purchaseRequirement"
|
||||
:limit="1"
|
||||
@@ -664,7 +664,7 @@ upload-file-url="/purchase/purchasingfiles/upload"
|
||||
<upload-file
|
||||
v-model="dataForm.governmentPurchaseIntent"
|
||||
:limit="1"
|
||||
:file-type="[ 'pdf', 'jpg', 'jpeg', 'png']"
|
||||
:file-type="['pdf', 'jpg', 'jpeg', 'png']"
|
||||
:data="{ fileType: FILE_TYPE_MAP.governmentPurchaseIntent }"
|
||||
upload-file-url="/purchase/purchasingfiles/upload"
|
||||
:disabled="flowFieldDisabled('governmentPurchaseIntent')"
|
||||
@@ -963,7 +963,7 @@ const dataForm = reactive({
|
||||
isSpecial: '',
|
||||
hasAssets: '0',
|
||||
purchaseMode: '',
|
||||
purchaseSchool:'',
|
||||
purchaseSchool: '',
|
||||
purchaseType: '',
|
||||
purchaseTypeUnion: '',
|
||||
purchaseChannel: '',
|
||||
@@ -1577,7 +1577,7 @@ watch(
|
||||
|
||||
// 学校统一采购:组织采购形式由规则默认选择,随预算与集采变化自动更新
|
||||
watch(
|
||||
[ () => isDeptPurchase.value],
|
||||
[() => isDeptPurchase.value],
|
||||
() => {
|
||||
if (isDeptPurchase.value) return;
|
||||
},
|
||||
@@ -1586,37 +1586,16 @@ watch(
|
||||
|
||||
// 下载模版:统一走后端接口,按原始文件下载(避免前端静态资源被当成 HTML 返回)
|
||||
const downloadTemplate = async (type: string) => {
|
||||
// 优先从后台模版列表获取模版名称
|
||||
// 从后台模版列表获取模版名称(templateName 包含原始文件扩展名)
|
||||
const backendTemplate = templateList.value.find((t: any) => t.templateType === type);
|
||||
let displayName = '';
|
||||
|
||||
if (backendTemplate?.templateTitle) {
|
||||
displayName = backendTemplate.templateTitle;
|
||||
} else {
|
||||
// 后备:使用本地硬编码的名称
|
||||
const templateMap: Record<string, string> = {
|
||||
business_negotiation: '商务洽谈表.doc',
|
||||
market_purchase_minutes: '部门自行采购市场采购纪要.doc',
|
||||
inquiry: '部门采购询价模版.doc',
|
||||
direct_select: '服务商城项目需求模板(直选).doc',
|
||||
public_select: '服务商城项目需求模板(公开比选).doc',
|
||||
invite_select: '服务商城项目需求模板(邀请比选).doc',
|
||||
purchase_requirement: '采购需求填报模板.doc',
|
||||
import_application: '进口产品申请及专家论证意见表.doc',
|
||||
single_source: '单一来源论专家证附件.docx',
|
||||
feasibility_report: '项目可行性论证报告模板.doc',
|
||||
gov_pur_int: '政府采购意向申请表.doc',
|
||||
};
|
||||
displayName = templateMap[type] || '';
|
||||
}
|
||||
|
||||
if (!displayName) {
|
||||
useMessage().error('模版不存在');
|
||||
if (!backendTemplate?.templateName) {
|
||||
useMessage().error('模版不存在或未维护模版文件,请联系管理员');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await other.downBlobFile(`/purchase/purchasingtemplate/download?type=${encodeURIComponent(type)}`, {}, displayName);
|
||||
await other.downBlobFile(`/purchase/purchasingtemplate/download?type=${encodeURIComponent(type)}`, {}, backendTemplate.templateName);
|
||||
useMessage().success('模版下载成功');
|
||||
} catch (err) {
|
||||
useMessage().error('模版下载失败,请联系管理员维护模版文件');
|
||||
|
||||
Reference in New Issue
Block a user