From f0284d1b0697f252b0b6b337637310f1c9c0f01c Mon Sep 17 00:00:00 2001 From: linxi <957440651@qq.com> Date: Tue, 18 Aug 2026 13:31:09 +0800 Subject: [PATCH] =?UTF-8?q?Fix=EF=BC=9A5693=20=E3=80=90=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E3=80=91=E3=80=90=E6=88=91=E7=9A=84?= =?UTF-8?q?=E8=AE=A2=E5=8D=95-=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E3=80=91=E5=88=A0=E9=99=A4=E5=B7=B2=E5=AE=8C=E6=88=90=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=90=8E=EF=BC=8C=E9=A1=B5=E9=9D=A2=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E8=87=B3=E2=80=9C=E8=B4=AD=E7=89=A9=E2=80=9DTab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/order/MyOrder/index.vue | 29 +++++++++++++++++-------- pagesOrder/order/OrderDetails/index.vue | 15 +++++++------ 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/pages/order/MyOrder/index.vue b/pages/order/MyOrder/index.vue index b06992d..28f8952 100644 --- a/pages/order/MyOrder/index.vue +++ b/pages/order/MyOrder/index.vue @@ -864,14 +864,7 @@ export default { } else if (needRefreshOrderList) { uni.removeStorageSync('needRefreshMyOrderList') this.getOrderData() - if (this.savedScrollTop > 0) { - this.$nextTick(() => { - uni.pageScrollTo({ - scrollTop: this.savedScrollTop, - duration: 0 - }) - }) - } + this.refreshOrderListKeepPosition() } }, onLoad() { @@ -1866,7 +1859,7 @@ export default { keyword, orderType } = this - getOrderList({ + return getOrderList({ page, limit, type, @@ -1889,6 +1882,24 @@ export default { uni.hideLoading() }); }, + // 保持当前主/子tab及滚动位置刷新列表(从订单详情页返回后同步删除等状态变更) + refreshOrderListKeepPosition() { + this.orderListRequestId += 1 + this.page = 1 + this.loaded = false + this.loading = false + const restoreScrollTop = this.savedScrollTop + this.getOrderListReq().then(() => { + if (restoreScrollTop > 0) { + this.$nextTick(() => { + uni.pageScrollTo({ + scrollTop: restoreScrollTop, + duration: 0 + }) + }) + } + }) + }, tapShowMore(index) { const order = this.getOrderByIndex(index) if (!order) { diff --git a/pagesOrder/order/OrderDetails/index.vue b/pagesOrder/order/OrderDetails/index.vue index 4b609b7..ab19231 100644 --- a/pagesOrder/order/OrderDetails/index.vue +++ b/pagesOrder/order/OrderDetails/index.vue @@ -1251,16 +1251,17 @@ export default { }); }, goBack() { - if (this.name === "MyOrder") { + // 从订单列表进入时直接返回原页面,保留列表页主/子tab及滚动位置 + const pages = getCurrentPages() + const prevPage = pages && pages[pages.length - 2] + const prevRoute = prevPage && prevPage.route + if (prevRoute && prevRoute.indexOf('order/MyOrder') > -1) { this.$yrouter.back(); return; - } else { - console.log(this); - this.$yrouter.replace({ - path: "/pages/order/MyOrder/index" - }); - return; } + this.$yrouter.replace({ + path: "/pages/order/MyOrder/index" + }); }, cancelOrder() { cancelOrderHandle(this.orderInfo.orderId)