<template>
  <div>
    <swiper
      ref="swiperTitle"
      class="swiper-title"
      :options="swiperOptionTitle"
      :auto-update="true"
      :auto-destroy="true"
      :delete-instance-on-destroy="true"
      :cleanup-styles-on-destroy="true"
    >
      <swiper-slide
        v-for="(item, index) in tabListData"
        ref="swiperSlideItem"
        :key="'name' + index"
        class="swiper-slide-title"
      >
        <div
          class="tab-name"
          :class="{ active: index === swiperActiveIndex }"
          @click="handleSlidClickFun(index)"
        >
          {{ item.name }}
        </div>
      </swiper-slide>
    </swiper>
    <swiper
      ref="swiperContent"
      class="swiper-content"
      :options="swiperOptionContent"
      :auto-update="true"
      :auto-destroy="true"
      :delete-instance-on-destroy="true"
      :cleanup-styles-on-destroy="true"
    >
      <swiper-slide
        v-for="(item, index) in tabListData"
        :key="'content' + index"
        class="swiper-slide-content"
      >
        <el-table
          :data="bookList"
          stripe
          style="width: 100%"
          height="150"
        >
          <el-table-column
            prop="title"
            :label="swiperActiveIndex === 1 ? '书架' :'书名'"
          >
            <template slot-scope="scope">
              {{ swiperActiveIndex === 0 ? scope.row.title : scope.row.grid_name }}
            </template>
          </el-table-column>
          <el-table-column
            prop="downNum"
            label="出架册次"
            width="80"
            align="center"
          />
        </el-table>
      </swiper-slide>
    </swiper>
  </div>
</template>

<script>
import { FetchInitHotBookList, FetchInitHotShelfList } from '@/api/stockTask/index'
import { mapGetters } from 'vuex'
import { swiper, swiperSlide } from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css'
export default {
  name: 'BookSwiper',
  components: { swiper, swiperSlide },
  props: {
  },
  data() {
    const _this = this
    return {
      swiperActiveIndex: 0,
      swiperOptionContent: {
        slidesPerView: 'auto',
        on: {
          slideChangeTransitionStart: function() {
            _this.swiperActiveIndex = this.activeIndex
            _this.swiperTitle.slideTo(this.activeIndex, 500, false)
          }
        }
      },
      swiperOptionTitle: {
        slidesPerView: 'auto',
        freeMode: true
      },
      tabListData: [{ name: '热门图书' }, { name: '热门架位' }],
      bookList: [],
      swiperParams: {},
      swiperShelfParams: {}
    }
  },
  computed: {
    ...mapGetters([
      'baseApi'
    ]),
    swiperContent() {
      return this.$refs.swiperContent.$el.swiper
    },
    swiperTitle() {
      return this.$refs.swiperTitle.$el.swiper
    }
  },
  mounted() {
    // if (this.swiperActiveIndex === 0) {
    //   this.getInitHotBookList()
    // } else {
    //   this.getInitHotShelfList()
    // }
  },
  methods: {
    handleSlidClickFun(index) {
      this.handleSlideToFun(index)
    },
    handleSlideToFun(index) {
      this.bookList = []
      this.swiperActiveIndex = index
      if (this.swiperActiveIndex === 0) {
        this.getInitHotBookList()
      } else {
        this.getInitHotShelfList()
      }
      this.swiperContent.slideTo(index, 500, false)
      this.swiperTitle.slideTo(index, 500, false)
    },
    getInitHotBookList() {
      const params = this.swiperParams
      FetchInitHotBookList(params).then(res => {
        this.bookList = res
      }).catch(() => {
      })
    },
    getInitHotShelfList() {
      const params = this.swiperShelfParams
      FetchInitHotShelfList(params).then(res => {
        this.bookList = res
      }).catch(() => {
      })
    }

  }
}
</script>

<style lang="scss" scoped>
.swiper-title{
  font-size: 14px;
  ::v-deep .swiper-wrapper{
    margin: 10px 0;
    border-bottom: 1px solid #EDEFF3;
  }
}
.swiper-slide-title {
	width: auto !important;
  margin-right: 20px;
  cursor: pointer;
	.tab-name {
		padding: 10px;
		&.active {
			color: #0348F3;
      border-bottom: 3px solid #0348F3;
		}
	}
}
</style>
