// utils/version.js

import axios from "axios";
// 生成一个随机的字符串作为请求的查询参数
import { nanoid } from "nanoid";
import { ElMessageBox } from "element-plus";

export async function isNewVersion() {
  // 构建了一个 URL，用于请求版本信息的 JSON 文件。这个 URL 包括当前页面的主机名和一个随机生成的长度为 10 的字符串作为查询参数。
  const url = `//${window.location.host}/version.json?id=${nanoid(10)}`;
  // 使用 Axios 发起了一个 get 请求，获取版本信息的 json 文件。
  try {
    const res = await axios.get(url);
    //   从响应数据中获取了版本号。
    const version = res.data.version;
    //   从本地存储中获取了之前保存的版本号
    const localVersion = localStorage.getItem("version");
    //   检查本地存储的版本号是否存在且与当前版本号不一致
    if (localVersion && localVersion !== version) {
      ElMessageBox.confirm("发现新的版本，请刷新页面后使用！", "系统提示", {
        confirmButtonText: "立即刷新",
        // cancelButtonText: this.$t('btn.cancel'),
        showCancelButton: false,
        closeOnClickModal: false,
        type: "warning",
      })
        .then(() => {
          localStorage.setItem("version", version);
          window.location.reload();
        })
        .catch(() => {});
    } else {
      // 如果没有发现新版本，则仅将当前版本号保存到本地存储中。
      // 这段代码的作用是在页面加载时检查是否有新版本可用，如果有新版本则重新加载页面以获取最新版本
      localStorage.setItem("version", version);
    }
  } catch (error) {
    console.log(error);
  }
}
