text: // pages/goods_list/goods_list.js
  import { request } from "../../request/request.js";
  import { regeneratorRuntime } from "../../lib/runtime/runtime.js"
  Page({
  
    /**
     * 页面的初始数据
     */
    data: {
      tabs: [
        {
          id: 0,
          value: "综合",
          isActive: true
        },
        {
          id: 1,
          value: "销量",
          isActive: false
        },
        {
          id: 2,
          value: "价格",
          isActive: false
        }
      ],
      goodsList: []
  
    },
    // 接口要的参数
    QueryParams: {
      query: "",
      cid: "",
      pagenum: 1,
      pagesize: 10
    },
    // 总页数
    totalPage: 1,
  
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
      this.QueryParams.cid = options.cid || "";
      this.QueryParams.query = options.query || "";
      this.getGoodsList()
  
    },
    // es7 获取商品列表数据
    async getGoodsList() {
      const result = await request({ url: "/goods/search", data: this.QueryParams });
      // console.log(result);
      // 获取总条数
      const total = result.total;
      // 获取总页数
      this.totalPage = Math.ceil(total / this.QueryParams.pagesize);
      // console.log(this.totalPage);
  
      this.setData({
        goodsList: [...this.data.goodsList, ...result.goods]
      });
      // 手动关闭下拉刷新窗口 如果没有调用下拉刷新窗口 调用关闭也不会报错
      wx.stopPullDownRefresh()
  
    },
    // es6语法
    // getGoodsList() {
    //   request({
    //     url: "/goods/search",
    //   }).then(result => {
    //     console.log(result);
    //   })
    // },
    handleTabsItemChange(e) {
      // 标题点击事件 从子组件传递过来
      // console.log(e);
      // 1.获取标题索引
      const { index } = e.detail;
      // 2.修改源数组
      let { tabs } = this.data;
      tabs.forEach((v, i) => i === index ? v.isActive = true : v.isActive = false)
      // 3.赋值到data中去
      this.setData({
        tabs
      })
    },
  
    /* 
    1. 用户上滑页面 滚动条触底 开始加载下一页数据
      1 找到滚动条触底事件 微信小程序官方开发文档寻找
      2 判断还有没有下一页数据
        1 获取到总页数 但是只有总条数
          总页数 = Math.ceil(总条数 / 页容量 pagesize)
          总页数 = Math.ceil(23 / 10) = 3
        2 获取到当前的页码 pagesize
        3 判断一下当前的页码是否大于等于 总页数(大于 表示没有下一页)
      3 假如没有下一页数据 弹出一个提示
      4 假如还有下一页数据 来加载下一页数据
        1 当前的页码 ++
        2 重新发送请求
        3 数据请求回来 要对data中的数组 进行 拼接 而不是全部替换!!!
    2. 下拉刷新页面
      1 触发下拉刷新事件 需要在页面的json文件中开启一个配置项
        找到 触发下拉刷新的事件
      2 重置 数据 数组
      3 重置页码 设置为1
      4 数据请求回来 需要手动关闭下拉刷新窗口
    */
    // 页面上滑 滚动条触底事件
    onReachBottom() {
      if (this.QueryParams.pagenum >= this.totalPage) {
        // console.log("没有下一页数据");
        wx.showToast({
          title: '没有下一页',
  
        });
      } else {
        // console.log("有下一页数据");
        this.QueryParams.pagenum++;
        this.getGoodsList()
  
      }
  
    },
    // 下拉刷新事件
    onPullDownRefresh() {
      // 1 重置数组
      this.setData({
        goodsList: []
      })
      // 2 重置页码
      this.QueryParams.pagenum = 1;
      // 3 重新发送请求
      this.getGoodsList()
    }
  
  })