import { createRouter, createWebHistory, RouteRecordRaw, createWebHashHistory, } from "vue-router"; import { defineAsyncComponent } from "vue"; import store from "@/store"; import { useStore } from "vuex"; import { Https } from "@/tool/https"; import { getCookie, setCookie } from "@/tool/cookie"; const _import = (path: string) => () => import(`../views/${path}.vue`); const _import_component = (path: string) => () => import(`../component/${path}.vue`); const _import_custom = (path: string) => () => import(`../views/${path}.vue`); // defineAsyncComponent(import(`../views/${path}`)) const routes: Array = [ { path: "/", // redirect重定向 meta: { enter: "all" }, redirect: "/Square", // redirect: "/upgrade" }, { path: "/login", name: "login", meta: { enter: "all" }, component: _import("Login"), // component: _import('LoginPage') }, { path: "/schoolLogin", name: "schoolLogin", meta: { enter: "all" }, component: _import("LoginPageSchool"), }, { path: "/enterpriseLogin", name: "enterpriseLogin", meta: { enter: "all" }, component: _import("LoginPageEnterprise"), }, { path: "/test", name: "test1", meta: { enter: "all" }, component: _import("test"), }, { path: "/register", name: "register", meta: { enter: "all" }, component: _import("Register"), }, { path: "/upgrade", name: "upgrade", meta: { enter: "all" }, component: _import("Upgrade"), }, { path: "/home", name: "home", meta: { enter: "all" }, component: _import("HomeMain"), children: [ // { // path: "", // name:'HomeChil', // redirect: "/home/homePage" // }, { path: "tools", name: "tools", meta: { enter: "all" }, component: _import_custom("HomeView/Tools"), }, { path: "homePage", name: "homePage", meta: { enter: "all" }, component: _import_custom("HomeView/HomeView"), }, { path: "library", name: "library", meta: { enter: "all" }, component: _import_custom("HomeView/library"), }, { path: "history", name: "history", meta: { enter: "all" }, component: _import_custom("HomeView/history"), }, { path: "works", name: "works", meta: { enter: "all" }, component: _import_custom("HomeView/Works"), }, { path: "events", name: "events", meta: { enter: "all" }, component: _import_custom("HomeView/Events"), }, { path: "cloud", name: "cloud", meta: { enter: "all" }, component: _import_custom("HomeView/cloudGeneration"), }, { path: "eventsDetail", name: "eventsDetail", meta: { enter: "all" }, component: _import_component("Events/eventsDetail"), }, { path: "account", name: "account", meta: { enter: "all" }, component: _import_component("Account/account"), children: [ { path: "", name: "accountChil", meta: { enter: "all" }, redirect: "/home/account/frontPage", }, { path: "frontPage", name: "frontPage", meta: { enter: "all" }, component: _import_component("Account/frontPage"), }, { path: "accountMessage", name: "accountMessage", meta: { enter: "all" }, component: _import_component("Account/accountMessage"), }, { path: "accountFollowFans", name: "accountFollowFans", meta: { enter: "all" }, component: _import_component("Account/accountFollowFans"), }, ], }, { path: "otherUsers", name: "otherUsers", meta: { enter: "all" }, component: _import_component("Account/otherUsers"), }, ], }, { path: "/Square", name: "HomeRecommend", meta: { enter: "all" }, component: _import("HomeRecommend"), }, { path: "/administrator", name: "administrator", meta: { enter: 3 }, component: _import("Administrator"), children: [ { path: "allUser", name: "allUser", meta: { enter: 3 }, component: _import_component("Administrator/allUser"), }, { path: "coupons", name: "coupons", meta: { enter: 3 }, component: _import_component("Administrator/coupons/index"), }, { path: "testClickData", name: "testClickData", meta: { enter: 3 }, component: _import_component("Administrator/TestClickData"), }, { path: "trialApproval", name: "trialApproval", meta: { enter: 3 }, component: _import_component("Administrator/trialApproval"), }, { path: "questionnaire", name: "questionnaire", meta: { enter: 3 }, component: _import_component("Administrator/questionnaire"), }, { path: "recentActiveChart", name: "recentActiveChart", meta: { enter: 3 }, component: _import_component("Administrator/recentActiveChart"), }, { path: "recentActiveUser", name: "recentActiveUser", meta: { enter: 3 }, component: _import_component("Administrator/recentActiveUser"), }, { path: "recentActiveUserChart", name: "recentActiveUserChart", meta: { enter: 3 }, component: _import_component("Administrator/recentActiveUserChart"), }, { path: "recentNewUser", name: "recentNewUser", meta: { enter: 3 }, component: _import_component("Administrator/recentNewUser"), }, { path: "recentNewUserChart", name: "recentNewUserChart", meta: { enter: 3 }, component: _import_component("Administrator/recentNewUserChart"), }, { path: "trialUserCountry", name: "trialUserCountry", meta: { enter: 3 }, component: _import_component("Administrator/trialUserCountry"), }, { path: "trialUserConversionRateChart", name: "trialUserConversionRateChart", meta: { enter: 3 }, component: _import_component( "Administrator/trialUserConversionRateChart" ), }, { path: "trialAllUser", name: "trialAllUser", meta: { enter: 3 }, component: _import_component("Administrator/trialAllUser"), }, { path: "affiliateAudit", name: "affiliateAudit", meta: { enter: 3 }, component: _import_component( "Administrator/affiliate/affiliateAudit" ), }, { path: "TransactionTable", name: "TransactionTable", meta: { enter: 3 }, component: _import_component( "Administrator/Transaction/TransactionTable" ), }, { path: "organization", name: "organization", meta: { enter: 3 }, component: _import_component( "Administrator/organization/organization" ), }, //企业版教育管理员页面 { path: "allUserSE", name: "allUserSE", meta: { enter: 3 }, component: _import_component("Administrator/SE/allUser/index"), }, { path: "testClickDataSE", name: "testClickDataSE", meta: { enter: 3 }, component: _import_component( "Administrator/SE/designDetailList/index" ), }, { path: "generateFrequencySE", name: "generateFrequencySE", meta: { enter: 3 }, component: _import_component( "Administrator/SE/getGenerateFrequency/index" ), }, ], }, { path: "/paySucceed", name: "paySucceed", meta: { enter: "all", }, component: _import("paySucceed"), }, { path: "/affiliate", name: "affiliate", meta: { enter: 2, }, component: _import("affiliate/affiliatePage"), children: [ { path: "/affiliate", name: "affiliateHome", meta: { enter: 2, }, component: _import_component("affiliate/home"), }, ], }, { path: "/affiliateRegister", name: "affiliateRegister", meta: { enter: "all", }, component: _import("affiliate/affiliateRegister"), }, { path: "/setIdentification", name: "setIdentification", meta: { enter: "all", }, component: _import("setIdentification"), }, { path: "/feedbackSurvey", name: "feedbackSurvey", meta: { enter: "all", }, component: _import("feedbackSurvey"), }, { path: "/feedbackSurveyCN", name: "feedbackSurveyCN", meta: { enter: "all", }, component: _import("feedbackSurveyCN"), }, { path: "/404", name: "404", meta: { enter: "all", }, component: _import("404"), }, { path: "/:catchAll(.*)", redirect: "/404", }, ]; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), // history: createWebHashHistory(), routes, }); // 刷新保存数据- let state: any = store.state; window.addEventListener("beforeunload", (e) => { localStorage.setItem( "vuex_setUserDetail", JSON.stringify(state.UserHabit.userDetail) ); }); var vuex_setUserDetail: any = localStorage.getItem("vuex_setUserDetail"); if (vuex_setUserDetail) { if (JSON.parse(vuex_setUserDetail).email != "-------------") { store.commit("setUserDetail", JSON.parse(vuex_setUserDetail)); } // localStorage.removeItem("vuex_setUserDetail"); } let setMurmur = (id: any) => { let murmurStr: any = localStorage.getItem("murmurStr"); // let isSxis = false let data = { browserIdentifiers: murmurStr, id: id, }; if (data.id) { Https.axiosPost(Https.httpUrls.noLoginRequired, data) .then((rv) => { let isTest = rv.systemUser == 3 ? true : false; let isBeginner = rv.isBeginner == 1 ? true : false; setCookie("isMurmur", true); setCookie("token", rv.token); setCookie("isTest", isTest); setCookie("isBeginner", isBeginner); setCookie("isBeginnerNum", 0); //从第一步开始,机器人开始的话就是从第二部开始 setCookie("userInfo", JSON.stringify(rv)); let userid = { ueserId: rv.userId, systemUser: rv.systemUser, }; store.commit("upUserDetail", userid); sessionStorage.setItem("isTimeOne", JSON.stringify(false)); //是否需要公告 提示 弹窗 let randomNum: any = Math.floor(Math.random() * 9000000000000000) + 1000000000000000; sessionStorage.setItem("sessionId", randomNum); router.push("/home"); }) .catch((res) => { // router.push('/Square') }); } }; const setViewsIncrease = (value: any) => { sessionStorage.setItem("affiliateRef", value); let data = { id: value, }; Https.axiosGet(Https.httpUrls.viewsIncrease, { params: data }).then( (rv) => {} ); }; let upgradeList = ["/feedbackSurvey", "/feedbackSurveyCN", "emailVerify"]; //指定页面系统维护也可以访问 router.beforeEach((to: any, from, next) => { // 系统维护 // const toName = to.name === 'upgrade'; // if(upgradeList.indexOf(to.path) > -1){ // next(); // }else{ // if (toName) { // next(); // } else { // next({ name: 'upgrade' }); // } // } // return // 机房用户 let herfData = window.location.search.substring(1); if (herfData.split("=")[0] == "noLogin" && to.name != "homePage") { setMurmur(herfData.split("=")[1]); return; } let affiliateRef = sessionStorage.getItem("affiliateRef"); if (to.query.order) sessionStorage.setItem("orderId", to.query.order); //记录是否点击跳转订单链接 if (to.query.ref && affiliateRef != to.query.ref) setViewsIncrease(to.query.ref); if (to.meta.enter == "all") { next(); } else if ( state.UserHabit.userDetail.systemList.indexOf(to.meta.enter) > -1 ) { next(); } else { next("/404"); } // if(systemUser == 0){//游客用户只能进入这两个页面 }); export default router;