chenrui 3 anni fa
parent
commit
80c419dbcf
3 ha cambiato i file con 36 aggiunte e 1 eliminazioni
  1. 4 0
      public/version.json
  2. 29 0
      src/libs/versionUpdate.js
  3. 3 1
      src/permission.js

+ 4 - 0
public/version.json

@@ -0,0 +1,4 @@
+{
+    "version": "1.0.0",
+    "message": "发现有新版本发布,确定更新系统?"
+}

+ 29 - 0
src/libs/versionUpdate.js

@@ -0,0 +1,29 @@
+import axios from 'axios'
+import modal from 'ant-design-vue/es/modal'
+const isNewVersion = () => {
+  let url = `//${window.location.host}/version.json?t=${new Date().getTime()}`;
+  axios.get(url).then(res => {
+    if (res.status === 200) {
+      let vueVersion = res.data.version;
+      let message = res.data.message;
+      let localVueVersion = localStorage.getItem('vueVersion');
+      if (localVueVersion && localVueVersion != vueVersion) {
+        localStorage.setItem('vueVersion', vueVersion);
+        modal.info({
+          title: '提示',
+          content: message,
+          onOk () {
+            window.location.reload()
+          }
+        })
+        return;
+      } else {
+        localStorage.setItem('vueVersion', vueVersion);
+      }
+    }
+  });
+}
+ 
+export default {
+  isNewVersion
+}

+ 3 - 1
src/permission.js

@@ -7,13 +7,15 @@ import '@/components/NProgress/nprogress.less' // progress bar custom style
 import notification from 'ant-design-vue/es/notification'
 import { setDocumentTitle, domTitle } from '@/utils/domUtil'
 import { ACCESS_TOKEN } from '@/store/mutation-types'
-
+import versionTood from '@/libs/versionUpdate'
 NProgress.configure({ showSpinner: false }) // NProgress Configuration
 
 const whiteList = ['login', 'register', 'registerResult'] // no redirect whitelist
 const defaultRoutePath = '/home'
 
 router.beforeEach((to, from, next) => {
+  // 判断当前代码版本是否与服务器中代码版本一致,如不一致则刷新页面获取最新
+  versionTood.isNewVersion()
   NProgress.start() // start progress bar
   to.meta && (typeof to.meta.title !== 'undefined' && setDocumentTitle(`${to.meta.title} - ${domTitle}`))
   let token = store.state.user.token || sessionStorage.getItem(ACCESS_TOKEN)