Forráskód Böngészése

更新 航次列表字段

wzh 3 éve
szülő
commit
3edaa0230e
3 módosított fájl, 183 hozzáadás és 51 törlés
  1. 14 0
      src/apis/fetch.js
  2. 161 46
      src/views/voyage/voyageDetail.vue
  3. 8 5
      src/views/voyage/voyageList.vue

+ 14 - 0
src/apis/fetch.js

@@ -142,4 +142,18 @@ export default {
   getFYFIDownloadUrl(data) {
     return $http("/fydi/getLastest", data);
   },
+  // 获取提货单列表
+  getLabList(data) {
+    return $http("/voyage/getLabList", data);
+  },
+
+  // 获取港口天气列表
+  getPortWeatherList(data) {
+    return $http("/voyage/getPortWeatherList", data);
+  },
+
+  // 获取超期航次提醒
+  getLongDaysInPort(data) {
+    return $http("/voyage/cargo/longDaysInPort", data);
+  },
 };

+ 161 - 46
src/views/voyage/voyageDetail.vue

@@ -13,9 +13,10 @@
     <div class="df aic">
       <div class="mr30">航次信息</div>
       <el-tooltip
+        v-if="blockchainInfo"
         class="box-item"
         effect="light"
-        :content="blockchainInfo"
+        :content="blockchainInfo.hash"
         placement="top"
       >
         <div class="pointer" style="font-size: 14px; font-weight: normal">
@@ -360,52 +361,52 @@
   <div class="line-container-p24">
     <div v-auth="'SHIPDISCHARGE'">
       <div class="container-second-title df aic jcsb">
-        <div>天气信息</div>
+        <div>{{ voyage.dischargeProt }} - 天气信息</div>
       </div>
-      <el-table :data="dischargeList" stripe style="width: 800px">
+      <el-table style="width: 800px" :data="weatherTableData" stripe>
         <el-table-column
           type="index"
           label="序号"
-          min-width="80"
+          min-width="120"
           align="center"
         ></el-table-column>
         <el-table-column
-          prop="dischargeTime"
-          label="卸货时间"
+          prop="weather"
+          label="天气"
           min-width="120"
           align="center"
         ></el-table-column>
         <el-table-column
-          prop="dischargeTons"
-          label="卸货吨位"
+          prop="temperature"
+          label="温度"
           min-width="100"
           align="center"
         ></el-table-column>
         <el-table-column
-          prop="dischargePieces"
-          label="卸货件数"
+          prop="winddirection"
+          label="风向"
+          min-width="100"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="windpower"
+          label="风力"
+          min-width="100"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="reporttime"
+          label="记录时间"
           min-width="100"
           align="center"
         ></el-table-column>
-        <el-table-column label="磅单" min-width="150" align="center">
-          <template v-slot="scope">
-            <el-button
-              @click="showUpdateDischarge(scope.row, scope.$index)"
-              type="primary"
-              size="small"
-              v-if="scope.row.files"
-            >
-              查看
-            </el-button>
-          </template>
-        </el-table-column>
       </el-table>
-      <div style="width: 100%; text-align: right; margin-top: 43px">
+      <div style="width: 800px; text-align: right; margin-top: 43px">
         <el-pagination
           background
           layout="prev, pager, next"
-          :total="total"
-          @current-change="pageChange"
+          :total="weatherTotal"
+          @current-change="weatherPageChange"
         ></el-pagination>
       </div>
       <div class="hr m30-0"></div>
@@ -414,52 +415,92 @@
       <div class="container-second-title df aic jcsb">
         <div>提单信息</div>
       </div>
-      <el-table :data="dischargeList" stripe style="width: 800px">
+      <el-table :data="labTableData" stripe style="width: 800px">
         <el-table-column
           type="index"
           label="序号"
-          min-width="80"
-          align="center"
-        ></el-table-column>
-        <el-table-column
-          prop="dischargeTime"
-          label="卸货时间"
           min-width="120"
           align="center"
         ></el-table-column>
         <el-table-column
-          prop="dischargeTons"
-          label="卸货吨位"
-          min-width="100"
+          prop="billingDate"
+          label="开单日期"
+          min-width="120"
           align="center"
         ></el-table-column>
         <el-table-column
-          prop="dischargePieces"
-          label="卸货件数"
+          prop="billingNum"
+          label="开单数量"
           min-width="100"
           align="center"
         ></el-table-column>
-        <el-table-column label="磅单" min-width="150" align="center">
+
+        <el-table-column label="单据" min-width="150" align="center">
           <template v-slot="scope">
             <el-button
-              @click="showUpdateDischarge(scope.row, scope.$index)"
+              @click="showLab(scope.row, scope.$index, '查看提单')"
               type="primary"
               size="small"
-              v-if="scope.row.files"
             >
               查看
             </el-button>
           </template>
         </el-table-column>
       </el-table>
-      <div style="width: 100%; text-align: right; margin-top: 43px">
+      <div style="text-align: right; margin-top: 43px">
         <el-pagination
           background
           layout="prev, pager, next"
-          :total="total"
-          @current-change="pageChange"
+          :total="labTotal"
+          @current-change="labPageChange"
         ></el-pagination>
       </div>
