Files
ezbookkeeping/src/router/mobile.js
T
2020-10-31 20:37:50 +08:00

88 lines
1.9 KiB
JavaScript

import userState from "../lib/userstate.js";
import MainPage from '../views/mobile/Main.vue';
import MainPageHomeTab from '../views/mobile/main/Home.vue';
import LoginPage from '../views/mobile/Login.vue';
import SignUpPage from '../views/mobile/Signup.vue';
import SettingsPage from '../views/mobile/Settings.vue';
import AboutPage from "../views/mobile/About.vue";
import UserProfilePage from "../views/mobile/users/UserProfile.vue";
import SessionListPage from "../views/mobile/users/SessionList.vue";
function checkLogin(to, from, resolve, reject) {
const router = this;
if (userState.isUserLogined()) {
resolve();
return;
}
reject();
router.navigate('/login');
}
function checkNotLogin(to, from, resolve, reject) {
const router = this;
if (!userState.isUserLogined()) {
resolve();
return;
}
reject();
router.navigate('/');
}
const routes = [
{
path: '/',
component: MainPage,
tabs: [
{
path: '/',
id: 'main-tab-home',
component: MainPageHomeTab,
beforeEnter: checkLogin
}
],
beforeEnter: checkLogin
},
{
path: '/login',
component: LoginPage,
beforeEnter: checkNotLogin
},
{
path: '/signup',
component: SignUpPage,
beforeEnter: checkNotLogin
},
{
path: '/settings',
component: SettingsPage,
beforeEnter: checkLogin
},
{
path: '/about',
component: AboutPage,
beforeEnter: checkLogin
},
{
path: '/user/profile',
component: UserProfilePage,
beforeEnter: checkLogin
},
{
path: '/user/sessions',
component: SessionListPage,
beforeEnter: checkLogin
},
{
path: '(.*)',
redirect: '/'
}
];
export default routes;