| const app = getApp(); | 
| var util = require('../../utils/util.js'); | 
| var api = require('../../utils/service-api.js'); | 
|   | 
| Page({ | 
|   | 
|     /** | 
|      * 页面的初始数据 | 
|      */ | 
|     data: { | 
|       userInfo: '', //用户信息  | 
|     interval: 2000, | 
|     duration: 1000, | 
|     imgUrls: [], | 
|     imagetext: ['商品介绍', '规格与包装'], | 
|     currentTabsIndex: 0, | 
|     checkCollect: true, | 
|     goodsInfo: {},  | 
|     normspopup: false, | 
|     currentIndex: 0, | 
|     id: '', | 
|     num: 1, | 
|     whetherSpecification: false, //是否选择规格 | 
|     specification: '', //规格 | 
|     specificationId: '', //规格id | 
|     specificationPrice: '', //规格价格 | 
|     price: '', //价格 | 
|     originalPrice: '', //划线价 | 
|     normsList: [],     | 
|     currentIndexs: 0, | 
|     currentIndex: 0, | 
|     hidden: false, | 
|     limit: 10, | 
|     offset: 0, | 
|     inform: true, | 
|     hidden: true, | 
|     shareShow: false, | 
|     cartProductId: "", //商品id | 
|     title: "", //商品名 | 
|     imgSrc: "", //商品图片 | 
|     isShare: 0, | 
|     qrcode: false,  | 
|     djsTime: {}, //倒计时 | 
|     isFirst: 1,//是否第一次进入页面 | 
|     }, | 
|   | 
|     /** | 
|      * 生命周期函数--监听页面加载 | 
|      */ | 
|     onLoad: function (options) { | 
|         var _this = this; | 
|         var id = options.id; //秒杀id | 
|         var shopId = options.shopId; | 
|         var needGetShopInfo = false; | 
|   | 
|         if (id == undefined) { | 
|             //通过二维码进入 | 
|             const scene = decodeURIComponent(options.scene); | 
|             var params = scene.split(","); | 
|             console.log("扫码参数", params); | 
|             shopId = params[0]; | 
|             id = params[1]; | 
|             app.shopInfo = { | 
|                 id: shopId | 
|             }; | 
|             needGetShopInfo = true; | 
|         } | 
|   | 
|         //未获取到活动id | 
|         if (!id) { | 
|             wx.showModal({ | 
|                 title: '提示', | 
|                 content: '产品信息加载失败', | 
|                 showCancel: false | 
|             }) | 
|             return; | 
|         } else { | 
|             _this.setData({ | 
|                 id: id | 
|             }); | 
|   | 
|         } | 
|   | 
|           //检测用户登录 | 
|     if (!getApp().loginToken) { | 
|   | 
|         util.userLogin(function() { | 
|    | 
|           _this.getPageInfo(id); | 
|         }); | 
|    | 
|       } else { | 
|         this.getPageInfo(id); | 
|    | 
|       } | 
|    | 
|       //获取门店信息 | 
|       if (needGetShopInfo) { | 
|         setShopInf(shopId); | 
|       } | 
|   | 
|   | 
|     }, | 
|   | 
|   | 
|   /** | 
|    * 秒杀数据 | 
|    */ | 
|   getPageInfo(id) { | 
|   | 
|     var _this = this; | 
|     //处理产品信息 | 
|     util.request({ | 
|       api: api.seckill.findSecKillGoodsInfo + id, | 
|       method: 'GET', | 
|       checkLogin: true, | 
|       callback: function(data) { | 
|   | 
|         | 
|         let msActivitInfo=data.mapInfo.goodsInfo; | 
|         let goodsInfo = data.mapInfo.goodsInfo.goods; | 
|   | 
|         if (goodsInfo.mobileDetails != null) { | 
|           goodsInfo.mobileDetails = goodsInfo.mobileDetails.replace(/<img /g, '<img class="rich_img" '); | 
|           console.log(goodsInfo.mobileDetails); | 
|         } | 
|         _this.setData({ | 
|           goodsInfo: goodsInfo, | 
|           imgUrls: goodsInfo.productImgs, | 
|           normsList: goodsInfo.skus, | 
|           specification: goodsInfo.skus[0].name, | 
|           specificationPrice: goodsInfo.skus[0].price, | 
|           price: goodsInfo.skus[0].price, | 
|           specificationId: goodsInfo.skus[0].id, | 
|           imgSrc: goodsInfo.imgMobile, | 
|           title: goodsInfo.title, | 
|           hidden: true, | 
|           //整场秒杀活动信息 | 
|           activity: data.mapInfo.activity, | 
|           //本产品秒杀活动信息 | 
|           msActivitInfo: msActivitInfo, | 
|         });  | 
|         _this.djs(); | 
|   | 
|       }}) | 
|   | 
|          | 
|   }, | 
|   | 
|   | 
|   | 
|   /** | 
|    * 倒计时 | 
|    */ | 
|   djs() { | 
|     var _this = this; | 
|     let time = _this.data.activity.remainTime; | 
|   | 
|     var interval = setInterval(function() { | 
|       time--;  | 
|       if (time < 0) { | 
|         _this.data.activity.actStatus=2; | 
|         clearInterval(interval); | 
|       } else { | 
|         _this.setData({ | 
|           djs: util.getTimeSpance(time), | 
|           time: time, | 
|         }); | 
|       } | 
|   | 
|     }, 1000); | 
|   }, | 
|   | 
|   | 
|       //从服务器加载门店信息 | 
|   setShopInf(shopId) { | 
|     util.request({ | 
|       api: api.yuyue.findShopInfoById + "/" + shopId, | 
|       callback: function(data) { | 
|         app.shopInfo = data.mapInfo.shopInfo; | 
|       }, | 
|       checkLogin: true, | 
|     }); | 
|   }, | 
|   | 
|   | 
|   | 
|   // 立即购买 | 
|   buy() { | 
|     var _this = this; | 
|     var userInfo = getApp().userInfo; | 
|     if (util.isBlank(userInfo.nickName)) { | 
|       wx.navigateTo({ | 
|         url: '/pages/welcome/welcome?url=back', | 
|       }) | 
|     } | 
|   | 
|   | 
|     //判断是否授权头像 | 
|     | 
|   | 
|     // 判断是否绑定过手机号 | 
|     if (util.isBlank(getApp().userInfo.phoneNumber)) { | 
|       wx.navigateTo({ | 
|         url: '../phone/phone', | 
|       }) | 
|     } else { | 
|   | 
|       let goodsInfo = _this.data.goodsInfo; | 
|   | 
|       if (!_this.data.whetherSpecification) { | 
|         console.log("存在多个规格,且没有选择过规格,弹出请选择"); | 
|         _this.setData({ | 
|           whetherSpecification: true, | 
|           normspopup: true | 
|         }); | 
|       } else { | 
|         //隐藏规格 | 
|         this.cancelNorms(); | 
|   | 
|         var id = _this.data.goodsInfo.id; // 商品id | 
|         var cartSkuId = _this.data.specificationId; //规格id | 
|         var cartNumber = _this.data.num; //数量 | 
|   | 
|         var stockNum = _this.data.msActivitInfo.siRemainCnt; | 
|         if (stockNum < 1) { | 
|           wx.showToast({ | 
|             title: "您来晚了,商品已经抢光了", | 
|             icon: 'none', | 
|           }); | 
|           return; | 
|         }  | 
|           //订单参数 | 
|         let orderMsg = { | 
|           goodsInfo: goodsInfo,  | 
|           cartSkuId: cartSkuId, | 
|           cartNumber: cartNumber, | 
|           specification: _this.data.specification, | 
|           msActivitInfo: _this.data.msActivitInfo, | 
|         }; | 
|   | 
|         wx.setStorageSync("orderMsg", orderMsg); | 
|         //进入结算 | 
|         wx.navigateTo({ | 
|           url: '/pages/miaosha/msOrder', | 
|         })  | 
|   | 
|       } | 
|     } | 
|   | 
|   | 
|   | 
|   }, | 
|    | 
|   | 
|   //规格选择 | 
|   norms(e) { | 
|     var index = e.currentTarget.dataset.index; | 
|     var value = e.currentTarget.dataset.value; | 
|     var price = e.currentTarget.dataset.price; | 
|     var id = e.currentTarget.dataset.id; | 
|     this.setData({ | 
|       currentIndex: index, | 
|       specification: value, | 
|       specificationPrice: price, | 
|       specificationId: id | 
|   | 
|     }) | 
|   }, | 
|   | 
|   | 
|   // 显示规格 | 
|   showNorms() { | 
|     this.setData({ | 
|       whetherSpecification: true, | 
|       normspopup: true | 
|     }) | 
|   }, | 
|   | 
|   | 
|   //隐藏规格 | 
|   cancelNorms() { | 
|     this.setData({ | 
|       normspopup: false | 
|     }) | 
|   }, | 
|   | 
|   | 
|   /** | 
|    * 绑定加数量事件 | 
|    */ | 
|   addCount(e) { | 
|     var _this = this; | 
|     let num = _this.data.num; | 
|     num = num + 1; | 
|     this.setData({ | 
|       num: num | 
|     }); | 
|   }, | 
|   | 
|   /** | 
|    * 绑定减数量事件 | 
|    */ | 
|   minusCount(e) { | 
|     var _this = this; | 
|     let num = _this.data.num; | 
|     if (num <= 1) { | 
|       return false; | 
|     } | 
|     num = num - 1; | 
|     this.setData({ | 
|       num: num | 
|     }); | 
|   }, | 
|     /** | 
|      * 生命周期函数--监听页面初次渲染完成 | 
|      */ | 
|     onReady: function () { | 
|   | 
|     }, | 
|   | 
|     /** | 
|      * 生命周期函数--监听页面显示 | 
|      */ | 
|     onShow: function () { | 
|   | 
|     }, | 
|   | 
|     /** | 
|      * 生命周期函数--监听页面隐藏 | 
|      */ | 
|     onHide: function () { | 
|   | 
|     }, | 
|   | 
|     /** | 
|      * 生命周期函数--监听页面卸载 | 
|      */ | 
|     onUnload: function () { | 
|   | 
|     }, | 
|   | 
|     /** | 
|      * 页面相关事件处理函数--监听用户下拉动作 | 
|      */ | 
|     onPullDownRefresh: function () { | 
|   | 
|     }, | 
|   | 
|     /** | 
|      * 页面上拉触底事件的处理函数 | 
|      */ | 
|     onReachBottom: function () { | 
|   | 
|     }, | 
|   | 
|   | 
|   | 
|   /** | 
|    * 获取二维码 | 
|    */ | 
|   getQrcode: function() { | 
|   | 
|     var _this = this; | 
|     if (_this.data.qrcode) { | 
|       wx.previewImage({ | 
|         current: _this.data.qrcode, // 当前显示图片的http链接 | 
|         urls: [_this.data.qrcode] // 需要预览的图片http链接列表 | 
|       }) | 
|     } else { | 
|   | 
|       var shopId = app.shopInfo.id;  | 
|       const msActivitInfo = _this.data.msActivitInfo; | 
|       var data = { | 
|         shopId:shopId, | 
|         actId: msActivitInfo.actId,    | 
|         scene: shopId + "," + msActivitInfo.id, | 
|         path: "pages/miaosha/msDetails", | 
|         skillId: msActivitInfo.id, | 
|         activityType:3, | 
|       }; | 
|   | 
|      util.request({ | 
|   | 
|   | 
|         method: "POST", | 
|         data:data, | 
|         api: '/wxapi/shareProduct/getProductShareQrcode/', | 
|         callback: function(data2) { | 
|   | 
|   | 
|           var qrcode = data2.rows[0].qrcodeUrl | 
|           console.log(qrcode); | 
|           _this.setData({ | 
|             qrcode: qrcode, | 
|           }) | 
|   | 
|           wx.previewImage({ | 
|             current: _this.data.qrcode, // 当前显示图片的http链接 | 
|             urls: [_this.data.qrcode], // 需要预览的图片http链接列表 | 
|             success: function() { | 
|   | 
|               wx.downloadFile({ | 
|                 url: _this.data.qrcode, | 
|                 success: function(res) { | 
|                   console.log(res); | 
|                   //图片保存到本地 | 
|                   wx.saveImageToPhotosAlbum({ | 
|                     filePath: res.tempFilePath, | 
|                     success: function(data) { | 
|                       wx.showToast({ | 
|                         title: '保存成功', | 
|                         icon: 'success', | 
|                         duration: 2000 | 
|                       }) | 
|                     }, | 
|                     fail: function(err) { | 
|                       console.log(err); | 
|                       if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") { | 
|                         console.log("当初用户拒绝,再次发起授权") | 
|                         wx.openSetting({ | 
|                           success(settingdata) { | 
|                             console.log(settingdata) | 
|                             if (settingdata.authSetting['scope.writePhotosAlbum']) { | 
|                               console.log('获取权限成功,给出再次点击图片保存到相册的提示。') | 
|                             } else { | 
|                               console.log('获取权限失败,给出不给权限就无法正常使用的提示') | 
|                             } | 
|                           } | 
|                         }) | 
|                       } | 
|                     }, | 
|                     complete(res) { | 
|                       console.log(res); | 
|                     } | 
|                   }) | 
|                 } | 
|               }) | 
|             } | 
|           }) | 
|   | 
|   | 
|         } | 
|       }) | 
|   | 
|   | 
|     } | 
|   | 
|   | 
|   }, | 
|   //取消领券弹窗选择 | 
|   popupTap(e) { | 
|     this.setData({ | 
|       popup: false, | 
|       normspopup: false, | 
|       telShow: false, | 
|       shareShow: false | 
|     }) | 
|   }, | 
|   | 
|   //隐藏规格 | 
|   cancelNorms() { | 
|     this.setData({ | 
|       normspopup: false | 
|     }) | 
|   }, | 
|     /** | 
|     * 分享 | 
|     */ | 
|    formSubmit: function (e) { | 
|     console.log('获取二维码:', e) | 
|     this.getQrcode() | 
|   }, | 
|   | 
|   | 
|   | 
|  // 分享 | 
|  share(e) { | 
|   this.setData({ | 
|     shareShow: true, | 
|     popupShow: true | 
|   }) | 
| }, | 
|   | 
|     /** | 
|      * 用户点击右上角分享 | 
|      */ | 
|     onShareAppMessage: function () { | 
|       | 
|       var id = this.data.id; | 
|         | 
|       var title = this.data.goodsInfo.title; | 
|    | 
|       let url = "pages/miaosha/msDetails?id=" + id + "&shopId=" + app.shopInfo.id; | 
|       console.log(url);  | 
|       return { | 
|         title: "[秒杀]" + title, | 
|         imageUrl: this.data.imgUrls[0].imgPath, | 
|         path: url, | 
|         success(res) { | 
|    | 
|         }, | 
|         fail(res) { | 
|    | 
|         } | 
|       } | 
|     } | 
| }) |