|
|
|
|
//index.js
|
|
|
|
|
const api = require('../../utils/request.js')
|
|
|
|
|
const CONFIG = require('../../config.js')
|
|
|
|
|
//获取应用实例
|
|
|
|
|
var app = getApp()
|
|
|
|
|
Page({
|
|
|
|
|
data: {
|
|
|
|
|
indicatorDots: true,
|
|
|
|
|
autoplay: true,
|
|
|
|
|
interval: 3000,
|
|
|
|
|
duration: 1000,
|
|
|
|
|
loadingHidden: false, // loading
|
|
|
|
|
userInfo: {},
|
|
|
|
|
swiperCurrent: 0,
|
|
|
|
|
selectCurrent: 0,
|
|
|
|
|
categories: [],
|
|
|
|
|
activeCategoryId: 0,
|
|
|
|
|
goods: [],
|
|
|
|
|
scrollTop: 0,
|
|
|
|
|
loadingMoreHidden: true,
|
|
|
|
|
|
|
|
|
|
hasNoCoupons: true,
|
|
|
|
|
coupons: [],
|
|
|
|
|
searchInput: '',
|
|
|
|
|
|
|
|
|
|
curPage: 1,
|
|
|
|
|
pageSize: 20
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
tabClick: function(e) {
|
|
|
|
|
this.setData({
|
|
|
|
|
activeCategoryId: e.currentTarget.id,
|
|
|
|
|
curPage: 1
|
|
|
|
|
});
|
|
|
|
|
this.getGoodsList(this.data.activeCategoryId);
|
|
|
|
|
},
|
|
|
|
|
//事件处理函数
|
|
|
|
|
swiperchange: function(e) {
|
|
|
|
|
//console.log(e.detail.current)
|
|
|
|
|
this.setData({
|
|
|
|
|
swiperCurrent: e.detail.current
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
toDetailsTap: function(e) {
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: "/pages/goods-details/index?id=" + e.currentTarget.dataset.id
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
tapBanner: function(e) {
|
|
|
|
|
if (e.currentTarget.dataset.id != 0) {
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: "/pages/goods-details/index?id=" + e.currentTarget.dataset.id
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
bindTypeTap: function(e) {
|
|
|
|
|
this.setData({
|
|
|
|
|
selectCurrent: e.index
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
onLoad: function() {
|
|
|
|
|
var that = this
|
|
|
|
|
wx.setNavigationBarTitle({
|
|
|
|
|
title: wx.getStorageSync('mallName')
|
|
|
|
|
})
|
|
|
|
|
/**
|
|
|
|
|
* 示例:
|
|
|
|
|
* 调用接口封装方法
|
|
|
|
|
*/
|
|
|
|
|
api.fetchRequest('/banner/list', {
|
|
|
|
|
key: 'mallName'
|
|
|
|
|
}).then(function(res) {
|
|
|
|
|
if (res.data.code == 404) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '请在后台添加 banner 轮播图片',
|
|
|
|
|
showCancel: false
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
that.setData({
|
|
|
|
|
banners: res.data.data
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}).catch(function(res) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: res.data.msg,
|
|
|
|
|
icon: 'none'
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
api.fetchRequest('/shop/goods/category/all').then(function(res) {
|
|
|
|
|
var categories = [{
|
|
|
|
|
id: 0,
|
|
|
|
|
name: "全部"
|
|
|
|
|
}];
|
|
|
|
|
if (res.data.code == 0) {
|
|
|
|
|
for (var i = 0; i < res.data.data.length; i++) {
|
|
|
|
|
categories.push(res.data.data[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
that.setData({
|
|
|
|
|
categories: categories,
|
|
|
|
|
activeCategoryId: 0,
|
|
|
|
|
curPage: 1
|
|
|
|
|
});
|
|
|
|
|
that.getGoodsList(0);
|
|
|
|
|
})
|
|
|
|
|
that.getCoupons();
|
|
|
|
|
that.getNotice();
|
|
|
|
|
},
|
|
|
|
|
onPageScroll(e) {
|
|
|
|
|
let scrollTop = this.data.scrollTop
|
|
|
|
|
this.setData({
|
|
|
|
|
scrollTop: e.scrollTop
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
getGoodsList: function(categoryId, append) {
|
|
|
|
|
if (categoryId == 0) {
|
|
|
|
|
categoryId = "";
|
|
|
|
|
}
|
|
|
|
|
var that = this;
|
|
|
|
|
wx.showLoading({
|
|
|
|
|
"mask": true
|
|
|
|
|
})
|
|
|
|
|
api.fetchRequest('/shop/goods/list', {
|
|
|
|
|
categoryId: categoryId,
|
|
|
|
|
nameLike: that.data.searchInput,
|
|
|
|
|
page: this.data.curPage,
|
|
|
|
|
pageSize: this.data.pageSize
|
|
|
|
|
}).then(function(res) {
|
|
|
|
|
wx.hideLoading()
|
|
|
|
|
if (res.data.code == 404 || res.data.code == 700) {
|
|
|
|
|
let newData = {
|
|
|
|
|
loadingMoreHidden: false
|
|
|
|
|
}
|
|
|
|
|
if (!append) {
|
|
|
|
|
newData.goods = []
|
|
|
|
|
}
|
|
|
|
|
that.setData(newData);
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
let goods = [];
|
|
|
|
|
if (append) {
|
|
|
|
|
goods = that.data.goods
|
|
|
|
|
}
|
|
|
|
|
for (var i = 0; i < res.data.data.length; i++) {
|
|
|
|
|
goods.push(res.data.data[i]);
|
|
|
|
|
}
|
|
|
|
|
that.setData({
|
|
|
|
|
loadingMoreHidden: true,
|
|
|
|
|
goods: goods,
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
getCoupons: function() {
|
|
|
|
|
var that = this;
|
|
|
|
|
api.fetchRequest('/discounts/coupons').then(function (res) {
|
|
|
|
|
if (res.data.code == 0) {
|
|
|
|
|
that.setData({
|
|
|
|
|
hasNoCoupons: false,
|
|
|
|
|
coupons: res.data.data
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
gitCoupon: function(e) {
|
|
|
|
|
var that = this;
|
|
|
|
|
api.fetchRequest('/discounts/fetch', {
|
|
|
|
|
id: e.currentTarget.dataset.id,
|
|
|
|
|
token: wx.getStorageSync('token')
|
|
|
|
|
}).then(function (res) {
|
|
|
|
|
if (res.data.code == 20001 || res.data.code == 20002) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '错误',
|
|
|
|
|
content: '来晚了',
|
|
|
|
|
showCancel: false
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (res.data.code == 20003) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '错误',
|
|
|
|
|
content: '你领过了,别贪心哦~',
|
|
|
|
|
showCancel: false
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (res.data.code == 30001) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '错误',
|
|
|
|
|
content: '您的积分不足',
|
|
|
|
|
showCancel: false
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (res.data.code == 20004) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '错误',
|
|
|
|
|
content: '已过期~',
|
|
|
|
|
showCancel: false
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (res.data.code == 0) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '领取成功,赶紧去下单吧~',
|
|
|
|
|
icon: 'success',
|
|
|
|
|
duration: 2000
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '错误',
|
|
|
|
|
content: res.data.msg,
|
|
|
|
|
showCancel: false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
onShareAppMessage: function() {
|
|
|
|
|
return {
|
|
|
|
|
title: wx.getStorageSync('mallName') + '——' + CONFIG.shareProfile,
|
|
|
|
|
path: '/pages/index/index',
|
|
|
|
|
success: function(res) {
|
|
|
|
|
// 转发成功
|
|
|
|
|
},
|
|
|
|
|
fail: function(res) {
|
|
|
|
|
// 转发失败
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
getNotice: function() {
|
|
|
|
|
var that = this;
|
|
|
|
|
api.fetchRequest('/notice/list', {pageSize: 5}).then(function (res) {
|
|
|
|
|
if (res.data.code == 0) {
|
|
|
|
|
that.setData({
|
|
|
|
|
noticeList: res.data.data
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
listenerSearchInput: function(e) {
|
|
|
|
|
this.setData({
|
|
|
|
|
searchInput: e.detail.value
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
toSearch: function() {
|
|
|
|
|
this.setData({
|
|
|
|
|
curPage: 1
|
|
|
|
|
});
|
|
|
|
|
this.getGoodsList(this.data.activeCategoryId);
|
|
|
|
|
},
|
|
|
|
|
onReachBottom: function() {
|
|
|
|
|
this.setData({
|
|
|
|
|
curPage: this.data.curPage + 1
|
|
|
|
|
});
|
|
|
|
|
this.getGoodsList(this.data.activeCategoryId, true)
|
|
|
|
|
},
|
|
|
|
|
onPullDownRefresh: function() {
|
|
|
|
|
this.setData({
|
|
|
|
|
curPage: 1
|
|
|
|
|
});
|
|
|
|
|
this.getGoodsList(this.data.activeCategoryId)
|
|
|
|
|
}
|
|
|
|
|
})
|