浏览代码

完成 投标详情

wzg 1 年之前
父节点
当前提交
090b76d380
共有 2 个文件被更改,包括 113 次插入24 次删除
  1. 1 1
      src/components/TenderTable.vue
  2. 112 23
      src/views/tenderManage/tenderDetail.vue

+ 1 - 1
src/components/TenderTable.vue

@@ -12,7 +12,7 @@
         min-width="100px"
       />
       <el-table-column label="发起人" prop="sponsorName" />
-      <el-table-column label="投标数量" prop="tenderQuantity" />
+      <el-table-column label="投标数量" prop="bidNum" />
       <el-table-column label="操作">
         <template #default="scope">
           <slot name="action" :row="scope.row" />

+ 112 - 23
src/views/tenderManage/tenderDetail.vue

@@ -173,29 +173,67 @@
           </el-button>
         </div>
       </div>
-      <AMapContainer
-        :mapId="'map' + index"
-        :ships="item.tenderProxyBids"
-        style="height: 300px"
-        class="mb10"
-      ></AMapContainer>
+      <div v-if="item.bidStatus !== 2">
+        <AMapContainer
+          :mapId="'map' + index"
+          :ships="item.tenderProxyBids"
+          style="height: 300px"
+          class="mb10"
+        ></AMapContainer>
+        <el-table
+          :data="item.tenderProxyBids"
+          border
+          stripe
+          show-summary
+          :summary-method="getSummaries"
+        >
+          <el-table-column label="船名" prop="shipName"></el-table-column>
+          <el-table-column label="MMSI" prop="shipMmsi"></el-table-column>
+          <el-table-column label="装载吨位" prop="loadTons"></el-table-column>
+          <el-table-column
+            label="报价(元/吨)"
+            prop="quotePrice"
+          ></el-table-column>
+          <el-table-column
+            label="预计运费(元,单船)"
+            prop="estimatedCost"
+          ></el-table-column>
+          <el-table-column label="操作">
+            <template #default="scope">
+              <div class="df aic" v-if="tenderData.status === 1">
+                <el-button
+                  v-if="scope.row.status === 1"
+                  size="small"
+                  type="primary"
+                  @click="selectTenderShip(scope.row, 1)"
+                >
+                  选择中标
+                </el-button>
+                <el-button
+                  v-if="scope.row.status === 2"
+                  size="small"
+                  type="danger"
+                  @click="selectTenderShip(scope.row, 2)"
+                >
+                  取消中标
+                </el-button>
+              </div>
 
-      <el-table
-        :data="item.tenderProxyBids"
-        border
-        stripe
-        show-summary
-        :summary-method="getSummaries"
-      >
-        <el-table-column label="船名" prop="shipName"></el-table-column>
-        <el-table-column label="MMSI" prop="mmsi"></el-table-column>
-        <el-table-column label="装载吨位" prop="loadTons"></el-table-column>
-        <el-table-column label="报价(元/吨)" prop="quotation"></el-table-column>
-        <el-table-column
-          label="预计运费(单船)"
-          prop="estimatedCost"
-        ></el-table-column>
-      </el-table>
+              <el-tag v-if="scope.row.status === 2 && tenderData.status === 2">
+                已中标
+              </el-tag>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <div v-else>
+        <el-result
+          class="card"
+          icon="error"
+          title="放弃竞标"
+          :sub-title="item.giveUpRemark"
+        ></el-result>
+      </div>
     </div>
 
     <div v-if="tenderData.status === 1" class="df aic jcfe mt30">
@@ -279,7 +317,27 @@ async function getTenderDetail() {
   let { data } = await api.getTenderDetail({
     tenderId: route.query.id,
   });
-  tenderData.value = data.result;
+  if (data.status === 0) {
+    tenderData.value = data.result;
+    for (let i of tenderData.value.tenderProxies) {
+      for (let j of i.tenderProxyBids) {
+        j.estimatedCost = j.loadTons * j.quotePrice;
+      }
+    }
+  } else {
+    tenderData.value = {
+      operatorDate: "",
+      bidDeadlineDatetime: "",
+      cargo: "",
+      loadPortName: "",
+      tons: "",
+      dischargePortName: "",
+      participateProxyNum: "",
+      capacityRequirements: "",
+      quotationRequest: "",
+      tenderProxies: [],
+    };
+  }
 }
 
 function getLeftTime(givenTime = "2099-12-31 23:59:59") {
@@ -383,6 +441,37 @@ function completeTender(status) {
     getTenderDetail();
   });
 }
+
+function selectTenderShip(row, status) {
+  ElMessageBox.confirm(
+    `确认${status === 1 ? "选择" : "取消"}${row.shipName}中标?`,
+    "提示",
+    {
+      confirmButtonText: "确认",
+      cancelButtonText: "取消",
+      type: "warning",
+    }
+  ).then(async () => {
+    let { data } = await api.selectTenderShip({
+      tenderId: route.query.id,
+      status,
+      tenderProxyBidId: row.id,
+    });
+    if (data.status === 0) {
+      ElNotification({
+        type: "success",
+        message: `${status === 1 ? "选择" : "取消"}成功!`,
+      });
+      getTenderDetail();
+    } else {
+      ElNotification({
+        type: "error",
+        message: data.msg,
+      });
+      console.log(data);
+    }
+  });
+}
 onMounted(() => {
   getTenderDetail();
 });