+      <el-dialog
+        v-model="isAddLabVisable"
+        :title="labModalType"
+        width="780px"
+        center
+        @close="cancelUploadLab"
+      >
+        <el-form
+          :model="labForm"
+          inline
+          style="margin-bottom: 20px"
+          label-width="100px"
+        >
+          <el-form-item label="开单日期">
+            <el-date-picker
+              class="info-line-text"
+              v-model="labForm.billingDate"
+              type="date"
+              format="YYYY/MM/DD"
+              value-format="YYYY/MM/DD"
+              placeholder="开单日期"
+              disabled
+            ></el-date-picker>
+          </el-form-item>
+          <el-form-item label="开单数量">
+            <el-input
+              style="width: 240px"
+              v-model="labForm.billingNum"
+              placeholder="开单数量"
+              disabled
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="提单">
+            <Uploader
+              disabled
+              :actionUrl="store.state.wayBillUrl"
+              :uploaderId="'labLoad'"
+              :params="labParams"
+              @onSendFileList="getLabBillList"
+              :fileList="labBillList"
+              uploadText="上传提单"
+              :limit="1"
+            ></Uploader>
+          </el-form-item>
+        </el-form>
+      </el-dialog>
       <div class="hr m30-0"></div>
     </div>
     <div v-auth="'SHIPDISCHARGE'">
@@ -743,8 +784,13 @@
   <div v-auth="'BILLINFO'">
     <div class="container-title df aic jcsb">
       单据信息
-      <el-button style="margin-right: 30px" size="medium" type="primary"
-        >下载</el-button
+      <el-button
+        style="margin-right: 30px"
+        size="medium"
+        type="primary"
+        @click="downloadBillZip"
+        :loading="billZipLoading"
+        >下载单据</el-button
       >
     </div>
     <div class="line-container-p24" style="padding-left: 60px">
@@ -943,7 +989,7 @@ async function getVoyageDetail(type) {
         title: res.data.msg,
       });
     }
-
+    blockchainInfo.value = res.data.result.blockChain;
     coordinates.value = res.data.result.coordinates;
     voyage.value = res.data.result.voyage;
     medias.value = res.data.result.medias;
@@ -1384,10 +1430,79 @@ let truckLoadParams = ref({});
 function getTruckLoadBillList() {}
 let blockchainInfo = ref("");
 
+let billZipLoading = ref(false);
+async function downloadBillZip() {
+  billZipLoading.value = true;
+  let res = await downloadBlobFile(
+    `${url.baseurl}/voyage/exportBillZip`,
+    { voyageId: route.query.id },
+    "单据文件",
+    "post",
+    "application/zip"
+  );
+
+  billZipLoading.value = false;
+}
+
+let weatherTableData = ref([]);
+let weatherCurrentPage = ref(1);
+let weatherTotal = ref(0);
+async function getPortWeatherList() {
+  let res = await api.getPortWeatherList({
+    voyageId: route.query.id,
+    size: 10,
+    currentPage: weatherCurrentPage.value,
+  });
+  weatherTableData.value = res.data.result;
+  for (let i of weatherTableData.value) {
+    i.reporttime = i.reporttime.substring(0, 10);
+  }
+  weatherTotal.value = res.data.total;
+}
+
+function weatherPageChange(e) {
+  weatherCurrentPage.value = e;
+  getPortWeatherList();
+}
+
+let labTableData = ref([]);
+let labTotal = ref(0);
+let labCurrentPage = ref(1);
+
+async function getLabList() {
+  let res = await api.getLabList({
+    voyageId: route.query.id,
+    currentPage: labCurrentPage.value,
+    size: 10,
+  });
+  labTableData.value = res.data.result;
+  labTotal.value = res.data.total;
+}
+function labPageChange(e) {
+  labCurrentPage.value = e;
+  getLabList();
+}
+let isAddLabVisable = ref(false);
+let labBillList = ref([]);
+let labForm = ref({});
+function showLab(item) {
+  isAddLabVisable.value = true;
+  if (item.file) {
+    labBillList.value[0] = {
+      ...item.file,
+      url: item.file.viewUrl,
+    };
+  }
+
+  labForm.value = { ...item };
+}
+
 onMounted(() => {
   getVoyageDetail(1);
   getDischargeList(1);
   getTruckLoadRecord();
+  getLabList();
+  getPortWeatherList();
 });
 </script>
 <style scoped>

+ 8 - 5
src/views/voyage/voyageList.vue

@@ -235,7 +235,11 @@
         sortable
         min-width="100"
         align="center"
-      ></el-table-column>
+      >
+        <template v-slot="scope">
+          {{ scope.row.arrived ? "已到港" : scope.row.expectedArrivalTime }}
+        </template>
+      </el-table-column>
       <el-table-column
         prop="abnormalStatus"
         label="航次状态"
@@ -265,21 +269,20 @@
         min-width="70"
         align="center"
       ></el-table-column>
-
       <el-table-column
-        prop="tons"
+        prop="actualLoadTons"
         label="装载吨位"
         min-width="80"
         align="center"
       ></el-table-column>
       <el-table-column
-        prop="tons"
+        prop="unloadedtons"
         label="已卸货吨位"
         min-width="80"
         align="center"
       ></el-table-column>
       <el-table-column
-        prop="tons"
+        prop="remainTons"
         label="剩余吨位"
         min-width="80"
         align="center"