<template>
  <view class="page HuiAiXin">
    <ScrollY :IsRefreshing="IsRefreshing" @Refresh="Refresh">

      <view class="PageContainer">

        <!-- banner -->
        <view class="Banner">
          <view>
            <BannerSwiper :List="HuiAiXinBanner"></BannerSwiper>
          </view>
        </view>

        <!-- 明星业主 -->
        <view class="StarOwnerList">
          <view class="flex-h">
            <view class="flex-item">
              <image mode="heightFix" src="https://cjgw.oss-cn-hangzhou.aliyuncs.com/ygcxxfb/image/mingxingyezhu.png"></image>
            </view>
            <navigator url="./StarOwner/index" hover-class="other-navigator-hover" class="More">更多 <text class="iconfont iconjiantouright"></text></navigator>
          </view>
          <view class="ListContainer" v-if="PageStarList.length">
            <scroll-view scroll-x="true">
              <view class="List">
                <navigator v-for="(item, index) in PageStarList" :key="index" :url="`../HuiShengHuo/ActivityList/ActivityDetail/index?id=${item.activityId}`" hover-class="other-navigator-hover" class="Item">
                  <view class="Img">
                    <view class="MainItemImg">
                      <image mode="aspectFill" :src="item.thumb"></image>
                    </view>
                  </view>
                  <text class="Info">{{item.name}}</text>
                </navigator>
              </view>
              <view style="width: 100%; height: 20px;"></view>
            </scroll-view>
          </view>
        </view>

        <!-- 正能量事迹 -->
        <view class="StoryList">
          <view class="flex-h">
            <view class="flex-item">
              <image mode="heightFix" src="https://cjgw.oss-cn-hangzhou.aliyuncs.com/ygcxxfb/image/zhengnengliangshiji.png"></image>
            </view>
            <navigator url="./EnergyStory/index" hover-class="other-navigator-hover" class="More">更多 <text class="iconfont iconjiantouright"></text></navigator>
          </view>
          <view class="List" v-if="PageStoryList.length">
            <navigator v-for="(item, index) in PageStoryList" :key="index" :url="`../HuiShengHuo/ActivityList/ActivityDetail/index?id=${item.activityId}`" hover-class="other-navigator-hover" class="Item flex-h">
              <view class="flex-item">
                <text>{{item.name}}</text>
                <text>{{item.address}}</text>
                <text>{{ToolClass.DateFormat(new Date(item.startDate).getTime())}}</text>
              </view>
              <view class="Img">
                <view>
                  <view class="MainItemImg">
                    <image mode="aspectFill" :src="item.thumb"></image>
                  </view>
                </view>
              </view>
            </navigator>
          </view>
        </view>

        <!-- 授权头像获取弹窗 -->
        <GetUserIcon></GetUserIcon>

      </view>

    </ScrollY>
  </view>
</template>

<script>
import GetUserIcon from '../../components/GetUserIcon/index'
import ScrollY from '../../components/ScrollY/index'
import BannerSwiper from '../../components/BannerSwiper/index'
import { createNamespacedHelpers } from 'vuex'
const { mapState: mapIndexState, mapActions: mapIndexActions, mapMutations: mapIndexMutations } = createNamespacedHelpers('index')
const { mapActions: mapUserActions, mapMutations: mapUserMutations } = createNamespacedHelpers('user')
export default {
  name: 'HuiAiXin',
  data () {
    return {
      PageStarList: [],
      PageStoryList: [],
      RequestNum: 0,
      IsRefreshing: false,
      DataLock: false
    }
  },
  computed: {
    ...mapIndexState({
      HuiAiXinBanner: x => x.HuiAiXinBanner, // 荟爱心banner
      MingXingYeZhuList: x => x.MingXingYeZhuList, // 明星业主列表
      ZhengNengLiangShiJiList: x => x.ZhengNengLiangShiJiList // 正能量事迹列表
    })
  },
  components: {
    ScrollY,
    BannerSwiper,
    GetUserIcon
  },
  created () {
    this.$authed(() => {
      this.Init()
    })
  },
  methods: {
    ...mapUserActions([
      'MainSignIn' // 获取用户信息
    ]),
    ...mapUserMutations([
      'EditUserInfo' // 编辑用户信息
    ]),
    ...mapIndexActions([
      'GetHuiAiXinBanner', // 获取荟爱心banner
      'GetMingXingYeZhuList', // 获取明星业主列表
      'GetZhengNengLiangShiJiList' // 获取正能量事迹列表
    ]),
    ...mapIndexMutations([
      'EmptyHuiAiXinBanner', // 清空荟爱心banner
      'EmptyMingXingYeZhuList', // 清空明星业主列表
      'EmptyZhengNengLiangShiJiList' // 清空正能量事迹列表
    ]),
    Init () {
      this.RequestNum = 0
      this.EmptyHuiAiXinBanner() // 清空荟爱心banner
      this.EmptyMingXingYeZhuList() // 清空明星业主列表
      this.EmptyZhengNengLiangShiJiList() // 清空正能量事迹列表
      this.PageStarList = []
      this.PageStoryList = []
      this.GetHuiAiXinBanner({ queryData: { pageNum: 1, pageSize: 10, position: 'love' } }).then(() => { // 获取荟爱心banner
        this.CheckRequestNum(3) // 判断请求接口个数
      }).catch(() => {
        this.CheckRequestNum(3) // 判断请求接口个数
      })
      this.GetMingXingYeZhuList({ queryData: { pageNum: 1, pageSize: 10, typeId: 5 } }).then(() => { // 获取明星业主列表
        this.PageStarList = [...this.MingXingYeZhuList]
        this.CheckRequestNum(3) // 判断请求接口个数
      }).catch(() => {
        this.CheckRequestNum(3) // 判断请求接口个数
      })
      this.GetZhengNengLiangShiJiList({ queryData: { pageNum: 1, pageSize: 10, typeId: 6 } }).then(() => { // 获取正能量事迹列表
        this.PageStoryList = [...this.ZhengNengLiangShiJiList]
        this.CheckRequestNum(3) // 判断请求接口个数
      }).catch(() => {
        this.CheckRequestNum(3) // 判断请求接口个数
      })
    },
    CheckRequestNum (num) { // 判断请求接口个数
      this.RequestNum += 1
      if (this.RequestNum >= num) {
        this.IsRefreshing = false
        this.DataLock = false
      }
    },
    Refresh (e) { // 页面下拉刷新
      if (this.DataLock) return
      this.DataLock = true
      this.IsRefreshing = true
      setTimeout(() => {
        this.Init() // 初始化
      }, 1000)
    }
  }
}
</script>

<style lang="scss">
@import "page.scss";
</style>
