const app = getApp();
|
var util = require('../../utils/util.js');
|
var api = require('../../utils/service-api.js');
|
var comReq = require('../../utils/common-request.js');
|
var shopcart = require('../../utils/shopcart.js');
|
Page({
|
|
/**
|
* 页面的初始数据
|
*/
|
data: {
|
currentIndex: 0,
|
tabs: [],
|
productList: [],
|
offset: 0,
|
limit: 8,
|
queryKey: '',
|
isEnd: false,
|
shopId:'',
|
toTopIcon:false,
|
top_num:0,
|
totalNum: 0,
|
hasCarts: true,
|
hide_good_box: true,
|
needAni: -1,
|
|
},
|
|
|
|
onLoad: function(options) {
|
var _this = this;
|
|
|
this.getProductAttribute();
|
|
this.setData({
|
shopId:app.shopInfo.id,
|
});
|
|
// 获取页面的有关信息
|
|
wx.getSystemInfo({
|
success: function (res) {
|
wx.setStorageSync('systemInfo', res)
|
var ww = res.windowWidth;
|
var hh = res.windowHeight;
|
|
_this.busPos = {};
|
_this.busPos['x'] = ww - 35;
|
_this.busPos['y'] = hh - 65;
|
}
|
});
|
|
|
},
|
onShow(){
|
|
//切换店铺重新加载产品
|
if (this.data.shopId && app.shopInfo.id != this.data.shopId){
|
this.cleanSearchCondition();
|
this.getProductAttribute();
|
|
this.setData({
|
shopId:app.shopInfo.id,
|
});
|
//刷新购物车数量
|
this.refreshUserCartCount();
|
}
|
|
|
},
|
|
//切换分类
|
titleClick: function(e) {
|
let currentPageIndex = e.currentTarget.dataset.idx;
|
this.setData({
|
currentIndex: currentPageIndex,
|
})
|
this.cleanSearchCondition();
|
this.getProduct();
|
},
|
|
/**
|
* 清空数据加载条件
|
*/
|
cleanSearchCondition(){
|
this.setData({
|
productList: [],
|
offset: 0,
|
isEnd: false,
|
})
|
},
|
|
//获取产品分类
|
getProductAttribute() {
|
var _this = this;
|
util.request({
|
api: api.productAttribute.getByCode+app.shopInfo.id+"/cpfl",
|
callback: function(data) {
|
_this.setData({
|
tabs: data.rows,
|
});
|
//加载产品
|
_this.getProduct();
|
}
|
});
|
},
|
|
formTitle: function(e) {
|
this.setData({
|
queryKey: e.detail.value
|
})
|
},
|
|
|
onSearching() {
|
if (this.queryKey.length > 0) {
|
this.setData({
|
currentIndex: -1
|
});
|
this.cleanSearchCondition();
|
this.getProduct();
|
}
|
},
|
|
|
|
|
|
// 加载产品数据
|
getProduct: function() {
|
|
var _this = this;
|
var limit = _this.data.limit;
|
var offset = _this.data.offset;
|
var queryKey = _this.data.queryKey;
|
var currentIndex = this.data.currentIndex;
|
var categoryId = '';
|
if (this.data.tabs.length >0 && currentIndex != -1) {
|
categoryId = this.data.tabs[currentIndex].attrId;
|
}
|
|
util.request({
|
api: api.goods.searchGoods,
|
data: {
|
"limit": limit,
|
"categoryId": categoryId,
|
"offset": offset,
|
"shopIds": app.shopInfo.id,
|
"title": queryKey
|
},
|
callback: function(data) {
|
|
if (data.rows.length == 0) {
|
_this.setData({
|
isEnd: true
|
});
|
} else {
|
var productList = _this.data.productList;
|
for (var i = 0; i < data.rows.length; i++) {
|
productList.push(data.rows[i])
|
}
|
//更新下次调用的角标
|
_this.setData({
|
productList: productList,
|
offset: offset + limit,
|
});
|
}
|
}
|
});
|
|
},
|
|
|
// 进入详情
|
intoDetail(e) {
|
var _this = this;
|
var id = e.currentTarget.dataset.id;
|
var service = e.currentTarget.dataset.service;
|
if (service == 1) {
|
|
this.checkUserInfoIsBuding()
|
|
var index = e.currentTarget.dataset.index;
|
|
var product = this.data.productList[index];
|
wx.setStorageSync('chooseService', product);
|
wx.switchTab({
|
url: '/pages/yuyue/khyuyue'
|
});
|
} else {
|
wx.navigateTo({
|
url: '/pages/service/details?id=' + id,
|
})
|
}
|
},
|
|
|
|
|
//检查用户信息是否绑定
|
checkUserInfoIsBuding() {
|
if (util.isBlank(getApp().userInfo.nickName)) {
|
wx.navigateTo({
|
url: '/pages/welcome/welcome?url=/pages/yuyue/khyuyue',
|
})
|
} else if (util.isBlank(getApp().userInfo.phoneNumber)) {
|
wx.navigateTo({
|
url: '/pages/phone/phone?url=/pages/yuyue/khyuyue',
|
})
|
}
|
},
|
|
//点击购物车事件
|
touchOnGoods: function (e) {
|
var _this = this;
|
var id = e.currentTarget.dataset.id;
|
var stockNum = e.currentTarget.dataset.stockNum;
|
if (stockNum < 1) {
|
wx.showToast({
|
title: "您来晚了,商品已经抢光了",
|
icon: 'none',
|
});
|
return;
|
}
|
var productInfo = {};
|
var _this = this;
|
//查询产品信息
|
util.request({method:"GET",
|
api: api.goods.productInfo + app.shopInfo.id+"/"+ id,
|
callback: function (data) {
|
productInfo = data.rows[0];
|
if (productInfo.skus.length == 1) {
|
var skuId = productInfo.skus[0].id;
|
_this.busAnimation(e);
|
shopcart.playAnimation({
|
page: _this,
|
event: e,
|
}, function () {
|
comReq.addShoppingCar(skuId, 1,function(totalNum){
|
|
_this.setData({
|
totalNum: totalNum
|
});
|
|
});
|
|
});
|
} else {
|
//存在多个库存
|
_this.setData({
|
normsList: data.rows[0].skus,
|
currentGoodsInfo: data.rows[0],
|
currentSku: data.rows[0].skus[0],
|
normspopup: true
|
});
|
|
|
}
|
}});
|
|
},
|
//刷新购物车数量
|
refreshUserCartCount() {
|
var _this = this;
|
util.request({method:"POST",
|
api: api.goods.getUserCartCount+app.shopInfo.id,
|
callback: function (data) {
|
_this.setData({
|
totalNum: data.mapInfo.userCartCount
|
});
|
}});
|
},
|
|
|
//购物车放大效果
|
busAnimation: function (e) {
|
var id = e.currentTarget.dataset.id;
|
var that = this;
|
that.setData({
|
needAni: id
|
});
|
setTimeout(function () {
|
that.setData({
|
needAni: -1
|
});
|
}, 500);
|
},
|
|
|
|
|
//一键回到顶部
|
goTap() {
|
this.setData({ top_num: 0 })
|
},
|
|
scroll_distance: function (event) {
|
|
this.setData({
|
toTopIcon: event.detail.scrollTop > 300 ? true : false
|
})
|
},
|
|
|
backtop: function () {
|
this.setData({ top_num: 0 })
|
},
|
|
|
|
//转发
|
onShareAppMessage(res) {
|
|
},
|
|
|
})
|