From 77b083d347eb8e75eb29a4146238b3f7304489f6 Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期一, 17 八月 2026 09:54:07 +0800
Subject: [PATCH] Merge branch 'refs/heads/dev_pro2.0' into fix/hsy/20260812

---
 src/views/srm/tender/detail.vue |   39 +++++++++++++++++++++++++++++----------
 1 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/src/views/srm/tender/detail.vue b/src/views/srm/tender/detail.vue
index 7b2f1de..3f3a7f2 100644
--- a/src/views/srm/tender/detail.vue
+++ b/src/views/srm/tender/detail.vue
@@ -19,7 +19,7 @@
   createAward, deleteAward, getAward, getAwardByProject, approveAward, generatePurchaseOrder,
   confirmTenderProject,
 } from '#/api/srm/tender';
-import { getSupplierSimpleList } from '#/api/srm/supplier';
+import { getSupplierList } from '#/api/srm/supplier';
 import { getItemSimpleList } from '#/api/mdm/item';
 import type { MdmItemApi } from '#/api/mdm/item';
 import {
@@ -51,7 +51,7 @@
 onMounted(async () => {
   const [items, suppliers] = await Promise.all([
     getItemSimpleList(),
-    getSupplierSimpleList(),
+    getSupplierList(),
   ]);
   mdmItemList.value = items;
   supplierList.value = suppliers;
@@ -363,6 +363,7 @@
 const typeLabel = computed(() => getLabel(TENDER_TYPE_CELLTAG.labels, project.value?.tenderType));
 const isDraft = computed(() => project.value?.tenderStatus === TENDER_STATUS.DRAFT);
 const isPublished = computed(() => project.value?.tenderStatus === TENDER_STATUS.PUBLISHED);
+const isBidding = computed(() => project.value?.tenderStatus === TENDER_STATUS.BIDDING);
 const isPublishedOrBidding = computed(() => {
   const s = project.value?.tenderStatus;
   return s === TENDER_STATUS.PUBLISHED || s === TENDER_STATUS.BIDDING;
@@ -438,7 +439,7 @@
 const bidColumns = [
   { title: '鎶曟爣缂栧彿', dataIndex: 'bidNo', width: 140 },
   { title: '渚涘簲鍟�', dataIndex: 'supplierName', width: 200 },
-  { title: '鎶曟爣閲戦', dataIndex: 'bidTotalAmount', width: 120 },
+  { title: '鎶曟爣鎬婚噾棰�', dataIndex: 'bidTotalAmount', width: 120 },
   { title: '鎶曟爣鏃堕棿', dataIndex: 'bidTime', width: 160 },
   { title: '鐘舵��', dataIndex: 'bidStatus', width: 100, customRender: ({ text }: any) => BID_STATUS_MAP[text] || text },
   { title: '鎿嶄綔', key: 'actions', width: 240 },
@@ -446,7 +447,7 @@
 
 const quoteColumns = [
   { title: '鐗╂枡', dataIndex: 'materialName', width: 120 },
-  { title: '鎶ヤ环浠锋牸', dataIndex: 'quotePrice', width: 100 },
+  { title: '鎶ヤ环鍗曚环', dataIndex: 'quotePrice', width: 100 },
   { title: '绋庣巼(%)', dataIndex: 'taxRate', width: 80 },
   { title: '浜ゆ湡(澶�)', dataIndex: 'deliveryCycle', width: 80 },
   { title: '浠樻鏉′欢', dataIndex: 'paymentTerms', width: 120 },
@@ -537,14 +538,32 @@
           </div>
 
           <!-- 鎷涙爣璇存槑 / 璧勮川瑕佹眰 -->
-          <template v-if="project.tenderDesc || project.qualificationRequirements">
+          <template
+            v-if="project.tenderDesc || project.qualificationRequirements || (project.attachmentList && project.attachmentList.length)"
+          >
             <a-divider class="!my-2" />
             <a-collapse :bordered="false" ghost expand-icon-position="end">
               <a-collapse-panel v-if="project.tenderDesc" key="desc" header="鎷涙爣璇存槑">
                 <p class="text-gray-500 text-xs whitespace-pre-wrap">{{ project.tenderDesc }}</p>
               </a-collapse-panel>
-              <a-collapse-panel v-if="project.qualificationRequirements" key="req" header="璧勮川瑕佹眰">
-                <p class="text-gray-500 text-xs whitespace-pre-wrap">{{ project.qualificationRequirements }}</p>
+              <a-collapse-panel
+                v-if="project.qualificationRequirements || (project.attachmentList && project.attachmentList.length)"
+                key="req"
+                header="璧勮川瑕佹眰"
+              >
+                <p v-if="project.qualificationRequirements" class="text-gray-500 text-xs whitespace-pre-wrap">{{ project.qualificationRequirements }}</p>
+                <div v-if="project.attachmentList && project.attachmentList.length" class="mt-2 flex flex-col gap-1">
+                  <a
+                    v-for="file in project.attachmentList"
+                    :key="file.id"
+                    :href="file.url"
+                    target="_blank"
+                    rel="noopener noreferrer"
+                    class="text-blue-500 text-xs hover:underline"
+                  >
+                    {{ file.name || '闄勪欢-' + file.id }}
+                  </a>
+                </div>
               </a-collapse-panel>
             </a-collapse>
           </template>
@@ -594,7 +613,7 @@
               </template>
               <div class="flex items-center justify-between mb-3">
                 <span class="text-xs text-gray-400">鍏� <b class="text-gray-600">{{ bidCount }}</b> 涓姇鏍�</span>
-                <a-button v-if="isPublishedOrBidding || isDraft || isPriceComparing" type="primary" size="small" @click="bidForm = { tenderProjectId: projectId, supplierId: undefined!, bidNo: '' }; bidFormVisible = true">
+                <a-button v-if="isBidding || isDraft || isPriceComparing" type="primary" size="small" @click="bidForm = { tenderProjectId: projectId, supplierId: undefined!, bidNo: '' }; bidFormVisible = true">
                   <template #icon><IconifyIcon icon="ant-design:plus-outlined" /></template>
                   鏂板鎶曟爣
                 </a-button>
@@ -888,7 +907,7 @@
           </a-form-item>
           <a-row :gutter="12">
             <a-col :span="8">
-              <a-form-item label="鎶ヤ环浠锋牸" required><a-input-number v-model:value="quoteForm.quotePrice" :min="0" class="!w-full" placeholder="鎶ヤ环"><template #addonAfter>鍏�</template></a-input-number></a-form-item>
+              <a-form-item label="鎶ヤ环鍗曚环" required><a-input-number v-model:value="quoteForm.quotePrice" :min="0" class="!w-full" placeholder="鎶ヤ环"><template #addonAfter>鍏�</template></a-input-number></a-form-item>
             </a-col>
             <a-col :span="8">
               <a-form-item label="绋庣巼(%)"><a-input-number v-model:value="quoteForm.taxRate" :min="0" :max="100" class="!w-full" placeholder="濡� 13" /></a-form-item>
@@ -998,4 +1017,4 @@
       </a-modal>
     </template>
   </Page>
-</template>
+</template>
\ No newline at end of file

--
Gitblit v1.9.3