<template>
  <el-row class="wrapper">
    <el-col style="margin-bottom: 1rem;">
      <el-breadcrumb separator-class="el-icon-arrow-right">
        <el-breadcrumb-item :to="{ path: '/portfolio/manager/' + idPortfolio }">返回上一级</el-breadcrumb-item>
        <el-breadcrumb-item>关联文章</el-breadcrumb-item>
      </el-breadcrumb>
    </el-col>
    <el-col>
      <el-divider></el-divider>
    </el-col>
    <el-col>
      <el-input v-model="searchText" @input="searchUnbindArticle" placeholder="输入帖子标题,回车检索"></el-input>
    </el-col>
    <el-col style="padding-top: 10px;">
      <portfolio-manager-bind-list :idPortfolio="idPortfolio" :articles="articles"
                                   @currentChange="currentChangeArticle"></portfolio-manager-bind-list>
    </el-col>
  </el-row>
</template>

<script>
  import {mapState} from 'vuex';
  import PortfolioManagerBindList from "~/components/common/portfolio/manager/bind/list";

  export default {
    name: "PortfolioManagerBind",
    components: {
      PortfolioManagerBindList
    },
    validate({params, store}) {
      return params.portfolio_id && !isNaN(Number(params.portfolio_id))
    },
    fetch({store, params, error}) {
      return Promise.all([
        store
          .dispatch('portfolio/fetchUnBindArticleList', params)
          .catch(err => error({statusCode: 404}))
      ])
    },
    computed: {
      ...mapState({
        articles: state => state.portfolio.unbindArticles,
      }),
      idPortfolio() {
        return Number(this.$route.params.portfolio_id)
      }
    },
    data() {
      return {
        searchText: ''
      }
    },
    methods: {
      currentChangeArticle(page) {
        this.$store.dispatch('portfolio/fetchUnBindArticleList', {
          page: page,
          portfolio_id: this.$route.params.portfolio_id
        })
      },
      searchUnbindArticle() {
        this.$store.dispatch('portfolio/fetchUnBindArticleList', {
          page: 1,
          portfolio_id: this.$route.params.portfolio_id,
          searchText: this.searchText
        })
      },
      onRouter(name, data) {
        if (name === 'article') {
          this.$router.push({
            path: data
          })
        } else {
          this.$router.push(
            {
              path: '/portfolio/post/' + data
            }
          )
        }
      }
    },
    mounted() {
      this.$store.commit('setActiveMenu', 'portfolioBind');
    }
  }
</script>

<style scoped>

</style>