const app = getApp();
|
// import { getPublicImage } from '@/assets/js/middleGround/tool.js'
|
import { getPublicImage } from '../../assets/js/middleGround/tool';
|
import Toast from 'tdesign-miniprogram/toast/index';
|
|
Page({
|
data: {
|
imgUrl: [],
|
shoppingCartData: [],
|
checkAll: false,
|
checkedList: [],
|
selectedCount: 0,
|
totalPrice: 0.00,
|
type: '',
|
start: 1,
|
totalSize: '',
|
isMore: null,
|
},
|
|
onLoad(options) {
|
|
wx.setNavigationBarTitle({
|
title: '购物车'
|
});
|
this.shoppingCartGet();
|
},
|
onShow() {
|
if (typeof this.getTabBar === 'function' && this.getTabBar()) {
|
this.getTabBar().setData({
|
active: 3
|
})
|
}
|
this.shoppingCartGet();
|
this.setData({ totalPrice: 0.00, selectedCount: 0, checkAll: false, })
|
},
|
onDelete(e) {
|
const item = e.currentTarget.dataset.item;
|
app.MG.store.delShoppingCart({
|
ids: [item.id]
|
}).then(res => {
|
this.shoppingCartGet();
|
wx.showToast({ title: '你点击了删除', icon: 'none' });
|
});
|
},
|
|
shoppingCartGet() {
|
let query = {
|
start: 0,
|
size: this.data.start * 4,
|
filterList: [],
|
searchList: []
|
};
|
app.MG.store.getShoppingCartProductList(query).then(res => {
|
|
this.setData({
|
totalSize: res.totalSize
|
})
|
|
res.datas.forEach(item => {
|
console.log(item, 'item456');
|
item.imgUrl = getPublicImage(item.productMonWithLinkDto.product.icon, '', '160');
|
|
this.setData({
|
type: item.saleMethod.type == 'createProductItemSaleMethod' ? 'item' : 'product'
|
})
|
|
});
|
|
this.setData({
|
shoppingCartData: res.datas
|
});
|
});
|
wx.stopPullDownRefresh()
|
},
|
|
bottomChange(e) {
|
const checked = e.detail.value.length > 0;
|
const items = this.data.shoppingCartData.map(item => {
|
item.checked = checked;
|
return item;
|
});
|
this.setData({
|
shoppingCartData: items,
|
checkAll: checked
|
});
|
this.calculateSelectedCount();
|
this.calculateTotalPrice();
|
},
|
|
HandelItemChange(e) {
|
const { item } = e.target.dataset;
|
const items = this.data.shoppingCartData
|
items.map(eitem => {
|
if (eitem.id == item.id) {
|
eitem.checked = e.detail.checked
|
}
|
})
|
const data = items.filter(item => item.checked)
|
const checkAll = data.length == this.data.shoppingCartData.length
|
this.setData({
|
shoppingCartData: items,
|
checkAll
|
});
|
this.calculateSelectedCount();
|
this.calculateTotalPrice();
|
},
|
|
calculateSelectedCount() {
|
const selectedItems = this.data.shoppingCartData.filter(item => item.checked);
|
const selectedCount = selectedItems.length;
|
this.setData({
|
selectedCount
|
});
|
},
|
|
calculateTotalPrice() {
|
const selectedItems = this.data.shoppingCartData.filter(item => item.checked);
|
const totalPrice = selectedItems.reduce((total, item) => total + parseFloat(item.saleMethod.price), 0);
|
this.setData({
|
totalPrice: totalPrice.toFixed(2)
|
});
|
},
|
goPaymentPage() {
|
const selectedItems = this.data.shoppingCartData.filter(item => item.checked);
|
// console.log(selectedItems, 789);
|
const selectedIds = selectedItems.map(item => item.id);
|
console.log('选中的商品 id:', selectedIds);
|
if (selectedIds.length) {
|
let data = {
|
linkIds: selectedIds
|
}
|
app.MG.store.shoppingCartCreateOrder(data).then(res => {
|
console.log(res, 456);
|
|
|
const url = '/pages/cart/paymentPage/index?orderNumber=' + res.orderNumber
|
wx.navigateTo({
|
url
|
});
|
})
|
} else {
|
Toast({
|
context: this,
|
selector: '#t-toast',
|
message: '请选择商品',
|
theme: 'warning',
|
direction: 'column',
|
});
|
}
|
},
|
onLogin() {
|
wx.navigateTo({
|
url: '/pages/testLogin/index'
|
});
|
},
|
//触底函数
|
onReachBottom() {
|
if (this.data.shoppingCartData.length < this.data.totalSize) {
|
this.setData({
|
isMore: true,
|
start: this.data.start + 1
|
})
|
this.shoppingCartGet()
|
} else {
|
this.setData({
|
isMore: true,
|
})
|
setTimeout(() => {
|
this.setData({
|
isMore: false
|
})
|
}, 100)
|
|
}
|
},
|
// 下拉函数
|
onPullDownRefresh() {
|
|
this.setData({
|
start: 1
|
})
|
console.log(978);
|
this.shoppingCartGet()
|
},
|
|
});
|