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

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;