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";
  }
}
const whiteList = [
  "/404",
  "/401",
  '/drugArchives',
  "/cosmeticsArchives",
  "/cosmeticsDetail",
  "/health",
];
NProgress.configure({ showSpinner: false });
router.beforeEach((to, from, next) => {
  NProgress.start();
  let token = localStorage.getItem('MSSM-LIAONING__TOKEN')
  console.log(to.path);
  if (whiteList.indexOf(to.path) !== -1) {
    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 {
          //根据参数判断是否可以跳
          if (to.query.type && to.path == '/cosmeticsDetail') {
            next();
          } else {
            Message.error("无权限访问！");
          }
        }
      } else {
        store
          .dispatch("GetPermission")
          .then((res) => {
            if (res.length > 0) {
              next({ path: res });
            } else {
              kickOut();
            }
          })
          .catch((error) => {
            kickOut();
          });
      }
    } else {
      // 没有token
      Message.error("获取令牌失败！");
      kickOut();
    }
  } else {
    kickOut();
  }
});

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