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