import router from "./router";
import store from "./store";
import { Message } from "element-ui";
import NProgress from "nprogress";
import "nprogress/nprogress.css";
import { getToken } from "@/utils/auth";

// 踢出系统
function kickOut() {
  if (process.env.NODE_ENV === "production") {
    location.href = location.origin + "/login";
  }
}
NProgress.configure({ showSpinner: false });
const whiteList = [
  "/login",
  "/register",
  "/index",
  "/netWorkStat",
  "/censor",
  "/personalData",
  "/changePassword",
  "/statistics",

  "/administrative",
  "/enterpriseMsg",
  "/productsMsg",
  "/logout",
];
router.beforeEach((to, from, next) => {
  NProgress.start();
  if (getToken()) {
    console.log('有token');
    to.meta.title && store.dispatch("settings/setTitle", to.meta.title);
    /* has token*/
    if (to.path === "/login") {
      next({ path: "/" });
      NProgress.done();
    } else {
      next();
    }
  } else {
    // 没有token
    if (whiteList.indexOf(to.path) !== -1) {
      next()
      // let token = localStorage.getItem("MSSM-LIAONING__TOKEN");
      // if (token) {
      //   if (store.state.myselfPermission.routerList.length > 0) {
      //     let current = store.state.myselfPermission.routerList.filter(
      //       (item) => item.path == to.path || from.path == "/"
      //     );
      //     if (current.length > 0) {
      //       next();
      //     } else {
      //       next();
      //       // Message.error("无权限访问!");
      //     }
      //   } else {
      //     store
      //       .dispatch("GetPermission")
      //       .then((res) => {
      //         console.log(res);
      //         if (res.length > 0) {
      //           next({ path: res });
      //         } else {
      //           kickOut();
      //         }
      //       })
      //       .catch((error) => {
      //         kickOut();
      //       });
      //   }
      // } else {
      //   //没有token踢出去
      //   Message.error("获取令牌失败!");
      //   kickOut();
      // }
    } else {
      // kickOut();
      NProgress.done();
    }
  }
});

router.afterEach(() => {
  NProgress.done();
});