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

feat: 修改Tracking、Booking表格不能正确导出bug

zhouyuhao пре 1 година
родитељ
комит
6d1d120588

+ 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/router/index.ts

@@ -110,7 +110,7 @@ router.beforeEach(async (to, from, next) => {
       next(false)
       return
     } else {
-      next('/Login')
+      next('/login')
     }
   }
   next()

+ 0 - 1
src/views/Booking/src/BookingView.vue

@@ -9,7 +9,6 @@ import { ref, reactive, onMounted } from 'vue'
 import { useCalculatingHeight } from '@/hooks/calculatingHeight'
 
 const filterRef: Ref<HTMLElement | null> = ref(null)
-// const containerHeight: any = ref(0)
 
 const containerHeight = useCalculatingHeight(document.documentElement, 246, [filterRef])
 

+ 30 - 22
src/views/Booking/src/components/BookingTable/src/BookingTable.vue

@@ -42,7 +42,10 @@ const handleColumns = (columns: any, status?: string) => {
     } else if (item.type === 'mode' && status !== 'all') {
       curColumn = {
         ...curColumn,
-        slots: { default: 'mode' }
+        slots: { default: 'mode' },
+        formatter: ({ cellValue }: any) => {
+          return cellValue
+        }
       }
     }
     // 格式化
@@ -103,12 +106,13 @@ const getTableData = async (isInit: boolean, isPageChange?: boolean) => {
     })
     .then((res: any) => {
       if (res.code === 200) {
-        bookingTable.value.data = res.data.searchData
+        bookingTable.value.data = res.data.searchData || []
         pageInfo.value.total = Number(res.data.rc)
         // 拥有所有字段的表格
         setTimeout(() => {
           allTable.value.columns = handleColumns(res.data.allColums, 'all')
-          allTable.value.data = res.data.searchData
+          allTable.value.data = res.data.searchData || []
+          // 为了让导出的表格列宽度自适应
           nextTick(() => {
             allTableRef.value && autoWidth(allTable.value, allTableRef.value)
           })
@@ -140,9 +144,18 @@ const searchTableData = (data: any) => {
             query: { a: res.data.searchData.__serial_no, _schemas: res.data.searchData.__schemas }
           })
         } else {
-          bookingTable.value.data = res.data.searchData
+          bookingTable.value.data = res.data.searchData || []
           pageInfo.value.total = Number(res.data.rc)
           tableLoading.value = false
+          // 拥有所有字段的表格
+          setTimeout(() => {
+            allTable.value.columns = handleColumns(res.data.allColums, 'all')
+            allTable.value.data = res.data.searchData || []
+            // 为了让导出的表格列宽度自适应
+            nextTick(() => {
+              allTableRef.value && autoWidth(allTable.value, allTableRef.value)
+            })
+          }, 1000)
         }
       }
     })
@@ -255,25 +268,22 @@ const handleDownload = () => {
   downloadDialogRef.value.openDialog(props.tagsData, curSelectedColumns)
 }
 
-// 导出表格
+// 导出表格 status: 1 导出当前表格 2 导出所有字段表格
 const exportTable = (status: number) => {
+  const exportConfig: any = {
+    type: 'xlsx',
+    message: false,
+    filename: `Booking List_${dayjs().format('YYYYMMDDHH[h]mm[m]ss[s]')}`
+  }
   if (status === 1) {
-    tableRef.value?.exportData({
-      type: 'xlsx',
-      message: false,
-      filename: `Booking List_${dayjs().format('YYYYMMDDHH[h]mm[m]ss[s]')}`,
-      columnFilterMethod: ({ column }: any) => {
-        // 排除复选框列
-        return column.field
-      }
-    })
-  } else {
-    allTableRef.value?.exportData({
-      type: 'xlsx',
-      message: false,
-      filename: `Booking List_${dayjs().format('YYYYMMDDHH[h]mm[m]ss[s]')}`
-    })
+    exportConfig.columnFilterMethod = ({ column }: any) => {
+      const index = bookingTable.value.columns.findIndex((item: any) => item.field === column.field)
+      // 排除复选框列
+      return column.field && index !== -1
+    }
+    exportConfig.columns = bookingTable.value.columns
   }
+  allTableRef.value?.exportData(exportConfig)
 }
 
 const tableLoading = ref(false)
@@ -465,8 +475,6 @@ defineExpose({
     position: absolute;
     top: -100000px;
     width: 20px;
-    opacity: 0;
-    visibility: hidden;
   }
 }
 </style>

