点击退出登陆后的显示页面 #13

Closed
opened 2026-04-08 19:28:23 +00:00 by hera · 7 comments
Owner

在我的账号页面(或者其他必须要登陆才能看到的页面),如果点击了退出登陆,应该跳回到配方查询页面

在我的账号页面(或者其他必须要登陆才能看到的页面),如果点击了退出登陆,应该跳回到配方查询页面
Collaborator

已修复

问题原因: UserMenu.vue 里的 handleLogout() 用的是 window.location.reload(),会在当前页原地刷新——如果你在 /mydiary/manage 这类需要登录的页面退出,刷新后还停在原页面。

修改内容:window.location.reload() 换成 router.push('/'),退出登录后直接导航到配方查询页面。

- window.location.reload()
+ router.push('/')

router 在这个组件里本来就有(goMyDiary 里已经在用),所以无需额外 import,改动最小。

已修复 ✅ **问题原因:** `UserMenu.vue` 里的 `handleLogout()` 用的是 `window.location.reload()`,会在当前页原地刷新——如果你在 `/mydiary`、`/manage` 这类需要登录的页面退出,刷新后还停在原页面。 **修改内容:** 把 `window.location.reload()` 换成 `router.push('/')`,退出登录后直接导航到配方查询页面。 ```diff - window.location.reload() + router.push('/') ``` router 在这个组件里本来就有(`goMyDiary` 里已经在用),所以无需额外 import,改动最小。
Author
Owner

合并到pr5了嘛?

合并到pr5了嘛?
Collaborator

已经在 PR#5 里了

commit dddd677 (fix: 退出登录后跳转到配方查询页面) 就在 feature/qr-upload-hint 分支上,也就是 PR#5 对应的分支。合并 PR#5 的时候这个修复也会一起带进去。

已经在 PR#5 里了 ✅ commit `dddd677` (`fix: 退出登录后跳转到配方查询页面`) 就在 `feature/qr-upload-hint` 分支上,也就是 PR#5 对应的分支。合并 PR#5 的时候这个修复也会一起带进去。
Author
Owner

选择退出登陆以后,如果是在商业核算页面和我的账号页面,或者是其他必须要登陆才能显示的页面时,就会跳到配方查询页面

选择退出登陆以后,如果是在商业核算页面和我的账号页面,或者是其他必须要登陆才能显示的页面时,就会跳到配方查询页面
Collaborator

已修复 → PR #14


根本问题handleLogout()window.location.reload() 不管在哪个页面都原地刷新,退出后还停在需要登录的页面。

修改了两个文件:

router/index.js — 给需要登录的路由加上 meta: { requiresAuth: true }

  • /projects(商业核算)
  • /mydiary(我的)
  • /manage/inventory/audit/bugs/users

UserMenu.vuehandleLogout() 改为按当前路由判断:

if (router.currentRoute.value.meta.requiresAuth) {
  router.push('/')      // 受保护页面 → 跳回配方查询页
} else {
  window.location.reload()  // 公开页面 → 原地刷新
}

这样在商业核算、我的账号等页面退出登录,会直接跳到配方查询页;在配方查询这类公开页面退出则原地刷新,行为不变。

已修复 ✅ → PR #14 --- **根本问题**:`handleLogout()` 里 `window.location.reload()` 不管在哪个页面都原地刷新,退出后还停在需要登录的页面。 **修改了两个文件:** **`router/index.js`** — 给需要登录的路由加上 `meta: { requiresAuth: true }`: - `/projects`(商业核算) - `/mydiary`(我的) - `/manage`、`/inventory`、`/audit`、`/bugs`、`/users` **`UserMenu.vue`** — `handleLogout()` 改为按当前路由判断: ```js if (router.currentRoute.value.meta.requiresAuth) { router.push('/') // 受保护页面 → 跳回配方查询页 } else { window.location.reload() // 公开页面 → 原地刷新 } ``` 这样在商业核算、我的账号等页面退出登录,会直接跳到配方查询页;在配方查询这类公开页面退出则原地刷新,行为不变。
Contributor

rebase一下

rebase一下
Collaborator

已完成 rebase

PR #14 的分支 fix/logout-redirect-protected-pages 已经 rebase 到最新的 main86db3e1)上并 force push。

冲突发生在 UserMenu.vuehandleLogout() — main 上已有一个简单的 router.push('/'),rebase 时保留了 PR 里更完整的版本(按 requiresAuth 判断):

if (router.currentRoute.value.meta.requiresAuth) {
  router.push('/')      // 受保护页面 → 跳回首页
} else {
  window.location.reload()  // 公开页面 → 原地刷新
}
已完成 rebase ✅ PR #14 的分支 `fix/logout-redirect-protected-pages` 已经 rebase 到最新的 `main`(`86db3e1`)上并 force push。 冲突发生在 `UserMenu.vue` 的 `handleLogout()` — main 上已有一个简单的 `router.push('/')`,rebase 时保留了 PR 里更完整的版本(按 `requiresAuth` 判断): ```js if (router.currentRoute.value.meta.requiresAuth) { router.push('/') // 受保护页面 → 跳回首页 } else { window.location.reload() // 公开页面 → 原地刷新 } ```
fam closed this issue 2026-04-09 18:56:42 +00:00
Sign in to join this conversation.
No Label
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: hera/oil-formula-calculator#13