guard.js 811 B

12345678910111213141516171819202122
  1. /**
  2. * 登录守卫工具(三端通用:train-frontend 小程序)
  3. *
  4. * 需求:登录前可浏览课程信息,但班级/报名/投票/打卡/支付等实际操作必须登录。
  5. * 未登录触发 requireLogin() 时:toast 提示 + 跳回首页 tab + 触发登录浮层(showLoginSheet)。
  6. */
  7. export function requireLogin() {
  8. if (getApp() && getApp().$store && getApp().$store.getters.isLoggedIn) return true
  9. uni.showToast({ title: '请先登录', icon: 'none' })
  10. setTimeout(function() {
  11. uni.switchTab({ url: '/pages/index/index' })
  12. }, 600)
  13. setTimeout(function() {
  14. uni.$emit('showLoginSheet', {})
  15. }, 800)
  16. return false
  17. }
  18. /** 页面级守卫:在 onShow/onLoad 首行调用,未登录返回 false 阻止后续加载 */
  19. export function guardPage() {
  20. return requireLogin()
  21. }