Преглед изворни кода

ToDo 完善发起招标;模板招标;历史招标

wzg пре 1 година
родитељ
комит
09486ef55d

+ 1 - 1
src/apis/fetch.js

@@ -273,7 +273,7 @@ export default {
 
   // 招标详情
   getTenderDetail(data) {
-    return $http("/tender/getDetail", data);
+    return $http("/tender/detail", data);
   },
 
   // 招标详情-增加代理公司

+ 43 - 32
src/components/TenderTable.vue

@@ -1,41 +1,44 @@
 <template>
-  <el-table class="mb10" :data="tableData" border stripe>
-    <el-table-column label="序号" type="index" width="60" />
-    <el-table-column label="货种" prop="cargo" />
-    <el-table-column label="发货吨位" prop="tons" />
-    <el-table-column label="装货港" prop="loadPort" />
-    <el-table-column label="卸货港" prop="dischargePorts" />
-    <el-table-column label="截止时间" prop="cutOffTime" />
-    <el-table-column label="发起人" prop="initiator" />
-    <el-table-column label="投标数量" prop="tenderQuantity" />
-    <el-table-column label="操作">
-      <template #default="scope">
-        <el-button
-          size="small"
-          type="primary"
-          @click="router.push(`/tenderManage/tenderDetail?id=${scope.row.id}`)"
-        >
-          详情
-        </el-button>
-      </template>
-    </el-table-column>
-  </el-table>
-  <div class="df aic jcfe" style="width: 100%">
-    <el-pagination
-      v-model:current-page="currentPage"
-      v-model:page-size="pageSize"
-      :page-sizes="[10, 50, 100, 200]"
-      background
-      layout="sizes, prev, pager, next"
-      :total="total"
-      @size-change="getTenderList()"
-      @current-change="getTenderList()"
-    />
+  <div>
+    <el-table class="mb10" :data="tableData" border stripe>
+      <el-table-column label="序号" type="index" width="60" />
+      <el-table-column label="货种" prop="cargo" />
+      <el-table-column label="发货吨位" prop="tons" />
+      <el-table-column label="装货港" prop="loadPortName" />
+      <el-table-column label="卸货港" prop="dischargePortName" />
+      <el-table-column
+        label="截止时间"
+        prop="bidDeadlineDatetime"
+        min-width="100px"
+      />
+      <el-table-column label="发起人" prop="sponsorName" />
+      <el-table-column label="投标数量" prop="tenderQuantity" />
+      <el-table-column label="操作">
+        <template #default="scope">
+          <el-button size="small" type="primary" @click="goTo(scope.row)">
+            详情
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <div class="df aic jcfe" style="width: 100%">
+      <el-pagination
+        v-model:current-page="currentPage"
+        v-model:page-size="pageSize"
+        :page-sizes="[10, 50, 100, 200]"
+        background
+        layout="sizes, prev, pager, next"
+        :total="total"
+        @size-change="getTenderList()"
+        @current-change="getTenderList()"
+      />
+    </div>
   </div>
 </template>
 <script setup>
 import { onMounted, onUnmounted, ref, watch } from "vue";
 import api from "apis/fetch";
+import router from "router/index";
 const props = defineProps({
   transType: {
     type: Number,
@@ -76,6 +79,14 @@ watch(
     getTenderList();
   }
 );
+
+function goTo(row) {
+  router.push(
+    `/tenderManage/${props.status === 0 ? "inviteTender" : "tenderDetail"}?id=${
+      row.id
+    }`
+  );
+}
 defineExpose({
   getTenderList,
 });

+ 43 - 15
src/views/tenderManage/inviteTender.vue

@@ -2,7 +2,7 @@
   <div class="line-container-p24">
     <div class="df aic mb30">
       <div class="t18 mr20">招标发起方式</div>
-      <el-button-group>
+      <el-button-group disabled>
         <el-button
           :type="ruleForm.initMethod === 1 ? 'primary' : ''"
           @click="changeInitMethod(1)"
@@ -66,18 +66,20 @@
           <RemoteSelect
             class="w300"
             api="getCol"
-            v-model="ruleForm.loadPort"
+            v-model="ruleForm.loadPortName"
             placeholder="选择装货港"
-            @selectItem="selectItem($event, 'loadPort', 'loadPortId')"
+            @selectItem="selectItem($event, 'loadPortName', 'loadPortId')"
           ></RemoteSelect>
         </el-form-item>
         <el-form-item label="卸货港" prop="dischargePortId">
           <RemoteSelect
             class="w300"
             api="getCol"
-            v-model="ruleForm.dischargePort"
+            v-model="ruleForm.dischargePortName"
             placeholder="选择卸货港货港"
-            @selectItem="selectItem($event, 'dischargePort', 'dischargePortId')"
+            @selectItem="
+              selectItem($event, 'dischargePortName', 'dischargePortId')
+            "
           ></RemoteSelect>
         </el-form-item>
         <el-form-item label="发货吨位" prop="tons">
@@ -97,7 +99,7 @@
             type="datetime"
             placeholder="请选择"
             format="YYYY/MM/DD hh:mm:ss"
-            value-format="YYYY/MM/DD hh:mmss"
+            value-format="YYYY/MM/DD hh:mm:ss"
           />
         </el-form-item>
         <el-form-item label="运力要求" prop="capacityRequirements">
@@ -114,7 +116,7 @@
             v-model="ruleForm.quotationRequest"
           ></el-input>
         </el-form-item>
-        <el-form-item label="参与竞标代理公司" required prop="proxyCompanyIds">
+        <el-form-item label="参与竞标代理公司" prop="proxyCompanyIds">
           <el-select
             class="w300 mb10"
             v-model="currentProxyCompanies"
@@ -213,11 +215,6 @@ const rules = ref({
       message: "请输入正确的数字",
       trigger: "blur",
     },
-    {
-      min: 0.01,
-      message: "吨位不能为 0",
-      trigger: "blur",
-    },
   ],
   bidDeadlineDatetime: [
     { required: true, message: "请选择投标截止时间", trigger: "blur" },
@@ -310,17 +307,48 @@ function submit(saveType) {
             quotationRequest,
             proxyCompanyIds,
           };
-          console.log(postData);
-          return;
           let { data } = await api.addTender(postData);
-          console.log(data);
+          if (data.status === 0) {
+            ElNotification({
+              title: "成功",
+              message: `${saveType ? "发起" : "暂存"}招标成功`,
+              type: "success",
+            });
+            ruleFormRef.value.resetFields();
+          } else {
+            ElNotification({
+              title: "失败",
+              message: `${saveType ? "发起" : "暂存"}招标失败`,
+              type: "error",
+            });
+            console.log(data);
+          }
         })
         .catch(() => {});
     }
   });
 }
 
