gift-shop.js 2.75 KB
import {
  getBindtapData
} from '../../utils/util';

let app = getApp();
Page({
  data: {
    authorizeVisible: false,
    total: 0,
    page: 1,
    size: 10,
    keyWords: "",
    orderSort: 0,
    productList: [],
  },
  onShareAppMessage() {},
  showAuth() {
    this.setData({
      authorizeVisible: true
    })
  },
  onLoad(options) {
    this.queryProduct();
  },
  // 到达底部
  onReachBottom() {
    if (this.data.productList.length < this.data.total) {
      this.setData({
        page: this.data.page + 1
      });
      this.queryProduct();
    }
  },
  // 重置页面列表 点击搜索条件时需要
  resetPage() {
    this.setData({
      page: 1,
      productList: []
    })
  },
  /**
   * 请求产品
   */
  queryProduct() {
    return new Promise((resolve, reject) => {
      app.post({
        sid: false,
        url: app.api.commodityList,
        data: {
          page: this.data.page,
          size: this.data.size,
          orderSort: this.data.orderSort,
          key: this.data.keyWords,
          // min:0,
          // max:0,
        },
      }).then((result) => {
        let productList = result.list;
        console.log("productList:", productList);
        productList = this.data.productList.concat(productList);
        this.setData({
          productList: productList,
          total: result.total
        })
        resolve();
      })
    });
  },

  /**
   * 显示礼物详情
   */
  onShowGiftDetailHandler(evt) {
    let curData = getBindtapData(evt);
    app.globalData.giftInfo = curData;
    app.router.push({
      path: "giftDetail"
    });
  },

  /**
   * 更换排序
   */
  onChangeFitterHandler(e) {
    let orderSort = this.data.orderSort;
    if (orderSort == 0) {
      orderSort = 1;
    } else {
      orderSort = 0;
    }
    this.setData({
      orderSort
    })
    this.resetPage();
    this.queryProduct();
  },

  /**
   * 手动查找产品
   */
  onSearchHandler(e) {
    this.resetPage();
    this.queryProduct();
  },

  /**
   * 我的订单
   */
  onMyOrderHandler(evt) {
    let navIndex = getBindtapData(evt, "index");
    app.router.push({
      path: "myOrder",
      query: {
        navIndex: navIndex
      }
    })
  },

  bindKeyWordsInput(e) {
    this.setData({
      keyWords: e.detail.value
    })
    this.onSearchHandler();
  },

  // 隐藏蒙层
  hideMask() {
    this.setData({
      authorizeVisible: false,
    })
  },
  // 子组件事件
  evtcomp(evt) {
    let {
      name,
      data
    } = evt.detail;
    switch (name) {

      // 隐藏弹窗
      case "_evt_common_comp_button":
        this.hideMask();
        break;

      // 授权完毕
      case "_evt_auth_complete":
        this.resetPage();
        this.queryProduct();
        break;

      default:
        break;
    }
  },
})