App.vue 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <script>
  2. import { useBleStore } from '@/stores/ble'
  3. export default {
  4. globalData: {
  5. bleManager: null
  6. },
  7. onLaunch: function() {
  8. console.log('App Launch')
  9. this.checkLoginState()
  10. // 在 App.vue 上下文中绑定 BLE 系统监听器
  11. // 确保回调关联的 taskCenter 永不销毁,避免页面切换后报错
  12. const bleStore = useBleStore()
  13. bleStore.bindGlobalListeners()
  14. },
  15. onShow: function() {
  16. console.log('App Show')
  17. },
  18. onHide: function() {
  19. console.log('App Hide')
  20. },
  21. methods: {
  22. /**
  23. * 检查登录状态
  24. * 如果没有 token 则跳转到登录页
  25. */
  26. checkLoginState() {
  27. const token = uni.getStorageSync('user_token')
  28. if (!token) {
  29. // 未登录,跳转登录页
  30. uni.reLaunch({
  31. url: '/pages/login/login'
  32. })
  33. }
  34. // 已登录且 token 存在,保持在首页
  35. // token 过期的情况由 HTTP 拦截器处理(401/403 自动跳转登录页)
  36. }
  37. }
  38. }
  39. </script>
  40. <style>
  41. /* .uni-tabbar-border {
  42. display: none !important;
  43. } */
  44. /*每个页面公共css */
  45. </style>