+async function getTenderDetail() {
+  let { data } = await api.getTenderDetail({ tenderId: route.query.id });
+  if (data.status === 0) {
+    ruleForm.value = data.result;
+    currentProxyCompanies.value = data.result.tenderProxies.map((item) => {
+      return {
+        id: item.id,
+        companyName: item.proxyCompanyName,
+        contactName: item.contactName,
+        contactPhone: item.contactPhone,
+        contactEmail: item.contactEmail,
+      };
+    });
+  }
+}
+
 onMounted(() => {
+  if (route.query.id) {
+    getTenderDetail();
+  }
   getTenderProxyList();
   getTenderProxySelect();
 });

+ 6 - 4
src/views/tenderManage/tenderTemplate.vue

@@ -42,18 +42,20 @@
         <RemoteSelect
           class="w300"
           api="getCol"
-          v-model="ruleForm.loadPort"
+          v-model="ruleForm.loadPortName"
           placeholder="选择装货港"
-          @selectItem="selectItem($event, 'loadPort', 'loadPortId')"
+          @selectItem="selectItem($event, 'loadPortName', 'loadPortId')"
         ></RemoteSelect>
       </el-form-item>
       <el-form-item label="卸货港" prop="dischargePortId">
         <RemoteSelect
           class="w300"
           api="getCol"
-          v-model="ruleForm.dischargePort"
+          v-model="ruleForm.dischargePortName"
           placeholder="选择卸货港货港"
-          @selectItem="selectItem($event, 'dischargePort', 'dischargePortId')"
+          @selectItem="
+            selectItem($event, 'dischargePortName', 'dischargePortId')
+          "
         ></RemoteSelect>
       </el-form-item>
       <el-form-item label="发货吨位" prop="tons">