667 lines
16 KiB
JavaScript
667 lines
16 KiB
JavaScript
// packageE/solitaire/solitaire.js
|
|
var app = getApp();
|
|
Page({
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
activity_id: 0,
|
|
activity_data: {},
|
|
hand_goods_obj: {},
|
|
hand_goods_id: 0,
|
|
shareShow: false,
|
|
specsShow: false,
|
|
goodsPopupShow: false,
|
|
cartListShow: false,
|
|
currentTime: parseInt(new Date().getTime() / 1000),
|
|
timeData: {},
|
|
shareOptions: [
|
|
{ name: "生成海报", icon: "poster" },
|
|
{ name: "分享给好友", icon: "wechat", openType: "share" },
|
|
],
|
|
goods_list: [],
|
|
buyerListData: [],
|
|
carList: [],
|
|
goodsCartsTotal: {},
|
|
language: {},
|
|
posterShow: false,
|
|
cartsNum: 0,
|
|
cartsTotal: 0,
|
|
cart_ids: [],
|
|
good_ids: [],
|
|
|
|
showChoose: false,
|
|
radioChoose: "",
|
|
dispatch_types: [],
|
|
|
|
networkLoading: false, //网络请求
|
|
|
|
buyerListDataLimit: [],
|
|
page: 1, //分页数,当前页数
|
|
isLoadMore: true, //判断是否要加载更多的标志
|
|
total_page: 0, //总页
|
|
|
|
end_time: "",
|
|
},
|
|
|
|
onChangeTime(e) {
|
|
this.setData({
|
|
timeData: e.detail,
|
|
});
|
|
},
|
|
|
|
onCloseShare() {
|
|
this.setData({ shareShow: false });
|
|
},
|
|
close_yz_cartList_popup() {
|
|
this.setData({
|
|
cartListShow: false,
|
|
});
|
|
},
|
|
typeChange(event) {
|
|
this.setData({
|
|
radioChoose: Number(event.detail),
|
|
});
|
|
},
|
|
close_yz_specs_popup(e) {
|
|
console.log(e);
|
|
if (e.detail.clicktype == 1) {
|
|
//点击确认按钮
|
|
this.addCartRequest({
|
|
goods: { id: e.detail.goodsId },
|
|
cartid: e.detail.cartid,
|
|
total: e.detail.goodsCount,
|
|
optionsId: e.detail.optionsId,
|
|
});
|
|
this.setData({
|
|
specsShow: false,
|
|
// optionsId: e.detail.optionsId,
|
|
// goodsCount: e.detail.goodsCount
|
|
});
|
|
} else {
|
|
this.setData({
|
|
specsShow: false,
|
|
});
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
let activity_id = options.activity_id;
|
|
let scene = decodeURIComponent(options.scene);
|
|
if (scene) {
|
|
var info_arr = [];
|
|
info_arr = scene.split("&");
|
|
console.log(info_arr);
|
|
for (let i = 0; i < info_arr.length; i++) {
|
|
let chil_arr = [];
|
|
chil_arr = info_arr[i].split("=");
|
|
console.log(chil_arr);
|
|
if (chil_arr[0] == "activity_id") {
|
|
activity_id = chil_arr[1];
|
|
}
|
|
if(chil_arr[0] == "mid"){
|
|
app._setMid(chil_arr[1]);
|
|
}
|
|
}
|
|
console.log(info_arr);
|
|
}
|
|
|
|
if (options.mid) {
|
|
app._setMid(options.mid);
|
|
}
|
|
|
|
if (activity_id && activity_id != 0) {
|
|
this.setData({ activity_id });
|
|
this.getData(activity_id);
|
|
this.getBuyerData(activity_id);
|
|
this.getCartList();
|
|
} else this.tips("参数错误");
|
|
},
|
|
initData() {
|
|
this.data.page = 1;
|
|
this.data.isLoadMore = true;
|
|
this.data.total_page = 0;
|
|
},
|
|
getData(activity_id) {
|
|
this.initData();
|
|
let urlStr = app.getNetAddresss(
|
|
"plugin.community-relay.frontend.activity.activity-detail"
|
|
);
|
|
app._postNetWork({
|
|
url: urlStr,
|
|
data: { activity_id },
|
|
success: (resdata) => {
|
|
let res = resdata.data;
|
|
if (res.result !== 1) return this.tips(res.msg);
|
|
// let date = new Date();
|
|
this.data.end_time = (res.data.end_time - this.data.currentTime) * 1000;
|
|
this.setData({
|
|
goods_list: res.data.goods_list,
|
|
networkLoading: true,
|
|
activity_data: res.data,
|
|
});
|
|
},
|
|
});
|
|
},
|
|
|
|
getBuyerData(activity_id) {
|
|
let urlStr = app.getNetAddresss(
|
|
"plugin.community-relay.frontend.activity.activity-buyer"
|
|
);
|
|
|
|
app._postNetWork({
|
|
url: urlStr,
|
|
data: { activity_id },
|
|
success: (resdata) => {
|
|
let res = resdata.data;
|
|
if (res.result !== 1) return this.tips(res.msg);
|
|
console.log(res);
|
|
this.setData({
|
|
buyerListDataLimit: res.data.data,
|
|
buyerListData: res.data.data,
|
|
});
|
|
this.data.isLoadMore = true;
|
|
this.data.total_page = res.data.last_page;
|
|
if (!this.data.total_page) {
|
|
this.data.total_page = 0;
|
|
}
|
|
},
|
|
});
|
|
},
|
|
_getMoreData() {
|
|
this.data.isLoadMore = false; // 防止多次请求分页数据
|
|
if (this.data.page >= this.data.total_page) {
|
|
// that.loading = true;
|
|
return;
|
|
} else {
|
|
this.data.page += 1;
|
|
let urlStr = app.getNetAddresss(
|
|
"plugin.community-relay.frontend.activity.activity-buyer"
|
|
);
|
|
app._postNetWork({
|
|
url: urlStr,
|
|
data: {
|
|
page: this.data.page,
|
|
activity_id: this.options.activity_id,
|
|
},
|
|
success: (resdata) => {
|
|
let res = resdata.data;
|
|
this.data.isLoadMore = true;
|
|
if (res.result === 1) {
|
|
var nextPageData = res.data.data;
|
|
let buyerListData = this.data.buyerListData.concat(nextPageData);
|
|
this.setData({ buyerListData });
|
|
} else {
|
|
this.data.page = this.data.page - 1;
|
|
this.data.isLoadMore = false;
|
|
}
|
|
},
|
|
});
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function () {
|
|
let language = wx.getStorageSync("langIndex");
|
|
this.setData({ language: language.en });
|
|
},
|
|
|
|
gotoOrder() {
|
|
wx.navigateTo({
|
|
url: "/packageA/member/myOrder_v2/myOrder_v2?status=0",
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {},
|
|
|
|
openGoodsDetail(e) {
|
|
let item = e.currentTarget.dataset.item;
|
|
if (item.id == this.data.hand_goods_id) {
|
|
this.setData({
|
|
goodsPopupShow: true,
|
|
});
|
|
} else {
|
|
this.data.hand_goods_id = item.id;
|
|
this.getGoodsDetails(item.id, "goodsDetails");
|
|
}
|
|
},
|
|
|
|
//不同规格的同一商品求和
|
|
calculateTotal(arr) {
|
|
let temp = {};
|
|
for (let i in arr) {
|
|
let key = arr[i].goods_id;
|
|
this.data.good_ids.push(key);
|
|
this.data.cart_ids.push(arr[i].id);
|
|
if (temp[key]) {
|
|
// temp[key].goods_id = temp[key].goods_id;
|
|
temp[key].total = temp[key].total + arr[i].total;
|
|
} else {
|
|
temp[key] = {};
|
|
temp[key].goods_id = arr[i].goods_id;
|
|
temp[key].total = arr[i].total;
|
|
temp[key].id = arr[i].id;
|
|
}
|
|
}
|
|
this.setData({
|
|
goodsCartsTotal: temp,
|
|
});
|
|
},
|
|
//统计购物车的总价格和总数量
|
|
getFirstCart(data) {
|
|
this.data.carts = data;
|
|
let cartsNum = 0;
|
|
let cartsTotal = 0;
|
|
this.data.carts.forEach((item) => {
|
|
cartsNum += item.total;
|
|
cartsTotal += item.total * item.goods.price;
|
|
});
|
|
cartsTotal = parseFloat(cartsTotal).toFixed(2);
|
|
this.setData({
|
|
cartsNum,
|
|
cartsTotal,
|
|
});
|
|
this.calculateTotal(this.data.carts);
|
|
},
|
|
|
|
openShareShow() {
|
|
this.setData({
|
|
shareShow: true,
|
|
});
|
|
},
|
|
|
|
openCartListPopup() {
|
|
this.setData({
|
|
cartListShow: !this.data.cartListShow,
|
|
});
|
|
},
|
|
|
|
onSelectShare(evt) {
|
|
this.onCloseShare();
|
|
if (evt.detail.index == 0) {
|
|
this.setData({
|
|
posterShow: true,
|
|
});
|
|
}
|
|
console.log(evt.detail.index);
|
|
},
|
|
|
|
openSpecs(e) {
|
|
let item = e.currentTarget.dataset.item;
|
|
if (item.id == this.data.hand_goods_id) {
|
|
this.setData({
|
|
specsShow: true,
|
|
});
|
|
} else {
|
|
this.data.hand_goods_id = item.id;
|
|
this.getGoodsDetails(item.id, "specs");
|
|
}
|
|
},
|
|
|
|
getGoodsDetails(id, type) {
|
|
let urlStr = app.getNetAddresss("goods.goods.get-goods-page");
|
|
app._postNetWork({
|
|
url: urlStr,
|
|
data: { id: Number(id) },
|
|
success: (resdata) => {
|
|
let res = resdata.data;
|
|
if (res.result !== 1) return this.tips(res.msg);
|
|
let name = "";
|
|
if (type == "goodsDetails") {
|
|
name = "goodsPopupShow";
|
|
} else if (type == "specs") {
|
|
name = "specsShow";
|
|
}
|
|
res.data.get_goods.end_time = this.data.end_time;
|
|
console.log("1111111111111111", this.data.end_time);
|
|
this.setData({
|
|
[name]: true,
|
|
hand_goods_obj: res.data.get_goods,
|
|
});
|
|
},
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {},
|
|
|
|
getCartList() {
|
|
let activity_id = this.data.activity_id;
|
|
let urlStr = app.getNetAddresss(
|
|
"plugin.community-relay.frontend.activity.activity-cart"
|
|
);
|
|
app._postNetWork({
|
|
url: urlStr,
|
|
data: { activity_id },
|
|
success: (resdata) => {
|
|
let res = resdata.data;
|
|
if (res.result !== 1) return this.tips(res.msg);
|
|
let carList = res.data;
|
|
this.setData({
|
|
carList,
|
|
});
|
|
this.getFirstCart(carList);
|
|
// this.calculateTotal(carList);
|
|
console.log(carList);
|
|
},
|
|
});
|
|
},
|
|
updateCartNum(evt) {
|
|
console.log(evt);
|
|
let item = evt.target.dataset.item;
|
|
let cartid = evt.target.dataset.cartid;
|
|
let value = evt.detail.value;
|
|
let total = value;
|
|
if (value == "" || value == 0) {
|
|
total = 0;
|
|
}
|
|
if (this.data.goodsCartsTotal[item.id].total == total) return;
|
|
this.reduceCartRequest({
|
|
goods: item,
|
|
cartid,
|
|
total,
|
|
});
|
|
},
|
|
|
|
reduceCartNum(evt) {
|
|
let item = evt.currentTarget.dataset.item;
|
|
let cartid = evt.currentTarget.dataset.cartid;
|
|
this.reduceCartRequest({ goods: item, cartid });
|
|
},
|
|
reduceCartRequest(obj) {
|
|
let { goods, cartid, total } = obj;
|
|
let id = goods.id;
|
|
let num = 0;
|
|
if (total || total === 0) {
|
|
num = total;
|
|
} else {
|
|
let obj = this.data.goodsCartsTotal;
|
|
num = Number(obj[id].total) - 1;
|
|
this.data.goodsCartsTotal[id].total = num;
|
|
}
|
|
|
|
let urlStr = "";
|
|
let json = {};
|
|
if (num <= 0) {
|
|
//清楚购物车
|
|
urlStr = app.getNetAddresss("member.member-cart.destroy");
|
|
json = {
|
|
ids: cartid,
|
|
};
|
|
} else {
|
|
urlStr = app.getNetAddresss("member.member-cart.updateNumV2");
|
|
json = {
|
|
id: cartid,
|
|
num: num,
|
|
};
|
|
}
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data: json,
|
|
success: (resdata) => {
|
|
var res = resdata.data;
|
|
this.tips(res.msg);
|
|
if (res.result == 1) {
|
|
this.getCartList();
|
|
}
|
|
},
|
|
});
|
|
},
|
|
addCartNum(evt) {
|
|
let item = evt.currentTarget.dataset.item;
|
|
let cartid = evt.currentTarget.dataset.cartid;
|
|
console.log(item);
|
|
this.addCartRequest({ goods: item, cartid });
|
|
},
|
|
|
|
//加入购物车
|
|
addCartRequest(obj) {
|
|
let { goods, cartid, total, optionsId } = obj;
|
|
console.log("加入购物车");
|
|
if (goods.vip_level_status && goods.vip_level_status.status == 1) {
|
|
return this.tips(goods.vip_level_status.tips);
|
|
}
|
|
|
|
if (goods.stock == 0) {
|
|
return this.tips("库存为零");
|
|
}
|
|
let num = 1;
|
|
let urlStr = "";
|
|
let jsons = {};
|
|
if (!app._isTextEmpty(this.data.goodsCartsTotal[goods.id]) && cartid != 0) {
|
|
if (this.data.goodsCartsTotal[goods.id].total >= goods.stock) {
|
|
return this.tips("库存不足");
|
|
}
|
|
let obj = this.data.goodsCartsTotal;
|
|
num = Number(obj[goods.id].total) + 1;
|
|
if (total && total > 0) {
|
|
num = total;
|
|
}
|
|
this.data.goodsCartsTotal[goods.id].total = num;
|
|
urlStr = app.getNetAddresss("member.member-cart.updateNumV2");
|
|
jsons = {
|
|
id: cartid,
|
|
num: num,
|
|
};
|
|
} else {
|
|
urlStr = app.getNetAddresss("member.member-cart.store");
|
|
if (total && total > 0) {
|
|
num = total;
|
|
}
|
|
jsons = {
|
|
goods_id: goods.id,
|
|
total: num,
|
|
};
|
|
if (optionsId && optionsId > 0) jsons.option_id = optionsId;
|
|
}
|
|
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data: jsons,
|
|
success: (resdata) => {
|
|
var res = resdata.data;
|
|
this.tips(res.msg);
|
|
if (res.result == 1) {
|
|
this.getCartList();
|
|
}
|
|
},
|
|
});
|
|
},
|
|
|
|
cartListAdd(item) {
|
|
console.log(item.detail);
|
|
console.log(this.data.goodsCartsTotal);
|
|
this.addCartRequest({
|
|
goods: item.detail.goods,
|
|
cartid: item.detail.id,
|
|
total: item.detail.total + 1,
|
|
});
|
|
},
|
|
|
|
cartListReduce(item) {
|
|
console.log(item.detail);
|
|
this.reduceCartRequest({
|
|
goods: item.detail.goods,
|
|
cartid: item.detail.id,
|
|
total: item.detail.total - 1,
|
|
});
|
|
},
|
|
|
|
cartListInputBlur(item) {
|
|
let cartList = this.data.carList;
|
|
for (let obj of cartList) {
|
|
console.log(item);
|
|
if (obj.id == item.detail.id) {
|
|
if (obj.total == item.detail.total) return;
|
|
}
|
|
}
|
|
this.reduceCartRequest({
|
|
goods: item.detail.goods,
|
|
cartid: item.detail.id,
|
|
total: item.detail.total,
|
|
});
|
|
},
|
|
|
|
goodsDetailCartAdd(evt) {
|
|
this.setData({
|
|
goodsPopupShow: false,
|
|
specsShow: true,
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {},
|
|
closeChoose() {
|
|
this.setData({
|
|
showChoose: false,
|
|
});
|
|
},
|
|
checkGoods() {
|
|
let urlStr = app.getNetAddresss("memberCart.checkout");
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data: {
|
|
cart_ids: this.data.cart_ids.join(","),
|
|
},
|
|
success: (resdata) => {
|
|
let res = resdata.data;
|
|
if (res.result !== 1) return this.tips(res.msg);
|
|
if (res.data.need_choose == 1) {
|
|
this.setData({
|
|
dispatch_types: res.data.dispatch_types,
|
|
showChoose: true,
|
|
});
|
|
} else {
|
|
this.submitGoods();
|
|
}
|
|
},
|
|
});
|
|
},
|
|
submitGoods() {
|
|
if (this.data.showChoose && !this.data.radioChoose) {
|
|
return this.tips("请先选择配送方式");
|
|
}
|
|
if (this.data.showChoose) {
|
|
// 配送方式有冲突
|
|
this.data.cart_ids = [];
|
|
for (
|
|
let i = 0;
|
|
i < this.data.dispatch_types[this.data.radioChoose].member_carts.length;
|
|
i++
|
|
) {
|
|
this.data.cart_ids.push(
|
|
this.data.dispatch_types[this.data.radioChoose].member_carts[i].id
|
|
);
|
|
}
|
|
}
|
|
this.verifyFrom();
|
|
// wx.navigateTo({
|
|
// url: '/packageD/buy/myOrder_v2/myOrder_v2?tag=-1' + '&cart_ids=' + JSON.stringify(this.data.cart_ids)
|
|
// })
|
|
},
|
|
//下单前验证
|
|
verifyFrom() {
|
|
let that = this;
|
|
let goods = [];
|
|
goods.push(that.data.good_ids);
|
|
let urlStr = app.getNetAddresss("from.div-from.isDisplay");
|
|
urlStr += "&goods_ids=" + JSON.stringify(goods);
|
|
app._getNetWork({
|
|
showToastIn: false,
|
|
url: urlStr,
|
|
success: function (resdata) {
|
|
var res = resdata.data;
|
|
if (res.result == 1) {
|
|
var _data = res.data;
|
|
console.log("xxxx", _data);
|
|
if (res.data.status && !res.data.member_status) {
|
|
wx.showModal({
|
|
title: "提示",
|
|
content: "购买此商品,请补充您的个人信息",
|
|
success(res) {
|
|
if (res.confirm) {
|
|
//保税真实信息添加
|
|
// wx.navigateTo({
|
|
// url: '/packageB/member/address/myinfo/myinfo?tag=-1&cart_ids=' + JSON.stringify(that.data.cart_ids)
|
|
// })
|
|
wx.navigateTo({
|
|
url: "/packageB/member/address/myinfo/myinfo?tag=delta",
|
|
});
|
|
} else if (res.cancel) {
|
|
console.log("用户点击取消");
|
|
}
|
|
},
|
|
});
|
|
} else {
|
|
wx.navigateTo({
|
|
url:
|
|
"/packageD/buy/myOrder_v2/myOrder_v2?tag=-1" +
|
|
"&cart_ids=" +
|
|
JSON.stringify(that.data.cart_ids),
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
icon: "none",
|
|
title: res.msg,
|
|
duration: 1500,
|
|
});
|
|
}
|
|
},
|
|
fail: function (res) {},
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
if (this.data.isLoadMore) {
|
|
this._getMoreData();
|
|
} else {
|
|
console.log("没有更多数据");
|
|
}
|
|
},
|
|
tips(msg) {
|
|
wx.showToast({
|
|
title: msg,
|
|
icon: "none",
|
|
});
|
|
return false;
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function () {
|
|
var value = wx.getStorageSync('yz_uid');
|
|
var mid = '';
|
|
if (value) {
|
|
mid = value;
|
|
}
|
|
return {
|
|
title: this.data.activity_data.activity_name,
|
|
path:
|
|
"/packageE/community_solitaire/community_solitaire?activity_id=" +
|
|
this.data.activity_id+ '&mid=' + mid,
|
|
};
|
|
},
|
|
});
|