import Vue from 'vue'
import Router from 'vue-router'
import routes from './routes'
import { Message } from 'element-ui'

Vue.use(Router)

const router = new Router({
  routes
})

/**
 * 全局前置守卫
 * @param {Route} to 即将要进入的目标 路由对象
 * @param {Route} from 当前导航正要离开的路由
 * @param {Function} next 一定要调用该方法来 resolve 这个钩子。
 */
// router.beforeEach((to, from, next) => {
//   const storageRouters = window.localStorage.getItem('filteredRouters')
//   const filteredRouters = storageRouters ? JSON.parse(storageRouters) : []
//   function back (msg) {
//     router.back()
//     setTimeout(() => { window.location.reload() }, 0)
//     msg.close()
//   }
//   if (to.name !== 'login' && to.name !== 'home' && filteredRouters.length) {
//     // 路由权限校验, 可能存在子路由, 用第二个条件判断
//     if (filteredRouters.includes(to.name) || (to.matched.length && filteredRouters.includes(to.matched[1].name))) {
//       next()
//     } else {
//       console.log('没有权限访问' + to.name)
//       const h = new Vue().$createElement
//       const errMsg = Message({
//         duration: 0,
//         showClose: true,
//         type: 'error',
//         message: h('span', {
//           style: {
//             fontSize: '14px',
//             color: '#333',
//           }
//         }, [
//           h('span', null, '抱歉, 您没有权限访问目标页面, '),
//           h('span', {
//             style: {
//               color: 'blue',
//               textDecoration: 'underline',
//               cursor: 'pointer',
//             },
//             on: {
//               click: () => back(errMsg)
//             }
//           }, '返回')
//         ])
//       })
//     }
//   } else {
//     next()
//   }
// })

router.afterEach((to, from) => {
  // 用于标识路由，以便登录超时从登录页面返回当前页面
  if (to.name !== 'login') {
    window.sessionStorage.setItem('lastRouter', to.name)
  }
})

export default router
