Quellcode durchsuchen

修复地址切换问题

张田田 vor 3 Monaten
Ursprung
Commit
b5a1c48a4c
1 geänderte Dateien mit 28 neuen und 24 gelöschten Zeilen
  1. 28 24
      miniprogram/module/article/pages/manage-address/manage-address.ts

+ 28 - 24
miniprogram/module/article/pages/manage-address/manage-address.ts

@@ -40,28 +40,36 @@ Page({
       liaison: address.liaison,
       phone: address.phone,
     };
-   await orderPayAddressMethod(id, data);
+    await orderPayAddressMethod(id, data);
   },
   // 选择地址
   async selectAddress(e: any) {
     const item = e.currentTarget.dataset.item;
     const type = wx.getStorageSync("type");
     const orderId = wx.getStorageSync("orderId");
-    console.log(type, "页面切换type", item);
     const pages = getCurrentPages();
-    console.log(pages, "pages");
+
+
+    const findTargetPageIndex = (targetRoute: string) => {
+      for (let i = pages.length - 1; i >= 0; i--) {
+        if (pages[i].route === targetRoute) {
+          return pages.length - 1 - i; // 需要返回的层级数
+        }
+      }
+      return -1;
+    };
+
     if (type === "orderDetail") {
-      console.log(orderId, "订单详情");
       // 订单详情 切换地址
-      const orderPage = pages.find(
-        (page:any) =>
-          // page.route === "module/article/pages/order-detail/order-detail"
-          page.route === "module/order/pages/order-detail/order-detail"
-      );
-      console.log(orderPage, "orderPage===");
       try {
         await this.updataOrderAddress(orderId, item);
-        if (orderPage) {
+        const targetRoute = "module/order/pages/order-detail/order-detail";
+        const delta = findTargetPageIndex(targetRoute);
+        if (delta > 0) {
+          // 返回到目标页面
+          wx.navigateBack({ delta });
+        } else {
+          // 如果找不到目标页面,返回到上一页
           wx.navigateBack();
         }
       } catch (error: any) {
@@ -69,36 +77,32 @@ Page({
       }
     } else if (type === "orderList") {
       // 订单列表 切换地址
-      const findPage = pages.find(
-        (page) => page.route === "module/article/pages/order-list/order-list"
-      );
       try {
         await this.updataOrderAddress(orderId, item);
-        if (findPage) {
-          wx.redirectTo({
-            url: "/" + findPage.route + "?tab=pending",
-          });
+        const targetRoute = "module/article/pages/order-list/order-list";
+        const delta = findTargetPageIndex(targetRoute);
+        if (delta > 0) {
+          wx.navigateBack({ delta });
+        } else {
+          wx.navigateBack();
         }
       } catch (error: any) {
         getTickleContext.call(this).showWarnMessage(error.errMsg);
       }
-    } else if(type === "confirmeOrder") {
-      console.log(item, "item======用户选择的地址");
+    } else if (type === "confirmeOrder") {
       wx.setStorageSync('selectedAddress', item);
       // 确认订单页面 切换地址
       const confirmeOrderPage = pages.find(
-        (page:any) =>
+        (page: any) =>
           page.route === "module/order/pages/confirme-order/confirme-order"
       );
-      console.log(confirmeOrderPage, "confirmeOrderPage======确认订单页面");
       if (confirmeOrderPage) {
         wx.redirectTo({
           url: "/" + confirmeOrderPage.route + "?isDefault=1",
         });
       }
-    }else{
+    } else {
       // 其他页面 切换地址
-    
     }
   },
   // 搜索