import Vue from 'vue' import Router from 'vue-router' import store from "@/store"; import { Message,MessageBox } from 'element-ui' //自定义组件 import logpage from "../page/logpage/index.vue" import login from "../page/logpage/log/login.vue" import index from "../page/homepage/index.vue" import home from "../page/homepage/home/home.vue" import toolmarker from "../page/homepage/tool/toolmarker.vue" import openSource from "../page/homepage/openSource/index.vue" import openSourceTooldetails from "../page/homepage/openSource/tooldetails.vue" import safetyTesteTool from "../page/homepage/openSourceArea/safetyTesteTool.vue" import codeScanningTool from "../page/homepage/openSourceArea/codeScanningTool.vue" import unitTesteTool from "../page/homepage/openSourceArea/unitTesteTool.vue" import functionTesteTool from "../page/homepage/openSourceArea/functionTesteTool.vue" import pressureTesteTool from "../page/homepage/openSourceArea/pressureTesteTool.vue" import interfaceTestTool from "../page/homepage/openSourceArea/interfaceTestTool.vue" import CNASsolution from "../page/homepage/solution/CNASsolution.vue" import GJB5000Bsolution from "../page/homepage/solution/GJB5000Bsolution.vue" import tooldetails from "../page/homepage/tool/tooldetails.vue" import crowd from "../page/homepage/crowdsourcing/crowd.vue" import crowddetails from "../page/homepage/crowdsourcing/crowddetails.vue" import publishtasks from "../page/homepage/crowdsourcing/publishtasks.vue" import train from "../page/homepage/traininstitute/train.vue" import dynamics from "../page/homepage/industrydynamics/dynamics.vue" import industrydetails from "../page/homepage/industrydynamics/industrydetails.vue" import ability from "../page/homepage/personability/ability.vue" import employ from "../page/homepage/employ/employ.vue" import cooperation from "../page/homepage/cooperation/cooperation.vue" import aboutwo from "../page/homepage/aboutus/aboutwo.vue" import joinus from "../page/homepage/aboutus/joinus.vue" import personal from "../page/personalpage/index.vue" import imember from "../page/personalpage/home/imember.vue" import personalcenter from "../page/personalpage/home/personalcenter.vue" import stationmessage from "../page/personalpage/home/stationmessage.vue" import messagelist from "../page/personalpage/home/messagelist.vue" import toolmarket from "../page/personalpage/testtool/toolmarket.vue" import mytooldetails from "../page/personalpage/testtool/mytooldetails.vue" import myorder from "../page/personalpage/testtool/myorder.vue" import myshopcart from "../page/personalpage/testtool/myshopcart.vue" import mytask from "../page/personalpage/testmanagement/mytask.vue" import mytool from "../page/personalpage/testmanagement/mytool.vue" import crowdmarket from "../page/personalpage/testcrowd/crowdmarket.vue" import currentcrowd from "../page/personalpage/testcrowd/currentcrowd.vue" import crowdinform from "../page/personalpage/testcrowd/crowdinform.vue" import mycrowd from "../page/personalpage/testcrowd/mycrowd.vue" import myparticipate from "../page/personalpage/testcrowd/myparticipate.vue" import myrelease from "../page/personalpage/testcrowd/myrelease.vue" import pendingtask from "../page/personalpage/testcrowd/pendingtask.vue" import edittasks from "../page/personalpage/testcrowd/edittasks.vue" import accountoverview from "../page/personalpage/testtreasure/accountoverview.vue" import transaction from "../page/personalpage/testtreasure/transaction.vue" import tranpassword from "../page/personalpage/testtreasure/tranpassword.vue" import testKit from "../page/personalpage/testtreasure/testKit.vue" import demand from "../page/personalpage/demand/index.vue" import myreview from '../page/personalpage/myreview/index.vue' import myBm from '../page/personalpage/myBm/index.vue' Vue.use(Router) //为组件配置路径 const router = new Router({ mode: 'history', // 去掉url中的# // linkActiveClass:'is-active', routes: [ //首页 {path:'',component:index, redirect:'/', children:[ {path:'/',component:home,name:'home',}, {path:'login',component:login,name:'login',}, {path:'market',component:toolmarker,name:'market'}, {path:'openSource', component: openSource, name:'openSource'}, {path:'openSourceArea/safetyTesteTool',component:safetyTesteTool,name:'safetyTesteTool'}, {path:'openSourceArea/codeScanningTool',component:codeScanningTool,name:'codeScanningTool'}, {path:'openSourceArea/unitTesteTool',component:unitTesteTool,name:'unitTesteTool'}, {path:'openSourceArea/functionTesteTool',component:functionTesteTool,name:'functionTesteTool'}, {path:'openSourceArea/pressureTesteTool',component:pressureTesteTool,name:'pressureTesteTool'}, {path:'openSourceArea/interfaceTestTool',component:interfaceTestTool,name:'interfaceTestTool'}, {path:'solution/CNAS',component:CNASsolution,name:'CNASsolution'}, {path:'solution/GJB5000B',component:GJB5000Bsolution,name:'GJB5000Bsolution'}, {path:'market/tooldetails',component:tooldetails}, {path:'openSource/openSourceTooldetails', component: openSourceTooldetails }, {path:'crowdsourcing',component:crowd,name:'crowd',}, {path:'crowdsourcing/crowddetails',component:crowddetails,}, {path:'crowdsourcing/publishtasks',component:publishtasks,}, {path:'college',component:train}, {path:'ability',component:ability}, {path:'news',component:dynamics,}, {path:'news/detail',component:industrydetails,name:'industrydynamics',}, {path:'employ',component:employ}, {path:'cooperation',component:cooperation}, {path:'about',component:aboutwo}, {path:'aboutus/joinus',component:joinus,meta:{isAuth: true}}, ] }, // 登录相关 // {path:'/login',component:logpage, // redirect:'/login', // children:[ // {path:'login',component:login}, // ] // }, // 工具市场: market // 众包市场:crowdsourcing // 培训学院:college // 行业动态:news // 关于我们:about //个人中心 {path:'/console',component:personal, redirect:'/', children:[ {path:'/',component:imember,meta: { title: '工作台', isAuth: true,type:1}}, {path:'profile',component:personalcenter,meta: { title: '个人中心', isAuth: true,type:1}}, {path:'message',component:stationmessage,meta: { title: '站内消息', isAuth: true,type:1}}, {path:'messagelist',component:messagelist,meta: { title: '消息列表', isAuth: true,type:1}}, {path:'toolsmarket',component:toolmarket,meta: { title: '工具市场', isAuth: true,type:2}}, {path:'mytooldetails',component:mytooldetails,meta: { title: '测试工具详情', isAuth: true,type:2}}, {path:'orders',component:myorder,meta: { title: '我的订单', isAuth: true,type:2}}, {path:'cart',component:myshopcart,meta: { title: '我的购物车', isAuth: true,type:2}}, {path:'mytasks',component:mytask,meta: { title: '我的任务', isAuth: true,type:3}}, {path:'mytools',component:mytool,meta: { title: '我的工具', isAuth: true,type:3}}, {path:'crowdmarket',component:crowdmarket,meta: { title: '众包市场', isAuth: true,type:4}}, {path:'currentcrowd',component:currentcrowd,meta: { title: '任务详情', isAuth: true,type:4}}, {path:'crowdinform',component:crowdinform,meta: { title: '测试众包详情', isAuth: true,type:4}}, {path:'mycrowd',component:mycrowd,meta: { title: '我的众包', isAuth: true,type:4}}, {path:'myparticipate',component:myparticipate,meta: { title: '我参与的', isAuth: true,type:4}}, {path:'myrelease',component:myrelease,meta: { title: '我发布的', isAuth: true,type:4}}, {path:'pendingtask',component:pendingtask,meta: { title: '待付款任务', isAuth: true,type:4}}, {path:'edittasks',component:edittasks,meta: { title: '重新发布', isAuth: true,type:4}}, {path:'edittasksFB',component:edittasks,meta: { title: '发布任务', isAuth: true,type:4}}, {path:'account',component:testKit,meta: { title: '我的测试宝', isAuth: true,type:5}}, {path:'accountoverview',component:accountoverview,meta: { title: '账户概览', isAuth: true,type:5}}, {path:'transaction',component:transaction,meta: { title: '交易记录', isAuth: true,type:5}}, {path:'tranpassword',component:tranpassword,meta: { title: '交易密码', isAuth: true,type:5}}, {path:'demand',component:demand,meta: { title: '我要用人', isAuth: true,type:6}}, {path:'myreview',component:myreview,meta: { title: '我的评价', isAuth: true,type:5}}, {path:'myBm',component:myBm,meta: { title: '我的培训班', isAuth: true,type:5}}, ] }, ], }) // 全局路由守卫; router.beforeEach((to, from, next) => { // 百度统计 const tjarr = ['/market', '/crowdsourcing', '/ability' ,'/college', '/about'] if (_hmt) { if (tjarr.some(it => it == to.path)) { _hmt.push(['_trackPageview', '/' + to.fullPath]); } } // console.log(store.getters.companyStatus); let token=store.getters.token; // if(token){ // store.dispatch("SET_KEYSAASDICT") // } // chrome document.body.scrollTop = 0 // firefox document.documentElement.scrollTop = 0 const meta = to.meta || {} // store.dispatch("SET_KEYSAASDICT") // let currentdata=Date.parse(new Date()); // let logindate=store.getters.logindate; // let timedifference=currentdata-(parseInt(logindate)+604800000); // // console.log('当前时间',currentdata,'登录时间',logindate,'时间差',timedifference) // // console.log('过期时间',timedifference) // if (timedifference>0) { // MessageBox.confirm('登录状态已过期,请重新登录', '系统提示', { // confirmButtonText: '重新登录', // showCancelButton:false, // showClose:false, // type: 'warning' // }).then(() => { // store.dispatch('LogOut').then(() => { // next({ path: `/login?type=log` }) // }) // }) // // localStorage.removeItem('access_token'); // // Message.warning('登录状态已过期,请重新登录') // // store.dispatch('LogOut').then(() => { // // next({ path: `/login?type=log` }) // // }) // // next() // // if (meta.isAuth === true) { // // alert('登录状态失效,请您重新登录') // // next({ path: `/login?type=log` }) // // } else { // // next() // // } // } else { next() // } }) // 解决这个报错:vue-router.esm.js?ac56:2065 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: "/login?type=log". // 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单报错问题 const originalPush = Router.prototype.push Router.prototype.push = function push (location) { return originalPush.call(this, location).catch(err => err) } export default router;