/* * 手太欠 * 愿这世界都如故事里一样 美好而动人~ */ Page({ /** * 页面的初始数据 */ data: { isFixedTop : 0, barHeight : getApp().globalData.barHeight, // 状态栏高度 goodsId : '', // 商品id goodsData : '', // 商品数据 mallContent : '', // 商品详情 skus : [], // 显示的规格-提交 skuid : '', specselect : '', // 确认购买的规格 selectSkusValues: '', // 默认选项 valueId : '', // 选中规格id valueIndex : '', // 选中规格下标index specselectIndex : '', qtyNumber : 1, // 产品数量 goodsSize : false, invite : '' }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.setData({ goodsId: options.id, }) getApp().globalData.invite = options.invite || '' }, /** * 生命周期函数--监听页面显示 */ onShow() { // 获取商品详情 this.goodsInfo(); }, /** * 输入产品数量 */ goodsNumberInput(e){ let inventory = this.data.selectSkusValues.stock if(inventory < e.detail.value ){ wx.showToast({ title: '超出库存数量', icon : 'none', }) this.setData({ qtyNumber: Math.min(inventory, e.detail.value) }) return } this.setData({ qtyNumber: e.detail.value }) }, /** * 离开产品数量 */ goodsNumberBlur(e){ let { value } = e.detail if(value == '' || value <= 0){ this.setData({ qtyNumber: 1 }) } }, /** * 商品详情 */ goodsInfo() { // 因分享朋友圈启动时未挂载全局接口方法,故这里只能使用微信原生方法 wx.showLoading({ title: '加载中...', mask : true }) wx.request({ // url : 'https://api.xhtest.douhuofalv.com/api/mall/goods/' + this.data.goodsId, url : 'https://api.xuanhuojk.com/api/mall/goods/' + this.data.goodsId, header : { "Accept" : "application/json", "channel" : "client", "Authorization" : wx.getStorageSync("token") || "" }, success: res => { wx.hideLoading() let { statusCode, data } = res if(statusCode == 200){ let dataOBJ = data.data this.setData({ goodsData : dataOBJ, mallContent : dataOBJ.content.replace(/\ { wx.showToast({ title: err.errMsg, icon : 'none' }) } }) // wx.$api.mall.goodsSee(this.data.goodsId).then(res => { // this.setData({ // goodsData : res.data, // mallContent : res.data.content.replace(/\{ // console.log(err) // }).finally(() => { // wx.hideLoading() // }) }, /** * 选规格 */ selectSize(e) { this.setData({ qtyNumber: 1 }) let valueid = e.currentTarget.dataset.valueid, index = e.currentTarget.dataset.index var temp1 = 'specselect['+index+']' this.setData({ [temp1]: valueid }) let newlist = [] let str = '' for (var i in this.data.specselect) { if (i == index) { newlist.push(valueid); if (i == 0) { str = valueid } else { str = str + '|' + valueid } } else { newlist.push(this.data.specselect[i]) if (i == 0) { str = this.data.specselect[i] } else { str = str + '|' + this.data.specselect[i] } } } for (var i in this.data.skus) { if (this.data.skus[i].unit == str) { this.setData({ selectSkusValues: this.data.skus[i] }) break; } } this.setData({ specselect: newlist }) }, /** * 产品数量加减 */ goodsNumber(e){ let num = this.data.qtyNumber, val = e.currentTarget.dataset.type, stock = this.data.selectSkusValues.stock if (val == 'plus'){ num ++; if(num > stock) { wx.showToast({ title : '商品数量不能大于库存量', icon : 'none' }) this.setData({ qtyNumber: stock }) } else { this.setData({ qtyNumber: num }) } }else{ if (num > 1){ num --; if(num < this.data.qtyNumber) { this.setData({ qtyNumber: num }) } }else{ wx.showToast({ title : '商品数量不能小于1', icon : 'none' }) } this.setData({ qtyNumber: num }) } }, /** * 规格弹出 */ buyPop() { this.setData({ goodsSize: !this.data.goodsSize }) }, /** * 规格关闭 */ closeTap() { this.setData({ goodsSize: false }) }, /** * 确认购买 */ buyTap() { // 获取登录状态 if(wx.getStorageSync("token") != ''){ let { sku_id, stock } = this.data.selectSkusValues; if (stock > 0) { this.setData({ skuid : sku_id, goodsSize : false }) wx.navigateTo({ url: '/pages/mall/confirm/confirm?skuId=' + sku_id + '&qty=' + this.data.qtyNumber || 1 }) } else { uni.showToast({ title: '当前商品库存不足', icon: 'none', mask: true, duration: 2000 }) } }else{ // 去登录 wx.navigateTo({ url: "/pages/login/index" }) } }, /** * 监听页面滑动事件 */ onPageScroll(e) { this.setData({ isFixedTop: parseInt(e.scrollTop) }); }, /** * 返回上一页 */ returnGo() { wx.navigateBack({ delta: 1, fail: () => { wx.switchTab({ url: '/pages/mall/index?invite=' + getApp().globalData.inviteText }) } }) }, /** * 回到首页 */ returnHome() { wx.switchTab({ url: '/pages/mall/index?invite=' + getApp().globalData.inviteText }) }, /** * 放大轮播相册图片 */ opneBanner(e){ let imgs = [], index = e.currentTarget.dataset.index for (let img of e.currentTarget.dataset.imgs){ imgs.push(img) } wx.previewImage({ urls : imgs, current : imgs[index] }) }, /** * 分享给朋友 */ onShareAppMessage(){ return{ title : this.data.goodsData.name, path : '/pages/mall/details/details?id=' + this.data.goodsId + '&invite=' + this.data.invite, imageUrl: this.data.goodsData.cover } }, /** * 分享朋友圈 */ onShareTimeline(){ return{ title : this.data.goodsData.name, query : 'id=' + this.data.goodsId + '&invite=' + this.data.invite, imageUrl : this.data.goodsData.cover } } })