index.js 4.47 KB
import wx from '../../utils/wx';
import config from '../../common/config';
import Yas from '../../common/yas';
import LimitModel from '../../models/limit/index';

// 获取应用实例
let app = getApp();
let yas;
let router = global.router;

Page({
  data: {
    tabSelected: 0,
    refreshText: '下拉刷新',
    footText: '内容加载中...',
    userInfo: {},
    tabBarArr: [
      {
        icon: '../../static/images/limit/icon_rmfs_n@3x.png',
        iconSelected: '../../static/images/limit/icon_rmfs_p@3x.png',
        name: '热门发售',
        method: 'app.limitProduct.hotLimitProduct',
        reportName: 'home_hot'
      },
      {
        icon: '../../static/images/limit/icon_jjfs_n@3x.png',
        iconSelected: '../../static/images/limit/icon_jjfs_p@3x.png',
        name: '即将发售',
        method: 'app.limitProduct.soonToSaleLimitProduct',
        reportName: 'home_soon'
      },
      {
        icon: '../../static/images/limit/icon_yjfs_n@3x.png',
        iconSelected: '../../static/images/limit/icon_yjfs_p@3x.png',
        name: '已经发售',
        method: 'app.limitProduct.alreadySaleLimitProduct',
        reportName: 'home_already'
      }
    ],
    listData: [
      {}, {}, {}
    ],
    icon: {
      clock: '../../static/images/limit/clock_left.png'
    }
  },
  onLoad: function() {
    yas = new Yas(app);
    let that = this;


    setTimeout(function() {
      that.getList(0, 1, 20, false);
    }, 300);

    // this.getList(0, 1, 20, false);
  },
  onShow: function() {
    let pageName = this.data.tabBarArr[this.data.tabSelected].reportName;

    yas.pageOpenReport('', { PAGE_NAME: pageName });
  },
  onPullDownRefresh: function() {
    this.setData({
      refreshText: '加载中...'
    });

    let pageName = this.data.tabBarArr[this.data.tabSelected].reportName;

    yas.pageOpenReport('', { PAGE_NAME: pageName });

    this.getList(this.data.tabSelected, 1, 20, false).then(() => {
      wx.stopPullDownRefresh();
      this.setData({
        refreshText: '下拉刷新'
      });
    });
  },
  onReachBottom: function() {
    let page = this.data.listData[this.data.tabSelected].page;
    let page_total = this.data.listData[this.data.tabSelected].page_total;

    if (page < page_total) {
      page += 1;
      this.getList(this.data.tabSelected, page, 20, true);
    }
  },
  tabChange: function(e) { // 切换TAB
    let index = e.currentTarget.dataset.index;

    if (index !== this.data.tabSelected) {
      this.setData({
        tabSelected: index
      });
      let pageName = this.data.tabBarArr[this.data.tabSelected].reportName;

      yas.pageOpenReport('', { PAGE_NAME: pageName });

      // 如果listData没有数据,或者数据为空,则调用接口
      if (!this.data.listData[index].limitProductVoList || this.data.listData[index].limitProductVoList.length === 0) {
        this.getList(index, 1, 20, false);
      }
    }
  },

  /**
     * 获取限定发售列表
     * index: tab的index,
     * page:分页,
     * limit: 每页数量,
     * isBottom:是否是到达底部后触发的
     */
  getList: function(index, page, limit, isBottom) {
    let method = this.data.tabBarArr[index].method;
    let that = this;

    this.setData({
      footText: '内容加载中...'
    });

    return LimitModel.getLimitSaleList({
      method: method,
      page: page,
      limit: limit
    }).then(res => {
      console.log(res.data);
      if (res.data && res.data.limitProductVoList) {
        // 获取到已有的data数据,对某部分数据进行赋值后再setData
        let list = that.data.listData;

        if (isBottom) {
          list[index].page = page;
          list[index].limitProductVoList =
                        list[index].limitProductVoList.concat(res.data.limitProductVoList);
        } else {
          list[index] = res.data;
        }
        that.setData({
          listData: list,
          footText: '暂无更多内容'
        });
      }
    });
  },
  navigateToDetail: function(e) { // 跳转到详情页
    console.log(e);
    let id = e.currentTarget.dataset.id;
    let limitProductCode = e.currentTarget.dataset.code;

    if (app.getUid() && app.getUserInfo().wechat) {
      router.go('productDetail', {limitProductCode});
    } else {
      let pages = getCurrentPages();
      let referer = `/pages/product/detail/detail?limitProductCode=${limitProductCode}`;

      router.go('userCenter', {referer});
    }
  },
  navigateToHome: function(e) { // 跳转到我的限购码
    router.go('userCenter');
  }
});