This commit is contained in:
吴红兵
2026-03-04 22:10:41 +08:00
parent 69439fdfab
commit 7f61c9bdce
2 changed files with 74 additions and 32 deletions

View File

@@ -205,7 +205,7 @@
<upload-file <upload-file
v-model="dataForm.businessNegotiationTable" v-model="dataForm.businessNegotiationTable"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.businessNegotiationTable }" :data="{ fileType: FILE_TYPE_MAP.businessNegotiationTable }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('businessNegotiationTable')" :disabled="flowFieldDisabled('businessNegotiationTable')"
@@ -226,7 +226,7 @@
<upload-file <upload-file
v-model="dataForm.marketPurchaseMinutes" v-model="dataForm.marketPurchaseMinutes"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.marketPurchaseMinutes }" :data="{ fileType: FILE_TYPE_MAP.marketPurchaseMinutes }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('marketPurchaseMinutes')" :disabled="flowFieldDisabled('marketPurchaseMinutes')"
@@ -247,7 +247,7 @@
<upload-file <upload-file
v-model="dataForm.onlineMallMaterials" v-model="dataForm.onlineMallMaterials"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.onlineMallMaterials }" :data="{ fileType: FILE_TYPE_MAP.onlineMallMaterials }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('onlineMallMaterials')" :disabled="flowFieldDisabled('onlineMallMaterials')"
@@ -259,7 +259,7 @@
<upload-file <upload-file
v-model="dataForm.inquiryTemplate" v-model="dataForm.inquiryTemplate"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.inquiryTemplate }" :data="{ fileType: FILE_TYPE_MAP.inquiryTemplate }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('inquiryTemplate')" :disabled="flowFieldDisabled('inquiryTemplate')"
@@ -284,7 +284,7 @@
<upload-file <upload-file
v-model="dataForm.deptSelfMeetingMinutes" v-model="dataForm.deptSelfMeetingMinutes"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.deptSelfMeetingMinutes }" :data="{ fileType: FILE_TYPE_MAP.deptSelfMeetingMinutes }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('deptSelfMeetingMinutes')" :disabled="flowFieldDisabled('deptSelfMeetingMinutes')"
@@ -320,7 +320,7 @@
<upload-file <upload-file
v-model="dataForm.serviceDirectSelect" v-model="dataForm.serviceDirectSelect"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.serviceDirectSelect }" :data="{ fileType: FILE_TYPE_MAP.serviceDirectSelect }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('serviceDirectSelect')" :disabled="flowFieldDisabled('serviceDirectSelect')"
@@ -351,7 +351,7 @@
<upload-file <upload-file
v-model="dataForm.serviceInviteSelect" v-model="dataForm.serviceInviteSelect"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.serviceInviteSelect }" :data="{ fileType: FILE_TYPE_MAP.serviceInviteSelect }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('serviceInviteSelect')" :disabled="flowFieldDisabled('serviceInviteSelect')"
@@ -376,7 +376,7 @@
<upload-file <upload-file
v-model="dataForm.purchaseRequirementTemplate" v-model="dataForm.purchaseRequirementTemplate"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.purchaseRequirementTemplate }" :data="{ fileType: FILE_TYPE_MAP.purchaseRequirementTemplate }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('purchaseRequirementTemplate')" :disabled="flowFieldDisabled('purchaseRequirementTemplate')"
@@ -405,7 +405,7 @@
<upload-file <upload-file
v-model="dataForm.serviceInviteSelect" v-model="dataForm.serviceInviteSelect"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.serviceInviteSelect }" :data="{ fileType: FILE_TYPE_MAP.serviceInviteSelect }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('serviceInviteSelect')" :disabled="flowFieldDisabled('serviceInviteSelect')"
@@ -426,7 +426,7 @@
<upload-file <upload-file
v-model="dataForm.servicePublicSelectAuto" v-model="dataForm.servicePublicSelectAuto"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.servicePublicSelectAuto }" :data="{ fileType: FILE_TYPE_MAP.servicePublicSelectAuto }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('servicePublicSelectAuto')" :disabled="flowFieldDisabled('servicePublicSelectAuto')"
@@ -556,7 +556,7 @@
<upload-file <upload-file
v-model="dataForm.feasibilityReport" v-model="dataForm.feasibilityReport"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.feasibilityReport }" :data="{ fileType: FILE_TYPE_MAP.feasibilityReport }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('feasibilityReport')" :disabled="flowFieldDisabled('feasibilityReport')"
@@ -587,7 +587,7 @@
<upload-file <upload-file
v-model="dataForm.meetingMinutes" v-model="dataForm.meetingMinutes"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.meetingMinutes }" :data="{ fileType: FILE_TYPE_MAP.meetingMinutes }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('meetingMinutes')" :disabled="flowFieldDisabled('meetingMinutes')"
@@ -599,7 +599,7 @@
<upload-file <upload-file
v-model="dataForm.meetingMinutesUrgent" v-model="dataForm.meetingMinutesUrgent"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.meetingMinutesUrgent }" :data="{ fileType: FILE_TYPE_MAP.meetingMinutesUrgent }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('meetingMinutesUrgent')" :disabled="flowFieldDisabled('meetingMinutesUrgent')"
@@ -611,7 +611,7 @@
<upload-file <upload-file
v-model="dataForm.singleSourceProof" v-model="dataForm.singleSourceProof"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.singleSourceProof }" :data="{ fileType: FILE_TYPE_MAP.singleSourceProof }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('singleSourceProof')" :disabled="flowFieldDisabled('singleSourceProof')"
@@ -632,7 +632,7 @@
<upload-file <upload-file
v-model="dataForm.meetingMinutesSingle" v-model="dataForm.meetingMinutesSingle"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.meetingMinutesSingle }" :data="{ fileType: FILE_TYPE_MAP.meetingMinutesSingle }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('meetingMinutesSingle')" :disabled="flowFieldDisabled('meetingMinutesSingle')"
@@ -644,7 +644,7 @@
<upload-file <upload-file
v-model="dataForm.importApplication" v-model="dataForm.importApplication"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.importApplication }" :data="{ fileType: FILE_TYPE_MAP.importApplication }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('importApplication')" :disabled="flowFieldDisabled('importApplication')"
@@ -665,7 +665,7 @@
<upload-file <upload-file
v-model="dataForm.meetingMinutesImport" v-model="dataForm.meetingMinutesImport"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.meetingMinutesImport }" :data="{ fileType: FILE_TYPE_MAP.meetingMinutesImport }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('meetingMinutesImport')" :disabled="flowFieldDisabled('meetingMinutesImport')"
@@ -693,7 +693,7 @@
<upload-file <upload-file
v-model="dataForm.serviceInviteSelectSchool" v-model="dataForm.serviceInviteSelectSchool"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.serviceInviteSelectSchool }" :data="{ fileType: FILE_TYPE_MAP.serviceInviteSelectSchool }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('serviceInviteSelectSchool')" :disabled="flowFieldDisabled('serviceInviteSelectSchool')"
@@ -712,7 +712,7 @@
<upload-file <upload-file
v-model="dataForm.servicePublicSelectSchoolAuto" v-model="dataForm.servicePublicSelectSchoolAuto"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.servicePublicSelectSchoolAuto }" :data="{ fileType: FILE_TYPE_MAP.servicePublicSelectSchoolAuto }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('servicePublicSelectSchoolAuto')" :disabled="flowFieldDisabled('servicePublicSelectSchoolAuto')"
@@ -732,7 +732,7 @@
<upload-file <upload-file
v-model="dataForm.servicePublicSelectSchool" v-model="dataForm.servicePublicSelectSchool"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.servicePublicSelectSchool }" :data="{ fileType: FILE_TYPE_MAP.servicePublicSelectSchool }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('servicePublicSelectSchool')" :disabled="flowFieldDisabled('servicePublicSelectSchool')"
@@ -751,7 +751,7 @@
<upload-file <upload-file
v-model="dataForm.purchaseRequirement" v-model="dataForm.purchaseRequirement"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.purchaseRequirement }" :data="{ fileType: FILE_TYPE_MAP.purchaseRequirement }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('purchaseRequirement')" :disabled="flowFieldDisabled('purchaseRequirement')"
@@ -773,7 +773,7 @@
<upload-file <upload-file
v-model="dataForm.governmentPurchaseIntent" v-model="dataForm.governmentPurchaseIntent"
:limit="1" :limit="1"
:file-type="['doc', 'docx', 'pdf']" :file-type="['pdf']"
:data="{ fileType: FILE_TYPE_MAP.governmentPurchaseIntent }" :data="{ fileType: FILE_TYPE_MAP.governmentPurchaseIntent }"
upload-file-url="/purchase/purchasingfiles/upload" upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('governmentPurchaseIntent')" :disabled="flowFieldDisabled('governmentPurchaseIntent')"
@@ -2365,6 +2365,7 @@ const handleSubmit = async () => {
'purchaseRequirementTemplate', 'purchaseRequirementTemplate',
'serviceInviteSelect', 'serviceInviteSelect',
'servicePublicSelectAuto', 'servicePublicSelectAuto',
'deptSelfMeetingMinutes', // 部门自行采购会议纪要
'purchaseRequirement', 'purchaseRequirement',
'meetingMinutes', 'meetingMinutes',
'feasibilityReport', 'feasibilityReport',
@@ -2464,6 +2465,7 @@ const handleTempStore = async () => {
'purchaseRequirementTemplate', 'purchaseRequirementTemplate',
'serviceInviteSelect', 'serviceInviteSelect',
'servicePublicSelectAuto', 'servicePublicSelectAuto',
'deptSelfMeetingMinutes', // 部门自行采购会议纪要
'purchaseRequirement', 'purchaseRequirement',
'meetingMinutes', 'meetingMinutes',
'feasibilityReport', 'feasibilityReport',

View File

@@ -185,19 +185,24 @@
<span v-else>-</span> <span v-else>-</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="purchaseType" label="采购形式" width="120" align="center"> <el-table-column prop="purchaseMode" label="采购形式" width="130" align="center">
<template #header> <template #header>
<el-icon><Shop /></el-icon> <el-icon><Shop /></el-icon>
<span style="margin-left: 4px">采购形式</span> <span style="margin-left: 4px">采购形式</span>
</template> </template>
<template #default="scope"> <template #default="scope">
<el-tag v-if="scope.row.purchaseType === '1'" type="success">网上商城</el-tag> <el-tag v-if="scope.row.purchaseMode === '1'" type="success">部门自行采购</el-tag>
<el-tag v-else-if="scope.row.purchaseType === '2'" type="warning">市场采购</el-tag> <el-tag v-else-if="scope.row.purchaseMode === '2'" type="primary">学校统一采购</el-tag>
<el-tag v-else-if="scope.row.purchaseType === '3'" type="danger">商务洽谈</el-tag> <span v-else>-</span>
<el-tag v-else-if="scope.row.purchaseType === '4'" type="primary">委托采购</el-tag> </template>
<el-tag v-else-if="scope.row.purchaseType === '5'" type="info">询价</el-tag> </el-table-column>
<el-tag v-else-if="scope.row.purchaseType === '100'" type="success">公开招标</el-tag> <el-table-column prop="purchaseType" label="采购方式" width="120" align="center">
<el-tag v-else-if="scope.row.purchaseType === '8'" type="success">网上商城</el-tag> <template #header>
<el-icon><Shop /></el-icon>
<span style="margin-left: 4px">采购方式</span>
</template>
<template #default="scope">
<el-tag v-if="scope.row.purchaseTypeLabel" type="primary">{{ scope.row.purchaseTypeLabel }}</el-tag>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
</el-table-column> </el-table-column>
@@ -613,6 +618,7 @@ const handleSubmit = async (row: any) => {
/** 操作栏「更多」菜单项配置 */ /** 操作栏「更多」菜单项配置 */
const getActionMenuItems = (row: any) => { const getActionMenuItems = (row: any) => {
const isTemp = row?.status === '-1'; const isTemp = row?.status === '-1';
const isRunning = row?.status === '0';
const isCompleted = row?.status === '1'; const isCompleted = row?.status === '1';
const items = [ const items = [
{ {
@@ -661,13 +667,13 @@ const getActionMenuItems = (row: any) => {
command: 'representor', command: 'representor',
label: '采购代表', label: '采购代表',
icon: User, icon: User,
visible: () => isDeptAuditRole.value, visible: () => isCompleted && isDeptAuditRole.value,
}, },
{ {
command: 'updateFiles', command: 'updateFiles',
label: '更新材料', label: '更新材料',
icon: RefreshRight, icon: RefreshRight,
visible: () => isCompleted && hasAuth('purchase_purchasingapply_edit'), visible: () => (isCompleted || isRunning) && hasAuth('purchase_purchasingapply_edit'),
}, },
// { // {
// command: 'downloadFileApply', // command: 'downloadFileApply',
@@ -933,5 +939,39 @@ onMounted(() => {
.status-tag-clickable { .status-tag-clickable {
cursor: pointer; cursor: pointer;
} }
:deep(.el-tag) {
border-radius: 4px;
}
:deep(.el-tag--success) {
--el-tag-bg-color: #e8f5e9;
--el-tag-border-color: #c8e6c9;
--el-tag-text-color: #2e7d32;
}
:deep(.el-tag--warning) {
--el-tag-bg-color: #fff8e1;
--el-tag-border-color: #ffecb3;
--el-tag-text-color: #f57c00;
}
:deep(.el-tag--danger) {
--el-tag-bg-color: #ffebee;
--el-tag-border-color: #ffcdd2;
--el-tag-text-color: #c62828;
}
:deep(.el-tag--primary) {
--el-tag-bg-color: #e3f2fd;
--el-tag-border-color: #bbdefb;
--el-tag-text-color: #1565c0;
}
:deep(.el-tag--info) {
--el-tag-bg-color: #f5f5f5;
--el-tag-border-color: #e0e0e0;
--el-tag-text-color: #616161;
}
</style> </style>