Browse Source

new index - provide/inject for login check

hare8999@163.com 2 năm trước cách đây
mục cha
commit
fe1c31c195

+ 25 - 0
src/views/components/blocks/index-login-check-mixin.js

@@ -0,0 +1,25 @@
+import { mapGetters } from 'vuex'
+import auth from '@/utils/auth'
+
+export default {
+  provide() {
+    return {
+      loginCheck: this.loginStatusCheck
+    }
+  },
+  computed: {
+    ...mapGetters(['currentUser'])
+  },
+  methods: {
+    isLogin() {
+      return !!auth.getToken()
+    },
+    loginStatusCheck() {
+      // 首页统一注入登陆检测方法,未登陆时直接跳至登陆框
+      if (this.isLogin()) {
+        return Promise.resolve(true)
+      }
+      // TODO: 提示并回滚至登陆窗口
+    }
+  }
+}

+ 14 - 0
src/views/components/blocks/index-login-interceptor-mixin.js

@@ -0,0 +1,14 @@
+export default {
+  inject: {
+    loginCheck: {
+      default: function() {
+        // 首页用到的block均需要混入此mixin
+        // 目的在于形成统一的点击响应
+
+        // 默认通过,因为block组件可能不止在首页使用
+        // 不同的嵌入块可以由容器注入不同的校验逻辑
+        return Promise.resolve(true)
+      }
+    }
+  }
+}