import router from './router'
import store from './store'
import { Notify } from 'vant';
import { getToken } from 'src/utils/auth'

// 路径白名单 不需要鉴权就能跳转
const whiteList = ['/login','/system-init']

router.beforeEach((to, from, next) => {

  if (getToken()) {
    to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
    // console.log(to.path)
    if (to.path === '/login') {
      next({ path: '/' })
      // console.log('返回主页')
      // next({ name: store.state.sysConf.runMode })
    } else {
      // 暂时不需要roles进行鉴权!!!!
      if (store.getters.roles.length === 0) {
        // 判断当前用户是否已拉取完user_info信息
        store.dispatch('GetInfo').then((roles) => {
          store.dispatch('GenerateRoutes',roles).then(accessRoutes => {
            // 根据roles权限生成可访问的路由表
            accessRoutes.forEach(element => {
              router.addRoute(element)
            });// 动态添加可访问路由表

            next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
          })
        }).catch(err => {
          store.dispatch('LogOut').then(() => {
            // Message.error(err)
            Notify({ type: 'danger', message: err });
            next({ path: '/' })
          })
        })
      } else {
        next()
      }
    }
  } else {
    // 没有token
    if (whiteList.indexOf(to.path) !== -1) {
      // 在免登录白名单，直接进入
      next()
    } else {
      next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
    }
  }

})

router.afterEach(() => {
})
