<script> 
 | 
import { mapState } from 'vuex' 
 | 
import BaseComputHeightDefault from '@/components/base/BaseComputHeightDefault' 
 | 
export default { 
 | 
  extends: BaseComputHeightDefault, 
 | 
  name: 'BasePage', 
 | 
  data () { 
 | 
    return { 
 | 
      // 超级管理员角色code 
 | 
      adminCode: 'admin' 
 | 
    } 
 | 
  }, 
 | 
  computed: { 
 | 
    ...mapState(['userInfo']), 
 | 
    // 是否为超级管理员 
 | 
    isAdmin() { 
 | 
      return this.userInfo.roles.findIndex(code => code === this.adminCode) > -1 
 | 
    } 
 | 
  }, 
 | 
  methods: { 
 | 
    // 是否包含指定角色 
 | 
    containRoles (roles) { 
 | 
      if (roles == null) { 
 | 
        return true 
 | 
      } 
 | 
      if (this.userInfo == null) { 
 | 
        return false 
 | 
      } 
 | 
      if (this.userInfo.roles == null || this.userInfo.roles.length === 0) { 
 | 
        return false 
 | 
      } 
 | 
      for (const code of roles) { 
 | 
        if (this.userInfo.roles.findIndex(r => r === code) > -1) { 
 | 
          return true 
 | 
        } 
 | 
      } 
 | 
      return false 
 | 
    }, 
 | 
    // 是否包含指定权限 
 | 
    containPermissions (permissions) { 
 | 
      if (permissions == null) { 
 | 
        return true 
 | 
      } 
 | 
      if (this.userInfo == null) { 
 | 
        return false 
 | 
      } 
 | 
      if (this.userInfo.permissions == null || this.userInfo.permissions.length === 0) { 
 | 
        return false 
 | 
      } 
 | 
      for (const code of permissions) { 
 | 
        if (this.userInfo.permissions.findIndex(p => p === code) > -1) { 
 | 
          return true 
 | 
        } 
 | 
      } 
 | 
      return false 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</script> 
 |