+ 1 - 0
src/views/Login/src/loginView.vue

@@ -44,6 +44,7 @@ const getCredentials = () => {
     const password = decryptPassword(encryptedPassword) // 解密密码
     loginForm.value.username = username
     loginForm.value.password = password
+    isRememerPwd.value = true
   }
 }
 

+ 20 - 23
src/views/Tracking/src/components/TrackingTable/src/TrackingTable.vue

@@ -94,7 +94,7 @@ let filterdataobj: any = {}
 const getSharedTableData = () => {
   const trackingData = JSON.parse(localStorage.getItem('TrackingData'))
   if (trackingData) {
-    trackingTable.value.data = trackingData.searchData
+    trackingTable.value.data = trackingData.searchData || []
     pageInfo.value.total = Number(trackingData.rc)
     TransportListItem.value = trackingData.TransportList
     TagsList.value = trackingData.tagsList
@@ -114,7 +114,7 @@ const getSharedTableData = () => {
     setTimeout(() => {
       allTable.value.columns = handleColumns(trackingData.allColums, 'all')
 
-      allTable.value.data = trackingData.searchData
+      allTable.value.data = trackingData.searchData || []
       nextTick(() => {
         allTableRef.value && autoWidth(allTable.value, allTableRef.value)
       })
@@ -136,7 +136,7 @@ const getTableData = async (isInit: boolean, isPageChange?: boolean) => {
     sessionStorage.getItem('clickParams') != ''
   ) {
     const data = JSON.parse(sessionStorage.getItem('clickParams') as string) || {}
-    trackingTable.value.data = data.searchData
+    trackingTable.value.data = data.searchData || []
     pageInfo.value.total = Number(data.rc)
     TransportListItem.value = data.TransportList
     TagsList.value = data.tagsList
@@ -174,7 +174,7 @@ const getTableData = async (isInit: boolean, isPageChange?: boolean) => {
       })
       .then((res: any) => {
         if (res.code === 200) {
-          trackingTable.value.data = res.data.searchData
+          trackingTable.value.data = res.data.searchData || []
           pageInfo.value.total = Number(res.data.rc)
           if (res.data.canEdiVgm && trackingTable.value.columns.length > 0) {
             const index = trackingTable.value.columns.findIndex(
@@ -193,7 +193,7 @@ const getTableData = async (isInit: boolean, isPageChange?: boolean) => {
           // 拥有所有字段的表格
           setTimeout(() => {
             allTable.value.columns = handleColumns(res.data.allColums, 'all')
-            allTable.value.data = res.data.searchData
+            allTable.value.data = res.data.searchData || []
             nextTick(() => {
               allTableRef.value && autoWidth(allTable.value, allTableRef.value)
             })
@@ -241,7 +241,7 @@ const searchTableData = (data: any) => {
             }
           })
         } else {
-          trackingTable.value.data = res.data.searchData
+          trackingTable.value.data = res.data.searchData || []
           pageInfo.value.total = Number(res.data.rc)
           tableLoading.value = false
         }
@@ -315,23 +315,22 @@ const handleDownload = () => {
 
 // 导出表格
 const exportTable = (status: number) => {
+  const exportConfig: any = {
+    type: 'xlsx',
+    message: false,
+    filename: `Tracking List_${dayjs().format('YYYYMMDDHH[h]mm[m]ss[s]')}`
+  }
   if (status === 1) {
-    tableRef.value?.exportData({
-      type: 'xlsx',
-      message: false,
-      filename: `Tracking List_${dayjs().format('YYYYMMDDHH[h]mm[m]ss[s]')}`,
-      columnFilterMethod: ({ column }: any) => {
-        // 排除复选框列
-        return column.field
-      }
-    })
-  } else {
-    allTableRef.value?.exportData({
-      type: 'xlsx',
-      message: false,
-      filename: `Tracking List_${dayjs().format('YYYYMMDDHH[h]mm[m]ss[s]')}`
-    })
+    exportConfig.columnFilterMethod = ({ column }: any) => {
+      const index = trackingTable.value.columns.findIndex(
+        (item: any) => item.field === column.field
+      )
+      // 排除复选框列
+      return column.field && index !== -1
+    }
+    exportConfig.columns = trackingTable.value.columns
   }
+  allTableRef.value?.exportData(exportConfig)
 }
 
 const tableLoading = ref(false)
@@ -537,8 +536,6 @@ defineExpose({
     position: absolute;
     top: -100000px;
     width: 20px;
-    opacity: 0;
-    visibility: hidden;
   }
 }
 </style>