|
@@ -0,0 +1,40 @@
|
|
|
+// 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);
|
|
|
+ }
|
|
|
+}
|