Browse Source

修复登录后出现会员信息不同步的情况

kuaifan 4 years atrás
parent
commit
90b4fc5f4d

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
     "name": "wookteam",
-    "version": "1.5.17",
+    "version": "1.5.18",
     "description": "WookTeam是一款轻量级的开源在线团队协作工具,提供各类文档工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,知识库管理等工具。",
     "scripts": {
         "ide-helper": "php artisan ide-helper:generate",

+ 6 - 1
resources/assets/js/_modules/mixins/index.js

@@ -3,6 +3,7 @@ export default {
         Vue.mixin({
             data() {
                 return {
+                    mixinId: 0,
                     //用户信息
                     usrLogin: false,
                     usrInfo: {},
@@ -13,10 +14,13 @@ export default {
             },
 
             mounted() {
+                if (typeof window.__mixinId != "number") window.__mixinId = 0;
+                this.mixinId = window.__mixinId++;
+                //
                 this.usrLogin = $A.getToken() !== false;
                 this.usrInfo = $A.getUserInfo();
                 this.usrName = this.usrInfo.username || '';
-                $A.setOnUserInfoListener('mixins', (data, isLogin) => {
+                $A.setOnUserInfoListener('mixins_' + this.mixinId, (data, isLogin) => {
                     this.usrLogin = isLogin;
                     this.usrInfo = data;
                     this.usrName = this.usrInfo.username || '';
@@ -26,6 +30,7 @@ export default {
             },
 
             beforeDestroy() {
+                $A.removeUserInfoListener('mixins_' + this.mixinId);
                 window.removeEventListener('resize', this.windowMax768Listener);
             },
 

+ 4 - 0
resources/assets/js/main/components/chat/Index.vue

@@ -361,6 +361,8 @@
                                 }
                             }
                             .avatar {
+                                flex-grow: 0;
+                                flex-shrink: 0;
                                 width: 42px;
                                 height: 42px;
                                 font-size: 20px;
@@ -474,6 +476,8 @@
                                     height: 52px;
                                     cursor: pointer;
                                     .avatar {
+                                        flex-grow: 0;
+                                        flex-shrink: 0;
                                         width: 30px;
                                         height: 30px;
                                         font-size: 16px;

+ 8 - 0
resources/assets/js/main/main.js

@@ -347,6 +347,14 @@ import '../../sass/main.scss';
                 }
             }
         },
+        removeUserInfoListener(listenerName) {
+            if (typeof listenerName != "string") {
+                return;
+            }
+            if (typeof $A.__userInfoListenerObject[listenerName] != "undefined") {
+                delete $A.__userInfoListenerObject[listenerName];
+            }
+        },
         triggerUserInfoListener(userInfo) {
             let key, item;
             for (key in $A.__userInfoListenerObject) {