// packageC/o2o/o2oStore_v2/o2oStore_v2.js var specsManage = []; //选择池 用于排序 var optionsId = ""; //选择后的 规格ID var optionsMaxCount = 1; var clicktag = 0; var scrollY = 0; var listHeight = []; var listCategoryHeight = []; var lastcurrentCategoryheight = ""; var lastcurrentIndexheight = ""; var windowHeight = 600; try { const res = wx.getSystemInfoSync(); windowHeight = res.windowHeight; } catch (e) { // Do something when catch error } var app = getApp(); // const aloneUrl = 'plugin.store-alone-temp.frontend.microCommunities.index.get-micro-communities'; Page({ /** * 页面的初始数据 */ data: { showLength: 0, language: '', store_id: '', order_id: '', // 订单id参数(从订单页面过来的时候带 goodsCarts: {}, //购物车转为goods key的数组 showStoreInfo: false, new_comment: {}, store: { comment: { average_score: 0, comment_total: 0, new_comment: null }, goods_total: 0, order_count: 0, business_hours: "9:00-22:00", store_address: "", store_mobile: "", operating_state: 0 }, show1: false, carts: [], //购物车商品 cartsNum: 0, cartsTotal: 0.0, popNum: '', title: '', path: '', activeName: [], //分类折叠面板 secondaryId: "", //二级分类id category_id: '', //一级分类id isBottom: false, //控制到底下一级分类加载 category_loading: false, //控制下一级分类加载 category_last_loading: false, //控制上一级分类加载 category: [], secondCategory: [], goodsList: [], currentCategory: "", goodsCount: 0, //当前商品数量 pageCount: 1, specid: "", //规格ID catesId: "", loading: false, allLoaded: true, showGoods: true, goodsInfo: {}, showCart: false, popTitle: "", popThumb: "", popStock: "", popCard: {}, popPrice: "", popmPrice: "", goodsDescription: "", // 滚动需要的数据 secondTitle: [], goods: [], Index: 0, showDis: true, scrollTop: 0, goodsCartsOld: "", tabIndex: 0, tab: ["商品", "评价", "商家"], info: '', toolbar: false, cartchecked: true, goodsBoxheight: "564rpx", storeInfoboxtop: 0, minicartStyle: '', leftPrice: '', buttondisab: true, //more isLoadMore: true, page: 1, total_page: 0, amout: false, // get_coupon: [], micro_communities: [], get_recommend_goods: [], store_member: [], store_room: [], //门店配送 start +++++++++++++++++++++++ delivery_note: "", //门店配送说明 delivery_area: [ [116.403322, 39.920255] ], // 配送范围经纬度 locations: [116.403322, 39.920255], //门店经纬度 delivery_status: 0, //是否开启门店配送 markers_2: [{ // 获取返回结果,放到mks数组中 latitude: 23.099994, longitude: 113.324520, iconPath: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png", //图标路径 width: 20, height: 25, callout: { padding: '10rpx', borderRadius: '5rpx' } }], polygons_2: [{ points: [], fillColor: "#FF88887F", strokeColor: "#FFF", strokeWidth: 2, zIndex: 1 }], delivery: { longitude: "113.324520", latitude: "23.099994" }, // end --------------------------- isAeadyLoad: false, // 满额减、满额包邮 get_store_full_package: '', get_store_full_reduction: [], //good more goodPage: 1, //当前页数 goodIsLoadMore: true, //判断是否要加载更多的标志 goodTotal_page: 0, //总页数 flxShow: false, // 控制是否固定顶部 delivery_amount: 0, //门店起送金额 // 门店独立余额 storeAlone: false, tabIndex2: '店铺详情', tabList: [], menuList: [], //标签的数组集合 tabName: "门店详情", isLoading: false, //是否处于请求状态 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.initData(); if (app.globalData.store_alone_temp == 1) { this.setData({ storeAlone: true }); } if (options.scene) { 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] == 'store_id') { this.setData({ store_id: chil_arr[1] }); } if (chil_arr[0] == 'mid') { app._setMid(chil_arr[1]); } } } } if (options.store_id) { this.setData({ store_id: options.store_id }); } if (options.fromOrder == 1) { this.setData({ store_id: '', order_id: options.store_id }); } if (options.mid) { app._setMid(options.mid); } if (options.activeType === "comment") { this.setData({ tabIndex: 1 }); } this.getStoresDetails(); this.data.isAeadyLoad = true; }, readImg(e) { console.log(e); let url = e.currentTarget.dataset.url; wx.previewImage({ current: url, // 当前显示图片的http链接 urls: [url] // 需要预览的图片http链接列表 }); }, gotoGoodDetail(e) { console.log(e); let id = e.currentTarget.dataset.id; wx.navigateTo({ url: '/packageA/detail_v2/detail_v2?id=' + id }); }, copybtn(e) { let wechatCode = e.currentTarget.dataset.wechat; wx.setClipboardData({ data: wechatCode ? wechatCode : '', success(res) { wx.showToast({ icon: 'none', title: '复制成功', duration: 1000 }); } }); }, chooseTab(e) { let item = e.currentTarget.dataset.item; this.setData({ tabIndex2: Number(e.currentTarget.dataset.index), tabName: item.name }); if(item.name == '门店签到'){ wx.navigateTo({ url: '/packageF/storeSign/storeSign/storeSign?id='+this.data.store_id, }) return } this.getTabsData(); //请求标签数据 }, getTabsData() { if (!this.data.menuList[this.data.tabIndex2].url) { // getStoreInfo()方法返回并处理menuList数组 // 如该标签数据需要请求api获取,让后端返回请求接口的api; console.log("menu_list该标签没有返回请求api"); return; } if (this.data.menuList[this.data.tabIndex2].list.length > 0) { this.data.isLoadMore = this.data.menuList[this.data.tabIndex2].isLoadMore; return; } let _totalPage = 1; let _list = []; this.data.isLoading = true; let urlStr = app.getNetAddresss(this.data.menuList[this.data.tabIndex2].url); app._postNetWork({ url: urlStr, data: { page: 1, store_id: this.data.store_id }, success: (resdata) => { let res = resdata.data; if (res.result == 1) { if (this.data.tabName == "门店微贴") { _totalPage = res.data.last_page; _list = this.setCommunities(res.data.data); } else if (this.data.tabName == "门店员工") { _list = res.data; } else if (res.data?.data) { _totalPage = res.data.last_page; _list = res.data.data; } else { console.log("getTabsData()::error", res.data); } this.data.isLoadMore = true; this.data.menuList[this.data.tabIndex2].isLoadMore = true; this.data.menuList[this.data.tabIndex2].total_page = _totalPage; if (!this.data.menuList[this.data.tabIndex2].total_page) { this.data.menuList[this.data.tabIndex2].total_page = 0; } this.setData({ ['menuList[' + this.data.tabIndex2 + '].list']: _list }); } else { wx.showToast({ icon: "none", title: res.msg, duration: 1000, }); } }, fail: (res) => { console.log(res); }, }); }, setCommunities(_data) { let arr = []; _data.map(item => { arr.push({ id: item.id, title: item.title, praise_num: item.praise_num, has_one_stick_user: { avatar: item.user_avatar, nickname: item.user_nickname, }, has_many_image: [{ url: item.image, stick_id: item.id }] }); }); return arr; }, toCard(e) { let id = e.currentTarget.dataset.cardid; if (id) { wx.navigateTo({ url: '/packageB/member/business_card/BusinessCard/BusinessCard?card_id=' + id + '&mark=card' }); } }, gomenphone(e) { let mobile = e.currentTarget.dataset.phone; wx.makePhoneCall({ phoneNumber: mobile }); }, toGood(e) { let id = e.currentTarget.dataset.id; wx.navigateTo({ url: '/packageA/detail_v2/detail_v2?id=' + id }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { let language = wx.getStorageSync('langIndex'); this.setData({ 'language': language.en }); }, /** * 生命周期函数--监听页面显示 */ onShow: function () { if (!this.data.isAeadyLoad) { this.getStoresDetails('cart'); } }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { this.data.isAeadyLoad = false; }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { if (this.data.isLoadMore) { this._getMoreData(); } else { console.log('没有更多数据'); } }, _getMoreData() { let that = this; this.data.menuList[this.data.tabIndex2].isLoadMore = false; this.data.isLoadMore = false; // 防止多次请求分页数据 if (this.data.menuList[this.data.tabIndex2].page >= this.data.menuList[this.data.tabIndex2].total_page) { return; } else { let _list = []; let _json = { store_id: this.data.store_id }; this.data.menuList[this.data.tabIndex2].page = this.data.menuList[this.data.tabIndex2].page + 1; _json.page = this.data.menuList[this.data.tabIndex2].page; let urlStr = app.getNetAddresss(this.data.menuList[this.data.tabIndex2].url); app._postNetWork({ url: urlStr, showToastIn: false, data: _json, success: (resdata)=> { var res = resdata.data; if (res.result == 1) { that.data.isLoadMore = true; if (this.tabName == "门店微贴") { _list = this.setCommunities(res.data); } else if (this.tabName == "门店员工") { _list = res; } else if (res&&res.data) { _list = res.data; } else { console.log("getTabsData()::error", res); } this.setData({ ['menuList[' + this.data.tabIndex2 + '].list']: this.data.menuList[this.data.tabIndex2].list.concat(_list) }); } else { this.data.menuList[this.data.tabIndex2].page = this.data.menuList[this.data.tabIndex2].page - 1; this.data.menuList[this.data.tabIndex2].isLoadMore = false; this.data.isLoadMore = false; return; } }, fail: function (res) { console.log(res.msg); } }); } }, /** * 用户点击右上角分享 */ onShareTimeline: function () { let that = this; let kuid = wx.getStorageSync('yz_uid'); let _title = app._isTextEmpty(that.data.store.store_name) ? "" : that.data.store.store_name; let _link = '/packageC/o2o/o2oStore/o2oStore?fromHome=1&mid=' + kuid + '&store_id=' + this.data.store_id; return { title: _title, path: _link }; }, /** * 用户点击右上角分享 */ onShareAppMessage: function (res) { let that = this; let kuid = wx.getStorageSync('yz_uid'); let _title = app._isTextEmpty(that.data.store.store_name) ? '' : that.data.store.store_name; let _link = '/packageC/o2o/o2oStore/o2oStore?fromHome=1&mid=' + kuid + '&store_id=' + this.data.store_id; return { title: _title, path: _link }; }, trggleCart() { if (this.data.carts.length === 0) { return; } this.setData({ showCart: !this.data.showCart }); this.getminicartStyle(); }, show1Closebtn() { this.setData({ show1: false }); }, initData() { this.setData({ tabIndex: 0, category: [], goodsList: [], currentCategory: '', goodsCount: 0, pageCount: 1, cartsNum: 0, cartsTotal: 0.0, carts: [], goodsCarts: {}, specid: "" }); specsManage = []; //选择池 用于排序 optionsId = ""; //选择后的 规格ID optionsMaxCount = 1; clicktag = 0; scrollY = 0; listHeight = []; listCategoryHeight = []; lastcurrentCategoryheight = ""; lastcurrentIndexheight = ""; }, getStoresDetails(flag) { let that = this; let urlStr = app.getNetAddresss("plugin.store-cashier.frontend.store.get-store-info.get-stores-details"); app._postNetWork({ url: urlStr, data: { store_id: that.data.store_id, order_id: that.data.order_id, }, success: (resdata)=> { var res = resdata.data; if (res.msg === "该商家已过期,去看看其他的吧") { that.setData({ showDis: false, show8: true }); return; } if (res.result == 1) { res.data.store_information = res.data.store_information.replace(/ { arr_delivery_area.push([Number(item.R), Number(item.Q)]); }); that.setData({ delivery_area: arr_delivery_area, locations: [Number(locations.longitude).toFixed(6), Number(locations.latitude).toFixed(6)] }); if (that.data.locations && that.data.locations.length > 0) { that.setData({ "markers_2[0].longitude": that.data.locations[0], "markers_2[0].latitude": that.data.locations[1], "delivery.longitude": that.data.locations[0], "delivery.latitude": that.data.locations[1], }); } if (that.data.delivery_area && that.data.delivery_area.length > 0) { let points = []; for (let i = 0; i < that.data.delivery_area.length; i++) { points.push({ longitude: that.data.delivery_area[i][0], latitude: that.data.delivery_area[i][1] }); } that.setData({ "polygons_2[0].points": points, }); } } // end ---------------------------- if (that.data.store.operating_state === 1) { that.setData({ show1: true }); } that.setData({ get_coupon: res.data.get_coupon, get_recommend_goods: res.data.get_recommend_goods }); let tabList = [ { name: "店铺详情", api: "" }, { name: "门店员工", api: "plugin.store-cashier.frontend.store.get-store-info.get-store-staff" } ]; if (res.data.is_micro_communities == 1) { tabList.push({ name: "门店微贴", api: "plugin.store-cashier.frontend.store.get-store-info.get-micro-communities" }); } if (res.data.is_room == 1) { tabList.push({ name: "门店直播", api: "plugin.store-cashier.frontend.store.get-store-info.get-room" }); } if (res.data.is_fight_groups == 1) { tabList.push({ name: "门店拼团", api: "plugin.fight-groups.frontend.store.frontend-fight-groups.index" }); } if (res.data.is_store_deposit_ladder == 1) { tabList.push({ name: "定金阶梯团", api: "plugin.deposit-ladder.frontend.store.index.activities" }); } if(res.data.enabled_store_attendance == 1){ tabList.push({ name: "门店签到", api: "plugin.store-attendance.frontend.dashboard.index" }); } let menuList = []; // 处理并重新组装新数组和请求api tabList.forEach((val, index) => { menuList.push({ isLoadMore: true, page: 1, total_page: 0, list: [], url: val.api }); }); this.setData({ menuList:menuList, tabList:tabList, tabName:'店铺详情', tabIndex2:0, }); if (flag === 'cart') { that.getFirstCart(res.data.member_cart); } else { that.getAllCategory(res.data.first_category); that.getFirstCart(res.data.member_cart); } } else { wx.showToast({ icon: 'none', title: res.msg, duration: 1500 }); } }, fail: function (res) { console.log(res); } }); }, onChange(e) { this.setData({ activeName: e.detail }); }, upper(e) { this.setData({ amout: false, flxShow: false }); }, binddragend() { if (this.data.isBottom && this.data.goodPage >= this.data.goodTotal_page && !this.data.category_loading) { let category_id = ""; for (let i = 0; i < this.data.category.length; i++) { if (this.data.category_id == this.data.category[i].id && this.data.category[i + 1]) { category_id = this.data.category[i + 1].id; break; } } if (category_id) { this.setData({ category_id: category_id, }); this.getSecondCategory('load', { id: this.data.category_id }); } } }, bindscrolltolower() { if (this.data.goodIsLoadMore) { this.getMoreGood(); } if (this.data.goodPage >= this.data.goodTotal_page && !this.data.category_loading) { this.data.isBottom = true; } }, bindrefresherpulling() { this.data.isBottom = false; }, bindrefresherrefresh() { this.setData({ category_last_loading: true }); if (this.data.category_last_loading && !this.data.category_loading) { let category_id = ""; for (let i = 0; i < this.data.category.length; i++) { if (this.data.category_id == this.data.category[i].id && this.data.category[i - 1]) { category_id = this.data.category[i - 1].id; break; } } if (category_id) { console.log("加载上一个一级分类"); this.setData({ category_id: category_id, }); this.getSecondCategory('load', { id: this.data.category_id }); } else { this.setData({ category_last_loading: false }); } } }, foodsScrollbtn(e) { let ytop = e.detail.scrollTop; scrollY = Math.abs(Math.round(ytop)); // this.scrollMargin(scrollY) // this.currentCategoryIndexBtn() // this.currentIndexBtn() this.data.scrollTop = e.detail.scrollTop; if (windowHeight <= 670) { if (e.detail.scrollTop > 10) { if (!this.data.flxShow) { this.setData({ amout: true, flxShow: true }); } } else { if (this.data.flxShow) { this.setData({ amout: false, flxShow: false }); } } } setTimeout(() => { if(this.data.isBottom){ this.binddragend(); } }, 1000); }, getAllCategory(data) { let that = this; data.second_category.unshift({ name: '全部', id: '', }); that.setData({ category: data.first_category || [], secondCategory: data.second_category, secondaryId: "", goods: data.goods.data || [], goodTotal_page: data.goods.last_page }); this.setData({ showLength: Number(5 - this.data.goods.length) > 0 ? Number(5 - this.data.goods.length) : 1, }); if (this.data.category && this.data.category.length > 0) { that.setData({ category_id: this.data.category[0].id }); } const query = wx.createSelectorQuery(); query.select('#storeInfo_box').boundingClientRect(); query.exec(function (res) { that.setData({ Height: res[0].height + res[0].top - 60 }); }); //判断加的数据相等和长度 this.getgoodsboxheight(); }, getSecondCategory(e, category_id) { let item = {}; if (e == 'load') { item = category_id; } else { item = e.target.dataset.item || e.currentTarget.dataset.item; } this.setData({ category_id: item.id, goods: [], amout: false, flxShow: false, category_loading: true, scrollTop: '0', }); this.data.isBottom = false; let that = this; let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.store.get-store-info.get-second-category'); urlStr += '&store_id=' + this.data.store_id; urlStr += '&category_id=' + this.data.category_id; app._getNetWork({ url: urlStr, success: (resdata) => { var res = resdata.data; if (res.result == 1) { res.data.second_category.unshift({ name: '全部', id: '', }); that.setData({ category_last_loading: false, secondCategory: res.data.second_category, secondaryId: "", goods: res.data.goods.data, goodPage: 1, goodIsLoadMore: true, goodTotal_page: res.data.goods.last_page, }); this.setData({ showLength: Number(5 - this.data.goods.length) > 0 ? Number(5 - this.data.goods.length) : 1, }); } else { wx.showToast({ title: res.msg, icon: 'none', duration: 1500 }); } setTimeout(() => { this.setData({ category_last_loading: false, category_loading: false, }); }, 1500); }, fail: function (res) { console.log(res); } }); }, getSecondGoods(e) { let item = e.target.dataset.item || e.currentTarget.dataset.item; this.setData({ secondaryId: item.id, activeName: [] }); let that = this; let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.store.get-store-info.get-goods'); urlStr += '&store_id=' + this.data.store_id; urlStr += '&category_id=' + this.data.category_id; urlStr += '&second_category_id=' + this.data.secondaryId; app._getNetWork({ url: urlStr, success: (resdata) => { var res = resdata.data; if (res.result == 1) { that.setData({ goods: res.data.goods.data, goodPage: 1, goodIsLoadMore: true, goodTotal_page: res.data.goods.last_page, }); this.setData({ showLength: Number(5 - this.data.goods.length) > 0 ? Number(5 - this.data.goods.length) : 1, }); } else { wx.showToast({ title: res.msg, icon: 'none', duration: 1500 }); } }, fail: function (res) { console.log(res); } }); }, getMoreGood() { let that = this; this.setData({ goodIsLoadMore: false, category_loading: true }); if (this.data.goodPage >= this.data.goodTotal_page) { console.log("没有更多了"); this.setData({ category_loading: false, }); } else { console.log("加载更多"); this.setData({ goodPage: this.data.goodPage + 1 }); let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.store.get-store-info.get-goods'); urlStr += '&store_id=' + this.data.store_id; urlStr += '&category_id=' + this.data.category_id; urlStr += '&second_category_id=' + this.data.secondaryId || 0; urlStr += '&page=' + this.data.goodPage; app._getNetWork({ url: urlStr, success: (resdata) => { var res = resdata.data; if (res.result == 1) { that.setData({ goodIsLoadMore: true, goods: this.data.goods.concat(res.data.goods.data), }); if (this.data.goodPage >= this.data.goodTotal_page) { that.setData({ goodIsLoadMore: false, }); } } else { that.setData({ goodIsLoadMore: false, goodPage: this.goodPage - 1, }); wx.showToast({ title: res.msg, icon: 'none', duration: 1500 }); } that.setData({ category_loading: false, }); }, fail: function (res) { console.log(res); } }); } }, //直播间跳转 gopage(e) { let status = e.currentTarget.dataset.status; let id = e.currentTarget.dataset.id; let backid = e.currentTarget.dataset.backid; if (status == 1) { wx.navigateTo({ url: '/packageD/directSeeding/livePage/livePage?id=' + id + '&playerType=live' }); } else if (status == 2) { wx.navigateTo({ url: '/packageD/directSeeding/livePage/livePage?id=' + id + '&playerType=video' + '&backid=' + backid }); } else if (status == 3) { wx.navigateTo({ url: '/packageD/directSeeding/foreshow/foreshow?id=' + id }); } }, getCategory(data) { let that = this; this.setData({ category: data.list || [] }); if (this.data.category.length > 0) { for (let i = 0; i < this.data.category.length; i++) { if (this.data.category[i].childrens.length > 0) { this.setData({ ['category[' + i + '].active']: true }); if (this.data.category[i].childrens.length > 0) { this.setData({ ['category[' + i + '].childrens[0].active']: true, 'currentCategory': this.data.category[i].childrens[0].name, 'catesId': this.data.category[i].childrens[0].id }); // 全部二级商品数据 let firstClass = []; let secondTitle = []; this.data.category.forEach((first, index) => { console.log(first); if (first.childrens.length > 0) { // console.log(first.childrens) // return if (first.childrens.length == 1) { firstClass.push(first.childrens); } else if (first.childrens && first.childrens[i].goods.length >= 0) { firstClass.push(first.childrens); } } else { firstClass.push([]); } }); firstClass.forEach(second => { if (second.length > 0) { second.forEach(title => { secondTitle.push({ id: title.id, name: title.name }); }); } }); this.setData({ secondTitle: secondTitle, goods: firstClass, }); this.setData({ showLength: Number(5 - this.data.goods.length) > 0 ? Number(5 - this.data.goods.length) : 1, }); const query = wx.createSelectorQuery(); query.select('#storeInfo_box').boundingClientRect(); query.exec(function (res) { that.setData({ Height: res[0].height + res[0].top - 60 }); }); //判断加加的数据相等和长度 this.getgoodsboxheight(); this._calculateCategoryHeight(); this._calculateHeight(); this.currentCategoryIndexBtn(); this.currentIndexBtn(); this.setData({ currentCategoryIndex: i }); } break; } } } }, getgoodsboxheight() { let that = this; const query = wx.createSelectorQuery(); query.select('#nav').boundingClientRect(); const query_1 = wx.createSelectorQuery(); query_1.select('#settlecomplete').boundingClientRect(); const query_3 = wx.createSelectorQuery(); query_3.select('#search_top').boundingClientRect(); // 判断windowHeight <= 670 从而固定storeInfo_box query.exec(function (res) { query_1.exec(function (res_1) { query_3.exec(function (res_2) { that.setData({ goodsBoxheight: windowHeight <= 670 ? windowHeight - res_1[0].height - res_2[0].height - (res[0].top + res[0].height) + that.data.Height + 'px' : windowHeight - res_1[0].height - res_2[0].height - that.data.Height + 'px' }); }); }); }); }, // 监听可视化高度变化 _calculateCategoryHeight() { let height = 0; listCategoryHeight.push(height); const query = wx.createSelectorQuery(); query.selectAll('#foodsWrapper .food-list').boundingClientRect(); query.exec(function (res) { let foodList = res[0]; for (let i = 0; i < foodList.length; i++) { let item = foodList[i]; height += item.height; listCategoryHeight.push(height); } }); }, // 监听可视化高度变化 _calculateHeight() { let height = 0; listHeight.push(height); const query_1 = wx.createSelectorQuery(); query_1.selectAll('#foodsWrapper .food-list-hook').boundingClientRect(); query_1.exec(function (res) { let foodList = res[0]; for (let i = 0; i < foodList.length; i++) { let item = foodList[i]; height += item.height; listHeight.push(height); } }); }, // 计算li索引的高度变化 currentCategoryIndexBtn() { for (let i = 0; i < listCategoryHeight.length; i++) { let height1 = listCategoryHeight[i]; let height2 = listCategoryHeight[i + 1]; if ((height2 == undefined) || (scrollY >= height1 && scrollY < height2)) { if (!(lastcurrentCategoryheight === height1)) { this.setData({ currentCategoryIndex: i }); } lastcurrentCategoryheight = height1; return false; } } this.setData({ currentCategoryIndex: 0 }); }, // 计算li索引的高度变化 currentIndexBtn() { for (let i = 0; i < listHeight.length; i++) { let height1 = listHeight[i]; let height2 = listHeight[i + 1]; if (!height2 || (scrollY >= height1 && scrollY < height2)) { if (!(lastcurrentIndexheight === height1)) { this.setData({ currentIndex: this.data.secondTitle[i].id }); } lastcurrentIndexheight = height1; return false; } } this.setData({ currentIndex: 0 }); }, getFirstCart(data) { this.setData({ carts: data, goodsCarts: data, cartsNum: 0, cartsTotal: 0 }); this.data.carts.forEach(item => { // this.setData({ // ['goodsCarts[' + item.goods_id + ']']: item // }) if ( item.goods_id === this.data.goodsInfo.id && item.option_id === optionsId ) { this.setData({ popNum: item.total, popCard: item }); } this.setData({ cartsNum: this.data.cartsNum + item.total, cartsTotal: this.data.cartsTotal + (item.total * item.goods.price) }); }); this.setData({ goodsCartsTotal: this.calculateTotal(this.data.carts), cartsTotal: parseFloat(this.data.cartsTotal).toFixed(2) }); }, //搜索跳转 searchJump() { wx.navigateTo({ url: '/packageC/o2o/StoreSearch/StoreSearch?store_id=' + this.data.store_id + '&fromHome=1' }); }, //跳转门店优惠券 gotoCupcon() { wx.navigateTo({ url: '/packageC/o2o/store_coupon/store_coupon?id=' + this.data.store_id }); }, changeTab(e) { let index = e.currentTarget.dataset.index; this.setData({ tabIndex: index, // storeInfoboxtop: 0 }); this.setData({ amout: false, flxShow: false }); }, goBuy() { wx.navigateTo({ url: '/packageC/cashier/cashier_pay/cashier_pay?store_id=' + this.data.store_id }); }, selectCategoryMenu(e) { let item = e.currentTarget.dataset.items; if (item.childrens[0]) { this.selectMenu(item.childrens[0].id); console.log('kkk', item); } else { wx.showToast({ icon: 'none', title: "该分类暂无商品", duration: 1500 }); } }, // 点击的时候对应变化 selectMenuBtn(e) { let id = e.currentTarget.dataset.id; this.selectMenu(id); }, //跳转门店商品的详情 goToGoodsO2O(e) { let goods = e.currentTarget.dataset.food; if (this.data.store.operating_state !== 1) { wx.navigateTo({ url: '/packageA/detail_v2/detail_v2?id=' + goods.goods_id + '&tag=o2o' + '&store_id=' + this.data.store_id }); } }, //添加有规格商品到购物车 addGood(e) { let good = e.currentTarget.dataset.item; //价格权限 if (good.vip_level_status && good.vip_level_status.status == 1) { wx.showToast({ title: good.vip_level_status.tips, icon: 'none', duration: 2000 }); return false; } this.setData({ show2: true, goodsInfo: good }); this.initPopView(); //初始化弹窗view }, numberLeft(e) { if (!this.data.buttondisab) { return; } wx.showLoading({ title: '添加商品中' }); this.setData({ buttondisab: false }); let foodData = e.currentTarget.dataset.food; let goodsT = e.currentTarget.dataset.goods; console.log('bb1:::', foodData); console.log('bb2:::', goodsT); if (app._isTextEmpty(goodsT)) { this.updateCart(goodsT.id, -1); } else { this.setData({ goodsCartsOld: goodsT.total, ['goodsCarts[' + foodData.id + '].total']: Number(this.data.goodsCarts[foodData.id].total) - 1 }); clicktag = 0; this.updateCart(this.data.goodsCarts[foodData.id].id, -1); // this.changeCount(foodData.id, ''); } }, //商品列表 减(弹窗) numberLeft1(e) { if (!this.data.buttondisab) { return; } wx.showLoading({ title: '添加商品中' }); this.setData({ buttondisab: false }); let goodsT = e.currentTarget.dataset.item; let index = e.currentTarget.dataset.index; if (app._isTextEmpty(goodsT)) { this.updateCart(goodsT.id, -1); } else { this.setData({ goodsCartsOld: goodsT.total, ['carts[' + index + '].total']: Number(goodsT.total) - 1 }); clicktag = 0; this.updateCart(this.data.carts[index].id, -1); // this.changeCount(index, "carts"); } }, //商品列表 加 numberRight(e) { if (!this.data.buttondisab) { return; } wx.showLoading({ title: '添加商品中' }); this.setData({ buttondisab: false }); let foodData = e.currentTarget.dataset.food; let goodsT = e.currentTarget.dataset.goods; //价格权限 if (foodData.vip_level_status && foodData.vip_level_status.status == 1) { wx.showToast({ title: foodData.vip_level_status.tips, icon: 'none', duration: 2000 }); return false; } console.log('cc1:::', foodData); console.log('cc2:::', goodsT); let goodindex = e.currentTarget.dataset.goodindex; let index = e.currentTarget.dataset.index; let foodindex = e.currentTarget.dataset.foodindex; if (app._isTextEmpty(goodsT)) { this.addCart(foodData, '', goodindex, index, foodindex); } else { this.setData({ goodsCartsOld: goodsT.total, ['goodsCarts[' + foodData.id + '].total']: Number(this.data.goodsCarts[foodData.id].total) + 1 }); this.addCart(foodData, '', goodindex, index, foodindex); } }, //商品列表 加(弹窗) numberRight1(e) { if (!this.data.buttondisab) { return; } this.setData({ buttondisab: false }); wx.showLoading({ title: '添加商品中' }); let goodsT = e.currentTarget.dataset.item; let index = e.currentTarget.dataset.index; if (app._isTextEmpty(goodsT)) { this.addCart(goodsT, "cart"); } else { this.setData({ goodsCartsOld: goodsT.total, ['carts[' + index + '].total']: Number(goodsT.total) + 1 }); this.addCart(goodsT, "cart"); } }, changeCount_2(e) { let that = this; let val = e.detail.value; let index = e.currentTarget.dataset.index; that.setData({ ['carts[' + index + '].total']: val }); let goodsCartsData = that.data.carts[index]; if (goodsCartsData.total < 0) { wx.showToast({ icon: 'none', title: "商品数量不能为负数", duration: 1500 }); that.setData({ ['carts[' + index + '].total']: that.data.goodsCartsOld }); return; } if (goodsCartsData.total < that.data.goodsCartsOld) { let lowerNum = that.data.goodsCartsOld - goodsCartsData.total; that.updateCart(goodsCartsData.id, -lowerNum); } else if (goodsCartsData.total > that.data.goodsCartsOld) { let addNum = goodsCartsData.total - that.data.goodsCartsOld; that.updateCart(goodsCartsData.id, addNum); } }, updateCartBtn(e) { let id = e.currentTarget.dataset.id; let num = e.currentTarget.dataset.num; this.updateCart(id, num); }, updateCart(id, num) { if (num < 0) { var total = 0; this.data.carts.forEach(item => { console.log(item); if (item.id == id) { total = item.total; } }); if (total + num < 0) { if (clicktag === 0) { clicktag = 1; this.delItemByCart(id); setTimeout(function () { clicktag = 0; }, 500); } return; } if (clicktag === 0) { clicktag = 1; this.updateCartRequest(id, num); setTimeout(function () { clicktag = 0; }, 500); } } else { if (clicktag === 0) { clicktag = 1; this.updateCartRequest(id, num); setTimeout(function () { clicktag = 0; }, 500); } } }, delItemByCart(cart_id) { let that = this; let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.shoppingCart.member-cart.destroy'); urlStr += '&store_id=' + this.data.store_id; urlStr += '&ids=' + cart_id; app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { that.getCart(); that.setData({ popNum: that.data.popNum - 1, showCart: false }); that.getminicartStyle(); } else { wx.showToast({ title: res.msg, icon: 'none', duration: 1500 }); } }, fail: function (res) { console.log(res); } }); }, updateCartRequest(id, num) { let that = this; let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.shoppingCart.member-cart.updateNum'); urlStr += '&id=' + id; urlStr += '&num=' + num; urlStr += '&store_id=' + this.data.store_id; app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { if (num < 0) { that.setData({ popNum: that.data.popNum - 1 }); } else { that.setData({ popNum: that.data.popNum + 1 }); } that.getCart(); } else { wx.showToast({ title: res.msg, icon: 'none', duration: 1500 }); that.getCart(); } }, fail: function (res) { console.log(res); } }); }, changeCount(foodDatid, type) { //this.data.carts[index] let that = this; if (type == 'carts') { if (this.data.carts[foodDatid].total < 0) { wx.showToast({ title: "商品数量不能为负数", icon: 'none', duration: 1500 }); that.setData({ ['carts[' + foodDatid + '].total']: that.data.goodsCartsOld }); return; } if (this.data.carts[foodDatid].total < that.data.goodsCartsOld) { let lowerNum = that.data.goodsCartsOld - this.data.carts[foodDatid].total; that.updateCart(this.data.carts[foodDatid].id, -lowerNum); } else if (this.data.carts[foodDatid].total > that.data.goodsCartsOld) { let addNum = this.data.carts[foodDatid].total - that.data.goodsCartsOld; that.updateCart(this.data.carts[foodDatid].id, addNum); } else if ((this.data.carts[foodDatid].total == that.data.goodsCartsOld)) { return; } } else { if (this.data.goodsCarts[foodDatid].total < 0) { wx.showToast({ title: "商品数量不能为负数", icon: 'none', duration: 1500 }); that.setData({ ['goodsCarts[' + foodDatid + '].total']: that.data.goodsCartsOld }); return; } if (this.data.goodsCarts[foodDatid].total < that.data.goodsCartsOld) { let lowerNum = that.data.goodsCartsOld - this.data.goodsCarts[foodDatid].total; that.updateCart(this.data.goodsCarts[foodDatid].id, -lowerNum); console.log('kkkk_0:::'); } else if (this.data.goodsCarts[foodDatid].total > that.data.goodsCartsOld) { let addNum = this.data.goodsCarts[foodDatid].total - that.data.goodsCartsOld; that.updateCart(this.data.goodsCarts[foodDatid].id, addNum); console.log('kkkk_1:::'); } else if ((this.data.goodsCarts[foodDatid].total == that.data.goodsCartsOld)) { console.log('kkkk_2:::'); return; } } }, changeCount_1(e) { let that = this; let val = e.detail.value; let id = e.currentTarget.dataset.id; that.setData({ ['goodsCarts[' + id + '].total']: val }); let goodsCartsData = this.data.goodsCarts[id]; if (goodsCartsData.total < 0) { wx.showToast({ icon: 'none', title: "商品数量不能为负数", duration: 1500 }); that.setData({ ['goodsCarts[' + id + '].total']: that.data.goodsCartsOld }); return; } if (goodsCartsData.total < that.data.goodsCartsOld) { let lowerNum = that.data.goodsCartsOld - goodsCartsData.total; that.updateCart(goodsCartsData.id, -lowerNum); } else if (goodsCartsData.total > that.data.goodsCartsOld) { let addNum = goodsCartsData.total - that.data.goodsCartsOld; that.updateCart(goodsCartsData.id, addNum); } else if (goodsCartsData.total == that.data.goodsCartsOld) { return; } }, clickCount(e) { let total = e.currentTarget.dataset.total; this.setData({ goodsCartsOld: total }); }, Countstop(e) { }, addCart(goods, tag, goodindex, index, foodindex) { let that = this; let id = ""; if (tag === "cart") { id = goods.goods_id; } else { id = goods.id; } let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.shoppingCart.member-cart.store'); urlStr += '&goods_id=' + id; urlStr += '&total=1'; urlStr += '&store_id=' + this.data.store_id; app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { that.getCart(); // if (tag === "cart") { // that.getCart(); // } else { // that.getCart(goodindex, index, foodindex); // } } else { that.getCart(); wx.showToast({ title: res.msg, icon: 'none', duration: 1500 }); } }, fail: function (res) { console.log(res); } }); }, getCart(goodindex, index_1, foodindex) { let that = this; let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.shoppingCart.member-cart.index'); urlStr += '&store_id=' + this.data.store_id; app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { that.setData({ carts: res.data, goodsCarts: res.data, }); that.data.cartsNum = 0; that.data.cartsTotal = 0; let cartsNum = 0, cartsTotal = 0; that.data.carts.forEach((item, index) => { // that.setData({ // ['goodsCarts[' + item.goods_id + ']']: item // }) // if (foodindex && that.data.goods[goodindex][index_1].goods[foodindex].id == item.goods_id) { // that.setData({ // ['goods[' + goodindex + '][' + index_1 + '].goods[' + foodindex + '].buyNum']: item.total // }) // } if (item.goods_id === that.data.goodsInfo.id && item.option_id === optionsId) { that.setData({ popNum: item.total, popCard: item }); } cartsNum += item.total; cartsTotal += (item.total * item.goods.price); }); that.setData({ cartsNum, cartsTotal: parseFloat(cartsTotal).toFixed(2), goodsCartsTotal: that.calculateTotal(that.data.carts) }); } wx.hideLoading(); that.setData({ buttondisab: true }); }, fail: function (res) { wx.hideLoading(); that.setData({ buttondisab: true }); console.log(res); } }); }, //不同规格的同一商品求和 calculateTotal(arr) { let newArr = []; // 保存求和后的购物车数量列表 let temp = {}; let newArr2 = []; for (let i in arr) { let key = arr[i].goods_id; if (temp[key]) { temp[key].total = temp[key].total + arr[i].total; //id相同则把数量相加 } else { temp[key] = {}; temp[key].goods_id = arr[i].goods_id; temp[key].total = arr[i].total; } } for (let k in temp) { newArr.push(temp[k]); } newArr.forEach(item => { newArr2[item.goods_id] = item; }); return newArr2; }, selectMenu(id) { console.log(id); this.data.secondTitle.forEach((title, i) => { if (title.id === id) { this.setData({ Index: i, scrollTop: listHeight[i] }); return i; } }); }, goToAdress() { let latitude = this.data.store.lat; let longitude = this.data.store.lng; let store_name = this.data.store.store_name; let point = app.BMapTransqqMap(parseFloat(longitude), parseFloat(latitude)); wx.openLocation({ latitude: point.lat, longitude: point.lng, scale: 18, name: store_name }); }, gophone() { let mobile = this.data.store.store_mobile; wx.makePhoneCall({ phoneNumber: mobile }); }, isHasDifferType(data) { //门店购物车提交结算的时候,要判断当前购物车中是否同时存在普通商品和安装服务商品,如果同时存在,要弹框提示 // 商品不是安装服务商品,直接没有live_install这个字段 let open_state = 0; //有安装服务的商品 let clone_state = 0; //没安装服务的商品 let plugin_name = ""; data.forEach(item => { if (item.live_install && item.live_install.open_state == 1) { open_state += 1; plugin_name = item.live_install.plugin_name; } else { clone_state += 1; } }); if (open_state != 0 && clone_state != 0) { //都有值说明存在 两种 不同商品类型,提示框显示 wx.showModal({ title: '提示', content: `普通商品与${plugin_name}商品一同下单将无法享受${plugin_name},是否继续下单?`, success: (res) => { if (res.confirm) { this._goodsOrder(data, true); } else if (res.cancel) { console.log(res.cancel); } } }); return false; } return true; }, goodsOrder(e) { console.log(e); let val = e.currentTarget.dataset.goodscarts; this._goodsOrder(val); }, _goodsOrder(val, status) { let sum = 0; if (!status && !this.isHasDifferType(val)) { return; } this.data.carts.forEach(val => { sum += val.total; }); if (sum == 0) { return; } if (val.length == 0 || this.data.carts.length == 0) { return; } else { wx.navigateTo({ url: '/packageD/buy/myOrder_v2/myOrder_v2?tag=store&store_id=' + this.data.store_id }); } }, clearCart() { var that = this; var destroyCarts = []; this.data.carts.forEach(item => { destroyCarts.push(item.id); }); let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.shoppingCart.member-cart.destroy'); urlStr += '&store_id=' + this.data.store_id; urlStr += '&ids=' + destroyCarts; app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { that.getCart(); that.setData({ showCart: false, popNum: 0 }); that.getminicartStyle(); } else { wx.showToast({ title: res.msg, icon: 'none', duration: 1500 }); } }, fail: function (res) { console.log(res); } }); }, goTOHome() { wx.redirectTo({ url: '/packageC/o2o/o2oHome/o2oHome' }); }, // 关闭弹窗 close() { this.setData({ show2: false }); //确认后清空数值 optionsId = ""; specsManage = []; this.setData({ specid: "", popNum: 0 }); }, //界面选择规格触发事件 selectSpecs(e, str, i) { let id = 0; let index = 0; let indexl = 0; // let data = {}; if (str == 'first') { id = e.id; index = 0; indexl = i; // data = e; } else { id = e.currentTarget.dataset.itemid; index = e.currentTarget.dataset.index; indexl = e.currentTarget.dataset.indexl; // data = e.currentTarget.dataset.item; } //处理选择池 this.manageSpecs(indexl, index); //处理规格组合选择状态 this.setGoodsSpecs(indexl, index); //设置选择规格后的 价格、照片、库存 this.setGoodsSpecsChangeInfo(id); //判断当前购买总量与库存的关系 this.getMaxCount(); }, //处理选择池 manageSpecs(indexl, index) { let data = this.data.goodsInfo.has_many_specs[indexl].specitem[index]; var specsObject = new Object(); specsObject.id = data.id; specsObject.specid = data.specid; specsObject.title = data.title; if (specsManage.length > 0) { for (let i = 0; i < specsManage.length; i++) { if (specsManage[i].specid == specsObject.specid) { specsManage.splice(i, 1); } } specsManage.push(specsObject); } else { specsManage.push(specsObject); } //排序 if (specsManage.length == this.data.goodsInfo.has_many_specs.length) { var newSpecsManage = []; for (let i = 0; i < this.data.goodsInfo.has_many_specs.length; i++) { for (let j = 0; j < specsManage.length; j++) { if (this.data.goodsInfo.has_many_specs[i].id == specsManage[j].specid) { newSpecsManage.push(specsManage[j]); break; } } } specsManage = newSpecsManage; } this.setGoodsDescription(); }, //处理goodsDescription 数据 setGoodsDescription() { var description = ""; //相等代表全选了 体现语句 if (specsManage.length == this.data.goodsInfo.has_many_specs.length) { description = "已选择 "; for (let i = 0; i < specsManage.length; i++) { description += specsManage[i].title + " "; } this.setData({ goodsDescription: description }); } else { description = "请选择 "; for (let i = 0; i < this.data.goodsInfo.has_many_specs.length; i++) { for (let j = 0; j < specsManage.length; j++) { if (this.data.goodsInfo.has_many_specs[i].id != specsManage[j].specid) { description += this.data.goodsInfo.has_many_specs[i].title + " "; break; } } } this.setData({ goodsDescription: description }); } }, //处理规格组合选择状态 过滤数据 setGoodsSpecs(indexl, index) { let specs = this.data.goodsInfo.has_many_specs[indexl].specitem[index]; for (let i = 0; i < this.data.goodsInfo.has_many_specs.length; i++) { if (specs.specid != this.data.goodsInfo.has_many_specs[i].id) { this.setGoodsSpecsStatus(i, specs.id ); } } }, //处理规格组合选择状态 处理状态 specitem 组合数组(未选中的) id当前选中的ID 根据ID 组合算是否有当前组合 setGoodsSpecsStatus(index, id) { let specitem = this.data.goodsInfo.has_many_specs[index].specitem; let options = []; //数据池 for (let i = 0; i < this.data.goodsInfo.has_many_options.length; i++) { let _specs = this.data.goodsInfo.has_many_options[i].specs.split("_"); for (let j = 0; j < _specs.length; j++) { if (_specs[j] == id) { options.push(this.data.goodsInfo.has_many_options[i]); return; } } } for (let m = 0; m < options.length; m++) { let _specs = options[m].specs.split("_"); for (let y = 0; y < _specs.length; y++) { if (_specs[y] != id && options[m].stock == 0) { for (let n = 0; n < specitem.length; n++) { if (_specs[y] == specitem[n].id) { this.setData({ ['data.goodsInfo.has_many_specs[' + index + '].specitem[' + n + '].c']: true }); return; } } } else if (_specs[y] != id && options[m].stock > 0) { for (let n = 0; n < specitem.length; n++) { if (_specs[y] == specitem[n].id) { this.setData({ ['data.goodsInfo.has_many_specs[' + index + '].specitem[' + n + '].c']: false }); return; } } } } } }, //设置选择规格后的 价格、照片、库存 setGoodsSpecsChangeInfo(id) { //根据ID 排序 specsManage.sort(); specsManage.sort(function (a, b) { return a.id - b.id; }); if (specsManage.length === this.data.goodsInfo.has_many_specs.length) { let goodsSpecs = ""; for (let j = 0; j < specsManage.length; j++) { goodsSpecs += specsManage[j].id + "_"; } goodsSpecs = goodsSpecs.substring(0, goodsSpecs.length - 1); //处理"_" this.setData({ specid: goodsSpecs }); for (let i = 0; i < this.data.goodsInfo.has_many_options.length; i++) { if (goodsSpecs === this.setGoodsSpecsBySort(this.data.goodsInfo.has_many_options[i].specs)) { this.setData({ popmPrice: this.data.goodsInfo.has_many_options[i].market_price, //设置价格 popPrice: this.data.goodsInfo.has_many_options[i].product_price, //设置价格 popThumb: app._isTextEmpty(this.data.goodsInfo.has_many_options[i].thumb) ? this.data.goodsInfo.thumb : this.data .goodsInfo.has_many_options[i].thumb, //设置图片 popStock: this.data.goodsInfo.has_many_options[i].stock }); optionsId = this.data.goodsInfo.has_many_options[i].id; //设置规格ID,用于生成订单 optionsMaxCount = this.data.goodsInfo.has_many_options[i].stock; //库存最大数 用于切换更改买家购买数量 if (optionsMaxCount > 0) { this.setData({ popNum: 0 }); } break; } } for (let i = 0; i < this.data.carts.length; i++) { if (this.data.carts[i].goods_id === this.data.goodsInfo.id && this.data.carts[i].option_id === optionsId) { this.setData({ popNum: this.data.carts[i].total, popCard: this.data.carts[i] }); break; } this.setData({ popNum: 0, popCard: {} }); } } else { let goodsSpecs = ""; for (let j = 0; j < specsManage.length; j++) { goodsSpecs += specsManage[j].id + "_"; } this.setData({ specid: goodsSpecs }); } }, //处理商品goodsSpecs 并排序 新方法 setGoodsSpecsBySort(specs) { let _specs = specs.split("_"); //先变成数组 //_specs.sort();//排序 _specs.sort(function (a, b) { return a - b; }); // 在组装回去 let goodsSpecs = ""; for (let j = 0; j < _specs.length; j++) { goodsSpecs += _specs[j] + "_"; } goodsSpecs = goodsSpecs.substring(0, goodsSpecs.length - 1); //处理"_" return goodsSpecs; }, //判断当前购买总量与库存的关系 getMaxCount() { if (specsManage.length == this.data.goodsInfo.has_many_specs.length) { if (optionsMaxCount == 0) { //库存不足 this.setData({ popNum: 0 }); } if (this.data.popNum > optionsMaxCount) { this.setData({ popNum: optionsMaxCount }); } } }, //弹窗提交确认 submitAction() { if (specsManage.length < this.data.goodsInfo.has_many_specs.length) { //请选择规格 this.setData({ show2: false }); wx.showToast({ title: this.data.goodsDescription, icon: 'none', duration: 1500 }); return; } //处理参数 this.addCartRequest(this.data.goodsInfo.id, optionsId); }, //加入购物车网络操作 addCartRequest(_goodsId, _optionsId) { if (optionsMaxCount === 0) { //库存不足 wx.showToast({ title: "商品库存不足", icon: 'none', duration: 1500 }); return; } let that = this; let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.shoppingCart.member-cart.store'); urlStr += '&goods_id=' + _goodsId; urlStr += '&total=1'; urlStr += '&option_id=' + _optionsId; urlStr += '&store_id=' + this.data.store_id; app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { that.setData({ popNum: that.data.popNum + 1, }); that.getCart(); wx.showToast({ title: res.msg, icon: 'none', duration: 1500 }); } else { wx.showToast({ title: res.msg, icon: 'none', duration: 1500 }); } }, fail: function (res) { console.log(res); } }); }, showToolbar() { this.setData({ toolbar: !this.data.toolbar }); }, gohome() { wx.reLaunch({ url: '/packageG/index/index' }); }, goorderlist() { wx.navigateTo({ url: '/packageA/member/myOrder_v2/myOrder_v2' }); }, gomember() { wx.reLaunch({ url: '/packageG/member_v2/member_v2' }); }, cartChange(e) { let bol = e.detail; this.setData({ cartchecked: bol }); }, //初始化弹窗view initPopView() { optionsId = ""; specsManage = []; this.setData({ specid: "", popNum: 0 }); if (this.data.goodsInfo.has_option === 1) { //是否有规格 this.setData({ popTitle: this.data.goodsInfo.title, popThumb: this.data.goodsInfo.thumb, popStock: this.data.goodsInfo.stock, popCard: {} }); if (!this.data.specid.length) { this.setData({ popPrice: this.data.goodsInfo.min_price + "-" + this.data.goodsInfo.max_price }); } this.setData({ goodsDescription: '请选择' }); for (let i = 0; i < this.data.goodsInfo.has_many_specs.length; i++) { this.setData({ goodsDescription: this.data.goodsDescription + " " + this.data.goodsInfo.has_many_specs[i].title }); } if (!this.data.optionsId) { // 默认选择第一个 for (let i = 0; i < this.data.goodsInfo.has_many_specs.length; i++) { this.selectSpecs(this.data.goodsInfo.has_many_specs[i].specitem[0], 'first', i); } } } else { this.setData({ goodsDescription: "" }); optionsMaxCount = this.data.goodsInfo.stock; //设置最大购买量 } }, getminicartStyle() { if (this.data.showCart) { this.setData({ minicartStyle: "display: none;transform: translateY(-100%)", leftPrice: "transform: translateX(-60px);" }); } else { this.setData({ minicartStyle: "transform: translateY(0)", leftPrice: '' }); } } });