Prechádzať zdrojové kódy

Merge branch 'dev' into dev_g

AmandaG 10 mesiacov pred
rodič
commit
98878a0504

+ 1 - 2
src/api/module/booking.ts

@@ -51,11 +51,10 @@ export const getBookingDetail = (params: any, config: any) => {
 /**
  * 获取Booking详情页发送邮件
  */
-export const bookingSendEmail = (params: any, config: any) => {
+export const sendEmailApi = (params: any, config: any) => {
   return HttpAxios.post(
     `${baseUrl}`,
     {
-      action: 'ocean_booking',
       operate: 'save_communication',
       ...params
     },

+ 1 - 2
src/api/module/other.ts

@@ -1,5 +1,4 @@
-import HttpAxios from '@/utils/axios'
-import axios, { type AxiosInstance, type AxiosRequestConfig, type AxiosResponse } from 'axios'
+import axios from 'axios'
 
 const base = import.meta.env.VITE_API_HOST
 const baseUrl = `${base}/main_new_version.php`

+ 15 - 0
src/api/module/tracking.ts

@@ -122,3 +122,18 @@ export const getAllTrackingTableData = (params: any, config: any) => {
     config
   )
 }
+
+/**
+ * 用户点击分享链接后请求接口留下记录
+ */
+export const recordShareLinkClicked = (params: any, config: any) => {
+  return HttpAxios.post(
+    `${baseUrl}`,
+    {
+      action: 'ocean_order',
+      operate: 'share_shipment',
+      ...params
+    },
+    config
+  )
+}

+ 2 - 1
src/auto-imports.d.ts

@@ -3,6 +3,7 @@
 // @ts-nocheck
 // noinspection JSUnusedGlobalSymbols
 // Generated by unplugin-auto-import
+// biome-ignore lint: disable
 export {}
 declare global {
   const $api: typeof import('@/api/index')['default']
@@ -68,6 +69,6 @@ declare global {
 // for type re-export
 declare global {
   // @ts-ignore
-  export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
+  export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
   import('vue')
 }

+ 1 - 1
src/utils/table.ts

@@ -20,7 +20,7 @@ export const autoWidth = (tableData: VxeGridProps, grid: VxeGridInstance) => {
       if (column.title.length < 12) {
         width = column.title.length * 11 + 40
       } else if (column.title.length < 20) {
-        width = column.title.length * 8 + 40
+        width = column.title.length * 10 + 30
       } else {
         width = column.title.length * 7 + 40
       }

+ 2 - 1
src/views/Booking/src/components/BookingDetail/src/components/EmailView.vue

@@ -138,7 +138,8 @@ const sendEmail = () => {
   const html = editorRef.value.getHtml()
   const text = editorRef.value.getText()
   $api
-    .bookingSendEmail({
+    .sendEmailApi({
+      action: 'ocean_booking',
       email: emailData.value.email,
       communication_cc: emailData.value.ccEmail,
       serial_no: emailData.value.serial_no,

+ 6 - 0
src/views/Tracking/src/components/PublicTracking/src/components/ShareLinkDialog.vue

@@ -19,6 +19,12 @@ const copyToClipboard = async () => {
     ElMessage.success('Copied to clipboard')
     // 设置已复制标志
     copied.value = true
+    // $api
+    //   .recordShareLinkClicked({
+    //     url: shareLink.value
+    //   })
+    //   .then(() => {})
+    //   .catch(() => {})
 
     // 一段时间后重置标志
     setTimeout(() => {

+ 4 - 1
src/views/Tracking/src/components/TrackingDetail/src/TrackingDetail.vue

@@ -138,7 +138,10 @@ const openShareDialog = () => {
         }}</VTag>
         <div class="right-operation">
           <el-button
-            v-if="allData?.canViewAMSLog || allData?.canViewISFLog"
+            v-if="
+              (allData?.canViewAMSLog || allData?.canViewISFLog) &&
+              allData?.transportInfo?.mode !== 'Air Freight'
+            "
             type="default"
             @click="handleAMSISF"
           >

+ 2 - 1
src/views/Tracking/src/components/TrackingDetail/src/components/EmailDrawer.vue

@@ -139,7 +139,8 @@ const sendEmail = () => {
   const html = editorRef.value.getHtml()
   const text = editorRef.value.getText()
   $api
-    .bookingSendEmail({
+    .sendEmailApi({
+      action: 'ocean_order',
       email: emailData.value.email,
       communication_cc: emailData.value.ccEmail,
       serial_no: emailData.value.serial_no,

+ 4 - 9
src/views/Tracking/src/components/TrackingDetail/src/components/RoutesView.vue

@@ -75,13 +75,8 @@ const { isOverflow: isDetailDestinationOverflow } = useOverflow(detailDestinatio
   <div class="routes-view">
     <div class="title">Total number of legs: {{ routes.length }}</div>
     <div class="routes">
-      <div
-        class="route-item"
-        @click="item.isCollapse = !item.isCollapse"
-        v-for="(item, index) in routes"
-        :key="item.serialNumber"
-      >
-        <div class="basic-info">
+      <div class="route-item" v-for="(item, index) in routes" :key="item.serialNumber">
+        <div class="basic-info" @click="item.isCollapse = !item.isCollapse">
           <div class="serial-number border-right">Leg {{ index + 1 }}</div>
           <div class="mode border-right">
             <span class="font_family" :class="[`icon-${transportationMode?.[item.mode]}`]"></span>
@@ -195,11 +190,11 @@ const { isOverflow: isDetailDestinationOverflow } = useOverflow(detailDestinatio
           </div>
           <div class="transport-info">
             <div class="item">
-              <div class="title">Vessel</div>
+              <div class="title">Vessel / Airline</div>
               <div class="content">{{ item.vessel || '--' }}</div>
             </div>
             <div class="item">
-              <div class="title">Voyage No.</div>
+              <div class="title">Voyage / Flight No.</div>
               <div class="content">{{ item.voyageNo || '--' }}</div>
             </div>
           </div>

+ 6 - 0
src/views/Tracking/src/components/TrackingDetail/src/components/ShareLinkDialog.vue

@@ -24,6 +24,12 @@ const copyToClipboard = async () => {
     ElMessage.success('Copied to clipboard')
     // 设置已复制标志
     copied.value = true
+    // $api
+    //   .recordShareLinkClicked({
+    //     url: shareLink.value
+    //   })
+    //   .then(() => {})
+    //   .catch(() => {})
 
     // 一段时间后重置标志
     setTimeout(() => {

+ 8 - 2
src/views/Tracking/src/components/TrackingTable/src/TrackingTable.vue

@@ -606,8 +606,14 @@ defineExpose({
       </template>
       <!-- action操作的插槽 -->
       <template #action="{ row }">
-        <el-button @click="handleVGM(row)" class="el-button--blue" style="height: 24px">
-          <span class="font_family icon-icon_vgm_b"></span> <span style="font-size: 12px">VGM</span>
+        <el-button
+          v-if="row?.['Transportation Mode'] !== 'Air Freight'"
+          @click="handleVGM(row)"
+          class="el-button--blue"
+          style="height: 24px"
+        >
+          <span class="font_family icon-icon_vgm_b"></span>
+          <span style="font-size: 12px">VGM</span>
         </el-button>
       </template>
       <!-- Transportation Mode字段的插槽 -->