|
|
@@ -19,6 +19,7 @@ export default {
|
|
|
created() {
|
|
|
},
|
|
|
mounted() {
|
|
|
+ this.checkVersion()
|
|
|
//判断是否在系统更新期间
|
|
|
var time = new Date(this.$c.updateTime).getTime()
|
|
|
var time2 = new Date().getTime()
|
|
|
@@ -41,13 +42,58 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
-
|
|
|
+ async checkVersion() {
|
|
|
+ // 1. 加载当前版本号(从本地存储或全局变量)
|
|
|
+ const currentVersion = localStorage.getItem('_APP_VERSION')
|
|
|
+
|
|
|
+ // 2. 定期检查新版本(例如每 5 分钟)
|
|
|
+ setInterval(async () => {
|
|
|
+ try {
|
|
|
+ // 3. 从服务器获取最新版本号(可以是一个 API 或直接加载 version.js)
|
|
|
+ const response = await fetch('/version.js?' + Date.now()); // 加时间戳避免缓存
|
|
|
+
|
|
|
+ const text = await response.text();
|
|
|
+
|
|
|
+ // 4. 提取版本号(正则匹配)
|
|
|
+ const match = text.match(/window._APP_VERSION = '([^']+)'/);
|
|
|
+ const latestVersion = match?.[1];
|
|
|
+ // 5. 如果版本不同,提示用户刷新
|
|
|
+ if(latestVersion){
|
|
|
+ if(!currentVersion){
|
|
|
+ localStorage.setItem('_APP_VERSION',latestVersion)
|
|
|
+ currentVersion = latestVersion
|
|
|
+ }else if (latestVersion !== currentVersion) {
|
|
|
+ this.$confirm('新版本已发布, 是否立即刷新?', '更新提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ showClose:false,
|
|
|
+ closeOnClickModal:false,
|
|
|
+ customClass:'update_reminder',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ localStorage.setItem('_APP_VERSION',latestVersion)
|
|
|
+ window.location.reload()
|
|
|
+ }).catch(() => {
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ }
|
|
|
+ }, 180000); // 5 分钟检查一次
|
|
|
+ },
|
|
|
},
|
|
|
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
|
+.update_reminder{
|
|
|
+ top: 0;
|
|
|
+ position: fixed;
|
|
|
+ left: 0;
|
|
|
+ margin: auto;
|
|
|
+ right: 0;
|
|
|
+}
|
|
|
//driver.js
|
|
|
.driver-fix-stacking .header {
|
|
|
position:relative;
|