author-fans.vue 1.34 KB
<template>
  <Layout class="author-fans-page">
    <LayoutHeader slot='header' theme="white" class="author-page-header">{{isMine ? '我' : 'TA'}}的粉丝</LayoutHeader>
    <UserList ref="userList" :follow-name="isMine ? '回粉' : '关注'" :on-fetch="onFetch"></UserList>
  </Layout>
</template>


<script>
import {assign, get} from 'lodash';
import {Scroll, Loading} from 'cube-ui';
import UserList from './components/user-list';
import {createNamespacedHelpers} from 'vuex';
const {mapActions} = createNamespacedHelpers('user');

export default {
  name: 'authorFans',
  data() {
    return {
      isMine: false
    };
  },
  created() {
    this.isMine = !this.$route.params.id;
    this._baseParams = {
      authorType: this.$route.params.type || 1,
      limit: 20,
    };

    if (!this.isMine) {
      this._baseParams.authorUid = this.$route.params.id;
    }
  },
  activated() {
    this.$refs.userList.init();
  },
  beforeRouteUpdate(to, from, next) {
    this.$refs.userList.init();
    next();
  },
  methods: {
    ...mapActions(['authorFansList', 'authorMineFansList']),
    onFetch({page, lastedTime}) {
      let params = Object.assign({page, lastedTime}, this._baseParams);

      return this.isMine ? this.authorMineFansList(params) : this.authorFansList(params);
    }
  },
  components: {
    UserList
  }
}
</script>

<style lang="scss">

</style>