Jelajahi Sumber

fix: 修改跳页方法

liangan 2 minggu lalu
induk
melakukan
0930a7734a
4 mengubah file dengan 8 tambahan dan 5 penghapusan
  1. 2 1
      src/interceptors/route.ts
  2. 3 1
      src/pages/login/login.vue
  3. 1 1
      src/utils/http.ts
  4. 2 2
      src/utils/page.ts

+ 2 - 1
src/interceptors/route.ts

@@ -6,6 +6,7 @@
  */
 import { useUserStore } from '@/store'
 import { needLoginPages as _needLoginPages, getLastPage, getNeedLoginPages } from '@/utils'
+import { toPage } from '@/utils/page'
 
 // TODO Check
 const loginRoute = import.meta.env.VITE_LOGIN_URL
@@ -51,7 +52,7 @@ const navigateToInterceptor = {
       return true
     }
     const redirectRoute = `${loginRoute}?redirect=${encodeURIComponent(url)}`
-    uni.navigateTo({ url: redirectRoute })
+    toPage({ url: redirectRoute })
     return false
   },
 }

+ 3 - 1
src/pages/login/login.vue

@@ -82,7 +82,9 @@ async function handleLogin() {
     console.error('Login error:', error)
   }
 }
+const isReLaunch = ref<any>(null)
 onLoad((options) => {
+  isReLaunch.value = options.isReLaunch
   redirectUrl.value = options.redirect || null
 })
 </script>
@@ -94,7 +96,7 @@ onLoad((options) => {
       <!-- 自定义导航栏 -->
       <view :style="{ paddingTop: `${safeAreaInsets?.top}px` }">
         <view class="h-88rpx flex items-center px-24rpx">
-          <wd-icon name="thin-arrow-left" size="32rpx" @click="() => goBack()" />
+          <wd-icon v-if="!isReLaunch" name="thin-arrow-left" size="32rpx" @click="() => goBack()" />
         </view>
       </view>
 

+ 1 - 1
src/utils/http.ts

@@ -23,7 +23,7 @@ export function http<T>(options: CustomRequestOptions) {
           else if (res.data.code === '598') {
             toast.error((res.data as IResData<T>).message)
             const redirect = getLastPageUrl()
-            toPage({ url: '/pages/login/login', params: { redirect } })
+            toPage({ url: '/pages/login/login', params: { redirect }, isReLaunch: true })
           }
           else {
             toast.error((res.data as IResData<T>).message || '请求错误')

+ 2 - 2
src/utils/page.ts

@@ -10,12 +10,12 @@ export function goBack(delta = 1) {
 
 // uniapp 跳转页面 可携带参数
 export function toPage({ url, params, isRedirect = false, isReLaunch = false }: any) {
-  let targetUrl = url
+  let targetUrl = url + (isReLaunch ? '?isReLaunch=1' : '')
   const tabBarPages = ['/pages/index/index', '/pages/income/income', '/pages/mine/mine']
 
   if (params && Object.keys(params).length > 0) {
     const strParams = stringifyQuery(params)
-    targetUrl = `${url}?${strParams}`
+    targetUrl = `${url}?${strParams + (isReLaunch ? '&isReLaunch=1' : '')}`
   }
   console.log(targetUrl)
   if (tabBarPages.includes(url)) {