|
@@ -1,5 +1,7 @@
|
|
|
import { createRouter, createWebHistory } from '@ionic/vue-router'
|
|
import { createRouter, createWebHistory } from '@ionic/vue-router'
|
|
|
import TabsPage from '../views/TabsPage.vue'
|
|
import TabsPage from '../views/TabsPage.vue'
|
|
|
|
|
+import { Page } from './Page'
|
|
|
|
|
+import { useUserStore } from '../stores/user'
|
|
|
|
|
|
|
|
const router = createRouter({
|
|
const router = createRouter({
|
|
|
history: createWebHistory(import.meta.env.BASE_URL),
|
|
history: createWebHistory(import.meta.env.BASE_URL),
|
|
@@ -18,20 +20,45 @@ const router = createRouter({
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
path: 'home',
|
|
path: 'home',
|
|
|
- component: () => import('@/views/Home.vue')
|
|
|
|
|
|
|
+ component: () => import('@/views/Home.vue'),
|
|
|
|
|
+ meta: {
|
|
|
|
|
+ pageType: Page.Every
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
path: 'mine',
|
|
path: 'mine',
|
|
|
- component: () => import('@/views/Mine.vue')
|
|
|
|
|
|
|
+ component: () => import('@/views/Mine.vue'),
|
|
|
|
|
+ meta: {
|
|
|
|
|
+ pageType: Page.Every
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
]
|
|
]
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
path: '/login',
|
|
path: '/login',
|
|
|
name: 'login',
|
|
name: 'login',
|
|
|
- component: () => import('@/views/LoginPage.vue')
|
|
|
|
|
|
|
+ component: () => import('@/views/LoginPage.vue'),
|
|
|
|
|
+ meta: {
|
|
|
|
|
+ pageType: Page.Login
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
]
|
|
]
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
+router.beforeEach((to, from, next) => {
|
|
|
|
|
+ const uerStore = useUserStore()
|
|
|
|
|
+ if (!uerStore.user && to.meta.pageType !== Page.Login) {
|
|
|
|
|
+ uerStore
|
|
|
|
|
+ .get()
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ next()
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {
|
|
|
|
|
+ next()
|
|
|
|
|
+ })
|
|
|
|
|
+ } else {
|
|
|
|
|
+ next()
|
|
|
|
|
+ }
|
|
|
|
|
+})
|
|
|
|
|
+
|
|
|
export default router
|
|
export default router
|