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}`); const _import_custom = (path : string) => () => import(`../views/${path}`); // defineAsyncComponent(import(`../views/${path}.vue`)) const routes: Array = [ { path: "/", // redirect重定向 meta:{enter:'all',}, redirect: "/Square" // redirect: "/upgrade" }, { path: '/login', name: 'login', meta:{enter:'all',}, component: _import('LoginPage') }, { path: '/test', name: 'test1', meta:{enter:'all',}, component: _import('test') }, { path: '/register', name: 'register', meta:{enter:'all',}, component: _import('Register') }, // { // path: '/register', // name: 'register', // component: _import('RegisterPage') // }, { path: '/upgrade', name: 'upgrade', meta:{enter:'all',}, component: _import('Upgrade'), }, // { // path: '/home', // name: 'home', // component: _import('HomeView') // }, { path: '/home', name: 'home', meta:{enter:'all',}, component: _import('HomeMain'), children:[ { path: "", name:'HomeChil', redirect: "/home/homePage" }, { path:'homePage', name:'homePage', meta:{enter:'all',}, component: _import_custom('HomeView/HomeView.vue'), },{ path:'library', name:'library', meta:{enter:'all',}, component: _import_custom('HomeView/library.vue'), },{ path:'history', name:'history', meta:{enter:'all',}, component: _import_custom('HomeView/history.vue'), },{ path:'works', name:'works', meta:{enter:'all',}, component: _import_custom('HomeView/Works.vue'), },{ path:'events', name:'events', meta:{enter:'all',}, component: _import_custom('HomeView/Events.vue'), },{ path:'eventsDetail', name:'eventsDetail', meta:{enter:'all',}, component: _import_component('Events/eventsDetail.vue'), },{ path:'account', name:'account', meta:{enter:'all',}, component: _import_component('Account/account.vue'), children:[ { path: "", name:'accountChil', meta:{enter:'all',}, redirect: "/home/account/frontPage" }, { path:'frontPage', name:'frontPage', meta:{enter:'all',}, component: _import_component('Account/frontPage.vue'), }, { path:'accountMessage', name:'accountMessage', meta:{enter:'all',}, component: _import_component('Account/accountMessage.vue'), }, { path:'accountFollowFans', name:'accountFollowFans', meta:{enter:'all',}, component: _import_component('Account/accountFollowFans.vue'), } ] },{ path:'otherUsers', name:'otherUsers', meta:{enter:'all',}, component: _import_component('Account/otherUsers.vue'), } ] }, { path: '/Square', name: "HomeRecommend", meta:{enter:'all',}, component: _import('HomeRecommend'), children:[ { path: "", name:'SquareChil', meta:{enter:'all',}, redirect: "/Square/works" }, { path:'works', name:'SquareWorks', meta:{enter:'all',}, component: _import_custom('HomeView/Works.vue'), },{ path:'events', name:'SquareEvents', meta:{enter:'all',}, component: _import_custom('HomeView/Events.vue'), },{ path:'eventsDetail', name:'SquareEventsDetail', meta:{enter:'all',}, component: _import_component('Events/eventsDetail.vue'), } ] }, { path: '/demo', name: 'demo', component: _import('Demo') }, // { // path: '/history', // name: 'history', // component: _import('history') // }, // { // path: '/testClickData', // name: 'testClickData', // component: _import('TestClickData') // }, { path: '/administrator', name: 'administrator', meta:{enter:3,}, component: _import('Administrator'), children:[ { path: "", name:'adminChil', meta:{enter:3,}, redirect: "/administrator/allUser" }, { path:'allUser', name:'allUser', meta:{enter:3,}, component: _import_component('Administrator/allUser.vue'), }, { path:'testClickData', name:'testClickData', meta:{enter:3,}, component: _import_component('Administrator/TestClickData.vue'), }, { path:'trialApproval', name:'trialApproval', meta:{enter:3,}, component: _import_component('Administrator/trialApproval.vue'), },{ path:'questionnaire', name:'questionnaire', meta:{enter:3,}, component: _import_component('Administrator/questionnaire.vue'), },{ path:'recentActiveChart', name:'recentActiveChart', meta:{enter:3,}, component: _import_component('Administrator/recentActiveChart.vue'), },{ path:'recentActiveUser', name:'recentActiveUser', meta:{enter:3,}, component: _import_component('Administrator/recentActiveUser.vue'), },{ path:'recentActiveUserChart', name:'recentActiveUserChart', meta:{enter:3,}, component: _import_component('Administrator/recentActiveUserChart.vue'), },{ path:'recentNewUser', name:'recentNewUser', meta:{enter:3,}, component: _import_component('Administrator/recentNewUser.vue'), },{ path:'recentNewUserChart', name:'recentNewUserChart', meta:{enter:3,}, component: _import_component('Administrator/recentNewUserChart.vue'), },{ path:'trialUserCountry', name:'trialUserCountry', meta:{enter:3,}, component: _import_component('Administrator/trialUserCountry.vue'), },{ path:'trialUserConversionRateChart', name:'trialUserConversionRateChart', meta:{enter:3,}, component: _import_component('Administrator/trialUserConversionRateChart.vue'), },{ path:'trialAllUser', name:'trialAllUser', meta:{enter:3,}, component: _import_component('Administrator/trialAllUser.vue'), },{ path:'affiliateAudit', name:'affiliateAudit', meta:{enter:3,}, component: _import_component('Administrator/affiliate/affiliateAudit.vue'), },{ path:'TransactionTable', name:'TransactionTable', meta:{enter:3,}, component: _import_component('Administrator/Transaction/TransactionTable.vue'), }, ] }, { 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: '/library', // name: 'library', // component: _import('library') // }, // { // path: '/trialApproval', // name: 'trialApproval', // component: _import('trialApproval') // }, { 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(process.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