Ver código fonte

feat: 保存Booking和Tracking表格的分页记录

zhouyuhao 1 ano atrás
pai
commit
2c7b624ca7

+ 3 - 0
src/router/index.ts

@@ -100,7 +100,10 @@ router.beforeEach(async (to, from, next) => {
   if (to.path === '/login') {
     const userStore = useUserStore()
     await userStore.logout()
+    sessionStorage.removeItem('trackingTablePageInfo')
+    sessionStorage.removeItem('bookingTablePageInfo')
   }
+
   // 未登录白名单
   const whiteList = ['/login', '/public-tracking', '/public-tracking/detail', '/reset-password']
   // 判断是否登录

+ 15 - 2
src/views/Booking/src/components/BookingTable/src/BookingTable.vue

@@ -1,12 +1,12 @@
 <script setup lang="ts">
-import { transportationMode } from '@/components/TransportationMode'
 import { type VxeGridInstance, type VxeGridProps } from 'vxe-table'
 import DownloadDialog from './components/DownloadDialog.vue'
 import { autoWidth } from '@/utils/table'
 import { useRowClickStyle } from '@/hooks/rowClickStyle'
 import dayjs from 'dayjs'
-import { ref, watch, onMounted } from 'vue'
+import { ref, onMounted } from 'vue'
 import { useRouter } from 'vue-router'
+import { transportationMode } from '@/components/TransportationMode'
 
 const router = useRouter()
 const props = defineProps({
@@ -93,6 +93,17 @@ const getTableColumns = async () => {
 }
 
 const pageInfo = ref({ pageNo: 1, pageSize: 50, total: 0 })
+// 从sessionStorage中获取页长以及当前页码
+const assignPageInfo = () => {
+  const oldPageInfo = sessionStorage.getItem('bookingTablePageInfo')
+  if (oldPageInfo) {
+    const data = JSON.parse(oldPageInfo)
+    pageInfo.value.pageNo = data.pageNo
+    pageInfo.value.pageSize = data.pageSize
+  }
+}
+assignPageInfo()
+
 const curTableData = ref([])
 const tempSearch = ref()
 const filterdataobj = ref()
@@ -114,6 +125,8 @@ const assignTableData = (data: any) => {
 }
 // 获取表格数据
 const getTableData = () => {
+  // 保存页长以及当前页码
+  sessionStorage.setItem('bookingTablePageInfo', JSON.stringify(pageInfo.value))
   tableLoadingTable.value = true
   $api
     .getBookingTableData({

+ 2 - 0
src/views/Layout/src/components/Menu/MenuView.vue

@@ -126,6 +126,8 @@ const changeRouter = (path: any) => {
     sessionStorage.removeItem('reportList')
     sessionStorage.removeItem('tagsList')
   }
+  sessionStorage.removeItem('trackingTablePageInfo')
+  sessionStorage.removeItem('bookingTablePageInfo')
   isVisible.value = false
   emits('changeVisible', isVisible.value)
   isVisible.value = false

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

@@ -4,7 +4,7 @@ import { autoWidth } from '@/utils/table'
 import { useRowClickStyle } from '@/hooks/rowClickStyle'
 import dayjs from 'dayjs'
 import { useRouter } from 'vue-router'
-import { ref, watch, onMounted } from 'vue'
+import { ref, onMounted } from 'vue'
 import { transportationMode } from '@/components/TransportationMode'
 
 const router = useRouter()
@@ -96,6 +96,16 @@ const getTableColumns = async () => {
 }
 
 const pageInfo = ref({ pageNo: 1, pageSize: 50, total: 0 })
+// 从sessionStorage中获取页长以及当前页码
+const assignPageInfo = () => {
+  const oldPageInfo = sessionStorage.getItem('trackingTablePageInfo')
+  if (oldPageInfo) {
+    const data = JSON.parse(oldPageInfo)
+    pageInfo.value.pageNo = data.pageNo
+    pageInfo.value.pageSize = data.pageSize
+  }
+}
+assignPageInfo()
 const TagsList = ref()
 const tempSearch = ref('')
 
@@ -146,8 +156,10 @@ const getSharedTableData = () => {
   return false
 }
 
-// 获取表格数据
+// 切换分页时重新获取表格数据
 const getTableData = async (isPageChange?: boolean) => {
+  // 保存页长以及当前页码
+  sessionStorage.setItem('trackingTablePageInfo', JSON.stringify(pageInfo.value))
   tableLoadingTable.value = true
   const rc = isPageChange ? pageInfo.value.total : -1
   if (