index.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. export default {
  2. install(Vue) {
  3. Vue.mixin({
  4. data() {
  5. return {
  6. mixinId: 0,
  7. //用户信息
  8. usrLogin: false,
  9. usrInfo: {},
  10. usrName: '',
  11. //浏览器宽度≤768返回true
  12. windowMax768: window.innerWidth <= 768,
  13. }
  14. },
  15. mounted() {
  16. if (typeof window.__mixinId != "number") window.__mixinId = 0;
  17. this.mixinId = window.__mixinId++;
  18. //
  19. this.usrLogin = $A.getToken() !== false;
  20. this.usrInfo = $A.getUserInfo();
  21. this.usrName = this.usrInfo.username || '';
  22. $A.setOnUserInfoListener('mixins_' + this.mixinId, (data, isLogin) => {
  23. this.usrLogin = isLogin;
  24. this.usrInfo = data;
  25. this.usrName = this.usrInfo.username || '';
  26. });
  27. //
  28. window.addEventListener('resize', this.windowMax768Listener);
  29. },
  30. beforeDestroy() {
  31. $A.removeUserInfoListener('mixins_' + this.mixinId);
  32. window.removeEventListener('resize', this.windowMax768Listener);
  33. },
  34. methods: {
  35. isArray(obj) {
  36. return typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == '[object array]' && typeof obj.length == "number";
  37. },
  38. isJson(obj) {
  39. return typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && typeof obj.length == "undefined";
  40. },
  41. windowMax768Listener() {
  42. this.windowMax768 = window.innerWidth <= 768
  43. }
  44. }
  45. });
  46. }
  47. }