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;