Files
sphc/pages/cart/cart.js
2024-05-06 15:34:15 +08:00

353 lines
8.0 KiB
JavaScript

// pages/cart/cart.js
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
checkNum: 0,//勾选数量
checkAll: false,//全选
cartData: [],
login: false,
price:0,
},
//商品详情
goodsDetails(e) {
let id = e.currentTarget.dataset.id;
wx.navigateTo({
url: '/pages/goodsDetails/goodsDetails?goodsId=' + id,
})
},
//去购物
goShop(e) {
wx.switchTab({
url: '/pages/classify/classify'
})
},
onLoad: function (options) {
if (options.pId) {
wx.setStorage({
data: options.pId,
key: 'pId',
})
}
},
onShow: function () {
wx.getStorage({
key: 'user',
success: s => {
wx.showLoading({
title: '加载中..',
})
wx.request({
url: app.globalData.ip + '/wisdommining/api/goods/getCart',
method: 'POST',
header: {
"content-type": "application/x-www-form-urlencoded",
},
data: {
userId: s.data.id
},
success: res => {
wx.hideLoading()
console.log(res)
if (res.data.code == 1) {
this.setData({
cartData: res.data.value,
})
//判断全选 数量
this.judgeCheckAll();
if (res.data.value.length == 0) {
app.globalData.cartNum = '';
wx.hideTabBarRedDot({
index: 3
})
} else {
app.globalData.cartNum = res.data.value.length.toString()
//购物车数量显示
wx.setTabBarBadge({
index: 3,
text: app.globalData.cartNum
})
}
} else {
wx.showModal({
title: '提示!',
content: res.data.message,
showCancel: false,
})
}
}
})
}
})
},
//结算 recommendedBulyPrice
pay() {
let goodsList = this.data.cartData;
let goods = [];
for (let i = 0; i < goodsList.length; i++) {
goodsList[i].wisdGoods.wisdGoodsSpec.price = goodsList[i].wisdGoods.wisdGoodsSpec.specBulyPrice == null ? goodsList[i].wisdGoods.wisdGoodsSpec.specPrice : goodsList[i].wisdGoods.wisdGoodsSpec.specBulyPrice
if (goodsList[i].check) {
goods.push({
isDiscount: goodsList[i].wisdGoods.isDiscount,
goodsPhoto: goodsList[i].wisdGoods.goodsPhoto,
goodsName: goodsList[i].wisdGoods.goodsName,
goodsId: goodsList[i].wisdGoods.id,
num: goodsList[i].goodsNum,
specs: goodsList[i].wisdGoods.wisdGoodsSpec
})
}
}
if (goods.length == 0) {
return
}
wx.navigateTo({
url: '/pages/cartPay/cartPay?goods=' + JSON.stringify(goods) + '&isCar=1',
})
},
//加 减
add(e) {
let id = e.currentTarget.dataset.id;
let type = e.currentTarget.dataset.type;
let index = e.currentTarget.dataset.index;
let cartData = this.data.cartData;
if (type == 2 && cartData[index].goodsNum <= 1) {
wx.showToast({
title: '不能再减了~',
icon: 'none',
duration: 1000
})
return
}
wx.showLoading({
title: '加载中..',
})
wx.request({
url: app.globalData.ip + '/wisdommining/api/goods/updateCartNum',
method: 'POST',
header: {
"content-type": "application/x-www-form-urlencoded",
},
data: {
id: id,
type: type,
},
success: res => {
wx.hideLoading()
console.log(res)
if (res.data.code == 1) {
if(type==1){
cartData[index].goodsNum++
}else{
cartData[index].goodsNum--
}
this.setData({
cartData:cartData
})
//判断全选 数量
this.judgeCheckAll();
} else {
wx.showModal({
title: '提示!',
content: res.data.message,
showCancel: false,
})
}
}
})
},
//全选
checkAll() {
this.setData({
checkAll: !this.data.checkAll,
})
let cartData = this.data.cartData;
for (let i = 0; i < cartData.length; i++) {
if (this.data.checkAll) {
cartData[i].check = true;
} else {
cartData[i].check = false;
}
}
this.setData({
cartData: cartData,
// total: total.toFixed(2),
// totalIntegral: total,
})
//判断全选 数量
this.judgeCheckAll();
},
//勾选
check(e) {
let index = e.currentTarget.dataset.index;
let cartData = this.data.cartData;
cartData[index].check = !cartData[index].check;
this.setData({
cartData: cartData,
})
//判断全选 数量
this.judgeCheckAll();
},
//判断全选 数量
judgeCheckAll() {
let cartData = this.data.cartData;
let all = 0;
let checkNum = 0;
let price = 0;
for (let i = 0; i < cartData.length; i++) {
if (!cartData[i].check) {
//有未选中
all = 1;
} else {
let p = cartData[i].wisdGoods.wisdGoodsSpec.specBulyPrice==null?cartData[i].wisdGoods.wisdGoodsSpec.specPrice:cartData[i].wisdGoods.wisdGoodsSpec.specBulyPrice
checkNum++
price = price + parseFloat((cartData[i].goodsNum*p ).toFixed(2))
console.log(p)
}
}
this.setData({
checkNum: checkNum,
price:price
})
if (all === 0) {
this.setData({
checkAll: true,
})
} else {
this.setData({
checkAll: false,
})
}
},
//删除
del() {
if (this.data.checkNum == 0) {
wx.showToast({
title: '请先选择商品~',
icon: 'none',
duration: 500
})
return
}
wx.showModal({
title: '提示',
content: '您确认删除当前购物车中商品么?',
success: c => {
if (c.confirm) {
let shopCartId = '';
for (var i = 0; i < this.data.cartData.length; i++) {
if (this.data.cartData[i].check) {
shopCartId = shopCartId + this.data.cartData[i].id + ',';
}
}
// shopCartId = shopCartId.substr(1);
console.log(shopCartId)
wx.showLoading({
title: '删除中..',
mask: true,
})
wx.request({
url: app.globalData.ip + '/wisdommining/api/goods/delCart',
method: 'DELETE',
header: {
"content-type": "application/x-www-form-urlencoded",
},
data: {
ids: shopCartId,
},
success: res => {
console.log(res)
wx.hideLoading()
if (res.data.code == 1) {
wx.showToast({
title: '删除成功',
success: e => {
setTimeout(() => {
this.onShow();
}, 1500)
}
})
} else {
wx.showModal({
content: res.data.message,
showCancel: false,
})
}
}
})
}
}
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
app.share();
return {
path: '/pages/index/index?pId=' + app.globalData.userId,
title: '三品慧采小程序等你来~'
}
},
})