| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 | var app = getApp();var util = require('../../utils/util.js');var goodsUtil = require('../../utils/goods.js');var api = require('../../config/api.js');Page({  data: {    groupId: 0,    openId: 0,    type: 0,    goods: {},    group: {},    specificationList: [],    productList: [],    attendList: [],    groupList: [],    number: 1,    min_open_group: 0,    attend_num: 0,    checkedSpecText: '请选择规格数量',    openAttr: false,    showPage: false,    page: 1,    size: 6,    count: 0,    selfStatus: 0,// 本人参与的是否被取消 0正常 1取消    groupEnd: {}  },  //获取商品信息  getGoodsInfo: function () {    let that = this;    util.request(api.GroupDetail, { id: that.data.groupId }).then(function (res) {      if (res.errno === 0) {        that.setData({          group: res.data.groupVo,          goods: res.data.info,          specificationList: res.data.specificationList,          productList: res.data.productList        });        //        let _specificationList = res.data.specificationList;        for (let i = 0; i < _specificationList.length; i++) {          if (_specificationList[i].valueList.length == 1) {            //如果已经选中,则反选            _specificationList[i].valueList[0].checked = true;          }        }        that.setData({          'specificationList': _specificationList        });      }    });  },  //获取已经参与的人  getAttendList() {    let that = this;    util.request(api.AttendList, { openId: that.data.openId }).then(function (res) {      if (res.errno === 0) {        that.setData({          attendList: res.data        });      }      if (res.data.length > 0) {        for (let i = 0; i < res.data.length; i++) {          if (res.data[i].user_id == wx.getStorageSync('userId')) {            that.setData({              type: 1            })            if (res.data[i].attend_status == 3) {              that.setData({                selfStatus: 1              })            }          }        }      }    });  },  clickSkuValue: function (event) {    let that = this;    let specNameId = event.currentTarget.dataset.nameId;    let specValueId = event.currentTarget.dataset.valueId;    //判断是否可以点击    //TODO 性能优化,可在wx:for中添加index,可以直接获取点击的属性名和属性值,不用循环    let _specificationList = this.data.specificationList;    for (let i = 0; i < _specificationList.length; i++) {      if (_specificationList[i].specification_id == specNameId) {        for (let j = 0; j < _specificationList[i].valueList.length; j++) {          if (_specificationList[i].valueList[j].id == specValueId) {            //如果已经选中,则反选            if (_specificationList[i].valueList[j].checked) {              _specificationList[i].valueList[j].checked = false;            } else {              _specificationList[i].valueList[j].checked = true;            }          } else {            _specificationList[i].valueList[j].checked = false;          }        }      }    }    this.setData({      'specificationList': _specificationList    });    //重新计算spec改变后的信息    goodsUtil.changeSpecInfo(that);  },  //根据已选的值,计算其它值的状态  setSpecValueStatus: function () {  },  onLoad: function (options) {    // 页面初始化 options为页面跳转所带来的参数    let para = {      end_time: parseInt(options.end_time)    };    this.setData({      groupId: parseInt(options.groupId),      openId: parseInt(options.openId),      min_open_group: parseInt(options.min_open_group),      attend_num: parseInt(options.attend_num),      groupEnd: para    });    util.countdown(this, para, 'groupEnd', null)    this.getGoodsInfo()    this.getAttendList()    this.getTopic()  },  onReady: function () {  },  onShow: function () {    // 页面显示  },  onHide: function () {    // 页面隐藏    this.setData({      openAttr: false    })  },  onUnload: function () {    // 页面关闭  },  getTopic: function () {    let that = this;    that.setData({      groupList: []    });    util.request(api.GroupList, { page: that.data.page, size: that.data.size }).then(function (res) {      if (res.errno === 0) {        that.setData({          groupList: res.data.data        })      }    })  },  switchAttrPop: function () {    this.setData({      openAttr: !this.data.openAttr    })  },  cutNumber: function () {    this.setData({      number: (this.data.number - 1 > 1) ? this.data.number - 1 : 1    });  },  addNumber: function () {    this.setData({      number: this.data.number + 1    });  },  checkProduct: function () {    var that = this;    if (this.data.openAttr == false) {      //打开规格选择窗口      this.setData({        openAttr: !this.data.openAttr,        collectBackImage: "/static/images/detail_back.png"      });    } else {      //提示选择完整规格      if (!goodsUtil.isCheckedAllSpec(that)) {        return false;      }      //根据选中的规格,判断是否有对应的sku信息      let checkedProduct = goodsUtil.getCheckedProductItem(goodsUtil.getCheckedSpecKey(that), that);      if (!checkedProduct || checkedProduct.length <= 0) {        //找不到对应的product信息,提示没有库存        return false;      }      //验证库存      if (checkedProduct.goods_number < this.data.number) {        //找不到对应的product信息,提示没有库存        return false;      }      wx.navigateTo({        url: '/pages/shopping/groupcheck/groupcheck?number=' + this.data.number + '&productId=' + checkedProduct[0].id        + '&openId=' + this.data.openId + '&groupId=' + this.data.groupId,      })    }  },  switchNav(event) {    wx.switchTab({      url: '/pages/index/index'    });  },  onShareAppMessage: function () {    var that = this;    return {      title: that.data.goods.name,      desc: null != that.data.group.ad_desc ? that.data.group.ad_desc : "商业版",      imageUrl: '',      path: '/pages/joinGroup/joinGroup?openId=' + that.data.openId + '&groupId=' + that.data.groupId      + '&goodsId=' + that.data.goodsId      + '&min_open_group=' + that.data.min_open_group      + '&attend_num=' + that.data.attend_num      + '&end_time=' + that.data.groupEnd.end_time,      success: function (res) {        console.log("转发成功");        // 转发成功      },      fail: function (res) {        // 转发失败        console.log("转发失败");      }    }  }})
 |