| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- import Vue from "vue";
- import VueRouter from "vue-router";
- import layout from "@/layout/index.vue";
- import { checkLoginStatus, initGuidInfo, doWecomLogin, getQyCode } from '@/utils/wecomLogin.ts';
- Vue.use(VueRouter);
- const router = new VueRouter({
- mode: process.env.NODE_ENV !== "development" ? "history" : "history",
- base: process.env.BASE_URL,
- scrollBehavior(to, from, savedPosition) {
- if (savedPosition) {
- return savedPosition;
- } else {
- return { x: 0, y: 0 };
- }
- },
- routes: [
- {
- path: "/",
- component: layout,
- redirect: "/AIDesign",
- children: [
- {
- path: "/AIDesign",
- component: () => import("../views/AIDesign/index.vue"),
- meta: { requiresAuth: true } // 标记需要登录的页面
- },
- {
- path: "/login",
- component: () => import("../views/login/index.vue"),
- meta: { title: "登录" }
- },
- {
- path: "/error/:code",
- component: () => import("../views/errorPage/index.vue")
- },
- {
- path: "/error",
- component: () => import("../views/errorPage/weixinerr.vue")
- },
- //设计页
- {
- path: "/AIDesign/design",
- component: () => import("../views/AIDesign/design.vue"),
- meta: { requiresAuth: true } // 标记需要登录的页面
- },
- //结果页
- {
- path: "/AIDesign/result",
- component: () => import("../views/AIDesign/result.vue"),
- meta: { requiresAuth: true } // 标记需要登录的页面
- },
- //历史页
- {
- path: "/AIDesign/history",
- component: () => import("../views/AIDesign/history.vue"),
- meta: { requiresAuth: true } // 标记需要登录的页面
- },
- //内墙-设计页
- {
- path: "/AIDesign/insideDesign",
- component: () => import("../views/AIDesign/insideDesign.vue"),
- meta: { requiresAuth: true } // 标记需要登录的页面
- },
- //一键诊断-生成页
- {
- path: "/AIDesign/diagnose",
- component: () => import("../views/AIDesign/diagnose.vue"),
- meta: { requiresAuth: true } // 标记需要登录的页面
- },
- //一键诊断-历史页
- {
- path: "/AIDesign/diagnoseHistory",
- component: () => import("../views/AIDesign/diagnoseHistory.vue"),
- meta: { requiresAuth: true } // 标记需要登录的页面
- },
- //一键诊断-结果页
- {
- path: "/AIDesign/diagnoseResult",
- component: () => import("../views/AIDesign/diagnoseResult.vue"),
- meta: { requiresAuth: true } // 标记需要登录的页面
- }
- ]
- },
- ]
- });
- // 全局前置守卫:只对需要登录的页面进行登录校验
- router.beforeEach((to, from, next) => {
- // console.log("-------页面链接=", window.location.href)
- if (!to.meta || (to.meta && !to.meta.requiresAuth)) {
- next();
- return;
- }
- try {
- initGuidInfo();
- const isLoggedIn = checkLoginStatus();
- if (isLoggedIn) {
- next();
- return;
- }
- const code = to.query.code as string;
- if (code) {
- doWecomLogin(code)
- .then(() => {
- next();
- console.log(`登录成功,即将进入 ${to.path}`);
- })
- .catch(() => {
- next({ path: "/error" });
- });
- } else {
- console.log(`访问 ${to.path} 需登录,正在跳转到授权页面`);
- getQyCode();
- // 本地登录-需注释
- // doWecomLogin('')
- // .then(() => {
- // console.log(`模拟登录成功,即将进入 ${to.path}`);
- // })
- }
- } catch (error) {
- console.error("登录校验过程异常:", error);
- next({ path: "/error" });
- }
- });
- export default router;
|