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.
235 lines
12 KiB
235 lines
12 KiB
import Vue from 'vue'
|
|
import Router from 'vue-router'
|
|
import store from "@/store";
|
|
// import { Message,MessageBox } from 'element-ui'
|
|
//自定义组件
|
|
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 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 ability from "../page/homepage/personability/ability.vue"
|
|
import abilityUser from "../page/homepage/personability/abilityUser.vue"
|
|
import abilityUserD from "../page/homepage/personability/abilityUserDetail.vue"
|
|
|
|
import abilityMore from "../page/homepage/personability/abilityMore.vue"
|
|
import abilityMoreDetail from "../page/homepage/personability/abilityMoreDetail.vue"
|
|
import abilityApply from "../page/homepage/personability/abilityApply.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 personal from "../page/personalpage/index.vue"
|
|
import personalcenter from "../page/personalpage/home/personalcenter.vue"
|
|
import resume from "../page/personalpage/home/resume.vue"
|
|
import stationmessage from "../page/personalpage/home/stationmessage.vue"
|
|
import myorder from "../page/personalpage/testtool/myorder.vue"
|
|
import mytask from "../page/personalpage/testmanagement/mytask.vue"
|
|
import mytool from "../page/personalpage/testmanagement/mytool.vue"
|
|
import myparticipate from "../page/personalpage/testcrowd/myparticipate.vue"
|
|
import myrelease from "../page/personalpage/testcrowd/myrelease.vue"
|
|
import edittasks from "../page/personalpage/testcrowd/edittasks.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'
|
|
import currentcrowd from "../page/personalpage/testcrowd/currentcrowd.vue"
|
|
|
|
// import logpage from "../page/logpage/index.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 dynamics from "../page/homepage/industrydynamics/dynamics.vue"
|
|
// import industrydetails from "../page/homepage/industrydynamics/industrydetails.vue"
|
|
// import joinus from "../page/homepage/aboutus/joinus.vue"
|
|
// import imember from "../page/personalpage/home/imember.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 myshopcart from "../page/personalpage/testtool/myshopcart.vue"
|
|
// import crowdmarket from "../page/personalpage/testcrowd/crowdmarket.vue"
|
|
// import crowdinform from "../page/personalpage/testcrowd/crowdinform.vue"
|
|
// import mycrowd from "../page/personalpage/testcrowd/mycrowd.vue"
|
|
// import pendingtask from "../page/personalpage/testcrowd/pendingtask.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"
|
|
|
|
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: 'ability/user', component: abilityUser },
|
|
{ path: 'ability/detail', component: abilityUserD },
|
|
{ path: 'ability/more', component: abilityMore },
|
|
{ path: 'ability/more/detail', component: abilityMoreDetail },
|
|
{ path: 'ability/apply', component: abilityApply },
|
|
// {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: '/console/myparticipate',
|
|
children: [
|
|
// {path:'/',component:imember,meta: { title: '工作台', isAuth: true,type:1}},
|
|
{ path: 'profile', component: personalcenter, meta: { title: '个人中心', isAuth: true, type: 1 } },
|
|
{ path: 'resume', component: resume, 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]);
|
|
}
|
|
}
|
|
|
|
// 根据角色控制人才服务
|
|
if (to.path == '/ability') {
|
|
if (store.getters.userinform.companyStatus == 2) {
|
|
next()
|
|
} else {
|
|
next('/ability/user')
|
|
}
|
|
}
|
|
|
|
// 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; |