307 lines
8.6 KiB
JavaScript
307 lines
8.6 KiB
JavaScript
|
|
var goodsIndex = '',
|
|
sellerIndex = ''
|
|
|
|
Page({
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
bags : [], // 购物车列表
|
|
isUser : false, // 是否登录
|
|
bagId : '',
|
|
allCheckbox : false,
|
|
bagNumber : 0,
|
|
allPrice : '0.00',
|
|
bagOrderLoading : false
|
|
},
|
|
/**
|
|
* 生命周期函数 - 页面显示
|
|
*/
|
|
onShow(){
|
|
let token = wx.getStorageSync('token') || null
|
|
this.setData({
|
|
isUser : token != null,
|
|
bagOrderLoading : false,
|
|
allCheckbox : false,
|
|
bagNumber : 0,
|
|
allPrice : '0.00',
|
|
bagId : '',
|
|
})
|
|
|
|
if(token != null){
|
|
wx.showLoading({
|
|
title: '加载中...',
|
|
mask : true
|
|
})
|
|
wx.$api.bag.list().then(res => {
|
|
res.data.map(val => {
|
|
val.shop.mallState = false
|
|
val.items.map(val => {
|
|
val.state = false
|
|
})
|
|
})
|
|
this.setData({
|
|
pagesLoding: false,
|
|
bags : res.data
|
|
})
|
|
wx.hideLoading()
|
|
})
|
|
}
|
|
},
|
|
/**
|
|
* 商品数量加减
|
|
*/
|
|
goodsNumber(e){
|
|
goodsIndex = e.currentTarget.dataset.goods
|
|
sellerIndex = e.currentTarget.dataset.seller
|
|
|
|
let goodsNumber = this.data.bags[sellerIndex].items[goodsIndex].qty
|
|
|
|
if (e.currentTarget.dataset.type == 'plus'){
|
|
goodsNumber = goodsNumber + 1
|
|
}else{
|
|
if (goodsNumber > 1){
|
|
goodsNumber = goodsNumber - 1
|
|
}else{
|
|
wx.showToast({
|
|
title : '商品数量不能小于1',
|
|
icon : 'none'
|
|
})
|
|
return
|
|
}
|
|
}
|
|
this.setnumNumber(goodsIndex, sellerIndex, goodsNumber)
|
|
},
|
|
/**
|
|
* 输入商品数量
|
|
*/
|
|
goodsNumberInput(e){
|
|
goodsIndex = e.currentTarget.dataset.goods
|
|
sellerIndex = e.currentTarget.dataset.seller
|
|
|
|
let setnumNumber = this.data.bags[sellerIndex].items[goodsIndex].number,
|
|
inputValue = Number()
|
|
if (e.detail.value > 0){
|
|
inputValue = Number(e.detail.value)
|
|
}else{
|
|
wx.showToast({
|
|
title : '商品数量不能小于1',
|
|
icon : 'none'
|
|
})
|
|
inputValue = Number(setnumNumber)
|
|
}
|
|
this.setnumNumber(goodsIndex, sellerIndex, inputValue)
|
|
},
|
|
/**
|
|
* 更新商品数量
|
|
*/
|
|
setnumNumber(goodsIndex, sellerIndex, setnumNumber){
|
|
wx.showLoading({
|
|
title: '加载中',
|
|
})
|
|
let atGoods = this.data.bags
|
|
wx.$api.bag.putNum(atGoods[sellerIndex].items[goodsIndex].cart_id, {
|
|
qty : setnumNumber,
|
|
sku_id: atGoods[sellerIndex].items[goodsIndex].sku_id
|
|
}).then(res => {
|
|
atGoods[sellerIndex].items[goodsIndex].qty = res.data
|
|
this.setData({
|
|
bags: atGoods
|
|
})
|
|
this.totalPrice()
|
|
wx.hideLoading()
|
|
})
|
|
},
|
|
/**
|
|
* 单选
|
|
*/
|
|
checkbox(e){
|
|
goodsIndex = e.currentTarget.dataset.goods
|
|
sellerIndex = e.currentTarget.dataset.seller
|
|
|
|
console.log(e.currentTarget.dataset)
|
|
|
|
let goodsList = this.data.bags,
|
|
checkbox = goodsList[sellerIndex].items[goodsIndex].state,
|
|
seller = goodsList[sellerIndex].items,
|
|
sellerLength = 0
|
|
|
|
goodsList[sellerIndex].items[goodsIndex].state = !checkbox
|
|
|
|
for (let i in seller){
|
|
if (seller[i].state){
|
|
sellerLength++
|
|
if (sellerLength == goodsList[sellerIndex].items.length){
|
|
goodsList[sellerIndex].shop.mallState = true
|
|
}
|
|
}else{
|
|
goodsList[sellerIndex].shop.mallState = false
|
|
this.setData({
|
|
allCheckbox: false
|
|
})
|
|
}
|
|
}
|
|
|
|
this.allCheckbox('checkbox')
|
|
|
|
this.setData({
|
|
bags: goodsList
|
|
})
|
|
|
|
this.totalPrice()
|
|
},
|
|
/**
|
|
* 店铺全选
|
|
*/
|
|
sellerCheckbox(e){
|
|
sellerIndex = e.currentTarget.dataset.seller
|
|
|
|
let goodsList = this.data.bags,
|
|
allCheckbox = this.data.allCheckbox,
|
|
seller = goodsList[sellerIndex].shop.mallState,
|
|
sellerLengh = 0
|
|
|
|
goodsList[sellerIndex].shop.mallState = !seller
|
|
|
|
for (let i in goodsList[sellerIndex].items){
|
|
goodsList[sellerIndex].items[i].state = !seller
|
|
}
|
|
|
|
for (let j in goodsList){
|
|
if (goodsList[j].shop.mallState){
|
|
sellerLengh++
|
|
if (sellerLengh == goodsList.length){
|
|
allCheckbox = true
|
|
}else{
|
|
allCheckbox = false
|
|
}
|
|
}
|
|
}
|
|
|
|
this.allCheckbox('checkbox')
|
|
|
|
this.setData({
|
|
bags : goodsList,
|
|
allCheckbox : allCheckbox
|
|
})
|
|
|
|
this.totalPrice()
|
|
},
|
|
/**
|
|
* 全选
|
|
*/
|
|
allCheckbox(type){
|
|
let goodsLenght = 0,
|
|
allCheckbox = this.data.allCheckbox,
|
|
goodsList = this.data.bags
|
|
|
|
if (type == 'checkbox'){
|
|
for (let j in goodsList) {
|
|
if (goodsList[j].shop.mallState) {
|
|
goodsLenght++
|
|
if (goodsLenght == goodsList.length) {
|
|
allCheckbox = true
|
|
}
|
|
}
|
|
}
|
|
}else{
|
|
allCheckbox = !allCheckbox
|
|
for (var i in goodsList){
|
|
goodsList[i].shop.mallState = allCheckbox
|
|
|
|
for (let k in goodsList[i].items){
|
|
goodsList[i].items[k].state = allCheckbox
|
|
}
|
|
}
|
|
}
|
|
this.setData({
|
|
allCheckbox : allCheckbox,
|
|
bags : goodsList
|
|
})
|
|
this.totalPrice()
|
|
},
|
|
/**
|
|
* 计算价格
|
|
*/
|
|
totalPrice() {
|
|
let bagNumber = 0,
|
|
allPrice = 0,
|
|
bagIdArr = [],
|
|
goodsList = this.data.bags
|
|
|
|
for (var i in goodsList){
|
|
for (let j in goodsList[i].items){
|
|
if (goodsList[i].items[j].state){
|
|
bagNumber = bagNumber + goodsList[i].items[j].qty
|
|
allPrice = allPrice + (goodsList[i].items[j].qty * goodsList[i].items[j].price)
|
|
bagIdArr.push(goodsList[i].items[j].cart_id)
|
|
}
|
|
}
|
|
}
|
|
this.setData({
|
|
bagNumber : bagNumber,
|
|
allPrice : allPrice.toFixed(2),
|
|
bagId : bagIdArr.join(",")
|
|
})
|
|
},
|
|
/**
|
|
* 购物车提交
|
|
*/
|
|
bagOrder(){
|
|
this.setData({
|
|
bagOrderLoading:true
|
|
})
|
|
if (this.data.bagId != ''){
|
|
wx.navigateTo({
|
|
url: './bagConfirm/bagConfirm?skuId=' + this.data.bagId
|
|
})
|
|
// setTimeout(() => {
|
|
// this.setData({
|
|
// bagOrderLoading: false
|
|
// })
|
|
// }, 2000)
|
|
}else{
|
|
wx.showToast({
|
|
title : '请选择结算商品',
|
|
icon : 'none'
|
|
})
|
|
|
|
this.setData({
|
|
bagOrderLoading: false
|
|
})
|
|
}
|
|
},
|
|
/**
|
|
* 菜单
|
|
*/
|
|
actionSheet(e){
|
|
goodsIndex = e.currentTarget.dataset.goods
|
|
sellerIndex = e.currentTarget.dataset.seller
|
|
|
|
let goodsList = this.data.bags,
|
|
cartId = this.data.bags[sellerIndex].items[goodsIndex].cart_id
|
|
|
|
wx.showActionSheet({
|
|
itemList: ['删除'],
|
|
success : res=>{
|
|
wx.showLoading({
|
|
title: '加载中',
|
|
})
|
|
wx.$api.bag.del(cartId).then(res => {
|
|
goodsList[sellerIndex].items.splice([goodsIndex],1)
|
|
if (goodsList[sellerIndex].items.length == 0){
|
|
goodsList.splice([sellerIndex], 1)
|
|
}
|
|
this.setData({
|
|
bags: goodsList
|
|
})
|
|
this.totalPrice()
|
|
wx.showToast({
|
|
title: '已删除'
|
|
})
|
|
})
|
|
}
|
|
})
|
|
},
|
|
}) |