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: ''
|
},
|
|
onLoad(options) {
|
wx.setNavigationBarTitle({
|
title: '购物车'
|
});
|
this.shoppingCartGet();
|
},
|
|
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: 999,
|
filterList: [],
|
searchList: []
|
};
|
app.MG.store.getShoppingCartProductList(query).then(res => {
|
console.log(res, 'res');
|
res.datas.forEach(item => {
|
item.imgUrl = getPublicImage(item.productMonWithLinkDto.product.icon, '', '160');
|
console.log(item);
|
console.log(item.saleMethod.type, 'item.saleMethod.type')
|
this.setData({
|
type: item.saleMethod.type == 'createProductItemSaleMethod' ? 'item' : 'product'
|
})
|
|
});
|
|
this.setData({
|
shoppingCartData: res.datas
|
});
|
});
|
},
|
|
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) {
|
app.MG.store.shoppingCartCreateOrder({ linkIds: selectedIds }).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',
|
});
|
}
|
|
|
|
}
|
});
|