// 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); } }