| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483 | 
							- // pages/spellGroupDetails/spellGroupDetails.js
 
- const app = getApp()
 
- var http = require('../../utils/http.js');
 
- var config = require('../../utils/config.js');
 
- var util = require('../../utils/util.js');
 
- Page({
 
-   /**
 
-    * 页面的初始数据
 
-    */
 
-   data: {
 
-     hideModal: true,
 
-     groupTempInfo: {},
 
-     groupUserList: [],
 
-     countDownObj: {},
 
-     nowTime: new Date().getTime(),
 
-     skuShow: false,
 
-     prodNum: 1,
 
-     skuList: [],
 
-     skuGroup: {},
 
-     findSku: true,
 
-     defaultSku: undefined,
 
-     detaultGroupSku: undefined,
 
-     selectedProp: [],
 
-     selectedPropObj: {},
 
-     selectedProperties: "",
 
-     propKeys: [],
 
-     allProperties: [],
 
-     groupTeamId: '',
 
-     groupSkuId: 0,
 
-     orderNumber: 0,
 
-     isAuthInfo: true,
 
-     countDownObjTimer:''
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面加载
 
-    */
 
-   onLoad: function(options) {
 
-     // let groupTeamId = options.groupTeamId || ''
 
-     // let orderNumber = options.orderNumber || ''
 
-     // this.getGroupTeamInfo(groupTeamId, orderNumber)
 
-     // this.setData({
 
-     //   orderNumber: options.orderNumber
 
-     // })
 
-   },
 
-   /**
 
-    * 获取用户信息
 
-    */
 
-   onGotUserInfo: function(e) {
 
-     if (e.detail.errMsg != "getUserInfo:fail auth deny") {
 
-       this.setData({
 
-         isAuthInfo: true
 
-       });
 
-       http.updateUserInfo();
 
-     }
 
-   },
 
-   //根据sku的属性 分组
 
-   groupSkuProp: function(skuList) {
 
-     // var skuList = this.data.skuList;
 
-     if (skuList.length == 1 && skuList[0].properties == "") {
 
-       this.setData({
 
-         defaultSku: skuList[0]
 
-       });
 
-       return;
 
-     }
 
-     var skuGroup = {};
 
-     var allProperties = [];
 
-     var propKeys = [];
 
-     this.setData({
 
-       selectedPropObj: {}
 
-     });
 
-     for (var i = 0; i < skuList.length; i++) {
 
-       var defaultSku = this.data.defaultSku;
 
-       var isDefault = false;
 
-       if (!defaultSku && skuList[i].actPrice == this.data.groupTempInfo.groupProd.actPrice) { //找到和商品价格一样的那个SKU,作为默认选中的SKU
 
-         defaultSku = skuList[i];
 
-         isDefault = true;
 
-         this.setData({
 
-           defaultSku: defaultSku
 
-         });
 
-       }
 
-       var properties = skuList[i].properties; //版本:公开版;颜色:金色;内存:64GB
 
-       allProperties.push(properties);
 
-       var propList = properties.split(";"); // ["版本:公开版","颜色:金色","内存:64GB"]
 
-       var selectedPropObj = this.data.selectedPropObj;
 
-       for (var j = 0; j < propList.length; j++) {
 
-         var propval = propList[j].split(":"); //["版本","公开版"]
 
-         var props = skuGroup[propval[0]]; //先取出 版本对应的值数组
 
-         //如果当前是默认选中的sku,把对应的属性值 组装到selectedProp
 
-         if (isDefault) {
 
-           propKeys.push(propval[0]);
 
-           selectedPropObj[propval[0]] = propval[1];
 
-         }
 
-         if (props == undefined) {
 
-           props = []; //假设还没有版本,新建个新的空数组
 
-           props.push(propval[1]); //把 "公开版" 放进空数组
 
-         } else {
 
-           if (!this.array_contain(props, propval[1])) { //如果数组里面没有"公开版"
 
-             props.push(propval[1]); //把 "公开版" 放进数组
 
-           }
 
-         }
 
-         skuGroup[propval[0]] = props; //最后把数据 放回版本对应的值
 
-       }
 
-       this.setData({
 
-         selectedPropObj: selectedPropObj,
 
-         propKeys: propKeys
 
-       });
 
-     }
 
-     this.parseSelectedObjToVals();
 
-     this.setData({
 
-       skuGroup: skuGroup,
 
-       allProperties: allProperties
 
-     });
 
-   },
 
-   //将已选的 {key:val,key2:val2}转换成 [val,val2]
 
-   parseSelectedObjToVals: function() {
 
-     var selectedPropObj = this.data.selectedPropObj;
 
-     var selectedProperties = "";
 
-     var selectedProp = [];
 
-     for (var key in selectedPropObj) {
 
-       selectedProp.push(selectedPropObj[key]);
 
-       selectedProperties += key + ":" + selectedPropObj[key] + ";";
 
-     }
 
-     selectedProperties = selectedProperties.substring(0, selectedProperties.length - 1);
 
-     this.setData({
 
-       selectedProp: selectedProp,
 
-       selectedProperties: selectedProperties
 
-     });
 
-     var findSku = false;
 
-     for (var i = 0; i < this.data.skuList.length; i++) {
 
-       if (this.data.skuList[i].properties == selectedProperties) {
 
-         findSku = true;
 
-         this.setData({
 
-           defaultSku: this.data.skuList[i]
 
-         });
 
-         break;
 
-       }
 
-     }
 
-     this.setData({
 
-       findSku: findSku
 
-     });
 
-   },
 
-   //点击选择规格
 
-   toChooseItem: function(e) {
 
-     var ok = e.currentTarget.dataset.ok;
 
-     if (ok == 0) {
 
-       return;
 
-     }
 
-     var val = e.currentTarget.dataset.val;
 
-     var key = e.currentTarget.dataset.key;
 
-     var selectedPropObj = this.data.selectedPropObj;
 
-     selectedPropObj[key] = val;
 
-     this.setData({
 
-       selectedPropObj: selectedPropObj
 
-     });
 
-     console.log(this.data.selectedPropObj)
 
-     this.parseSelectedObjToVals();
 
-   },
 
-   //判断数组是否包含某对象
 
-   array_contain: function(array, obj) {
 
-     for (var i = 0; i < array.length; i++) {
 
-       if (array[i] == obj) //如果要求数据类型也一致,这里可使用恒等号===
 
-         return true;
 
-     }
 
-     return false;
 
-   },
 
-   /**
 
-    * 减数量
 
-    */
 
-   onCountMinus: function() {
 
-     var prodNum = this.data.prodNum;
 
-     if (prodNum > 1) {
 
-       this.setData({
 
-         prodNum: prodNum - 1
 
-       });
 
-     }
 
-   },
 
-   /**
 
-    * 加数量
 
-    */
 
-   onCountPlus: function() {
 
-     var prodNum = this.data.prodNum;
 
-     if (prodNum < 1000) {
 
-       this.setData({
 
-         prodNum: prodNum + 1
 
-       });
 
-     }
 
-   },
 
-   /**
 
-    * 参团
 
-    */
 
-   groupConfirmOrder: function() {
 
-     if (!this.data.findSku) {
 
-       return;
 
-     }
 
-     wx.setStorageSync("groupOrderItem", JSON.stringify({
 
-       groupSkuId: this.data.defaultSku.groupSkuId,
 
-       groupTeamId: this.data.groupTeamId,
 
-       prodCount: this.data.prodNum
 
-     }));
 
-     wx.navigateTo({
 
-       url: '/pages/groupConfirmOrder/groupConfirmOrder',
 
-     })
 
-   },
 
-   // 提交订单
 
-   commitOrder() {
 
-     wx.showLoading()
 
-     var orderShopParam = {
 
-       remarks: "",
 
-     }
 
-     http.request({
 
-       url: `/p/group/order/submit`,
 
-       method: 'POST',
 
-       data: orderShopParam,
 
-       callBack: (res) => {
 
-         this.calWeixinPay(res.orderNumbers)
 
-       }
 
-     })
 
-   },
 
-   /**
 
-    * 唤起微信支付
 
-    */
 
-   calWeixinPay: function(orderNumbers) {
 
-     wx.showLoading({
 
-       mask: true
 
-     });
 
-     var params = {
 
-       url: "/p/order/pay",
 
-       method: "POST",
 
-       data: {
 
-         payType: 1,
 
-         orderType: 1,
 
-         orderNumbers: orderNumbers
 
-       },
 
-       callBack: (res) => {
 
-         wx.hideLoading();
 
-         wx.requestPayment({
 
-           timeStamp: res.timeStamp,
 
-           nonceStr: res.nonceStr,
 
-           package: res.package,
 
-           signType: res.signType,
 
-           paySign: res.paySign,
 
-           success: e => {
 
-             // console.log("支付成功");
 
-             wx.showModal({
 
-               title: '支付成功',
 
-               content: '',
 
-               showCancel: false,
 
-               success: () => {
 
-                 wx.navigateTo({
 
-                   url: '/pages/spellGroupDetails/spellGroupDetails?orderNumber=' + orderNumbers,
 
-                 })
 
-               }
 
-             })
 
-           },
 
-           fail: err => {
 
-             wx.navigateTo({
 
-               url: '/pages/pay-result/pay-result?sts=0&orderNumbers=' + orderNumbers + "&orderType=" + this.data.orderType,
 
-             })
 
-           }
 
-         })
 
-       }
 
-     };
 
-     http.request(params);
 
-   },
 
-   /**
 
-    * 去地址页面
 
-    */
 
-   toAddrListPage: function() {
 
-     wx.navigateTo({
 
-       url: '/pages/delivery-address/delivery-address?order=0',
 
-     })
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面初次渲染完成
 
-    */
 
-   onReady: function() {
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面显示
 
-    */
 
-   onShow: function() {
 
-     // 获取当前小程序的页面栈
 
-     let pages = getCurrentPages();
 
-     let currentPage = pages[pages.length-1];
 
-     let groupTeamId = currentPage.options.groupTeamId || ''
 
-     let orderNumber = currentPage.options.orderNumber || ''
 
-     this.getGroupTeamInfo(groupTeamId, orderNumber)
 
-     this.setData({
 
-       orderNumber: currentPage.options.orderNumber
 
-     })
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面隐藏
 
-    */
 
-   onHide: function() {
 
-     this.setData({
 
-       skuShow: false
 
-     })
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面卸载
 
-    */
 
-   onUnload: function() {
 
-     clearTimeout(this.data.countDownObjTimer)
 
-   },
 
-   /**
 
-    * 页面相关事件处理函数--监听用户下拉动作
 
-    */
 
-   onPullDownRefresh: function() {
 
-   },
 
-   /**
 
-    * 页面上拉触底事件的处理函数
 
-    */
 
-   onReachBottom: function() {
 
-   },
 
-   showSku: function() {
 
-     var ths = this
 
-     // 查看是否授权
 
-     util.checkAuthInfo(ths._showSku)
 
-   },
 
-   _showSku :function(){
 
-     this.setData({
 
-       skuShow: true
 
-     });
 
-   },
 
-   closePopup: function() {
 
-     this.setData({
 
-       skuShow: false
 
-     });
 
-   },
 
-   /**
 
-    * 加载拼团团队详情
 
-    */
 
-   getGroupTeamInfo: function(groupTempId, orderNumber) {
 
-     let _this = this
 
-     http.request({
 
-       url: "/p/groupTeam/info",
 
-       method: "GET",
 
-       data: {
 
-         groupTeamId: groupTempId,
 
-         orderNumber: orderNumber
 
-       },
 
-       callBack: (res) => {
 
-         console.log(res)
 
-         _this.setData({
 
-           skuList: res.groupSkuList,
 
-           groupTempInfo: res,
 
-           groupUserList: res.apiGroupUserList,
 
-           nowTime: util.dateToTimestamp(res.groupTeam.nowTime),
 
-           joinNum: res.groupTeam.groupNumber - 1,
 
-           groupTeamId: res.groupTeam.groupTeamId
 
-         })
 
-         let groupUserCount = _this.data.groupUserList.length
 
-         let groupNumber = _this.data.groupTempInfo.groupTeam.groupNumber
 
-         let unGroupNumber = groupNumber - groupUserCount
 
-         let groupUserList = _this.data.groupUserList
 
-         if (unGroupNumber > 0) {
 
-           for (let i = 0; i < unGroupNumber; i++) {
 
-             groupUserList = groupUserList.concat({})
 
-           }
 
-         }
 
-         _this.setData({
 
-           groupUserList: groupUserList
 
-         })
 
-         _this.countdown();
 
-         _this.groupSkuProp(res.groupSkuList);
 
-       }
 
-     })
 
-   },
 
-   // 倒计时
 
-   countdown() {
 
-     // 获取当前时间,同时得到活动结束时间数组
 
-     let nowTime = this.data.nowTime;
 
-     let endTime = util.dateToTimestamp(this.data.groupTempInfo.groupTeam.endTime);
 
-     let countDownObj = {};
 
-     // 对结束时间进行处理渲染到页
 
-     if (endTime - nowTime > 0) {
 
-       // 如果活动未结束,对时间进行处理
 
-       let time = (endTime - nowTime) / 1000;
 
-       // 获取天、时、分、秒
 
-       let day = parseInt(time / (60 * 60 * 24));
 
-       let hou = parseInt(time % (60 * 60 * 24) / 3600);
 
-       let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
 
-       let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
 
-       countDownObj = {
 
-         day: `${this.timeFormat(day)}`,
 
-         hou: `${this.timeFormat(hou)}`,
 
-         min: `${this.timeFormat(min)}`,
 
-         sec: `${this.timeFormat(sec)}`,
 
-       }
 
-     } else {
 
-       countDownObj = {
 
-         day: '00',
 
-         hou: '00',
 
-         min: '00',
 
-         sec: '00'
 
-       }
 
-     }
 
-     // 渲染,然后每隔一秒执行一次倒计时函数
 
-     this.setData({
 
-       nowTime: nowTime + 1000,
 
-       countDownObj: countDownObj,
 
-       countDownObjTimer: setTimeout(this.countdown, 1000)
 
-     })
 
-   },
 
-   // 小于10的格式化函数
 
-   timeFormat(times) {
 
-     return times < 10 ? '0' + times : times;
 
-   },
 
-   /**
 
-    * 查看订单详情
 
-    */
 
-   toOrderDetailPage: function(e) {
 
-     wx.navigateTo({
 
-       url: '/pages/order-detail/order-detail?orderNum=' + e.currentTarget.dataset.ordernum,
 
-     })
 
-   },
 
-   /**
 
-    * 查看拼团团队
 
-    */
 
-   toGroupTempInfoPage: function(e) {
 
-     // 查看是否授权
 
-     var ths = this
 
-     ths.setData({
 
-       groupTeamId: e.currentTarget.dataset.groupteamid
 
-     })
 
-     util.checkAuthInfo(ths._toGroupTempInfoPage)
 
-   },
 
-   // _toGroupTempInfoPage
 
-   _toGroupTempInfoPage() {
 
-     wx.navigateTo({
 
-       url: '/pages/spellMembersDetails/spellMembersDetails?groupTeamId=' + this.data.groupTeamId,
 
-     })
 
-   },
 
-   /**
 
-    * 用户点击转发
 
-    */
 
-   onShareAppMessage: function(res) {
 
-     return {
 
-       title: this.data.groupTempInfo.groupProd.prodName,
 
-       path: '/pages/spellGroupDetails/spellGroupDetails?orderNumber=' + this.data.orderNumber + '&groupTeamId=' + this.data.groupTeamId,
 
-       imageUrl: this.data.groupTempInfo.groupProd.pic
 
-     }
 
-   }
 
- })
 
 
  |