<template>
  <view class="container container-secret">
    <view class="tabs-content">
      <view :class="['item-li', isType == item.value && 'item-active']" v-for="item in tabsList" :key="item.value" @click="tabsHandler(item)">
        {{ item.name }}
        <image v-if="isType == item.value" class="border_act" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/border_act.png"></image>
      </view>
    </view>
    <view class="collect-ul" v-if="haveData">
      <view class="collect-ltem" v-for="(item, index) in collectList" :key="index" @click="goDetail(item)">
        <text class="title text_twoLine"
          >{{ item.Title }}
          <text class="reg-text" v-if="item.IsRed"></text>
        </text>
        <view class="content">
          <view class="item-left">
            <view class="abstract">{{ item.Abstract }}</view>
            <view class="desc">
              <text class="publishDate">{{ item.PublishDate }}</text>
            </view>
          </view>
          <u-icon name="arrow-right" color="#BDBDBD" size="34"></u-icon>
        </view>
      </view>
      <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
    </view>
    <view class="nodata" v-else>
      <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
      <text>暂时没有报告的内容</text>
    </view>
    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
    <Loading />
  </view>
</template>

<script>
import { Reports } from "@/config/api.js";
import { Throttle } from "@/config/util.js";
import freeCharge from "@/components/freeCharge";
let app = getApp({ allowDefault: true });
export default {
  data() {
    return {
      isType: 2,
      refresh: false, //正在下拉
      page_no: 1,
      pageSize: 10,
      collectList: [],
      haveData: true,
      totalPage: "",
      status: "loadmore",
      loadText: {
        loadmore: "上拉加载更多",
        loading: "加载中",
        nomore: "已经到底了",
      },
      tabsList: [
        { name: "本周研究汇总", value: 2 },
        { name: "上周纪要汇总", value: 3 },
        // { name: "报告精选", value: 1 },
      ],
    };
  },
  components: {
    freeCharge,
  },
  computed: {},
  methods: {
    //点击头部的tabs
    tabsHandler(item) {
      this.isType = item.value;
      this.page_no = 1;
      this.getList();
    },
    //获取数据
    async getList() {
      const res = await Reports.reportListByType({
        PageSize: this.pageSize,
        CurrentIndex: this.page_no,
        ReportType: this.isType,
      });
      if (res.Ret == 200) {
        this.status = this.page_no < res.Data.Paging.Pages ? "loadmore" : "nomore";
        this.totalPage = res.Data.Paging.Pages; //总页数
        if (this.page_no === 1) {
          this.collectList = res.Data.List || [];
          this.haveData = this.collectList.length ? true : false;
          if (this.refresh) {
            uni.stopPullDownRefresh();
            this.refresh = false;
          }
        } else {
          this.collectList = this.collectList.concat(res.Data.List);
        }
      }
    },
    //跳转详情
    goDetail(item) {
      /* 无需授权且已绑定 检验是或否有权限 */
      item.IsRed = false;
      uni.navigateTo({ url: "/reportPages/reportSecretDetail/reportSecretDetail?type=" + this.isType + "&id=" + item.ArticleId });
    },
  },
  onLoad(option) {
    this.isType = option.type || 2;
    this.getList();
  },
  /* 触底 */
  onReachBottom: Throttle(function () {
    if (this.status === "nomore") return;
    this.status = "loading";
    this.page_no++;
    this.getList();
  }),
  /* 下拉刷新 */
  onPullDownRefresh: Throttle(function () {
    this.page_no = 1;
    this.refresh = true;
    this.getList();
  }),
  /* 用户点击分享  */
  onShareAppMessage: function (res) {
    return {
      title: this.isHorzMobile ? "好友向您推荐此内容，上传名片享查研观向免费月卡！" : "周度汇总",
      path: "/reportPages/secretDetails/secretDetails?type=" + this.isType,
      success: (res) => {},
      fail: (err) => {},
    };
  },
};
</script>

<style lang="scss" scoped>
.container-secret {
  background: #f7f7f7;
  padding-bottom: 30rpx;
  .tabs-content {
    position: sticky;
    top: -1rpx;
    left: 0;
    background-color: #fff;
    height: 81rpx;
    display: flex;
    font-size: 30rpx;
    font-weight: 400;
    padding: 21rpx 35rpx 0;
    color: #999999;
    z-index: 99;
    .item-li {
      position: relative;
      margin-right: 60rpx;
      .border_act {
        width: 60%;
        height: 6rpx;
        position: absolute;
        bottom: 0rpx;
        left: 50%;
        transform: translateX(-50%);
      }
    }
    .item-active {
      color: #333333;
      font-weight: 500;
    }
  }
  .collect-ul {
    padding-top: 4rpx;
    .collect-ltem {
      padding: 30rpx 20rpx 30rpx 34rpx;
      background: #fff;
      margin-bottom: 4rpx;
      width: 682rpx;
      margin: 20rpx auto 0;
      .title {
        position: relative;
        color: #4a4a4a;
        font-size: 34rpx;
        padding-left: 28rpx;

        .reg-text {
          position: absolute;
          top: 15rpx;
          left: 0rpx;
          width: 14rpx;
          height: 14rpx;
          background-color: #ff0000;
          border-radius: 50%;
          z-index: 9;
        }
      }

      .content {
        display: flex;
        align-items: center;
        justify-content: space-between;
      }

      .desc {
        display: flex;
        align-items: center;
        margin-top: 17rpx;
        padding-left: 28rpx;
        color: #999;
      }

      .publishDate {
        margin-right: 30rpx;
        white-space: nowrap;
      }

      .text-name {
        color: #2c83ff;
        font-size: 26rpx;
      }
    }
  }
  .title {
    color: #333333;
    font-size: 30rpx;
    font-weight: 400;
    width: 100%;
    padding-bottom: 15rpx;
    border-bottom: 1px dashed #ccc;
  }
  .abstract {
    margin: 20rpx 0 0 30rpx;
    color: #666666;
    font-size: 28rpx;
    font-weight: 400;
    padding-right: 10rpx;
  }
}
</style>
