1819 lines
55 KiB
JavaScript
1819 lines
55 KiB
JavaScript
|
// eaterplanet_ecommerce/pages/order/shopCart.js
|
|||
|
var util = require('../../utils/util.js');
|
|||
|
var status = require('../../utils/index.js');
|
|||
|
var a = require("../../utils/public");
|
|||
|
var app = getApp();
|
|||
|
var addFlag = 1;
|
|||
|
|
|||
|
Page({
|
|||
|
mixins: [require('../../mixin/globalMixin.js')],
|
|||
|
data: {
|
|||
|
allselect: false,
|
|||
|
community_id: 0,
|
|||
|
allnum: 0,
|
|||
|
allcount: "0.00",
|
|||
|
recount: "0.00",
|
|||
|
carts: {},
|
|||
|
isEmpty: false,
|
|||
|
needAuth: false,
|
|||
|
cartNum: 0,
|
|||
|
isIpx: false,
|
|||
|
disAmount: 0,
|
|||
|
totalAmount: 0,
|
|||
|
tabIdx: 0,
|
|||
|
updateCart: 0,
|
|||
|
invalidCarts: {},
|
|||
|
tabList: [],
|
|||
|
groupInfo: {
|
|||
|
group_name: '社区',
|
|||
|
owner_name: '团长'
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面加载
|
|||
|
*/
|
|||
|
onLoad: function() {
|
|||
|
let that = this;
|
|||
|
status.setGroupInfo().then((groupInfo) => { that.setData({ groupInfo }) });
|
|||
|
wx.hideTabBar();
|
|||
|
wx.showLoading();
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 授权成功回调
|
|||
|
*/
|
|||
|
authSuccess: function() {
|
|||
|
wx.reLaunch({
|
|||
|
url: '/eaterplanet_ecommerce/pages/order/shopCart',
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
authModal: function () {
|
|||
|
if (this.data.needAuth) {
|
|||
|
this.setData({ showAuthModal: !this.data.showAuthModal });
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面显示
|
|||
|
*/
|
|||
|
onShow: function() {
|
|||
|
let that = this;
|
|||
|
util.check_login_new().then((res) => {
|
|||
|
console.log(res)
|
|||
|
if (res) {
|
|||
|
var community = wx.getStorageSync('community');
|
|||
|
var community_id = community.communityId || '';
|
|||
|
that.setData({
|
|||
|
needAuth: false,
|
|||
|
isEmpty: false,
|
|||
|
tabbarRefresh: true,
|
|||
|
community_id: community_id,
|
|||
|
isIpx: app.globalData.isIpx
|
|||
|
});
|
|||
|
(0, status.cartNum)('', true).then((res) => {
|
|||
|
res.code == 0 && that.setData({
|
|||
|
cartNum: res.data
|
|||
|
})
|
|||
|
});
|
|||
|
that.showCartGoods();
|
|||
|
} else {
|
|||
|
that.setData({ needAuth: true, isEmpty: true });
|
|||
|
wx.hideLoading();
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 获取购物车信息20190604
|
|||
|
*/
|
|||
|
showCartGoods: function(){
|
|||
|
let that = this;
|
|||
|
var community = wx.getStorageSync('community');
|
|||
|
var community_id = community.communityId;
|
|||
|
console.log('onshow购物车里面的community_id:');
|
|||
|
that.setData({ community_id: community_id })
|
|||
|
var token = wx.getStorageSync('token');
|
|||
|
app.util.request({
|
|||
|
'url': 'entry/wxapp/index',
|
|||
|
'data': {
|
|||
|
controller: 'car.show_cart_goods',
|
|||
|
token: token,
|
|||
|
community_id: community_id,
|
|||
|
buy_type: 'dan',
|
|||
|
},
|
|||
|
dataType: 'json',
|
|||
|
success: function (res) {
|
|||
|
// wx.hideLoading();
|
|||
|
setTimeout(function(){ wx.hideLoading(); },1000);
|
|||
|
if (res.data.code == 0) {
|
|||
|
//20190720
|
|||
|
let mult_carts = res.data.mult_carts || [];
|
|||
|
let carts = {};
|
|||
|
let tabIdx = that.data.tabIdx;
|
|||
|
let showTab = false;
|
|||
|
|
|||
|
// tab名称自定义
|
|||
|
let { shopcar_tab_express_name, shopcar_tab_all_name } = res.data;
|
|||
|
let tabList = [
|
|||
|
{ id: 0, name: shopcar_tab_all_name || '全部商品', enabled: false },
|
|||
|
{ id: 1, name: shopcar_tab_express_name || '快递商品', enabled: false },
|
|||
|
{ id: 2, name: '到店核销', enabled: false },
|
|||
|
{ id: 3, name: '同城配送', enabled: false }
|
|||
|
];
|
|||
|
|
|||
|
//20200220
|
|||
|
let mulCartArr = Object.keys(mult_carts);
|
|||
|
let objLen = mulCartArr.length;
|
|||
|
if (objLen > 1){
|
|||
|
showTab = true;
|
|||
|
mulCartArr.forEach((item)=>{
|
|||
|
tabList[item].enabled = true;
|
|||
|
})
|
|||
|
carts = mult_carts[tabIdx] || {};
|
|||
|
} else if(objLen==1) {
|
|||
|
tabIdx = mulCartArr[0];
|
|||
|
carts = mult_carts[tabIdx] || {};
|
|||
|
}
|
|||
|
|
|||
|
let isEmpty = true;
|
|||
|
if (Object.keys(carts).length != 0) {
|
|||
|
isEmpty = false;
|
|||
|
carts = that.sortCarts(carts);
|
|||
|
}
|
|||
|
let {
|
|||
|
man_free_tuanzshipping,
|
|||
|
delivery_tuanz_money,
|
|||
|
is_comunity_rest,
|
|||
|
open_man_orderbuy,
|
|||
|
man_orderbuy_money,
|
|||
|
is_show_guess_like,
|
|||
|
is_open_vipcard_buy,
|
|||
|
is_vip_card_member,
|
|||
|
vipcard_save_money,
|
|||
|
modify_vipcard_name,
|
|||
|
is_member_level_buy,
|
|||
|
level_save_money,
|
|||
|
open_tuan_ship,
|
|||
|
full_list,
|
|||
|
is_open_fullreduction,
|
|||
|
localtown_moneytype_fixed_deliverymoney,
|
|||
|
localtown_moneytype_fixed_freemoney
|
|||
|
} = res.data;
|
|||
|
|
|||
|
that.setData({
|
|||
|
tabIdx,
|
|||
|
carts,
|
|||
|
mult_carts,
|
|||
|
showTab,
|
|||
|
isEmpty,
|
|||
|
is_comunity_rest,
|
|||
|
open_man_orderbuy,
|
|||
|
man_orderbuy_money: man_orderbuy_money * 1,
|
|||
|
is_show_guess_like,
|
|||
|
man_free_tuanzshipping, // 需要金额
|
|||
|
delivery_tuanz_money, //配送费
|
|||
|
is_open_vipcard_buy,
|
|||
|
is_vip_card_member,
|
|||
|
vipcard_save_money,
|
|||
|
modify_vipcard_name: modify_vipcard_name?modify_vipcard_name:'天机会员',
|
|||
|
is_member_level_buy,
|
|||
|
level_save_money,
|
|||
|
tabList,
|
|||
|
open_tuan_ship,
|
|||
|
full_list,
|
|||
|
is_open_fullreduction,
|
|||
|
localtown_moneytype_fixed_deliverymoney,
|
|||
|
localtown_moneytype_fixed_freemoney
|
|||
|
})
|
|||
|
that.xuan_func();
|
|||
|
} else {
|
|||
|
that.setData({
|
|||
|
needAuth: true,
|
|||
|
isEmpty: true
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
onHide: function() {
|
|||
|
this.setData({
|
|||
|
tabbarRefresh: false
|
|||
|
})
|
|||
|
console.log('onHide')
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 商品排序
|
|||
|
*/
|
|||
|
sortCarts: function(carts) {
|
|||
|
// 先剔除失效(保留原有结构)=>再分出满减
|
|||
|
let is_open_fullreduction = 0;
|
|||
|
let full_reducemoney = 0;
|
|||
|
let full_money = 0;
|
|||
|
let invalidCarts = {};
|
|||
|
let hasInvalid = 0;
|
|||
|
|
|||
|
for (let i in carts) {
|
|||
|
is_open_fullreduction = carts[i].is_open_fullreduction;
|
|||
|
full_reducemoney = carts[i].full_reducemoney;
|
|||
|
full_money = carts[i].full_money;
|
|||
|
invalidCarts[i] = {
|
|||
|
id: carts[i].id,
|
|||
|
shopcarts: []
|
|||
|
};
|
|||
|
|
|||
|
let shopcarts = carts[i].shopcarts;
|
|||
|
let oriShopcarts = [];
|
|||
|
shopcarts.forEach(function(item, index) {
|
|||
|
if(item.can_buy==0 || item.option_can_buy==0) {
|
|||
|
invalidCarts[i].shopcarts.push(item);
|
|||
|
hasInvalid += 1;
|
|||
|
} else {
|
|||
|
oriShopcarts.push(item);
|
|||
|
}
|
|||
|
})
|
|||
|
carts[i].shopcarts = oriShopcarts;
|
|||
|
oriShopcarts.sort(function(x, y) {
|
|||
|
if (x.can_man_jian < y.can_man_jian) {
|
|||
|
return 1;
|
|||
|
}
|
|||
|
if (x.can_man_jian > y.can_man_jian) {
|
|||
|
return -1;
|
|||
|
}
|
|||
|
return 0;
|
|||
|
});
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
is_open_fullreduction,
|
|||
|
full_reducemoney,
|
|||
|
full_money,
|
|||
|
invalidCarts,
|
|||
|
hasInvalid
|
|||
|
});
|
|||
|
return carts;
|
|||
|
},
|
|||
|
|
|||
|
xuan_func: function() {
|
|||
|
var allnum = 0;
|
|||
|
var allcount = 0
|
|||
|
|
|||
|
var flag = 1;
|
|||
|
var allselect = false;
|
|||
|
var all_cant_buy = 1;
|
|||
|
for (var i in this.data.carts) {
|
|||
|
var count = 0;
|
|||
|
this.data.carts[i].goodstypeselect = 0;
|
|||
|
this.data.carts[i].goodstype = this.data.carts[i].shopcarts.length;
|
|||
|
|
|||
|
for (var j = 0; j < this.data.carts[i].shopcarts.length; j++) {
|
|||
|
let shopcartsItem = this.data.carts[i].shopcarts[j];
|
|||
|
if (shopcartsItem.isselect == false && shopcartsItem.can_buy == 1 && shopcartsItem.can_buy == 1 && shopcartsItem.option_can_buy == 1) flag = 0;
|
|||
|
if (shopcartsItem.isselect && shopcartsItem.can_buy == 1 && shopcartsItem.can_buy == 1 && shopcartsItem.option_can_buy == 1) {
|
|||
|
all_cant_buy = 0;
|
|||
|
//20190927
|
|||
|
count = this.calcVipPrice(count, shopcartsItem);
|
|||
|
this.data.carts[i].goodstypeselect++;
|
|||
|
allnum = parseInt(allnum) + parseInt(shopcartsItem.goodsnum);
|
|||
|
}
|
|||
|
|
|||
|
if (shopcartsItem.can_buy == 0) shopcartsItem.isselect = false;
|
|||
|
}
|
|||
|
this.data.carts[i].count = count.toFixed(2);
|
|||
|
allcount = allcount + count;
|
|||
|
}
|
|||
|
if (flag == 1 && all_cant_buy == 0) { //是全部选中
|
|||
|
allselect = true;
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
allselect: allselect,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2),
|
|||
|
carts: this.data.carts
|
|||
|
});
|
|||
|
this.calcAmount();
|
|||
|
},
|
|||
|
|
|||
|
//编辑点击事件处理函数
|
|||
|
edit: function(e) {
|
|||
|
var index = parseInt(e.target.dataset.index);
|
|||
|
this.data.carts[index].caredit = "none";
|
|||
|
this.data.carts[index].finish = "inline";
|
|||
|
for (var i = 0; i < this.data.carts[index].shopcarts.length; i++) {
|
|||
|
this.data.carts[index].shopcarts[i].edit = "none";
|
|||
|
this.data.carts[index].shopcarts[i].finish = "inline";
|
|||
|
this.data.carts[index].shopcarts[i].description = "onedit-description";
|
|||
|
this.data.carts[index].shopcarts[i].cartype = "block";
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts
|
|||
|
})
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
//完成点击事件处理函数
|
|||
|
finish: function(e) {
|
|||
|
var index = parseInt(e.target.dataset.index);
|
|||
|
this.data.carts[index].caredit = "inline";
|
|||
|
this.data.carts[index].finish = "none";
|
|||
|
for (var i = 0; i < this.data.carts[index].shopcarts.length; i++) {
|
|||
|
this.data.carts[index].shopcarts[i].edit = "inline";
|
|||
|
this.data.carts[index].shopcarts[i].finish = "none";
|
|||
|
this.data.carts[index].shopcarts[i].description = "description";
|
|||
|
this.data.carts[index].shopcarts[i].cartype = "inline";
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
goLink: function(event) {
|
|||
|
let link = event.currentTarget.dataset.link;
|
|||
|
wx.navigateTo({
|
|||
|
url: link
|
|||
|
})
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
goGoods: function(event) {
|
|||
|
let id = event.currentTarget.dataset.type;
|
|||
|
|
|||
|
var pages_all = getCurrentPages();
|
|||
|
if (pages_all.length > 3) {
|
|||
|
wx.redirectTo({
|
|||
|
url: '/Snailfish_shop/pages/goods/index?id=' + id
|
|||
|
})
|
|||
|
} else {
|
|||
|
wx.navigateTo({
|
|||
|
url: '/Snailfish_shop/pages/goods/index?id=' + id
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
//店铺点击选择事件
|
|||
|
shopselect: function(e) {
|
|||
|
var index = parseInt(e.target.dataset.index);
|
|||
|
var allselect = this.data.allselect;
|
|||
|
var isselect = this.data.carts[index].isselect;
|
|||
|
var allnum = 0;
|
|||
|
var allcount = 0.00;
|
|||
|
var count = 0.00;
|
|||
|
if (isselect == true) { //店铺为选中状态
|
|||
|
this.data.carts[index].isselect = false;
|
|||
|
allselect = false;
|
|||
|
for (var i = 0; i < this.data.carts[index].shopcarts.length; i++) { //循环商店下商品,改成不选中
|
|||
|
if (this.data.carts[index].shopcarts[i].isselect == true) {
|
|||
|
this.data.carts[index].shopcarts[i].isselect = false;
|
|||
|
allnum = parseInt(allnum) + parseInt(this.data.carts[index].shopcarts[i].goodsnum);
|
|||
|
this.data.carts[index].goodstypeselect = this.data.carts[index].goodstypeselect - 1;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
allnum = this.data.allnum - allnum; //去除不选中商店的产品数量
|
|||
|
allcount = parseFloat(this.data.allcount) - parseFloat(this.data.carts[index].count);
|
|||
|
this.data.carts[index].count = "0.00";
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2),
|
|||
|
allselect: allselect
|
|||
|
});
|
|||
|
} else {
|
|||
|
var addcount = 0.00;
|
|||
|
this.data.carts[index].isselect = true;
|
|||
|
for (var i = 0; i < this.data.carts[index].shopcarts.length; i++) {
|
|||
|
let goodsItem = this.data.carts[index].shopcarts[i];
|
|||
|
if (goodsItem.isselect == false) {
|
|||
|
goodsItem.isselect = true;
|
|||
|
this.data.carts[index].goodstypeselect = this.data.carts[index].goodstypeselect + 1;
|
|||
|
allnum = parseInt(allnum) + parseInt(goodsItem.goodsnum);
|
|||
|
addcount = this.calcVipPrice(addcount, goodsItem);
|
|||
|
}
|
|||
|
// 20190927
|
|||
|
count = this.calcVipPrice(count, goodsItem);
|
|||
|
}
|
|||
|
allnum = this.data.allnum + allnum;
|
|||
|
allcount = parseFloat(this.data.allcount) + addcount;
|
|||
|
this.data.carts[index].count = count.toFixed(2);
|
|||
|
var flag = 1;
|
|||
|
for (var i in this.data.carts) {
|
|||
|
for (var j = 0; j < this.data.carts[i].shopcarts.length; j++)
|
|||
|
if (this.data.carts[i].shopcarts[j].isselect == false)
|
|||
|
flag = 0;
|
|||
|
}
|
|||
|
if (flag == 1) { //是全部选中
|
|||
|
allselect = true;
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2),
|
|||
|
allselect: allselect
|
|||
|
});
|
|||
|
}
|
|||
|
this.go_record();
|
|||
|
},
|
|||
|
|
|||
|
//点击商品选中事件函数
|
|||
|
goodsselect: function(e) {
|
|||
|
var parentid = parseInt(e.target.dataset.parentid);
|
|||
|
var index = parseInt(e.target.dataset.index);
|
|||
|
var allselect = this.data.allselect;
|
|||
|
let goodsItem = this.data.carts[parentid].shopcarts[index];
|
|||
|
var isselect = goodsItem.isselect;
|
|||
|
|
|||
|
if (isselect == true) { //商品选中状态
|
|||
|
goodsItem.isselect = false;
|
|||
|
if (allselect)
|
|||
|
allselect = false;
|
|||
|
|
|||
|
this.data.carts[parentid].goodstypeselect = parseInt(this.data.carts[parentid].goodstypeselect) - 1;
|
|||
|
if (this.data.carts[parentid].goodstypeselect <= 0) { //选中商品为0
|
|||
|
this.data.carts[parentid].isselect = false;
|
|||
|
}
|
|||
|
var allnum = parseInt(this.data.allnum) - parseInt(goodsItem.goodsnum);
|
|||
|
// 20190927
|
|||
|
var allcount = this.calcVipPrice(this.data.allcount, goodsItem, '', 'red');
|
|||
|
var count = this.calcVipPrice(this.data.carts[parentid].count, goodsItem, '', 'red');
|
|||
|
|
|||
|
this.data.carts[parentid].count = count.toFixed(2);
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2),
|
|||
|
allselect: allselect
|
|||
|
});
|
|||
|
} else { //商品为非选中状态
|
|||
|
goodsItem.isselect = true;
|
|||
|
this.data.carts[parentid].goodstypeselect = parseInt(this.data.carts[parentid].goodstypeselect) + 1;
|
|||
|
|
|||
|
if (this.data.carts[parentid].goodstypeselect > 0) { //选中商品个数大于0
|
|||
|
this.data.carts[parentid].isselect = true;
|
|||
|
}
|
|||
|
var flag = 1;
|
|||
|
for (var i in this.data.carts) {
|
|||
|
console.log('in');
|
|||
|
for (var j = 0; j < this.data.carts[i].shopcarts.length; j++)
|
|||
|
if (this.data.carts[i].shopcarts[j].isselect == false && this.data.carts[i].shopcarts[j].can_buy == 1 && this.data.carts[i].shopcarts[j].option_can_buy == 1) flag = 0;
|
|||
|
}
|
|||
|
|
|||
|
if (flag == 1) { //全部商品选中
|
|||
|
allselect = true;
|
|||
|
}
|
|||
|
var allnum = parseInt(this.data.allnum) + parseInt(goodsItem.goodsnum);
|
|||
|
// 20190927
|
|||
|
var allcount = this.calcVipPrice(this.data.allcount, goodsItem);
|
|||
|
var count = this.calcVipPrice(this.data.carts[parentid].count, goodsItem);
|
|||
|
|
|||
|
this.data.carts[parentid].count = count.toFixed(2);
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2),
|
|||
|
allselect: allselect
|
|||
|
});
|
|||
|
}
|
|||
|
this.go_record();
|
|||
|
},
|
|||
|
|
|||
|
//全部选中事件函数
|
|||
|
allselect: function(e) {
|
|||
|
var allselect = this.data.allselect;
|
|||
|
var carts = this.data.carts;
|
|||
|
|
|||
|
if (allselect) { //点击前为全部选中状态
|
|||
|
allselect = false;
|
|||
|
var allnum = 0;
|
|||
|
var allcount = 0.00;
|
|||
|
for (var i in this.data.carts) {
|
|||
|
this.data.carts[i].count = "0.00";
|
|||
|
this.data.carts[i].isselect = false;
|
|||
|
this.data.carts[i].goodstypeselect = 0;
|
|||
|
for (var j in this.data.carts[i].shopcarts)
|
|||
|
this.data.carts[i].shopcarts[j].isselect = false;
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2),
|
|||
|
allselect: allselect
|
|||
|
});
|
|||
|
} else { //点击前为不全部选址状态
|
|||
|
allselect = true;
|
|||
|
var allnum = 0;
|
|||
|
var allcount = 0.00;
|
|||
|
|
|||
|
for (var i in this.data.carts) {
|
|||
|
var count = 0;
|
|||
|
this.data.carts[i].isselect = true;
|
|||
|
let shopcarts = this.data.carts[i].shopcarts;
|
|||
|
this.data.carts[i].goodstypeselect = shopcarts.length;
|
|||
|
for (var j in shopcarts) {
|
|||
|
if (shopcarts[j].can_buy == 1 && shopcarts[j].option_can_buy == 1) {
|
|||
|
//20190927
|
|||
|
count = this.calcVipPrice(count, shopcarts[j]);
|
|||
|
allnum = parseInt(allnum) + parseInt(this.data.carts[i].shopcarts[j].goodsnum);
|
|||
|
shopcarts[j].isselect = true;
|
|||
|
}
|
|||
|
}
|
|||
|
this.data.carts[i].count = count.toFixed(2);
|
|||
|
allcount = allcount + count;
|
|||
|
}
|
|||
|
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2),
|
|||
|
allselect: allselect
|
|||
|
});
|
|||
|
}
|
|||
|
this.go_record();
|
|||
|
},
|
|||
|
|
|||
|
//减少商品数量函数
|
|||
|
regoodsnum: function(e) {
|
|||
|
var parentid = parseInt(e.currentTarget.dataset.parentid);
|
|||
|
var index = parseInt(e.currentTarget.dataset.index);
|
|||
|
let updateCart = this.data.updateCart;
|
|||
|
let goodsItem = this.data.carts[parentid].shopcarts[index];
|
|||
|
|
|||
|
// 起购数量
|
|||
|
let goods_start_count = goodsItem.goods_start_count || 1;
|
|||
|
|
|||
|
var that = this;
|
|||
|
var goodsnum = goodsItem.goodsnum;
|
|||
|
if (goodsnum == 1 || goodsnum<=goods_start_count) { //减少前商品数量为1
|
|||
|
that.cofirm_del(parentid, index);
|
|||
|
} else { //减少前商品的数量不为1
|
|||
|
if (goodsItem.isselect == true) { //商品为选中状态
|
|||
|
var allnum = parseInt(this.data.allnum) - 1;
|
|||
|
//20190927
|
|||
|
var allcount = this.calcVipPrice(that.data.allcount, goodsItem, 1, 'red');
|
|||
|
var count = this.calcVipPrice(this.data.carts[parentid].count, goodsItem, 1, 'red');
|
|||
|
|
|||
|
that.data.carts[parentid].count = count.toFixed(2);
|
|||
|
goodsItem.goodsnum = goodsItem.goodsnum - 1;
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2)
|
|||
|
});
|
|||
|
} else { //商品为非选中状态
|
|||
|
goodsItem.goodsnum = parseInt(goodsItem.goodsnum) - 1;
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
if (goodsItem.goodstype == '') {
|
|||
|
let goodsnum = goodsItem.goodsnum * 1;
|
|||
|
let gid = e.currentTarget.dataset.gid;
|
|||
|
status.indexListCarCount(gid, goodsnum);
|
|||
|
that.setData({ updateCart: updateCart + 1 })
|
|||
|
}
|
|||
|
let cur_car_key = goodsItem.key || '';
|
|||
|
that.go_record(cur_car_key);
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 确认删除提示框
|
|||
|
*/
|
|||
|
cofirm_del: function(parentid, index, type = 1) {
|
|||
|
let that = this;
|
|||
|
let updateCart = this.data.updateCart;
|
|||
|
let goodsItem = that.data.carts[parentid].shopcarts[index];
|
|||
|
// 起购数量
|
|||
|
let goods_start_count = goodsItem.goods_start_count || 1;
|
|||
|
let content = '';
|
|||
|
if(goods_start_count>1) content =`该商品的起购数是${goods_start_count},`;
|
|||
|
wx.showModal({
|
|||
|
title: '提示',
|
|||
|
content: content + '确定删除这件商品吗?',
|
|||
|
confirmColor: "#4facfe",
|
|||
|
success: function(res) {
|
|||
|
if (res.confirm) {
|
|||
|
if (goodsItem.goodstype == '') {
|
|||
|
let gid = goodsItem.id;
|
|||
|
status.indexListCarCount(gid, 0);
|
|||
|
that.setData({ updateCart: updateCart + 1 })
|
|||
|
}
|
|||
|
var del_car_keys = goodsItem.key;
|
|||
|
// 起购数量
|
|||
|
let goodsnum = goodsItem.goodsnum;
|
|||
|
let reduceNum = goods_start_count;
|
|||
|
if(goodsnum<goods_start_count) {
|
|||
|
reduceNum = goodsnum;
|
|||
|
}
|
|||
|
|
|||
|
if (goodsItem.isselect == true) { //商品为选中状态
|
|||
|
var allnum = that.data.allnum - reduceNum;
|
|||
|
|
|||
|
// 20190927
|
|||
|
var allcount = that.calcVipPrice(that.data.allcount, goodsItem, reduceNum, 'red');
|
|||
|
var count = that.calcVipPrice(that.data.carts[parentid].count, goodsItem, reduceNum, 'red');
|
|||
|
|
|||
|
that.data.carts[parentid].count = count.toFixed(2);
|
|||
|
that.data.carts[parentid].goodstype = that.data.carts[parentid].goodstype - 1;
|
|||
|
that.data.carts[parentid].goodstypeselect = that.data.carts[parentid].goodstypeselect - 1
|
|||
|
if (that.data.carts[parentid].goodstype == 0) { //购物车商店商品类别为0,去掉这个商店
|
|||
|
let carts = that.data.carts;
|
|||
|
delete carts[parentid];
|
|||
|
if (Object.keys(carts).length == 0) that.setData({
|
|||
|
isEmpty: true
|
|||
|
})
|
|||
|
} else { //不为0,去掉这个商品
|
|||
|
that.data.carts[parentid].shopcarts.splice(index, 1);
|
|||
|
//判断全选状态,有失效商品20190212
|
|||
|
that.isAllSelect();
|
|||
|
}
|
|||
|
that.setData({
|
|||
|
carts: that.data.carts,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2),
|
|||
|
});
|
|||
|
} else { //商品为非选中状态
|
|||
|
that.data.carts[parentid].goodstype = that.data.carts[parentid].goodstype - 1;
|
|||
|
if (that.data.carts[parentid].goodstype == 0) {
|
|||
|
let carts = that.data.carts;
|
|||
|
delete carts[parentid];
|
|||
|
if (Object.keys(carts).length == 0) that.setData({
|
|||
|
isEmpty: true
|
|||
|
})
|
|||
|
} else {
|
|||
|
that.data.carts[parentid].shopcarts.splice(index, 1);
|
|||
|
}
|
|||
|
that.setData({
|
|||
|
carts: that.data.carts
|
|||
|
});
|
|||
|
}
|
|||
|
that.del_car_goods(del_car_keys);
|
|||
|
that.calcAmount();
|
|||
|
} else {
|
|||
|
console.log('取消删除')
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 20190212
|
|||
|
* 删除选中商品,存在失效商品全选状态判断
|
|||
|
*/
|
|||
|
isAllSelect: function() {
|
|||
|
var flag = 1,
|
|||
|
allselect = false,
|
|||
|
carts = this.data.carts,
|
|||
|
isCanBuy = 0;
|
|||
|
for (let i in carts) {
|
|||
|
for (let j = 0; j < carts[i].shopcarts.length; j++) {
|
|||
|
if (carts[i].shopcarts[j].can_buy == 1 && carts[i].shopcarts[j].option_can_buy == 1) isCanBuy = 1;
|
|||
|
if (carts[i].shopcarts[j].isselect == false && carts[i].shopcarts[j].can_buy == 1 && carts[i].shopcarts[j].option_can_buy == 1) flag = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
// console.log(flag);
|
|||
|
if (flag == 1 && isCanBuy == 1) allselect = true;
|
|||
|
|
|||
|
this.setData({
|
|||
|
allselect: allselect
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
|
|||
|
//添加商品数量函数
|
|||
|
addgoodsnum: function(e) {
|
|||
|
|
|||
|
if (addFlag == 0) return;
|
|||
|
addFlag = 0;
|
|||
|
var parentid = parseInt(e.currentTarget.dataset.parentid);
|
|||
|
var index = parseInt(e.currentTarget.dataset.index);
|
|||
|
var that = this;
|
|||
|
let goodsItem = this.data.carts[parentid].shopcarts[index];
|
|||
|
var max_quantity = parseInt(goodsItem.max_quantity);
|
|||
|
|
|||
|
if (goodsItem.isselect == true) { //商品为选中状态
|
|||
|
var allnum = parseInt(this.data.allnum) + 1;
|
|||
|
// 20190927
|
|||
|
var allcount = this.calcVipPrice(this.data.allcount, goodsItem, 1);
|
|||
|
var count = this.calcVipPrice(this.data.carts[parentid].count, goodsItem, 1);
|
|||
|
that.data.carts[parentid].count = count.toFixed(2);
|
|||
|
|
|||
|
if (goodsItem.goodsnum < max_quantity) {
|
|||
|
goodsItem.goodsnum = parseInt(goodsItem.goodsnum) + 1;
|
|||
|
} else {
|
|||
|
addFlag = 1;
|
|||
|
goodsItem.goodsnum = max_quantity;
|
|||
|
allnum--;
|
|||
|
var msg = '最多购买' + max_quantity + '个';
|
|||
|
wx.showToast({
|
|||
|
title: msg,
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2)
|
|||
|
});
|
|||
|
} else { //商品为非选中状态
|
|||
|
if (parseInt(goodsItem.goodsnum) < max_quantity) {
|
|||
|
goodsItem.goodsnum = parseInt(goodsItem.goodsnum) + 1;
|
|||
|
} else {
|
|||
|
addFlag = 1;
|
|||
|
var msg = '最多购买' + max_quantity + '个';
|
|||
|
wx.showToast({
|
|||
|
title: msg,
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
var token = wx.getStorageSync('token');
|
|||
|
var keys_arr = [];
|
|||
|
var all_keys_arr = [];
|
|||
|
var allnum = this.data.allnum;
|
|||
|
|
|||
|
var carts = this.data.carts;
|
|||
|
|
|||
|
for (var i in carts) {
|
|||
|
for (var j in carts[i]['shopcarts']) {
|
|||
|
keys_arr.push(carts[i]['shopcarts'][j]['key']);
|
|||
|
all_keys_arr.push(carts[i]['shopcarts'][j]['key'] + '_' + carts[i]['shopcarts'][j]['goodsnum']);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
let updateCart = this.data.updateCart || 0;
|
|||
|
app.util.request({
|
|||
|
url: 'entry/wxapp/index',
|
|||
|
data: {
|
|||
|
controller: 'car.checkout_flushall',
|
|||
|
token: token,
|
|||
|
car_key: keys_arr,
|
|||
|
community_id: that.data.community_id,
|
|||
|
all_keys_arr: all_keys_arr,
|
|||
|
cur_car_key: goodsItem.key || ''
|
|||
|
},
|
|||
|
method: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
success: function(msg) {
|
|||
|
if (msg.data.code == 0) {
|
|||
|
that.setData({
|
|||
|
carts: that.data.carts
|
|||
|
});
|
|||
|
(0, status.cartNum)('', true).then((res) => {
|
|||
|
res.code == 0 && that.setData({
|
|||
|
cartNum: res.data
|
|||
|
})
|
|||
|
});
|
|||
|
if (goodsItem.goodstype == '') {
|
|||
|
let goodsnum = goodsItem.goodsnum * 1;
|
|||
|
let gid = e.currentTarget.dataset.gid;
|
|||
|
status.indexListCarCount(gid, goodsnum);
|
|||
|
that.setData({ updateCart: updateCart + 1 })
|
|||
|
}
|
|||
|
} else {
|
|||
|
goodsItem.goodsnum = parseInt(goodsItem.goodsnum) - 1;
|
|||
|
if (goodsItem.isselect == true) {
|
|||
|
// 20190927
|
|||
|
var allcount_new = that.calcVipPrice(that.data.allcount, goodsItem, 1, 'red');
|
|||
|
var count_new = that.calcVipPrice(that.data.carts[parentid].count, goodsItem, 1, 'red');
|
|||
|
|
|||
|
that.data.carts[parentid].count = count_new.toFixed(2);
|
|||
|
allnum--;
|
|||
|
that.setData({
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount_new.toFixed(2)
|
|||
|
});
|
|||
|
}
|
|||
|
that.setData({
|
|||
|
carts: that.data.carts
|
|||
|
});
|
|||
|
|
|||
|
wx.showToast({
|
|||
|
title: msg.data.msg,
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
}
|
|||
|
addFlag = 1;
|
|||
|
that.calcAmount();
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 输入框监控
|
|||
|
*/
|
|||
|
changeNumber: function(e) {
|
|||
|
if (Object.keys(this.data.carts).length<=0) return;
|
|||
|
wx.hideLoading();
|
|||
|
var that = this;
|
|||
|
var parentid = parseInt(e.currentTarget.dataset.parentid);
|
|||
|
var index = parseInt(e.currentTarget.dataset.index);
|
|||
|
var iptVal = e.detail.value;
|
|||
|
var newCount = that.count_goods(parentid, index);
|
|||
|
let goodsItem = this.data.carts[parentid].shopcarts[index];
|
|||
|
let lastGoodsnum = goodsItem.goodsnum;
|
|||
|
console.log(iptVal);
|
|||
|
let updateCart = this.data.updateCart || 0;
|
|||
|
if (iptVal > 0) {
|
|||
|
var max_quantity = parseInt(goodsItem.max_quantity);
|
|||
|
if (iptVal > max_quantity) {
|
|||
|
iptVal = max_quantity;
|
|||
|
wx.showToast({
|
|||
|
title: '不能购买更多啦',
|
|||
|
icon: 'none'
|
|||
|
})
|
|||
|
}
|
|||
|
goodsItem.goodsnum = iptVal;
|
|||
|
if (that.data.carts[parentid].shopcarts[index].isselect == true) { //商品为选中状态
|
|||
|
newCount = that.count_goods(parentid, index);
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts,
|
|||
|
allnum: newCount.allnum,
|
|||
|
allcount: newCount.allcount
|
|||
|
});
|
|||
|
|
|||
|
var token = wx.getStorageSync('token');
|
|||
|
var keys_arr = [];
|
|||
|
var all_keys_arr = [];
|
|||
|
var allnum = this.data.allnum;
|
|||
|
var carts = this.data.carts;
|
|||
|
|
|||
|
for (var i in carts) {
|
|||
|
for (var j in carts[i]['shopcarts']) {
|
|||
|
keys_arr.push(carts[i]['shopcarts'][j]['key']);
|
|||
|
all_keys_arr.push(carts[i]['shopcarts'][j]['key'] + '_' + carts[i]['shopcarts'][j]['goodsnum']);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
app.util.request({
|
|||
|
'url': 'entry/wxapp/index',
|
|||
|
'data': {
|
|||
|
controller: 'car.checkout_flushall',
|
|||
|
token,
|
|||
|
car_key: keys_arr,
|
|||
|
community_id: that.data.community_id,
|
|||
|
all_keys_arr: all_keys_arr,
|
|||
|
cur_car_key: goodsItem.key || ''
|
|||
|
},
|
|||
|
method: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
success: function(msg) {
|
|||
|
if (msg.data.code == 0) {
|
|||
|
that.setData({
|
|||
|
carts: that.data.carts
|
|||
|
});
|
|||
|
(0, status.cartNum)('', true).then((res) => {
|
|||
|
res.code == 0 && that.setData({
|
|||
|
cartNum: res.data
|
|||
|
})
|
|||
|
});
|
|||
|
if (that.data.carts[parentid].shopcarts[index].goodstype == '') {
|
|||
|
let goodsnum = that.data.carts[parentid].shopcarts[index].goodsnum * 1;
|
|||
|
let gid = that.data.carts[parentid].shopcarts[index].id;
|
|||
|
status.indexListCarCount(gid, goodsnum);
|
|||
|
that.setData({ updateCart: updateCart + 1 })
|
|||
|
}
|
|||
|
that.go_record();
|
|||
|
} else {
|
|||
|
that.data.carts[parentid].shopcarts[index].goodsnum = lastGoodsnum;
|
|||
|
if (that.data.carts[parentid].shopcarts[index].isselect == true) { //商品为选中状态
|
|||
|
newCount = that.count_goods(parentid, index);
|
|||
|
}
|
|||
|
that.setData({
|
|||
|
carts: that.data.carts,
|
|||
|
allnum: newCount.allnum,
|
|||
|
allcount: newCount.allcount
|
|||
|
});
|
|||
|
|
|||
|
wx.showToast({
|
|||
|
title: msg.data.msg,
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
} else {
|
|||
|
wx.hideLoading();
|
|||
|
this.data.carts[parentid].shopcarts[index].goodsnum = 1;
|
|||
|
if (that.data.carts[parentid].shopcarts[index].isselect == true) { //商品为选中状态
|
|||
|
newCount = that.count_goods(parentid, index);
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
carts: this.data.carts,
|
|||
|
allnum: newCount.allnum,
|
|||
|
allcount: newCount.allcount
|
|||
|
});
|
|||
|
var token = wx.getStorageSync('token');
|
|||
|
var keys_arr = [];
|
|||
|
var all_keys_arr = [];
|
|||
|
var allnum = this.data.allnum;
|
|||
|
var carts = this.data.carts;
|
|||
|
|
|||
|
for (var i in carts) {
|
|||
|
for (var j in carts[i]['shopcarts']) {
|
|||
|
keys_arr.push(carts[i]['shopcarts'][j]['key']);
|
|||
|
all_keys_arr.push(carts[i]['shopcarts'][j]['key'] + '_' + carts[i]['shopcarts'][j]['goodsnum']);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
app.util.request({
|
|||
|
'url': 'entry/wxapp/index',
|
|||
|
'data': {
|
|||
|
controller: 'car.checkout_flushall',
|
|||
|
'token': token,
|
|||
|
'car_key': keys_arr,
|
|||
|
community_id: that.data.community_id,
|
|||
|
'all_keys_arr': all_keys_arr,
|
|||
|
cur_car_key: goodsItem.key || ''
|
|||
|
},
|
|||
|
method: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
success: function(msg) {
|
|||
|
if (msg.data.code == 0) {
|
|||
|
that.setData({
|
|||
|
carts: that.data.carts
|
|||
|
});
|
|||
|
(0, status.cartNum)('', true).then((res) => {
|
|||
|
res.code == 0 && that.setData({
|
|||
|
cartNum: res.data
|
|||
|
})
|
|||
|
});
|
|||
|
if (that.data.carts[parentid].shopcarts[index].goodstype == '') {
|
|||
|
let goodsnum = that.data.carts[parentid].shopcarts[index].goodsnum * 1;
|
|||
|
let gid = that.data.carts[parentid].shopcarts[index].id;
|
|||
|
status.indexListCarCount(gid, goodsnum);
|
|||
|
that.setData({ updateCart: updateCart + 1 })
|
|||
|
}
|
|||
|
that.go_record();
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
that.cofirm_del(parentid, index);
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
count_goods: function(parentid, index) {
|
|||
|
let that = this;
|
|||
|
let carts = this.data.carts;
|
|||
|
// let cart = carts[parentid];
|
|||
|
let allnum = 0;
|
|||
|
let allcount = 0;
|
|||
|
|
|||
|
for (let carsKey of Object.keys(carts)) {
|
|||
|
let cart = carts[carsKey];
|
|||
|
cart.shopcarts.forEach(function (item, idx) {
|
|||
|
if (item.isselect) {
|
|||
|
allcount = that.calcVipPrice(allcount, item);
|
|||
|
allnum += parseInt(item.goodsnum);
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
return {
|
|||
|
allnum,
|
|||
|
allcount: allcount.toFixed(2)
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
//删除商品函数
|
|||
|
delgoods: function(e) {
|
|||
|
var parentid = parseInt(e.target.dataset.parentid);
|
|||
|
var index = parseInt(e.target.dataset.index);
|
|||
|
var that = this;
|
|||
|
wx.showModal({
|
|||
|
title: '提示',
|
|||
|
content: '确定删除这件商品吗?',
|
|||
|
confirmColor: "#4facfe",
|
|||
|
success: function(res) {
|
|||
|
if (res.confirm) {
|
|||
|
let goodsItem = that.data.carts[parentid].shopcarts[index];
|
|||
|
var del_car_keys = goodsItem.key;
|
|||
|
if (goodsItem.isselect == true) { //商品为选中状态
|
|||
|
var allnum = parseInt(that.data.allnum) - parseInt(goodsItem.goodsnum);
|
|||
|
// 20190927
|
|||
|
var allcount = that.calcVipPrice(that.data.allcount, goodsItem, 1, 'red');
|
|||
|
var count = that.calcVipPrice(that.data.carts[parentid].count, goodsItem, 1, 'red');
|
|||
|
|
|||
|
that.data.carts[parentid].count = count.toFixed(2);
|
|||
|
that.data.carts[parentid].goodstype = that.data.carts[parentid].goodstype - 1;
|
|||
|
that.data.carts[parentid].goodstypeselect = that.data.carts[parentid].goodstypeselect - 1
|
|||
|
if (that.data.carts[parentid].goodstype == 0) {
|
|||
|
console.log(parentid);
|
|||
|
//that.data.carts.splice(parentid, 1)
|
|||
|
that.data.carts[parentid].shopcarts.splice(index, 1);
|
|||
|
} else {
|
|||
|
that.data.carts[parentid].shopcarts.splice(index, 1);
|
|||
|
}
|
|||
|
var num = 0;
|
|||
|
for (var i = 0; i < that.data.carts.length; i++) {
|
|||
|
for (var j = 0; j < that.data.carts[i].shopcarts.length; j++) {
|
|||
|
num = num + that.data.carts[i].shopcarts[j].goodsnum;
|
|||
|
}
|
|||
|
}
|
|||
|
if (allnum == num)
|
|||
|
that.data.allselect = true;
|
|||
|
that.setData({
|
|||
|
carts: that.data.carts,
|
|||
|
allnum: allnum,
|
|||
|
allcount: allcount.toFixed(2),
|
|||
|
allselect: that.data.allselect
|
|||
|
});
|
|||
|
} else { //商品为选中状态
|
|||
|
that.data.carts[parentid].goodstype = that.data.carts[parentid].goodstype - 1;
|
|||
|
if (that.data.carts[parentid].goodstype == 0) {
|
|||
|
that.data.carts[parentid].shopcarts.splice(index, 1);
|
|||
|
} else {
|
|||
|
that.data.carts[parentid].shopcarts.splice(index, 1);
|
|||
|
}
|
|||
|
var num = 0;
|
|||
|
for (var i = 0; i < that.data.carts.length; i++) {
|
|||
|
for (var j = 0; j < that.data.carts[i].shopcarts.length; j++) {
|
|||
|
num = num + that.data.carts[i].shopcarts[j].goodsnum;
|
|||
|
}
|
|||
|
}
|
|||
|
if (that.data.allnum == num)
|
|||
|
that.data.allselect = true;
|
|||
|
that.setData({
|
|||
|
carts: that.data.carts,
|
|||
|
allselect: that.data.allselect
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
if (that.data.carts[parentid].shopcarts.length == 0) {
|
|||
|
delete that.data.carts[parentid];
|
|||
|
if (Object.keys(that.data.carts).length == 0) {
|
|||
|
that.setData({
|
|||
|
carts: []
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
//删除商品
|
|||
|
that.del_car_goods(del_car_keys);
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
this.go_record();
|
|||
|
},
|
|||
|
|
|||
|
del_car_goods: function (carkey, isLose=0) {
|
|||
|
var token = wx.getStorageSync('token');
|
|||
|
var that = this;
|
|||
|
let updateCart = this.data.updateCart;
|
|||
|
console.log('del_car_goods:开始');
|
|||
|
|
|||
|
var community = wx.getStorageSync('community');
|
|||
|
var community_id = community.communityId;
|
|||
|
console.log('缓存中的:' + community_id);
|
|||
|
console.log('使用中的:' + that.data.community_id);
|
|||
|
app.util.request({
|
|||
|
'url': 'entry/wxapp/index',
|
|||
|
'data': {
|
|||
|
controller: 'car.del_car_goods',
|
|||
|
carkey: carkey,
|
|||
|
community_id: that.data.community_id,
|
|||
|
token: token
|
|||
|
},
|
|||
|
method: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
success: function(msg) {
|
|||
|
if (msg.data.code == 0 && isLose != 1) {
|
|||
|
(0, status.cartNum)('', true).then((res) => {
|
|||
|
res.code == 0 && that.setData({
|
|||
|
cartNum: res.data,
|
|||
|
updateCart: updateCart + 1
|
|||
|
});
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 提示不可购买并提示是否删除
|
|||
|
*/
|
|||
|
delete: function (e) {
|
|||
|
var parentid = parseInt(e.currentTarget.dataset.parentid);
|
|||
|
var index = parseInt(e.currentTarget.dataset.index);
|
|||
|
var isLost = e.currentTarget.dataset.islost || 0;
|
|||
|
var that = this;
|
|||
|
wx.showModal({
|
|||
|
title: '提示',
|
|||
|
content: '确认删除这件商品吗?',
|
|||
|
confirmColor: "#4facfe",
|
|||
|
success: function(res) {
|
|||
|
if (res.confirm) {
|
|||
|
if (isLost==1) {
|
|||
|
let {hasInvalid,invalidCarts} = that.data;
|
|||
|
console.log(parentid)
|
|||
|
let del_car_keys = invalidCarts[parentid].shopcarts[index].key;
|
|||
|
invalidCarts[parentid].shopcarts.splice(index, 1);
|
|||
|
hasInvalid -= 1;
|
|||
|
that.setData({ invalidCarts, hasInvalid });
|
|||
|
that.del_car_goods(del_car_keys, 1);
|
|||
|
} else {
|
|||
|
let carts = that.data.carts;
|
|||
|
let del_car_keys = carts[parentid].shopcarts[index].key;
|
|||
|
carts[parentid].shopcarts.splice(index, 1);
|
|||
|
that.setData({
|
|||
|
carts: carts
|
|||
|
});
|
|||
|
if (carts[parentid].shopcarts.length == 0) {
|
|||
|
delete carts[parentid];
|
|||
|
if (Object.keys(carts).length == 0) {
|
|||
|
that.setData({
|
|||
|
carts: {}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
//删除商品
|
|||
|
that.del_car_goods(del_car_keys);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
//清空失效商品函数
|
|||
|
clearlose: function() {
|
|||
|
var that = this;
|
|||
|
wx.showModal({
|
|||
|
title: '提示',
|
|||
|
content: '确认清空失效商品吗?',
|
|||
|
confirmColor: "#4facfe",
|
|||
|
success: function(res) {
|
|||
|
if (res.confirm) {
|
|||
|
let invalidCarts = that.data.invalidCarts;
|
|||
|
|
|||
|
for (let idx in invalidCarts) {
|
|||
|
let shopcarts = invalidCarts[idx].shopcarts;
|
|||
|
shopcarts.forEach(function(item){
|
|||
|
let del_car_keys = item.key;
|
|||
|
that.del_car_goods(del_car_keys, 1);
|
|||
|
})
|
|||
|
}
|
|||
|
that.setData({
|
|||
|
hasInvalid: 0,
|
|||
|
invalidCarts: {}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
//记录购物车状态值,为了下次进来还是和上次一样
|
|||
|
go_record: function(cur_car_key='') {
|
|||
|
var that = this;
|
|||
|
var token = wx.getStorageSync('token');
|
|||
|
var keys_arr = [];
|
|||
|
var all_keys_arr = [];
|
|||
|
var allnum = this.data.allnum;
|
|||
|
var carts = this.data.carts;
|
|||
|
|
|||
|
for (var i in carts) {
|
|||
|
for (var j in carts[i]['shopcarts']) {
|
|||
|
if (carts[i]['shopcarts'][j]['isselect']) {
|
|||
|
keys_arr.push(carts[i]['shopcarts'][j]['key']);
|
|||
|
}
|
|||
|
all_keys_arr.push(carts[i]['shopcarts'][j]['key'] + '_' + carts[i]['shopcarts'][j]['goodsnum']);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
app.util.request({
|
|||
|
'url': 'entry/wxapp/index',
|
|||
|
'data': {
|
|||
|
controller: 'car.checkout_flushall',
|
|||
|
token: token,
|
|||
|
car_key: keys_arr,
|
|||
|
community_id: that.data.community_id,
|
|||
|
all_keys_arr: all_keys_arr,
|
|||
|
cur_car_key
|
|||
|
},
|
|||
|
method: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
success: function(msg) {
|
|||
|
if (msg.data.code == 0) {
|
|||
|
// todo
|
|||
|
(0, status.cartNum)('', true).then((res) => {
|
|||
|
res.code == 0 && that.setData({
|
|||
|
cartNum: res.data
|
|||
|
})
|
|||
|
});
|
|||
|
} else {
|
|||
|
wx.showToast({
|
|||
|
title: msg.data.msg,
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
})
|
|||
|
that.calcAmount();
|
|||
|
},
|
|||
|
|
|||
|
//结算跳转页面函数
|
|||
|
toorder: function() {
|
|||
|
var token = wx.getStorageSync('token');
|
|||
|
var keys_arr = [];
|
|||
|
var all_keys_arr = [];
|
|||
|
var that = this;
|
|||
|
|
|||
|
var allnum = this.data.allnum;
|
|||
|
if (allnum > 0) {
|
|||
|
var carts = this.data.carts;
|
|||
|
for (var i in carts) {
|
|||
|
for (var j in carts[i]['shopcarts']) {
|
|||
|
if (carts[i]['shopcarts'][j]['isselect']) {
|
|||
|
keys_arr.push(carts[i]['shopcarts'][j]['key']);
|
|||
|
}
|
|||
|
|
|||
|
all_keys_arr.push(carts[i]['shopcarts'][j]['key'] + '_' + carts[i]['shopcarts'][j]['goodsnum']);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
app.util.request({
|
|||
|
'url': 'entry/wxapp/index',
|
|||
|
'data': {
|
|||
|
controller: 'car.checkout_flushall',
|
|||
|
token: token,
|
|||
|
community_id: that.data.community_id,
|
|||
|
car_key: keys_arr,
|
|||
|
all_keys_arr: all_keys_arr
|
|||
|
},
|
|||
|
method: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
success: function(msg) {
|
|||
|
if (msg.data.code == 0) {
|
|||
|
let is_limit = msg.data.data || 0;
|
|||
|
wx.navigateTo({
|
|||
|
url: '/eaterplanet_ecommerce/pages/order/placeOrder?type=dan&is_limit=' + is_limit
|
|||
|
})
|
|||
|
} else {
|
|||
|
that.showCartGoods();
|
|||
|
wx.showToast({
|
|||
|
title: msg.data.msg,
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
} else {
|
|||
|
wx.showModal({
|
|||
|
title: '提示',
|
|||
|
content: '请选择您要购买的商品',
|
|||
|
confirmColor: "#4facfe",
|
|||
|
success: function(res) {
|
|||
|
if (res.confirm) {
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
goindex: function() {
|
|||
|
wx.switchTab({
|
|||
|
url: '/eaterplanet_ecommerce/pages/index/index',
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 计算优惠
|
|||
|
*/
|
|||
|
calcAmount: function() {
|
|||
|
let {
|
|||
|
is_open_vipcard_buy,
|
|||
|
is_vip_card_member,
|
|||
|
carts,
|
|||
|
delivery_tuanz_money,
|
|||
|
man_free_tuanzshipping,
|
|||
|
full_list,
|
|||
|
allcount,
|
|||
|
tabIdx
|
|||
|
} = this.data;
|
|||
|
let totalAmount = 0; //合计
|
|||
|
let disAmount = 0; //优惠
|
|||
|
let diffMoney = 0; //差多少可满减
|
|||
|
let cartsArr = Object.keys(carts);
|
|||
|
let allReducGoods = []; //所有满减商品
|
|||
|
let full_money = 0;
|
|||
|
let full_reducemoney = 0;
|
|||
|
let isCanManJian = 0;
|
|||
|
|
|||
|
// 免配送费
|
|||
|
let deliveryGoodsTot = 0;
|
|||
|
let selectGoodsTot = 0; //商品价格合计
|
|||
|
|
|||
|
// 开通vip优惠提示
|
|||
|
let vipFee = 0;
|
|||
|
let levelFee = 0;
|
|||
|
let localtown_fee_list = tabIdx==3?{}:''; //同城配送起送优惠信息
|
|||
|
|
|||
|
cartsArr.forEach(key => {
|
|||
|
let cart = carts[key];
|
|||
|
let shopcarts = cart.shopcarts;
|
|||
|
full_money = cart.full_money * 1;
|
|||
|
full_reducemoney = cart.full_reducemoney * 1;
|
|||
|
let localtown_fixed_list = cart.localtown_fixed_list || '';
|
|||
|
let curSelectGoodsTot = 0; //当前平台选中商品合计
|
|||
|
// 1选提取所有的满减商品
|
|||
|
shopcarts.forEach(function(item) {
|
|||
|
if (item.isselect && item.can_man_jian) {
|
|||
|
allReducGoods.push(item);
|
|||
|
}
|
|||
|
if (item.isselect && man_free_tuanzshipping > 0 && delivery_tuanz_money > 0) {
|
|||
|
if (is_open_vipcard_buy == 1 && is_vip_card_member == 1 && item.is_take_vipcard == 1) {
|
|||
|
accordTot += item.card_price * item.goodsnum * 1;
|
|||
|
} else if (item.is_mb_level_buy == 1){
|
|||
|
accordTot += item.levelprice * item.goodsnum * 1;
|
|||
|
} else {
|
|||
|
accordTot += item.currntprice * item.goodsnum * 1;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//vip优惠
|
|||
|
if (is_open_vipcard_buy == 1 && is_vip_card_member == 1 && item.is_take_vipcard == 1 && item.isselect) {
|
|||
|
vipFee += (item.currntprice - item.card_price) * item.goodsnum * 1;
|
|||
|
} else if (item.is_mb_level_buy == 1 && item.isselect) {
|
|||
|
//等级优惠
|
|||
|
levelFee += (item.currntprice - item.levelprice) * item.goodsnum * 1;
|
|||
|
}
|
|||
|
|
|||
|
//自营商品满减配送费商品合计
|
|||
|
if (item.isselect && item.store_id==0) {
|
|||
|
if (is_open_vipcard_buy == 1 && is_vip_card_member == 1 && item.is_take_vipcard == 1) {
|
|||
|
deliveryGoodsTot += item.card_price * item.goodsnum * 1;
|
|||
|
} else if (item.is_mb_level_buy == 1){
|
|||
|
deliveryGoodsTot += item.levelprice * item.goodsnum * 1;
|
|||
|
} else {
|
|||
|
deliveryGoodsTot += item.currntprice * item.goodsnum * 1;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 商品合计
|
|||
|
if (item.isselect) {
|
|||
|
selectGoodsTot += item.currntprice * item.goodsnum * 1;
|
|||
|
}
|
|||
|
|
|||
|
//同城配送
|
|||
|
if (item.isselect && tabIdx==3) {
|
|||
|
curSelectGoodsTot += item.currntprice * item.goodsnum * 1;
|
|||
|
}
|
|||
|
})
|
|||
|
if(tabIdx==3){
|
|||
|
let { localtown_moneytype_fixed_deliverymoney, localtown_moneytype_fixed_freemoney } = localtown_fixed_list;
|
|||
|
let localtownCanBuy = localtown_moneytype_fixed_deliverymoney - curSelectGoodsTot; //>0显示起送差额
|
|||
|
let localtownManJian = localtown_moneytype_fixed_freemoney - curSelectGoodsTot; //>0显示免配送差额
|
|||
|
localtown_fee_list[key] = {};
|
|||
|
localtown_fee_list[key].localtownCanBuy = localtownCanBuy.toFixed(2);
|
|||
|
localtown_fee_list[key].localtownManJian = localtownManJian.toFixed(2);
|
|||
|
localtown_fee_list[key].localtown_moneytype_fixed_deliverymoney = localtown_moneytype_fixed_deliverymoney;
|
|||
|
localtown_fee_list[key].localtown_moneytype_fixed_freemoney = localtown_moneytype_fixed_freemoney;
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
// 计算满减金额
|
|||
|
let accordTot = 0;
|
|||
|
allReducGoods.forEach(function(item) {
|
|||
|
if (item.isselect && item.can_man_jian) {
|
|||
|
if (is_open_vipcard_buy == 1 && is_vip_card_member == 1 && item.is_take_vipcard==1) {
|
|||
|
accordTot += item.card_price * item.goodsnum * 1;
|
|||
|
} else if (item.is_mb_level_buy == 1){
|
|||
|
accordTot += item.levelprice * item.goodsnum * 1;
|
|||
|
} else {
|
|||
|
accordTot += item.currntprice * item.goodsnum * 1;
|
|||
|
}
|
|||
|
isCanManJian = 1;
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
let currentMjIdx = -1; //当前满减索引
|
|||
|
full_list.forEach((item, index)=>{
|
|||
|
if(accordTot >= item.full_money) {
|
|||
|
full_money = item.full_money*1;
|
|||
|
full_reducemoney = item.full_reducemoney*1;
|
|||
|
full_list[index].disable = true;
|
|||
|
currentMjIdx = index;
|
|||
|
} else {
|
|||
|
full_list[index].disable = false;
|
|||
|
}
|
|||
|
})
|
|||
|
// 未满足
|
|||
|
let cur_full_item = null;
|
|||
|
// 已享
|
|||
|
let sucess_full_item = null;
|
|||
|
let tot_full_len = full_list.length || 0;
|
|||
|
if(currentMjIdx==-1){
|
|||
|
cur_full_item = full_list[0];
|
|||
|
} else {
|
|||
|
if(currentMjIdx<tot_full_len) {
|
|||
|
if(currentMjIdx+1!=tot_full_len) cur_full_item = full_list[currentMjIdx+1];
|
|||
|
sucess_full_item = full_list[currentMjIdx];
|
|||
|
} else {
|
|||
|
sucess_full_item = full_list[currentMjIdx];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (accordTot >= full_money) {
|
|||
|
disAmount += full_reducemoney;
|
|||
|
} else {
|
|||
|
diffMoney = full_money - accordTot;
|
|||
|
}
|
|||
|
|
|||
|
let nextDiffMoney = 0;
|
|||
|
if(full_list.length > currentMjIdx+1) {
|
|||
|
nextDiffMoney = full_list[currentMjIdx+1].full_money*1 - accordTot;
|
|||
|
}
|
|||
|
|
|||
|
// 优惠金额(包含满减,会员等级优惠)
|
|||
|
disAmount += vipFee + levelFee;
|
|||
|
|
|||
|
totalAmount = (allcount * 1 - disAmount).toFixed(2);
|
|||
|
totalAmount = totalAmount <= 0 ? 0 : totalAmount;
|
|||
|
|
|||
|
let canbuy_tot = allcount * 1; //合计 计算满多少下单使用
|
|||
|
let canbuy_other = canbuy_tot - this.data.man_orderbuy_money;
|
|||
|
let vipTotal = selectGoodsTot;
|
|||
|
let levelToTal = selectGoodsTot;
|
|||
|
|
|||
|
// 团长满配送费
|
|||
|
let diffDeliveryMoney = 0;
|
|||
|
if (deliveryGoodsTot < man_free_tuanzshipping*1) {
|
|||
|
diffDeliveryMoney = man_free_tuanzshipping*1 - deliveryGoodsTot;
|
|||
|
}
|
|||
|
|
|||
|
// 同城配送
|
|||
|
let localtownCanBuy = true; //是否可以结算
|
|||
|
if(tabIdx==3) {
|
|||
|
Object.keys(localtown_fee_list).forEach(idx=>{
|
|||
|
if(localtown_fee_list[idx].localtownCanBuy>0&&carts[idx].isselect) localtownCanBuy = false;
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
console.log('=====carts=====', Object.keys(carts))
|
|||
|
// let cartsNull = false;
|
|||
|
// if(Object.keys(carts).length==0){cartsNull = true;}
|
|||
|
this.setData({
|
|||
|
// cartsNull,
|
|||
|
isCanManJian,
|
|||
|
canbuy_tot,
|
|||
|
totalAmount,
|
|||
|
disAmount: disAmount.toFixed(2),
|
|||
|
diffMoney: diffMoney.toFixed(2),
|
|||
|
canbuy_other: canbuy_other.toFixed(2),
|
|||
|
diffDeliveryMoney: diffDeliveryMoney.toFixed(2),
|
|||
|
vipFee: vipFee.toFixed(2),
|
|||
|
vipTotal: vipTotal.toFixed(2),
|
|||
|
levelFee: levelFee.toFixed(2),
|
|||
|
levelToTal: levelToTal.toFixed(2),
|
|||
|
full_reducemoney,
|
|||
|
full_list,
|
|||
|
nextDiffMoney: nextDiffMoney.toFixed(2),
|
|||
|
cur_full_item,
|
|||
|
sucess_full_item,
|
|||
|
localtown_fee_list,
|
|||
|
localtownCanBuy
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* vip商品价格计算
|
|||
|
* count: 原来总价
|
|||
|
* good: 商品
|
|||
|
* num: 数量,
|
|||
|
* type: add 加减
|
|||
|
*/
|
|||
|
calcVipPrice: function(count, good, num=0, type="add"){
|
|||
|
let { is_open_vipcard_buy, is_vip_card_member, canLevelBuy } = this.data;
|
|||
|
let goodsNum = num > 0 ? num : parseFloat(good.goodsnum);
|
|||
|
if (type === 'red') goodsNum = -1*goodsNum;
|
|||
|
count = parseFloat(count);
|
|||
|
// if (is_open_vipcard_buy == 1 && is_vip_card_member == 1 && good.is_take_vipcard==1 ) {
|
|||
|
// return count += parseFloat(good.card_price) * goodsNum;
|
|||
|
// } else if (canLevelBuy && good.is_mb_level_buy == 1){
|
|||
|
// return count += parseFloat(good.levelprice) * goodsNum;
|
|||
|
// }else {
|
|||
|
return count += parseFloat(good.currntprice) * goodsNum;
|
|||
|
// }
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 大家常卖
|
|||
|
*/
|
|||
|
openSku: function(t) {
|
|||
|
var that = this,
|
|||
|
e = t.detail;
|
|||
|
var goods_id = e.actId;
|
|||
|
var options = e.skuList;
|
|||
|
that.setData({
|
|||
|
addCar_goodsid: goods_id
|
|||
|
})
|
|||
|
let list = options.list || [];
|
|||
|
let arr = [];
|
|||
|
let goods_start_count = e.allData.goods_start_count || 1;
|
|||
|
if (list.length > 0) {
|
|||
|
for (let i = 0; i < list.length; i++) {
|
|||
|
let sku = list[i]['option_value'][0];
|
|||
|
let temp = {
|
|||
|
name: sku['name'],
|
|||
|
id: sku['option_value_id'],
|
|||
|
index: i,
|
|||
|
idx: 0
|
|||
|
};
|
|||
|
arr.push(temp);
|
|||
|
}
|
|||
|
var id = '';
|
|||
|
for (let i = 0; i < arr.length; i++) {
|
|||
|
if (i == arr.length - 1) {
|
|||
|
id = id + arr[i]['id'];
|
|||
|
} else {
|
|||
|
id = id + arr[i]['id'] + "_";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
var cur_sku_arr = options.sku_mu_list[id];
|
|||
|
cur_sku_arr.oneday_limit_count = e.allData.oneday_limit_count || 0;
|
|||
|
cur_sku_arr.total_limit_count = e.allData.total_limit_count || 0;
|
|||
|
cur_sku_arr.one_limit_count = e.allData.one_limit_count || 0;
|
|||
|
cur_sku_arr.goods_start_count = e.allData.goods_start_count || 1;
|
|||
|
|
|||
|
that.setData({
|
|||
|
sku: arr,
|
|||
|
sku_val: goods_start_count,
|
|||
|
cur_sku_arr: cur_sku_arr,
|
|||
|
skuList: e.skuList,
|
|||
|
visible: true,
|
|||
|
showSku: true
|
|||
|
});
|
|||
|
} else {
|
|||
|
let goodsInfo = e.allData;
|
|||
|
that.setData({
|
|||
|
sku: [],
|
|||
|
sku_val: 1,
|
|||
|
skuList: [],
|
|||
|
cur_sku_arr: goodsInfo
|
|||
|
})
|
|||
|
let formIds = {
|
|||
|
detail: {
|
|||
|
formId: ""
|
|||
|
}
|
|||
|
};
|
|||
|
formIds.detail.formId = "the formId is a mock one";
|
|||
|
that.gocarfrom(formIds);
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 确认加入购物车
|
|||
|
*/
|
|||
|
gocarfrom: function(e) {
|
|||
|
var that = this;
|
|||
|
var is_just_addcar = 1;
|
|||
|
wx.showLoading();
|
|||
|
a.collectFormIds(e.detail.formId);
|
|||
|
that.goOrder();
|
|||
|
},
|
|||
|
|
|||
|
changeCartNum(e) {
|
|||
|
let cartNum = e.detail || 0;
|
|||
|
let updateCart = this.data.updateCart;
|
|||
|
this.showCartGoods();
|
|||
|
this.setData({
|
|||
|
cartNum: cartNum,
|
|||
|
updateCart: updateCart + 1
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
goOrder: function() {
|
|||
|
var that = this;
|
|||
|
if (that.data.can_car) {
|
|||
|
that.data.can_car = false;
|
|||
|
}
|
|||
|
var token = wx.getStorageSync('token');
|
|||
|
var community = wx.getStorageSync('community');
|
|||
|
|
|||
|
var goods_id = that.data.addCar_goodsid;
|
|||
|
var community_id = community.communityId;
|
|||
|
var quantity = that.data.sku_val;
|
|||
|
var cur_sku_arr = that.data.cur_sku_arr;
|
|||
|
var sku_str = '';
|
|||
|
var is_just_addcar = 1;
|
|||
|
let updateCart = that.data.updateCart;
|
|||
|
|
|||
|
if (cur_sku_arr && cur_sku_arr.option_item_ids) {
|
|||
|
sku_str = cur_sku_arr.option_item_ids;
|
|||
|
}
|
|||
|
|
|||
|
let data = {
|
|||
|
goods_id,
|
|||
|
community_id,
|
|||
|
quantity,
|
|||
|
sku_str,
|
|||
|
buy_type: 'dan',
|
|||
|
pin_id: 0,
|
|||
|
is_just_addcar
|
|||
|
}
|
|||
|
util.addCart(data).then(res=>{
|
|||
|
if(res.showVipModal==1) {
|
|||
|
let { pop_vipmember_buyimage } = res.data;
|
|||
|
wx.hideLoading();
|
|||
|
that.setData({ pop_vipmember_buyimage, showVipModal: true, visible: false })
|
|||
|
} else {
|
|||
|
if (res.data.code == 3 || res.data.code == 7) {
|
|||
|
wx.showToast({
|
|||
|
title: res.data.msg,
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
} else if (res.data.code == 4) {
|
|||
|
wx.showToast({
|
|||
|
title: '您未登录',
|
|||
|
duration: 2000,
|
|||
|
success: () => {
|
|||
|
that.setData({
|
|||
|
needAuth: true, isEmpty: true
|
|||
|
})
|
|||
|
}
|
|||
|
})
|
|||
|
} else if (res.data.code == 6) {
|
|||
|
let max_quantity = res.data.max_quantity || '';
|
|||
|
(max_quantity > 0) && that.setData({
|
|||
|
sku_val: max_quantity,
|
|||
|
updateCart: updateCart + 1
|
|||
|
})
|
|||
|
var msg = res.data.msg;
|
|||
|
wx.showToast({
|
|||
|
title: msg,
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
} else {
|
|||
|
if (is_just_addcar == 1) {
|
|||
|
that.closeSku();
|
|||
|
that.showCartGoods();
|
|||
|
status.indexListCarCount(goods_id, res.data.cur_count);
|
|||
|
(0, status.cartNum)(res.data.total);
|
|||
|
that.setData({
|
|||
|
cartNum: res.data.total,
|
|||
|
updateCart: updateCart + 1
|
|||
|
})
|
|||
|
wx.showToast({
|
|||
|
title: "已加入购物车",
|
|||
|
image: "../../images/addShopCart.png"
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}).catch(res=>{
|
|||
|
app.util.message(res||'请求失败', '', 'error');
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
selectSku: function(event) {
|
|||
|
var that = this;
|
|||
|
let str = event.currentTarget.dataset.type;
|
|||
|
let obj = str.split("_");
|
|||
|
let arr = that.data.sku;
|
|||
|
let temp = {
|
|||
|
name: obj[3],
|
|||
|
id: obj[2],
|
|||
|
index: obj[0],
|
|||
|
idx: obj[1]
|
|||
|
};
|
|||
|
arr.splice(obj[0], 1, temp);
|
|||
|
that.setData({
|
|||
|
sku: arr
|
|||
|
})
|
|||
|
var id = '';
|
|||
|
for (let i = 0; i < arr.length; i++) {
|
|||
|
if (i == arr.length - 1) {
|
|||
|
id = id + arr[i]['id'];
|
|||
|
} else {
|
|||
|
id = id + arr[i]['id'] + "_";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
var { skuList, cur_sku_arr } = this.data;
|
|||
|
cur_sku_arr = Object.assign(cur_sku_arr, skuList.sku_mu_list[id]);
|
|||
|
|
|||
|
that.setData({
|
|||
|
cur_sku_arr: cur_sku_arr
|
|||
|
});
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 数量加减
|
|||
|
*/
|
|||
|
setNum: function(event) {
|
|||
|
let types = event.currentTarget.dataset.type;
|
|||
|
var that = this;
|
|||
|
var num = 1;
|
|||
|
let sku_val = this.data.sku_val * 1;
|
|||
|
if (types == 'add') {
|
|||
|
num = sku_val + 1;
|
|||
|
} else if (types == 'decrease') {
|
|||
|
let goods_start_count = this.data.cur_sku_arr.goods_start_count || 1;
|
|||
|
if (sku_val > 1) {
|
|||
|
num = sku_val - 1;
|
|||
|
if(num<goods_start_count){
|
|||
|
num = goods_start_count;
|
|||
|
wx.showToast({
|
|||
|
title: `${goods_start_count}件起售`,
|
|||
|
icon: 'none'
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
let arr = that.data.sku;
|
|||
|
var options = this.data.skuList;
|
|||
|
|
|||
|
if (arr.length > 0) {
|
|||
|
var id = '';
|
|||
|
for (let i = 0; i < arr.length; i++) {
|
|||
|
if (i == arr.length - 1) {
|
|||
|
id = id + arr[i]['id'];
|
|||
|
} else {
|
|||
|
id = id + arr[i]['id'] + "_";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (options.length > 0) {
|
|||
|
let cur_sku_arr = options.sku_mu_list[id];
|
|||
|
if (num > cur_sku_arr['canBuyNum']) {
|
|||
|
num = num - 1;
|
|||
|
}
|
|||
|
} else {
|
|||
|
let cur_sku_arr = this.data.cur_sku_arr;
|
|||
|
if (num > cur_sku_arr['canBuyNum']) {
|
|||
|
num = num - 1;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
this.setData({
|
|||
|
sku_val: num
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
skuConfirm: function() {
|
|||
|
this.closeSku(), (0, status.cartNum)().then((res) => {
|
|||
|
res.code == 0 && that.setData({
|
|||
|
cartNum: res.data
|
|||
|
})
|
|||
|
});
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 关闭购物车选项卡
|
|||
|
*/
|
|||
|
closeSku: function() {
|
|||
|
this.setData({
|
|||
|
visible: 0,
|
|||
|
stopClick: false,
|
|||
|
});
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 切换
|
|||
|
*/
|
|||
|
changeTabs: function(e){
|
|||
|
let that = this;
|
|||
|
let idx = e.currentTarget.dataset.idx || 0;
|
|||
|
let { tabIdx, carts, mult_carts } = this.data;
|
|||
|
if (tabIdx != idx) {
|
|||
|
mult_carts[tabIdx] = carts;
|
|||
|
carts = mult_carts[idx];
|
|||
|
let isEmpty = true;
|
|||
|
if (carts&&Object.keys(carts).length != 0) isEmpty = false;
|
|||
|
this.setData({
|
|||
|
tabIdx: idx,
|
|||
|
mult_carts,
|
|||
|
isEmpty,
|
|||
|
carts
|
|||
|
}, ()=>{
|
|||
|
that.xuan_func();
|
|||
|
})
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
vipModal: function(t) {
|
|||
|
this.setData(t.detail)
|
|||
|
}
|
|||
|
|
|||
|
})
|