订单列表无缓存回前一页

This commit is contained in:
chenhao 2026-05-31 07:22:12 +08:00
parent 43864f8fa8
commit 81805a7955
3 changed files with 42 additions and 3 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -178,7 +178,7 @@ const routes = [
path: '/TradeList', path: '/TradeList',
name: 'TradeList', name: 'TradeList',
component: () => import('./views/Trade/TradeList.vue'), component: () => import('./views/Trade/TradeList.vue'),
meta: { title: '订单列表', cache: true } meta: { title: '订单列表' }
}, },
{ {
path: '/Pay', path: '/Pay',

View File

@ -21,7 +21,7 @@
</van-search> </van-search>
<BaseList ref="baseList" url="/v1/client/FOrdersClient" :params="searchParams" :parseData="parseData" <BaseList ref="baseList" url="/v1/client/FOrdersClient" :params="searchParams" :parseData="parseData"
style="padding: 3.33vw;" @refresh="onRefresh"> style="padding: 3.33vw;" @refresh="onRefresh" @load="onLoad">
<template #default="{ item }"> <template #default="{ item }">
<div class="list"> <div class="list">
<div class="order_box"> <div class="order_box">
@ -176,11 +176,50 @@ export default {
} }
}, },
mounted() { beforeRouteLeave(to, from) {
if (to.name === 'TradeDetail' || to.name === 'MerchantTradeDetail') {
sessionStorage.setItem('TradeList_scroll', window.scrollY || 0)
sessionStorage.setItem('TradeList_fromDetail', '1')
}
this._pauseScroll = true
},
mounted() {
const isReturningFromDetail = sessionStorage.getItem('TradeList_fromDetail') === '1'
sessionStorage.removeItem('TradeList_fromDetail')
if (!isReturningFromDetail) {
sessionStorage.setItem('TradeList_scroll', '0')
}
this._pauseScroll = false
window.addEventListener('scroll', this.saveScroll)
this.$refs.baseList?.refresh()
},
onUnmounted() {
window.removeEventListener('scroll', this.saveScroll)
}, },
methods: { methods: {
saveScroll() {
if (this._pauseScroll) return
const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
sessionStorage.setItem('TradeList_scroll', scrollTop)
},
onLoad() {
const scrollTop = sessionStorage.getItem('TradeList_scroll')
if (scrollTop && scrollTop !== '0' && !this._scrollRestored) {
this._scrollRestored = true
window.removeEventListener('scroll', this.saveScroll)
this.$nextTick(() => {
window.scrollTo(0, Number(scrollTop))
})
setTimeout(() => {
window.addEventListener('scroll', this.saveScroll)
}, 100)
}
},
// //
async loadFilterOptions() { async loadFilterOptions() {
try { try {