
Some checks are pending
Actions / Litemall-all (11) (push) Waiting to run
Actions / Litemall-all (11.0.3) (push) Waiting to run
Actions / Litemall-all (8) (push) Waiting to run
Actions / Litemall-all (8.0.192) (push) Waiting to run
Actions / Litemall-admin (10.x) (push) Waiting to run
Actions / Litemall-admin (12.x) (push) Waiting to run
Actions / Litemall-admin (14.x) (push) Waiting to run
Actions / Litemall-vue (10.x) (push) Waiting to run
Actions / Litemall-vue (12.x) (push) Waiting to run
Actions / Litemall-vue (14.x) (push) Waiting to run
303 lines
7.3 KiB
JavaScript
303 lines
7.3 KiB
JavaScript
var util = require('../../utils/util.js');
|
||
var api = require('../../config/api.js');
|
||
var user = require('../../utils/user.js');
|
||
|
||
var app = getApp();
|
||
|
||
Page({
|
||
data: {
|
||
cartGoods: [],
|
||
cartTotal: {
|
||
"goodsCount": 0,
|
||
"goodsAmount": 0.00,
|
||
"checkedGoodsCount": 0,
|
||
"checkedGoodsAmount": 0.00
|
||
},
|
||
isEditCart: false,
|
||
checkedAllStatus: true,
|
||
editCartList: [],
|
||
hasLogin: false
|
||
},
|
||
onLoad: function(options) {
|
||
// 页面初始化 options为页面跳转所带来的参数
|
||
},
|
||
onReady: function() {
|
||
// 页面渲染完成
|
||
},
|
||
onPullDownRefresh() {
|
||
wx.showNavigationBarLoading() //在标题栏中显示加载
|
||
this.getCartList();
|
||
wx.hideNavigationBarLoading() //完成停止加载
|
||
wx.stopPullDownRefresh() //停止下拉刷新
|
||
},
|
||
onShow: function() {
|
||
// 页面显示
|
||
if (app.globalData.hasLogin) {
|
||
this.getCartList();
|
||
}
|
||
|
||
this.setData({
|
||
hasLogin: app.globalData.hasLogin
|
||
});
|
||
|
||
},
|
||
onHide: function() {
|
||
// 页面隐藏
|
||
},
|
||
onUnload: function() {
|
||
// 页面关闭
|
||
},
|
||
goLogin() {
|
||
wx.navigateTo({
|
||
url: "/pages/auth/login/login"
|
||
});
|
||
},
|
||
getCartList: function() {
|
||
let that = this;
|
||
util.request(api.CartList).then(function(res) {
|
||
if (res.errno === 0) {
|
||
that.setData({
|
||
cartGoods: res.data.cartList,
|
||
cartTotal: res.data.cartTotal
|
||
});
|
||
|
||
that.setData({
|
||
checkedAllStatus: that.isCheckedAll()
|
||
});
|
||
}
|
||
});
|
||
},
|
||
isCheckedAll: function() {
|
||
//判断购物车商品已全选
|
||
return this.data.cartGoods.every(function(element, index, array) {
|
||
if (element.checked == true) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
doCheckedAll: function() {
|
||
let checkedAll = this.isCheckedAll()
|
||
this.setData({
|
||
checkedAllStatus: this.isCheckedAll()
|
||
});
|
||
},
|
||
checkedItem: function(event) {
|
||
let itemIndex = event.target.dataset.itemIndex;
|
||
let that = this;
|
||
|
||
let productIds = [];
|
||
productIds.push(that.data.cartGoods[itemIndex].productId);
|
||
if (!this.data.isEditCart) {
|
||
util.request(api.CartChecked, {
|
||
productIds: productIds,
|
||
isChecked: that.data.cartGoods[itemIndex].checked ? 0 : 1
|
||
}, 'POST').then(function(res) {
|
||
if (res.errno === 0) {
|
||
that.setData({
|
||
cartGoods: res.data.cartList,
|
||
cartTotal: res.data.cartTotal
|
||
});
|
||
}
|
||
|
||
that.setData({
|
||
checkedAllStatus: that.isCheckedAll()
|
||
});
|
||
});
|
||
} else {
|
||
//编辑状态
|
||
let tmpCartData = this.data.cartGoods.map(function(element, index, array) {
|
||
if (index == itemIndex) {
|
||
element.checked = !element.checked;
|
||
}
|
||
|
||
return element;
|
||
});
|
||
|
||
that.setData({
|
||
cartGoods: tmpCartData,
|
||
checkedAllStatus: that.isCheckedAll(),
|
||
'cartTotal.checkedGoodsCount': that.getCheckedGoodsCount()
|
||
});
|
||
}
|
||
},
|
||
getCheckedGoodsCount: function() {
|
||
let checkedGoodsCount = 0;
|
||
this.data.cartGoods.forEach(function(v) {
|
||
if (v.checked === true) {
|
||
checkedGoodsCount += v.number;
|
||
}
|
||
});
|
||
console.log(checkedGoodsCount);
|
||
return checkedGoodsCount;
|
||
},
|
||
checkedAll: function() {
|
||
let that = this;
|
||
|
||
if (!this.data.isEditCart) {
|
||
var productIds = this.data.cartGoods.map(function(v) {
|
||
return v.productId;
|
||
});
|
||
util.request(api.CartChecked, {
|
||
productIds: productIds,
|
||
isChecked: that.isCheckedAll() ? 0 : 1
|
||
}, 'POST').then(function(res) {
|
||
if (res.errno === 0) {
|
||
console.log(res.data);
|
||
that.setData({
|
||
cartGoods: res.data.cartList,
|
||
cartTotal: res.data.cartTotal
|
||
});
|
||
}
|
||
|
||
that.setData({
|
||
checkedAllStatus: that.isCheckedAll()
|
||
});
|
||
});
|
||
} else {
|
||
//编辑状态
|
||
let checkedAllStatus = that.isCheckedAll();
|
||
let tmpCartData = this.data.cartGoods.map(function(v) {
|
||
v.checked = !checkedAllStatus;
|
||
return v;
|
||
});
|
||
|
||
that.setData({
|
||
cartGoods: tmpCartData,
|
||
checkedAllStatus: that.isCheckedAll(),
|
||
'cartTotal.checkedGoodsCount': that.getCheckedGoodsCount()
|
||
});
|
||
}
|
||
|
||
},
|
||
editCart: function() {
|
||
var that = this;
|
||
if (this.data.isEditCart) {
|
||
this.getCartList();
|
||
this.setData({
|
||
isEditCart: !this.data.isEditCart
|
||
});
|
||
} else {
|
||
//编辑状态
|
||
let tmpCartList = this.data.cartGoods.map(function(v) {
|
||
v.checked = false;
|
||
return v;
|
||
});
|
||
this.setData({
|
||
editCartList: this.data.cartGoods,
|
||
cartGoods: tmpCartList,
|
||
isEditCart: !this.data.isEditCart,
|
||
checkedAllStatus: that.isCheckedAll(),
|
||
'cartTotal.checkedGoodsCount': that.getCheckedGoodsCount()
|
||
});
|
||
}
|
||
|
||
},
|
||
updateCart: function(productId, goodsId, number, id) {
|
||
let that = this;
|
||
|
||
util.request(api.CartUpdate, {
|
||
productId: productId,
|
||
goodsId: goodsId,
|
||
number: number,
|
||
id: id
|
||
}, 'POST').then(function(res) {
|
||
that.setData({
|
||
checkedAllStatus: that.isCheckedAll()
|
||
});
|
||
});
|
||
|
||
},
|
||
cutNumber: function(event) {
|
||
|
||
let itemIndex = event.target.dataset.itemIndex;
|
||
let cartItem = this.data.cartGoods[itemIndex];
|
||
let number = (cartItem.number - 1 > 1) ? cartItem.number - 1 : 1;
|
||
cartItem.number = number;
|
||
this.setData({
|
||
cartGoods: this.data.cartGoods
|
||
});
|
||
this.updateCart(cartItem.productId, cartItem.goodsId, number, cartItem.id);
|
||
},
|
||
addNumber: function(event) {
|
||
let itemIndex = event.target.dataset.itemIndex;
|
||
let cartItem = this.data.cartGoods[itemIndex];
|
||
let number = cartItem.number + 1;
|
||
cartItem.number = number;
|
||
this.setData({
|
||
cartGoods: this.data.cartGoods
|
||
});
|
||
this.updateCart(cartItem.productId, cartItem.goodsId, number, cartItem.id);
|
||
|
||
},
|
||
checkoutOrder: function() {
|
||
//获取已选择的商品
|
||
let that = this;
|
||
|
||
var checkedGoods = this.data.cartGoods.filter(function(element, index, array) {
|
||
if (element.checked == true) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
});
|
||
|
||
if (checkedGoods.length <= 0) {
|
||
return false;
|
||
}
|
||
|
||
// storage中设置了cartId,则是购物车购买
|
||
try {
|
||
wx.setStorageSync('cartId', 0);
|
||
wx.navigateTo({
|
||
url: '/pages/checkout/checkout'
|
||
})
|
||
} catch (e) {}
|
||
|
||
},
|
||
deleteCart: function() {
|
||
//获取已选择的商品
|
||
let that = this;
|
||
|
||
let productIds = this.data.cartGoods.filter(function(element, index, array) {
|
||
if (element.checked == true) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
});
|
||
|
||
if (productIds.length <= 0) {
|
||
return false;
|
||
}
|
||
|
||
productIds = productIds.map(function(element, index, array) {
|
||
if (element.checked == true) {
|
||
return element.productId;
|
||
}
|
||
});
|
||
|
||
|
||
util.request(api.CartDelete, {
|
||
productIds: productIds
|
||
}, 'POST').then(function(res) {
|
||
if (res.errno === 0) {
|
||
console.log(res.data);
|
||
let cartList = res.data.cartList.map(v => {
|
||
v.checked = false;
|
||
return v;
|
||
});
|
||
|
||
that.setData({
|
||
cartGoods: cartList,
|
||
cartTotal: res.data.cartTotal
|
||
});
|
||
}
|
||
|
||
that.setData({
|
||
checkedAllStatus: that.isCheckedAll()
|
||
});
|
||
});
|
||
}
|
||
}) |