You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
3.9 KiB
169 lines
3.9 KiB
import Cookies from 'js-cookie'
|
|
import liff from "@line/liff"
|
|
|
|
import { createRouter, createWebHistory } from "vue-router";
|
|
|
|
import store from "@/store";
|
|
|
|
import NProgress from "nprogress";
|
|
import "nprogress/nprogress.css";
|
|
|
|
import { Toast } from 'vant';
|
|
|
|
import Home from "../views/Home/index.vue";
|
|
import Card from "../views/Card/Index.vue";
|
|
import Auth from "../views/Auth/Index.vue";
|
|
|
|
const routes = [
|
|
{
|
|
path: "/",
|
|
name: "Home",
|
|
component: Home,
|
|
},
|
|
{
|
|
path: "/linelogin",
|
|
name: "LineLogin",
|
|
component: ()=> import("../views/Login/LineLogin.vue")
|
|
},
|
|
{
|
|
path: "/send",
|
|
name: "Send",
|
|
component: () =>
|
|
import(/* webpackChunkName: "send" */ "../views/Send/index.vue"),
|
|
},
|
|
{
|
|
path: "/shop",
|
|
name: "Shop",
|
|
component: () =>
|
|
import(/* webpackChunkName: "shop" */ "../views/Shop/index.vue"),
|
|
},
|
|
{
|
|
path: "/shop/inputsn",
|
|
name: "InputSN",
|
|
component: () =>
|
|
import(/* webpackChunkName: "user" */ "../views/Shop/Inputsn.vue"),
|
|
},
|
|
{
|
|
path: "/member",
|
|
name: "Member",
|
|
component: () =>
|
|
import(/* webpackChunkName: "user" */ "../views/Member/index.vue"),
|
|
},
|
|
{
|
|
path: "/connections",
|
|
name: "Connections",
|
|
component: () =>
|
|
import(/* webpackChunkName: "user" */ "../views/Connections/index.vue"),
|
|
},
|
|
{
|
|
path: "/card",
|
|
name: "Card",
|
|
component: Card,
|
|
children: [
|
|
{
|
|
path: "/card/edit",
|
|
name: "CardEdit",
|
|
component: () =>
|
|
import(/* webpackChunkName: "card" */ "../views/Card/Edit"),
|
|
meta: { keepAlive: true },
|
|
},
|
|
{
|
|
path: "/card/notice",
|
|
name: "CardNotice",
|
|
component: () =>
|
|
import(/* webpackChunkName: "card" */ "../views/Card/Notice"),
|
|
},
|
|
{
|
|
path: "/card/video",
|
|
name: "CardVideo",
|
|
component: () =>
|
|
import(/* webpackChunkName: "card" */ "../views/Card/Video"),
|
|
meta: { keepAlive: true },
|
|
},
|
|
{
|
|
path: "/card/preview",
|
|
name: "CardPreview",
|
|
component: () =>
|
|
import(/* webpackChunkName: "card" */ "@/components/Preview"),
|
|
meta: { keepAlive: true },
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: "/auth",
|
|
name: "Auth",
|
|
component: Auth,
|
|
children: [
|
|
{
|
|
path: "/auth/auth",
|
|
name: "Auth",
|
|
component: () => import("../views/Auth/Auth.vue")
|
|
},
|
|
{
|
|
path: "/auth/getauth",
|
|
name: "GetAuth",
|
|
component: () => import("../views/Auth/GetAuth.vue"),
|
|
meta: { keepAlive: true },
|
|
},
|
|
{
|
|
path: "/auth/edit",
|
|
name: "AuthEdit",
|
|
component: () => import("../views/Auth/Edit.vue"),
|
|
meta: { keepAlive: true },
|
|
},
|
|
{
|
|
path: "/auth/preview",
|
|
name: "AuthPreview",
|
|
component: () =>
|
|
import(/* webpackChunkName: "card" */ "@/components/Preview"),
|
|
meta: { keepAlive: true },
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: "/register",
|
|
name: "Register",
|
|
component: () =>
|
|
import(/* webpackChunkName: "auth" */ "../views/Register/index.vue"),
|
|
// component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
|
|
},
|
|
{
|
|
path: "/login",
|
|
name: "Login",
|
|
component: () =>
|
|
import(/* webpackChunkName: "auth" */ "../views/Login/index.vue"),
|
|
},
|
|
{
|
|
path: "/test",
|
|
name: "Test",
|
|
component: () => import(/* webpackChunkName: "auth" */ "../views/Test.vue"),
|
|
},
|
|
];
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(process.env.BASE_URL),
|
|
routes,
|
|
});
|
|
|
|
router.beforeEach((to, from, next) => {
|
|
NProgress.start();
|
|
if ( to.path !== "/login" && to.path !== "/register" && to.path !== "/linelogin/" && to.path !== "/linelogin") {
|
|
if (!Cookies.get("token")) {
|
|
Toast('請重新登入')
|
|
next("/login")
|
|
}
|
|
|
|
// if(!store.state.user.userInfo){
|
|
// await store.dispatch('user/getUserInfo')
|
|
// }
|
|
}
|
|
|
|
next();
|
|
});
|
|
|
|
router.afterEach(() => {
|
|
NProgress.done();
|
|
});
|
|
|
|
export default router;
|