229 lines
6.5 KiB
JavaScript
229 lines
6.5 KiB
JavaScript
var app = getApp();
|
|
var status = require('../../utils/index.js');
|
|
var util = require('../../utils/util.js');
|
|
|
|
Component({
|
|
/**
|
|
* 组件的属性列表
|
|
*/
|
|
properties: {
|
|
spuItem: {
|
|
type: Object,
|
|
value: {
|
|
skuList: []
|
|
},
|
|
observer: function (t) {
|
|
let skuList = t.skuList || [];
|
|
let specs = 0;
|
|
if (Object.prototype.toString.call(skuList) === '[object Array]') {
|
|
if (skuList.length) specs = 1;
|
|
} else {
|
|
if (Object.keys(skuList).length) specs = 1;
|
|
}
|
|
this.setData({ specs, number: t.goods_total_count || 0 })
|
|
}
|
|
},
|
|
idx: {
|
|
type: Number,
|
|
value: -1
|
|
},
|
|
type: {
|
|
type: Number,
|
|
value: 0
|
|
},
|
|
hasIpt: {
|
|
type: Boolean,
|
|
value: true
|
|
},
|
|
state: {
|
|
type: Boolean,
|
|
value: false
|
|
},
|
|
needAuth: {
|
|
type: Boolean,
|
|
value: false
|
|
},
|
|
soliId: {
|
|
type: Number,
|
|
value: 0
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 组件的初始数据
|
|
*/
|
|
data: {
|
|
number: 0,
|
|
placeholdeImg: app.globalData.placeholdeImg,
|
|
specs: 0 // 0单规格 1多规格
|
|
},
|
|
|
|
/**
|
|
* 组件的方法列表
|
|
*/
|
|
methods: {
|
|
handleSelect: function(){
|
|
this.triggerEvent("onSelect", this.data.spuItem);
|
|
},
|
|
handleDelete: function(){
|
|
this.triggerEvent("onSelect", this.data.idx);
|
|
},
|
|
showTip: function(){
|
|
let that = this;
|
|
wx.showToast({
|
|
title: '多规格商品只能去购物车删除',
|
|
icon: 'none',
|
|
complete: () => {
|
|
that.triggerEvent("showCart");
|
|
}
|
|
})
|
|
},
|
|
openSku: function () {
|
|
if (this.data.needAuth) {
|
|
this.triggerEvent("authModal", true);
|
|
return;
|
|
}
|
|
this.setData({
|
|
stopClick: true,
|
|
disabled: false
|
|
})
|
|
if (this.data.spuItem.skuList.length === void 0) {
|
|
console.log('多规格')
|
|
this.triggerEvent("openSku", {
|
|
actId: this.data.spuItem.actId,
|
|
skuList: this.data.spuItem.skuList,
|
|
promotionDTO: this.data.spuItem.promotionDTO,
|
|
is_take_vipcard: this.data.spuItem.is_take_vipcard,
|
|
is_mb_level_buy: this.data.spuItem.is_mb_level_buy,
|
|
allData: {
|
|
spuName: this.data.spuItem.spuName,
|
|
skuImage: this.data.spuItem.skuImage,
|
|
actPrice: this.data.spuItem.actPrice,
|
|
canBuyNum: this.data.spuItem.spuCanBuyNum,
|
|
stock: this.data.spuItem.spuCanBuyNum,
|
|
marketPrice: this.data.spuItem.marketPrice
|
|
}
|
|
});
|
|
} else {
|
|
this.addCart({ value: 1, type: "plus" });
|
|
}
|
|
},
|
|
changeNumber: function (t) {
|
|
var e = t.detail;
|
|
e && this.addCart(e);
|
|
},
|
|
outOfMax: function (t) {
|
|
var e = t.detail, canBuyNum = this.data.spuItem.spuCanBuyNum;
|
|
if (this.data.number >= canBuyNum) {
|
|
wx.showToast({
|
|
title: "不能购买更多啦",
|
|
icon: "none"
|
|
})
|
|
}
|
|
},
|
|
addCart: function (t) {
|
|
// {value: 2, type: "plus/minus"}
|
|
let token = wx.getStorageSync('token');
|
|
let community = wx.getStorageSync('community');
|
|
let goods_id = this.data.spuItem.actId;
|
|
let soli_id = this.data.soliId;
|
|
let community_id = community.communityId;
|
|
let that = this;
|
|
if (t.type == 'plus') {
|
|
let quantity = 1
|
|
if(t.value==1&&this.data.spuItem.goods_start_count>1) {
|
|
quantity = this.data.spuItem.goods_start_count;
|
|
}
|
|
let data = {
|
|
goods_id: goods_id,
|
|
community_id: community_id,
|
|
quantity,
|
|
sku_str: '',
|
|
buy_type: 'soitaire',
|
|
pin_id: 0,
|
|
is_just_addcar: 1,
|
|
soli_id
|
|
}
|
|
util.addCart(data).then(res=>{
|
|
if(res.showVipModal==1) {
|
|
let { pop_vipmember_buyimage } = res.data;
|
|
that.triggerEvent("vipModal", { pop_vipmember_buyimage, showVipModal: true, visible: false });
|
|
} else {
|
|
if (res.data.code == 3) {
|
|
let max_quantity = res.data.max_quantity || '';
|
|
(max_quantity > 0) && that.setData({ number: that.data.number })
|
|
wx.showToast({
|
|
title: res.data.msg,
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
} else if (res.data.code == 4) {
|
|
that.setData({ needAuth: true })
|
|
that.triggerEvent("authModal", true);
|
|
} else if (res.data.code == 6 || res.data.code == 7) {
|
|
let max_quantity = res.data.max_quantity || '';
|
|
(max_quantity > 0) && that.setData({ number: that.data.number })
|
|
var msg = res.data.msg;
|
|
wx.showToast({
|
|
title: msg,
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
} else {
|
|
let { goods_total_count, total, cur_count } = res.data;
|
|
that.setData({ number: cur_count })
|
|
wx.showToast({
|
|
title: "已加入购物车",
|
|
image: "../../images/addShopCart.png"
|
|
})
|
|
that.triggerEvent("changeCartNum", { goods_total_count, total, goods_id });
|
|
}
|
|
}
|
|
})
|
|
} else {
|
|
console.log(t)
|
|
let quantity = 1
|
|
if(t.value>=1&&this.data.spuItem.goods_start_count==(t.value+1)) {
|
|
quantity = this.data.spuItem.goods_start_count;
|
|
}
|
|
app.util.request({
|
|
url: 'entry/wxapp/user',
|
|
data: {
|
|
controller: 'car.reduce_car_goods',
|
|
token: token,
|
|
goods_id: goods_id,
|
|
community_id: community_id,
|
|
quantity,
|
|
sku_str: '',
|
|
buy_type: 'soitaire',
|
|
pin_id: 0,
|
|
is_just_addcar: 1,
|
|
soli_id
|
|
},
|
|
dataType: 'json',
|
|
method: 'POST',
|
|
success: function (res) {
|
|
if (res.data.code == 3) {
|
|
wx.showToast({
|
|
title: res.data.msg,
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
} else if (res.data.code == 4) {
|
|
if (that.data.needAuth) {
|
|
that.setData({ needAuth: true })
|
|
that.triggerEvent("authModal", true);
|
|
return;
|
|
}
|
|
} else {
|
|
let { goods_total_count, total, cur_count } = res.data;
|
|
that.setData({ number: cur_count })
|
|
that.triggerEvent("changeCartNum", { goods_total_count, total, goods_id });
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
})
|