// packageE/community_buying/buying_personal/buying_personal.js var WxParse = require("../../../wxParse/wxParse"); var app = getApp(); Page({ /** * 页面的初始数据 */ data: { time: 24 * 60 * 60 * 1000, group_id: 0, deliver_id: 0, group: {}, deliver: {}, hand_goods_obj: {}, hand_goods_id: 0, cart_ids: [], disabledInp: false, shareShow: false, shareOptions: [ { name: "生成海报", icon: "poster" }, { name: "分享给好友", icon: "wechat", openType: "share" }, ], themeColor: "#f14e4e", //#f14e4e }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { let scene = decodeURIComponent(options.scene); if (scene) { var info_arr = []; info_arr = scene.split(","); 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] == "id") { this.setData({ group_id: chil_arr[1] }); } if (chil_arr[0] == "deliver_id") { this.setData({ deliver_id: chil_arr[1] }); } } console.log(info_arr); } if (options.buyingid) { this.setData({ group_id: options.buyingid }); } if (options.deliver_id) { this.setData({ deliver_id: options.deliver_id }); } this.getData(); console.log(options); }, onChangeTime(e) { this.setData({ timeData: e.detail, }); }, onSelectShare(evt) { this.onCloseShare(); if (evt.detail.index == 0) { this.setData({ posterShow: true, }); } console.log(evt.detail.index); }, onCloseShare() { this.setData({ shareShow: false }); }, openShareShow() { this.setData({ shareShow: true, }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () {}, /** * 生命周期函数--监听页面显示 */ onShow: function () {}, /** * 生命周期函数--监听页面隐藏 */ onHide: function () {}, /** * 生命周期函数--监听页面卸载 */ onUnload: function () {}, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () {}, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () {}, gotoBusinessInfo() { let id = this.data.group_id; let deliver_id = this.data.deliver_id; wx.navigateTo({ url: "/packageE/community_buying/business_info/business_info?buyingid=" + id + "&deliver_id=" + deliver_id, }); }, getData() { let that = this; let id = this.data.group_id; let deliver_id = this.data.deliver_id; let urlStr = app.getNetAddresss( "plugin.package-deliver.frontend.communityGroups.groupDetail" ); app._getNetWork({ url: urlStr, data: { id, deliver_id }, success: (resdata) => { let res = resdata.data; if (res.result !== 1) return this.tips(res.msg); let group = res.data.group; let deliver = res.data.deliver; let time = 0; if (group.group_status == 0) { time = new Date(group.start_time.replace(/-/g, "/")).getTime() - new Date().getTime(); } else if (group.group_status == 1) { time = new Date(group.end_time.replace(/-/g, "/")).getTime() - new Date().getTime(); } this.setData({ group, time, deliver, }); let article = res.data.group.description; try { if (article.indexOf("&#") <= -1) { WxParse.wxParse("article", "html", article, that); } } catch (e) { console.log(e); } if (group.color) this.setData({ themeColor: group.color }); //获取购物车 this.getCartList(); }, }); }, getCartList() { let group_id = this.data.group_id; let deliver_id = this.data.deliver.id; console.log(deliver_id, "deliver_id"); let urlStr = app.getNetAddresss( "plugin.package-deliver.frontend.memberCart.index" ); app._postNetWork({ url: urlStr, data: { group_id, deliver_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); }, }); }, close_yz_cartList_popup() { this.setData({ cartListShow: false, }); }, checkGoods() { this.submitGoods(); // 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.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 ); } } if (this.data.cart_ids.length == 0) return; let { id, deliver_name, deliver_mobile, full_address } = this.data.deliver; let changeSelfCarry = { id, deliver_name, deliver_mobile, full_address, isChangeAddress: true, }; wx.navigateTo({ url: "/packageD/buy/myOrder_v2/myOrder_v2?tag=communityBuy" + "&package_deliver_id=" + this.data.deliver.id +"&group_id=" + this.data.group_id+ "&cart_ids=" + JSON.stringify(this.data.cart_ids) }); }, 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"); } }, openCartListPopup() { this.setData({ cartListShow: !this.data.cartListShow, }); }, //不同规格的同一商品求和 calculateTotal(arr) { let temp = {}; for (let i in arr) { let key = arr[i].goods_id; 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); }, 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( "plugin.package-deliver.frontend.memberCart.destroy" ); json = { ids: cartid, }; } else { urlStr = app.getNetAddresss( "plugin.package-deliver.frontend.memberCart.updateNumV2" ); json = { id: cartid, num: num, }; } this.setData({ disabledInp: true }) app._getNetWork({ url: urlStr, data: json, success: (resdata) => { var res = resdata.data; this.tips(res.msg); // if (res.result == 1) { this.getCartList(); // } this.setData({ disabledInp: false }) }, }); }, addCartNum(evt) { let item = evt.currentTarget.dataset.item; let cartid = evt.currentTarget.dataset.cartid; console.log(item); item.id = item.goods_id; 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( "plugin.package-deliver.frontend.memberCart.updateNumV2" ); jsons = { id: cartid, num: num, }; } else { urlStr = app.getNetAddresss( "plugin.package-deliver.frontend.memberCart.store" ); if (total && total > 0) { num = total; } jsons = { goods_id: goods.id, total: num, }; if (optionsId && optionsId > 0) jsons.option_id = optionsId; } let deliver_id = this.data.deliver.id; jsons.group_id = this.data.group_id; jsons.deliver_id = deliver_id; 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, }); }, goodsDetailCartAdd(evt) { this.setData({ goodsPopupShow: false, specsShow: true, }); }, 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, }); }, openSpecs(e) { let item = e.currentTarget.dataset.item; console.log(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"); } }, 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, }); } else { this.setData({ specsShow: false, }); } }, 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.time; this.setData({ [name]: true, hand_goods_obj: res.data.get_goods, }); }, }); }, tips(msg) { wx.showToast({ title: msg, icon: "none", }); return; }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { let path = "/packageE/community_buying/buying_personal/buying_personal?buyingid=" + this.data.group_id + "&deliver_id=" + this.data.deliver_id; var mid = wx.getStorageSync('yz_uid'); if (mid) { path = path + '&mid=' + mid } let obj = { path }; if (this.data.group.share_img) { obj.imageUrl = this.data.group.share_img; } console.log(obj); return obj; }, });