var http = require("../../utils/http.js");
var config = require("../../utils/config.js");
Page({

  /**
   * 页面的初始数据
   */
  data: {
    records: [],
    shareShow: false,
    wxCodeShow: false,
    shareProdId: 0,
    shareProdName: "",
    sharePic: "",
    shareWxCode: "", //分享商品微信二维码
    loadingMsg: "正在加载..",
    emptyMsg: "",
    totalPage: 1,
    pageNum: 1,
    prodName: "", //搜索的名称
    orderBy: 1, //排序(0升序 1降序) 默认1
    sort: 1 //排序(0 佣金排序 1时间排序 2销量排序 3价格排序) 默认1
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.showLoading();
    this.loadPageData(1);
  },

  //加载分页数据
  loadPageData: function (pageNum) {
    var ths = this;
    http.request({
      url: "/p/distribution/prod/page",
      method: "GET",
      data: {
        // shopId: 1,
        current: pageNum,
        orderBy: this.data.orderBy,
        prodName: this.data.prodName,
        size: 20,
        sort: this.data.sort,
      },
      callBack: (res) => {
        wx.hideLoading();
        var records = [];
        if (res.current == 1) {
          records = res.records;
        } else {
          records = this.data.records;
          Array.prototype.push.apply(records, res.records);
        }
        var loadingMsg = this.data.loadingMsg;
        if (pageNum == res.pages) {
          loadingMsg = "没有更多了~";
        }
        console.log(res)
        ths.setData({
          records: records,
          totalPage: res.pages,
          pageNum: pageNum,
          loadingMsg: loadingMsg,
          emptyMsg: "没有找到推广商品哦~"
        });
      }
    });
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    wx.showLoading();
    this.loadPageData(1);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.data.pageNum < this.data.totalPage) {
      this.loadPageData(this.data.pageNum + 1);
    }
  },

  /** 
   * 点击导航菜单
   */
  onTabTouch: function (e) {
    var sort = e.currentTarget.dataset.sort;
    if (sort == this.data.sort) {
      this.setData({
        orderBy: this.data.orderBy == 0 ? 1 : 0
      });
      wx.showLoading();
      this.loadPageData(1);
    } else {
      this.setData({
        sort: sort,
        orderBy: 1
      });
      wx.showLoading();
      this.loadPageData(1);
    }
  },

  /**
   * 名称输入
   */
  onProdNameInput: function (e) {
    this.setData({
      prodName: e.detail.value
    });
  },

  /**
   * 搜索
   */
  onProdNameSearch: function () {
    wx.showLoading();
    this.loadPageData(1);
  },

  /**
   * 显示分享弹窗
   */
  onShowShare: function (e) {
    var prodId = e.currentTarget.dataset.prodid;
    var prodName = e.currentTarget.dataset.prodname;
    var pic = e.currentTarget.dataset.pic;
    var shareType = e.currentTarget.dataset.type
    console.log(e)
    this.setData({
      shareShow: true,
      shareProdId: prodId,
      shareProdName: prodName,
      sharePic: pic,
      shareType: shareType
    });

    //从缓存获取分销员卡号，如果没有则去接口获取，以备转发时使用
    var cardno = wx.getStorageSync("distCardNo");
    if (!cardno) {
      http.request({
        url: "/p/distribution/user/distributionUserInfo",
        method: "GET",
        // data: {
        //   shopId: 1,
        // },
        callBack: (res) => {
          wx.setStorageSync("distCardNo", res.cardNo);
        }
      })
    }
  },

  /**
   * 关闭分享弹窗
   */
  closeEarn: function () {
    this.setData({
      shareShow: false
    })
  },

  /**
   * 用户点击转发
   */
  onShareAppMessage: function (res) {
    if (res.from === 'button') {
      var cardno = wx.getStorageSync("distCardNo");
      return {
        title: this.data.shareProdName,
        path: '/pages/prod/prod?prodid=' + this.data.shareProdId + '&cardno=' + cardno + '&type=' + this.data.shareType,
        imageUrl: this.data.sharePic,
        success: function (res) {
          // 转发成功
          console.log('转发成功')
          console.log(title, path, imageUrl)
        },
        fail: function (res) {
          // 转发失败
          console.log('转发失败')
          console.log(title, path, imageUrl)
        }
      }
    }
  },

  /**
   * 生成小程序二维码
   */
  genWeixinCode() {
    wx.showLoading({
      mask: true
    })
    var cardNo = wx.getStorageSync("distCardNo");
    var content = JSON.stringify({
      shareProdId: this.data.shareProdId,
      cardNo: cardNo,
    })
    console.log(content)
    http.request({
      url: "/qrcodeTicket/miniQrCode",
      method: "GET",
      responseType: 'arraybuffer',
      data: {
        content: content,
        type: 2
      },
      callBack: (res) => {
        this.setData({
          wxCodeShow: true,
          shareShow: false,
          shareWxCode: "data:image/jpg;base64," + wx.arrayBufferToBase64(res)
        });
        wx.hideLoading();
      }
    })
  },

  /**
   * 关闭二维码弹窗
   */
  closeCodePopup() {
    this.setData({
      wxCodeShow: false
    });
  },

  /**
   * 保存图片至相册
   */
  downloadImg() {
    var ths = this
    var imgSrc = this.data.shareWxCode.slice(22); //base64编码
    var save = wx.getFileSystemManager();
    save.writeFile({
      filePath: wx.env.USER_DATA_PATH + '/分享商品-' + this.data.shareProdName + '.png',
      data: imgSrc,
      encoding: 'base64',
      success: res => {
        wx.saveImageToPhotosAlbum({
          filePath: wx.env.USER_DATA_PATH + '/分享商品-' + this.data.shareProdName + '.png',
          success: function (res) {
            wx.showToast({
              title: '保存成功',
            })
            ths.setData({
              wxCodeShow: false
            })
          },
          fail: function (err) {
            wx.showModal({
              title: '提示',
              content: '保存图片需要授予存储权限',
              success: modalRes => {
                if (modalRes.confirm) {
                  wx.openSetting({
                    success(settingdata) {
                      if (settingdata.authSetting['scope.writePhotosAlbum']) {
                        console.log('用户权限成功')
                      } else {
                        console.log('用户取消权限')
                      }
                    }
                  })
                }
              }
            })
          }
        })
        console.log(res)
      },
      fail: err => {
        console.log(err)
      }
    })
  }
})