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

@@ -0,0 +1,35 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form to reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
import request from '/@/utils/request';
/**
* 获取文件类型列表
*/
export function getFileTypes() {
return request({
url: '/purchase/purchasingfiles/file-types',
method: 'get'
});
}
/**
* 获取 140 部门自行采购会议纪要文件类型
*/
export function getDeptSelfMeetingFiletype() {
return '140';
}

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', // 市场采购纪要
@@ -706,6 +712,7 @@ const FILE_TYPE_MAP: Record<string, string> = {
serviceInviteSelectSchool: '120', // 服务商城项目需求模板(邀请比选 - 学校)- 采购需求表
servicePublicSelectSchoolAuto: '120', // 服务商城项目需求模板(公开比选 - 学校 - 自动)- 采购需求表
servicePublicSelectSchool: '120', // 服务商城项目需求模板(公开比选 - 学校)- 采购需求表
deptSelfMeetingMinutes: '140', // 部门自行采购会议纪要
};
// fileType -> 表单字段名数组(顺序与回填分配一致,同类型多字段时按此顺序分配)