feat: 采购申请表单添加部门自行采购会议纪要字段

- 新增 FILE_TYPE_MAP.deptSelfMeetingMinutes('140') 文件类型
- 添加 deptSelfMeetingMinutes 表单字段
- 部门自行采购且预算金额<2000 元时显示必填上传组件
- 新增 purchasingfiles.ts API 文件
This commit is contained in:
吴红兵
2026-03-03 17:30:07 +08:00
parent 5baf4061e0
commit 744be39480
2 changed files with 49 additions and 7 deletions

View File

@@ -154,6 +154,11 @@
<el-button type="primary" link icon="Download" size="small" @click="downloadTemplate('inquiry')" style="margin-top: 8px; display: inline-block">下载部门采购询价模版模版</el-button>
</el-form-item>
</el-col>
<el-col :span="8" class="mb12" v-if="dataForm.purchaseChannel === PURCHASE_CHANNEL.SELF && dataForm.budget != null && dataForm.budget < 2000">
<el-form-item label="部门自行采购会议纪要" prop="deptSelfMeetingMinutes" required>
<upload-file v-model="dataForm.deptSelfMeetingMinutes" :limit="1" :file-type="['doc', 'docx', 'pdf']" :data="{ fileType: FILE_TYPE_MAP.deptSelfMeetingMinutes }" upload-file-url="/purchase/purchasingfiles/upload" :disabled="flowFieldDisabled('deptSelfMeetingMinutes')" />
</el-form-item>
</el-col>
<el-col :span="8" class="mb12" v-if="isEntrustCenterChannel && dataForm.entrustCenterType === 'service_online' && categoryCodePath && categoryCodePath[0] === 'C'">
<el-form-item label="是否有供应商" prop="hasSupplier">
<el-radio-group v-model="dataForm.hasSupplier" :disabled="flowFieldDisabled('hasSupplier')">
@@ -621,6 +626,7 @@ const dataForm = reactive({
serviceInviteSelect: '',
servicePublicSelectAuto: '',
deptSelfMeetingMinutes: '', // 部门自行采购会议纪要
// 学校统一采购字段
purchaseRequirement: '',
meetingMinutes: '',
@@ -681,7 +687,7 @@ const loading = ref(false);
const helpDialogVisible = ref(false);
// 文件类型映射(对应数据库 file_type 字段)
// 10:商务洽谈纪要 20:市场采购纪要 30:网上商城采购相关材料 40:可行性论证报告 50:会议记录 60:其他材料 70:单一来源专家论证表 90:进口产品专家论证表 100:政府采购意向表 110:履约验收单 120:采购需求表 130:招标文件
// 10:商务洽谈纪要 20:市场采购纪要 30:网上商城采购相关材料 40:可行性论证报告 50:会议记录 60:其他材料 70:单一来源专家论证表 90:进口产品专家论证表 100:政府采购意向表 110:履约验收单 120:采购需求表 130:招标文件 140: 部门自行采购会议纪要
const FILE_TYPE_MAP: Record<string, string> = {
businessNegotiationTable: '10', // 商务洽谈纪要
marketPurchaseMinutes: '20', // 市场采购纪要
@@ -696,16 +702,17 @@ const FILE_TYPE_MAP: Record<string, string> = {
singleSourceProof: '70', // 单一来源专家论证表
importApplication: '90', // 进口产品申请表
governmentPurchaseIntent: '100', // 政府采购意向表
// 需求文件相关 - 所有需求模板都应该是120采购需求表
// 需求文件相关 - 所有需求模板都应该是 120采购需求表
serviceDirectSelect: '120', // 服务商城项目需求模板(直选)- 采购需求表
serviceInviteSelect: '120', // 服务商城项目需求模板(邀请比选)- 采购需求表
servicePublicSelect: '120', // 服务商城项目需求模板(公开比选)- 采购需求表
servicePublicSelectAuto: '120', // 服务商城项目需求模板(公开比选-自动)- 采购需求表
servicePublicSelectAuto: '120', // 服务商城项目需求模板(公开比选 - 自动)- 采购需求表
purchaseRequirementTemplate: '120', // 需求模板 - 采购需求表
purchaseRequirement: '120', // 需求模板 - 采购需求表
serviceInviteSelectSchool: '120', // 服务商城项目需求模板(邀请比选-学校)- 采购需求表
servicePublicSelectSchoolAuto: '120', // 服务商城项目需求模板(公开比选-学校-自动)- 采购需求表
servicePublicSelectSchool: '120', // 服务商城项目需求模板(公开比选-学校)- 采购需求表
purchaseRequirement: '120', // 需求模板 - 采购需求表
serviceInviteSelectSchool: '120', // 服务商城项目需求模板(邀请比选 - 学校)- 采购需求表
servicePublicSelectSchoolAuto: '120', // 服务商城项目需求模板(公开比选 - 学校 - 自动)- 采购需求表
servicePublicSelectSchool: '120', // 服务商城项目需求模板(公开比选 - 学校)- 采购需求表
deptSelfMeetingMinutes: '140', // 部门自行采购会议纪要
};
// fileType -> 表单字段名数组(顺序与回填分配一致,同类型多字段时按此顺序分配)