// pages/classify/classify.js let method = require("../../utils/reuqest.js"); const util = require("../../utils/util.js"); Page({ data: { page: 1, classifyId: "", idx: 0, //商品规格索引 check: false, //商品规格选择 goodsData: '', //获取商品库存 keyword: '', id: '', activeKey: 0, count: 1, stockNum: '', integral: '', //积分 lableArray: [], lableOne: [], lableTwo: [], lableThree: [], list: [], location: '', latitude: '', //维度 longitude: '', //经度 bottomHint: false //触底提示 }, // tabbar toHome() { wx.reLaunch({ url: '/pages/home/home', }) }, toShopCart() { wx.reLaunch({ url: '/pages/shopping-cart/shopping-cart', }) }, toUser() { wx.reLaunch({ url: '/pages/user/user', }) }, //获取定位 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.split('市')[1] }) } }) }, //搜索框 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; this.setData({ classifyId: id }) that.dataRequest(id) }, //第一次数据请求 onData(id) { let postData = { categoryId:this.data.classifyId, page: this.data.page, size: 10 } method.postRequest('/goods/list', postData, data => { let lists = this.data.page == 1 ? data.data : this.data.list.concat(data.data) if (data.statusCode == 0) { this.setData({ list: lists }) } }) }, //分类数据请求 dataRequest: function (id) { this.setData({ page:1 }) let postData = { categoryId: id, page: this.data.page, size: 10 } method.postRequest('/goods/list', postData, data => { wx.stopPullDownRefresh() let lists = this.data.page == 1 ? data.data : this.data.list.concat(data.data) if (data.statusCode == 0) { this.setData({ list: lists }) } }) }, 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(); this.catalog(); if (wx.getStorageSync('categoryId')) { let id=wx.getStorageSync('categoryId') this.setData({ classifyId: id }) this.dataRequest(this.data.classifyId); } else { setTimeout(() => { this.setData({ classifyId: this.data.lableArray[0].categoryId }) }, 500) this.dataRequest(this.data.classifyId); } wx.removeStorageSync('categoryId') wx.removeStorageSync('index') this.catalog(); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { let categoryId = wx.getStorageSync('categoryId') let index = wx.getStorageSync('classifyIndex') if(index){ this.setData({ activeKey: index }); }else{ this.setData({ activeKey:0 }) } wx.removeStorageSync("classifyIndex") 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 () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onRefresh() { this.setData({ page: 1, list: [] }) this.dataRequest(this.data.classifyId); }, onPullDownRefresh: function () { this.onRefresh() }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { this.setData({ page: Number(this.data.page) + 1 }) this.dataRequest(this.data.classifyId); this.setData({ bottomHint: true }) setTimeout(() => { this.setData({ bottomHint: false }) }, 2000) }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })