| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511 | // pages/snapUpDetail/snapUpDetail.jsvar http = require('../../utils/http.js');var config = require('../../utils/config.js');Page({  /**   * 页面的初始数据   */  data: {    hideModal: true,    prodCommData: {},    littleCommPage: [],    evaluate: -1,    isCollection: false,    prodCommPage: {      current: 0,      pages: 0,      records: []    },    imgs: '', //商品图片    /** swiper */    indicatorDots: true,    autoplay: true,    indicatorColor: '#f2f2f2',    interval: 3000,    duration: 1000,    indicatorActiveColor: '#eb2444',    /** swiper */    content: '', //商品详情介绍    skuShow: false,  //sku选择    popupShow: false,    commentShow: false,    defaultSku: undefined,    skuGroup: {},    allProperties: [],    prodNum: 1, //数量+-    skuId: 0,    prodId: 0,    totalCartNum: 0,    pic: "",    imgs: '',    prodName: '',    price: 0,    content: '',    brief: '',    picDomain: config.picDomain,    groupSkuId:'',    groupTeamId: 0  },  /**   * 生命周期函数--监听页面加载   */  onLoad: function (options) {    console.log(options);    this.setData({      prodId: options.prodid,    });    if (options.scene) {      // console.log(options.scene)      const scene = decodeURIComponent(options.scene);      var params = scene.split(",");      this.setData({        prodId: params[0],      });    }    // 加载商品信息    this.getProdInfo();    // 加载评论项    this.getLittleProdComm();  },  /**   * 获取商品信息   */  getProdInfo() {    wx.showLoading();    var params = {      url: "/prod/prodInfo",      method: "GET",      data: {        prodId: this.data.prodId,        // userType: 0      },      callBack: (res) => {        // console.log(res);        var imgStrs = res.imgs;        var imgs = imgStrs.split(",");        var content = util.formatHtml(res.content);        this.setData({          imgs: imgs,          content: content,          price: res.price,          prodName: res.prodName,          prodId: res.prodId,          brief: res.brief,          // skuId: res.skuId          skuList: res.skuList,          pic: res.pic        });        // 获取优惠券        this.getCouponList();        // 组装sku        this.groupSkuProp();        wx.hideLoading();      }    };    http.request(params);  },  showSku: function () {    this.setData({      skuShow: true    });  },  /**   * 根据sku的属性 分组   */  groupSkuProp: function () {    var skuList = this.data.skuList;    if (skuList.length == 1 && skuList[0].properties == "") {      this.setData({        defaultSku: skuList[0]      });      return;    }    var skuGroup = {};    var allProperties = [];    var propKeys = [];    for (var i = 0; i < skuList.length; i++) {      var defaultSku = this.data.defaultSku;      var isDefault = false;      if (!defaultSku && skuList[i].price == this.data.price) { //找到和商品价格一样的那个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);    // console.log(selectedProperties);    this.setData({      selectedProp: selectedProp    });    for (var i = 0; i < this.data.skuList.length; i++) {      if (this.data.skuList[i].properties == selectedProperties) {        this.setData({          defaultSku: this.data.skuList[i]        });        break;      }    }  },  /**   * 点击选择规格   */  toChooseItem: function (e) {    var ok = e.currentTarget.dataset.ok;    if (!ok) {      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    });    this.parseSelectedObjToVals();  },  /**  * 加数量  */  onCountPlus: function () {    var prodNum = this.data.prodNum;    if (prodNum < 1000) {      this.setData({        prodNum: prodNum + 1      });    }  },  /**  * 减数量  */  onCountMinus: function () {    var prodNum = this.data.prodNum;    if (prodNum > 1) {      this.setData({        prodNum: prodNum - 1      });    }  },  /**   * 关闭弹窗   */  closePopup: function () {    this.setData({      popupShow: false,      skuShow: false,      commentShow: false    });  },  /**   * 获取部分评论   */  getLittleProdComm() {    if (this.data.prodCommPage.records.length) {      return;    }    this.getProdCommPage();  },  getMoreCommPage(e) {    this.getProdCommPage();  },  // 获取分页获取评论  getProdCommPage(e) {    if (e) {      if (e.currentTarget.dataset.evaluate === this.data.evaluate) {        return;      }      this.setData({        prodCommPage: {          current: 0,          pages: 0,          records: []        },        evaluate: e.currentTarget.dataset.evaluate      })    }    http.request({      url: "/p/prodComm/prodCommPageByProd",      method: "GET",      data: {        prodId: this.data.prodId,        size: 10,        current: this.data.prodCommPage.current + 1,        evaluate: this.data.evaluate      },      callBack: (res) => {        res.records.forEach(item => {          if (item.pics) {            item.pics = item.pics.split(',')          }        })        let records = this.data.prodCommPage.records        records = records.concat(res.records)        this.setData({          prodCommPage: {            current: res.current,            pages: res.pages,            records: records          }        })        // 如果商品详情中没有评论的数据,截取两条到商品详情页商品详情        if (!this.data.littleCommPage.length) {          this.setData({            littleCommPage: records.slice(0, 2)          })        }      }    })  },  showComment: function () {    this.setData({      commentShow: true    });  },  /**   * 立即购买   */  buyNow: function() {    wx.setStorageSync("orderItem", JSON.stringify({      prodId: this.data.prodId,      skuId: this.data.defaultSku.skuId,      prodCount: this.data.prodNum,      shopId: this.data.shopId,      distributionCardNo: this.data.distributionCardNo    }));    wx.navigateTo({      url: '/pages/submit-order/submit-order?orderEntry=1',    })  },  /**   * 生命周期函数--监听页面初次渲染完成   */  onReady: function () {  },  /**   * 生命周期函数--监听页面显示   */  onShow: function () {  },  /**   * 生命周期函数--监听页面隐藏   */  onHide: function () {  },  /**   * 生命周期函数--监听页面卸载   */  onUnload: function () {  },  /**   * 页面相关事件处理函数--监听用户下拉动作   */  onPullDownRefresh: function () {  },  /**   * 页面上拉触底事件的处理函数   */  onReachBottom: function () {  },  /**   * 用户点击右上角分享   */  onShareAppMessage: function () {  },  /**   * 显示遮罩层   */  showModal: function () {    var that = this;    that.setData({      hideModal: false    })    var animation = wx.createAnimation({      duration: 600,//动画的持续时间 默认400ms 数值越大,动画越慢 数值越小,动画越快       timingFunction: 'ease',//动画的效果 默认值是linear     })    this.animation = animation    setTimeout(function () {      that.fadeIn();//调用显示动画    }, 100)  },  /**   * 隐藏遮罩层   */  hideModal: function () {    var that = this;    var animation = wx.createAnimation({      duration: 800,//动画的持续时间 默认400ms 数值越大,动画越慢 数值越小,动画越快       timingFunction: 'ease',//动画的效果 默认值是linear    })    this.animation = animation    that.fadeDown();//调用隐藏动画    setTimeout(function () {      that.setData({ hideModal: true })    }, 720)//先执行下滑动画,再隐藏模块  },  /**   * 动画集   */  fadeIn: function () {    this.animation.translateY(0).step()    this.setData({      animationData: this.animation.export()//动画实例的export方法导出动画数据传递给组件的animation属性    })  },  fadeDown: function () {    this.animation.translateY(300).step()    this.setData({      animationData: this.animation.export(),    })  },  /**   * 跳转到首页   */  toHomePage: function () {    wx.switchTab({      url: '/pages/index/index',    })  },  /**   * 跳转到购物车   */  toCartPage: function () {    wx.switchTab({      url: '/pages/basket/basket',    })  },  /**   * 查看拼团团队   */  toGroupTempInfoPage: function (e) {    wx.navigateTo({      url: '/pages/spellMembersDetails/spellMembersDetails?groupTeamId=' + e.currentTarget.dataset.groupTeamId,    })  },  /**   * 拼团确认订单   */  groupConfirmOrder: function(e){    var ths = this;    wx.showLoading({      mask: true    });    // 查看是否授权    wx.getSetting({      success(res) {        wx.hideLoading();        if (res.authSetting['scope.userInfo']) {          ths.setData({            isAuthInfo: true          });          wx.setStorageSync("groupOrderItem", JSON.stringify({            groupSkuId: 1,// this.data.groupSkuId,            prodCount:  this.data.prodNum,            groupTeamId: 0 // this.data.groupTeamId          }));          wx.navigateTo({            url: '/pages/groupConfirmOrder/groupConfirmOrder',          })        } else {          ths.setData({            isAuthInfo: false          });        }      }    })  }})
 |