<template></template>

<script setup>
import { ref, onMounted } from "vue";
import { useStore } from "vuex";
import {
  getCookie
} from "@/utils/cookie";
import {
  setItem
} from "@/utils/storage";
import { getSessionForSfzh, idCardNoLogin, idCardNoLoginPcs, getSessionForSfzhPcs } from "@/api/user-manage";
import {
  setTimeStamp
} from "@/utils/auth";
const loginDialog = ref(false);
const deptList = ref([]);
const store = useStore();
function redirectAuth() {
  const url = window.location.href
  const urlObj = new URL(url);
  const hostname = urlObj.hostname.split('.')[0]
  if (hostname == 'pcs'||hostname == 'zhpcs') {
    pcsHandleLogin()
  } else {
    handleLogin();
  }
}

const handleLogin = (e) => {
  // 先尝试获取cookie中的clientKey
  const token = getCookie("clientKey");

  if (token) {
    // 使用clientKey获取会话信息
    getSessionForSfzh({ cookie: token }).then((res) => {
      // 使用获取到的idEntityCard进行免登
      idCardNoLogin({
        idCardNo: res
      }).then((resIdCard) => {
        // 登录成功后设置token和用户信息到store
        store.commit("user/setToken", resIdCard.jwtToken);
        store.commit("user/setDeptList", resIdCard.deptList);
        store.commit("user/setUserName", resIdCard.userName);
        store.commit("user/setMenuList", resIdCard.menuList);
        store.commit("user/setUserInfo", {
          token: resIdCard.jwtToken,
          permission: {
            buttonPermission: ["removeTest", "viewTest"],
            menus: resIdCard.menuCodeSet
          },
          menuList: resIdCard.menuList,
          deptList: resIdCard.deptList
        });
        // 保存用户信息到本地存储
        setItem("USERNAME", resIdCard.userName);
        setItem("SFRH", resIdCard.sfrh);
        setItem("USERID", resIdCard.userId);
        setItem("menusPermission", resIdCard.menuCodeSet);
        setItem("idEntityCard", resIdCard.idEntityCard);
        setItem("deptId", resIdCard.deptList);
        // 保存登录时间
        setTimeStamp();
        // 重定向到首页
        setTimeout(() => {
          window.location.hash = "/";
        }, 1000);
      }).catch((error) => {
        console.error("免登失败:", error);
        // 免登失败时重定向到登录页面
        // window.location.hash = "/login";
      });
    }).catch((error) => {
      console.error("获取会话信息失败:", error);
      // 获取会话信息失败时重定向到登录页面
      // window.location.hash = "/login";
    });
  } else {
    console.error("没有找到clientKey cookie");
    // 没有cookie时重定向到登录页面
    window.location.hash = "/login";
  }
};
const pcsHandleLogin = (e) => {
  // 先尝试获取cookie中的clientKey
  const token = getCookie("clientKey");

  if (token) {
    // 使用clientKey获取会话信息
    getSessionForSfzhPcs({ cookie: token }).then((res) => {
      // 使用获取到的idEntityCard进行免登
      idCardNoLoginPcs({
        idCardNo: res
      }).then((resIdCard) => {
        // 登录成功后设置token和用户信息到store
        store.commit("user/setToken", resIdCard.jwtToken);
        store.commit("user/setDeptList", resIdCard.deptList);
        store.commit("user/setUserName", resIdCard.userName);
        store.commit("user/setMenuList", resIdCard.menuList);
        store.commit("user/setUserInfo", {
          token: resIdCard.jwtToken,
          permission: {
            buttonPermission: ["removeTest", "viewTest"],
            menus: resIdCard.menuCodeSet
          },
          menuList: resIdCard.menuList,
          deptList: resIdCard.deptList
        });
        // 保存用户信息到本地存储
        setItem("USERNAME", resIdCard.userName);
        setItem("SFRH", resIdCard.sfrh);
        setItem("USERID", resIdCard.userId);
        setItem("menusPermission", resIdCard.menuCodeSet);
        setItem("idEntityCard", resIdCard.idEntityCard);
        setItem("deptId", resIdCard.deptList);
        // 保存登录时间
        setTimeStamp();
        // 重定向到首页
        setTimeout(() => {
          window.location.hash = "/";
        }, 1000);
      }).catch((error) => {
        console.error("免登失败:", error);
        // 免登失败时重定向到登录页面
        // window.location.hash = "/login";
      });
    }).catch((error) => {
      console.error("获取会话信息失败:", error);
      // 获取会话信息失败时重定向到登录页面
      // window.location.hash = "/login";
    });
  } else {
    console.error("没有找到clientKey cookie");
    // 没有cookie时重定向到登录页面
    window.location.hash = "/login";
  }
};
onMounted(() => {
  redirectAuth();
});
</script>

<style></style>
