浏览代码

登录数据不统一问题

zhuliu 1 年之前
父节点
当前提交
423aa8642f

+ 5 - 1
src/store/index.js

@@ -30,5 +30,9 @@ export default new Vuex.Store({
     highlight
     highlight
   },
   },
   getters,
   getters,
-  plugins:[createPersistedState(), ]
+  plugins:[createPersistedState(
+    {
+      storage:window.localStorage
+    }
+  ), persisPlugin],
 })
 })

+ 3 - 1
src/store/modules/permission.js

@@ -10,6 +10,8 @@ export default {
   },
   },
 
 
   actions: {
   actions: {
-
+    SET_PERMISSION({ commit }, permission) {
+      commit('SET_PERMISSION', permission);
+    }
   }
   }
 }
 }

+ 1 - 1
src/store/modules/user.js

@@ -21,7 +21,7 @@ export default {
       state.prefix = prefix
       state.prefix = prefix
     },
     },
     SET_USERINFO: (state, userinfo) => {
     SET_USERINFO: (state, userinfo) => {
-      state.userinfo = userinfo
+      // state.userinfo = userinfo
       storage.setObj(constants.userinfo, userinfo)
       storage.setObj(constants.userinfo, userinfo)
     },
     },
     SET_TOKEN: (state, token) => {
     SET_TOKEN: (state, token) => {

+ 32 - 20
src/store/persisPlugin.js

@@ -1,27 +1,39 @@
 const KEY = 'VUEX_STORE'
 const KEY = 'VUEX_STORE'
 import Cookies from "js-cookie";
 import Cookies from "js-cookie";
 export default function(store){
 export default function(store){
-    //保存仓库数据到本地
-    window.addEventListener('beforeunload',(e)=>{
-        if(Cookies.get('token')){
-            localStorage.setItem(KEY, JSON.stringify(store.state))
+    // //保存仓库数据到本地
+    // window.addEventListener('beforeunload',(e)=>{
+    //     if(Cookies.get('token')){
+    //         localStorage.setItem(KEY, JSON.stringify(store.state))
+    //     }
+    // })
+    // window.addEventListener("popstate", ()=>{
+    //     if(Cookies.get('token')){
+    //         localStorage.setItem(KEY, JSON.stringify(store.state))
+    //     }
+    // });
+    
+    // //恢复仓库数据
+    // try{
+    //    const localStorage = localStorage.getItem(KEY)
+    //     if(localStorage){
+    //         store.replaceState(JSON.parse(localStorage.getItem(KEY)))
+    //     } 
+    // }
+    // catch{
+        
+    // }
+    window.addEventListener('message',function(event){
+        if(event.origin != window.location.origin){
+            return
         }
         }
-    })
-    window.addEventListener("popstate", ()=>{
-        if(Cookies.get('token')){
-            localStorage.setItem(KEY, JSON.stringify(store.state))
+        const data = event.data
+        if(data.type == 'store'){
+            store.replaceState(data.data)
         }
         }
-    });
-    
-    //恢复仓库数据
-    try{
-       const localStorage = localStorage.getItem(KEY)
-        if(localStorage){
-            store.replaceState(JSON.parse(localStorage.getItem(KEY)))
-        } 
-    }
-    catch{
         
         
-    }
-    
+        //回复消息
+        // event.source.postMessage('标签页222', event.origin);
+
+    })
 }
 }

+ 13 - 2
src/views/layout/mixins/index.js

@@ -82,11 +82,22 @@ export const commonData = {
     async getPermissionList() {
     async getPermissionList() {
       var code = "e424f3cc4f8138f0f68bef092b92212f;6a8d3f4d1d5f11eda41c00163e2f0200"
       var code = "e424f3cc4f8138f0f68bef092b92212f;6a8d3f4d1d5f11eda41c00163e2f0200"
       await this.$api.getPermissionList({ code: code }).then(response => {
       await this.$api.getPermissionList({ code: code }).then(response => {
-        this.$store.commit('SET_PERMISSION', response.data)
+        this.$store.dispatch('SET_PERMISSION', response.data)
+        this.sendMessage()
       }).catch(error => {
       }).catch(error => {
-        this.$store.commit('SET_PERMISSION', [])
+        this.$store.dispatch('SET_PERMISSION', [])
+        this.sendMessage()
       })
       })
     },
     },
+
+    //发送信息
+    sendMessage(){
+      var data = {
+        type:'store',
+        data:this.$store.state
+      }
+      window.postMessage(data,window.location.origin)
+    },
   }
   }
 }
 }
 
 

+ 1 - 1
src/views/login/index.vue

@@ -273,7 +273,7 @@ export default {
                 path: '/home'
                 path: '/home'
               })
               })
             }else{
             }else{
-              this.$router.push({
+              this.$router.replace({
                 path:redirectUrl.path!='/login'?redirectUrl.path:'/home',
                 path:redirectUrl.path!='/login'?redirectUrl.path:'/home',
                 query:redirectUrl.query,
                 query:redirectUrl.query,
                 params:redirectUrl.params
                 params:redirectUrl.params