classify.js 6.6 KB
// pages/classify/classify.js
let method = require("../../utils/reuqest.js");
const util = require("../../utils/util.js");
Page({
  data: {
    idx: 0, //商品规格索引
    check: false, //商品规格选择
    goodsData: '', //获取商品库存
    keyword: '',
    id: '',
    activeKey: 0,
    count: 1,
    stockNum: '',
    integral: '', //积分
    lableArray: [],
    lableOne: [],
    lableTwo: [],
    lableThree: [],
    list: [],
    location: '',
    latitude: '', //维度
    longitude: '', //经度
  },

  getLocation() {
    let that = this;
    wx.getLocation({
      type: 'gcj02',
      success(res) {
        that.setData({
          latitude: res.latitude,
          longitude: res.longitude
        })
        that.location();
        const speed = res.speed
        const accuracy = res.accuracy
      }
    })
  },
  location() {
    let that = this
    let str = that.data.latitude + ',' + that.data.longitude;
    method.getRequest("/goods/geocoder/v1/" + str, data => {
      if (data.statusCode == 0) {
        that.setData({
          location: data.data.address
        })
      }
    })
  },
  //搜索框
  doSearch() {

  },
  getKeyWord(e) {
    this.setData({
      keyword: e.detail.value
    })
  },
  search() {
    if (this.data.keyword == '') {
      wx.showToast({
        title: '请输入商品名称',
        icon: 'none'
      })
      return false
    }
    wx.navigateTo({
      url: '/pages/searchRequest/searchRequest?keyword=' + this.data.keyword,
    })
  },
  // 导航切换
  catalog() {
    method.getRequest('/category/getCategoryList', data => {
      if (data.statusCode == 0) {
        this.setData({
          lableArray: data.data
        })
        this.onData()
      }
    })
  },
  onChange(e) {
    let that = this;
    let list = that.data.lableArray;
    let id = e.currentTarget.dataset.id;
    that.dataRequest(id)
  },
  //第一次数据请求
  onData() {
    let postData = {
      categoryId: this.data.lableArray[0].categoryId,
      page: 1,
      size: 10
    }
    method.postRequest('/goods/list', postData, data => {
      if (data.statusCode == 0) {
        this.setData({
          list: data.data
        })
      }
    })
  },
  //分类数据请求
  dataRequest: function (id) {
    let postData = {
      categoryId: id,
      page: 1,
      size: 10
    }
    method.postRequest('/goods/list', postData, data => {
      if (data.statusCode == 0) {
        this.setData({
          list: data.data
        })
      }
    })
  },
  addCart(e) {
    let id = e.currentTarget.dataset.id
    this.setData({
      showMask: true
    })
    method.getRequest("/goods/" + id, data => {
      if (data.statusCode == 0) {
        this.setData({
          goodsData: data.data,
          stockNum: data.data.list[0].goodsStock
        })
      } else {
        setTimeout(() => {
          util.getUser()
        }, 2000)
      }
    })
  },
  closeMask() {
    this.setData({
      showMask: false
    })
  },
  confrimCart() {
    let postData = {
      goodsSkuId: this.data.skuId,
      num: this.data.count
    }
    method.postRequest("/cart", postData, data => {
      if (data.statusCode == 0) {
        this.setData({
          showMask: false
        })
        wx.showToast({
          title: "添加购物车成功",
          icon: 'success',
          duration: 1000
        })
      } else {
        wx.showToast({
          title: '请选择商品规格',
          icon: 'none',
          duration: 1000
        })
      }
    })
  },
  decNum() {
    let that = this
    let count = that.data.count
    if (that.data.count > 1) {
      count--
    } else {
      wx.showToast({
        title: '已经是最少了哦~',
        icon: 'none'
      })
    }
    that.setData({
      count
    })
  },
  addNum(e) {
    let that = this
    let count = that.data.count
    let stock = that.data.stockNum
    if (count < stock) {
      count++
    } else {
      wx.showToast({
        title: '不能超过库存哦~',
        icon: 'none'
      })
    }
    that.setData({
      count
    })
  },
  check(e) {
    let list = this.data.goodsData.list;
    let skuId = e.currentTarget.dataset.id;
    this.setData({
      idx: e.currentTarget.dataset.index,
      skuId: skuId
    })
  },
  //兑换
  exchange(e) {
    let jifenNum = e.currentTarget.dataset.integral;
    let defaultSku = e.currentTarget.dataset.defaultSku;
    wx.setStorageSync('defaultSku', e.currentTarget.dataset.defaultsku)
    //获取用户积分
    method.getRequest("/myUser/queryUserInfo", data => {
      if (data.statusCode == 0) {
        this.setData({
          integral: data.data.integral
        })
        if (jifenNum > this.data.integral) {
          wx.showToast({
            title: '您的积分目前不够兑换该商品',
            icon: 'none'
          })
          return false
        } else {
          wx.navigateTo({
            url: '/pages/integral-order/integral-order',
          })
        }
      } else {
        setTimeout(() => {
          util.getUser()
        }, 2000)
      }
    })

  },
  //商品详情
  goGoodsDetail(e) {
    let goodsId = e.currentTarget.dataset.id;
    wx.setStorageSync('goodsId', goodsId)
    wx.navigateTo({
      url: '/pages/product-detail/product-detail',
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // this.dataRequest();

    wx.removeStorageSync('categoryId')
    wx.removeStorageSync('index')
    this.catalog();

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    let categoryId = wx.getStorageSync('categoryId')
    let index = wx.getStorageSync('classifyIndex')
    this.setData({
      activeKey: index
    });
    // this.location()
    //this.getLocation();
    let that = this;
    wx.getLocation({
      type: 'gcj02',
      success(res) {
        that.setData({
          latitude: res.latitude,
          longitude: res.longitude
        })
        that.location();
        const speed = res.speed
        const accuracy = res.accuracy
      },
      fail(errInfo) {
        console.info(errInfo)
      }
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})