| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407 | // pages/prod/prod.jsconst app = getApp()var http = require('../../utils/http.js');var config = require('../../utils/config.js');var util = require('../../utils/util.js');Page({  /**   * 页面的初始数据   */  data: {    shopId: 1,    shopName: '',    picDomain: config.picDomain,    indicatorDots: true,    indicatorColor: '#f2f2f2',    indicatorActiveColor: '#006CE8',    isAuthInfo: true,    autoplay: true,    interval: 3000,    duration: 1000,    prodNum: 1,    totalCartNum: 0,    groupActivityId: 0,    pic: "",    imgs: '',    prodName: '',    price: 0,    actPrice: 0,    content: '',    prodId: 0,    brief: '',    skuId: 0,    popupShow: false,    // 是否获取过用户领取过的优惠券id    loadCouponIds: false,    skuShow: false,    skuGroupShow: false,    commentShow: false,    couponList: [],    skuList: [],    skuGroup: {},    findSku: true,    defaultSku: undefined,    detaultGroupSku: undefined,    selectedProp: [],    selectedPropObj: {},    selectedProperties: "",    propKeys: [],    allProperties: [],    prodCommData: {},    prodCommPage: {      current: 0,      pages: 0,      records: []    },    littleCommPage: [],    evaluate: -1,    isCollection: false,    shareShow: false,    isDist: false, //是否分销员    isDistProd: false, //是否分销商品    distributionCardNo: "", //分销员卡号    wxCodeShow: false, //是否显示二维码弹层    shareWxCode: "", //分享二维码图片路径    groupActivity: {}, // 团购活动    endOfGroupTime: {}, // 距离团购活动结束还剩多久    joinGroupList: [], // 可加入的团列表    skuShowType: 0, // sku的显示类型 0普通sku 1拼团sku    totalStocks: 0, // 活动剩余库存    hasMaxNum: false, // 是否限购    maxNum: 0, // 限购数量    joinGroupListTimer: '',    endOfGroupTimer: '',    scene: '',    prodDiscountList: [], // 商品促销活动列表    phoneNumber: '', //客服电话    showBacktop: false, //回到顶部显隐    showDiscountPopup: false, //促销弹窗显隐    videoContext: '', // 视频组件    isPlaying: false, // 视频是否播放中    currentSwiper: 0, // 当前轮播index  },  /**   * 生命周期函数--监听页面加载   */  onLoad: function (options) {    console.log(options)    //根据Ticket获取保存的内容(pc团购扫码 || 分销)    if (options.scene) {      this.setData({        scene: options.scene,      })      this.getContent() //根据Ticket获取保存的内容    }    if(options.shopid){      this.setData({        shopId: Number(options.shopid) ,      });    }    // 加载商品信息    if (options.prodid) {      this.setData({        prodId: options.prodid,      });      this.executionFunction() //所有需要加载的函数    }    if (options.cardno && options.type == 2) {      // this.bindDistUser(options.cardno)      this.setData({        distributionCardNo: options.cardno,      })    }    this.getCartCount() //请求购物车数量  },  /**   * 执行函数   */  executionFunction: function () {    // 加载评论数据    this.getProdCommData();    // 加载评论项    this.getLittleProdComm();    // 获取商品是否被收藏信息    this.getCollection();    // 查询分销开关是否开启    this.getDistInfo();    //加载商品数据    this.getProdInfo();    // 获取商品所有促销活动    this.getPordDiscountList()  },  /**   * 根据Ticket获取保存的内容   */  getContent: function () {    http.request({      url: "/qrcodeTicket/getContent",      method: "GET",      data: {        ticket: this.data.scene      },      callBack: (res) => {        console.log(res)        var content = JSON.parse(res.content);        var ids = JSON.parse(content.content)        if (res.type == 1) { //pc团购二维码跳转          this.setData({            prodId: ids.prodId,            groupActivityId: ids.groupActivityId          })          this.executionFunction() //所有需要加载的函数        } else if (res.type == 2) { //分销员二维码跳转          this.setData({            prodId: ids.shareProdId,            distributionCardNo: ids.cardNo          })          this.executionFunction() //所有需要加载的函数        }      }    })  },  /**   * 生命周期函数--监听页面卸载   */  onUnload: function () {    clearTimeout(this.data.endOfGroupTimer)  },  /**   * 分销绑定用户   */  // bindDistUser(cardno) {  //   var params = {  //     url: "/p/distribution/bindUser",  //     method: "post",  //     data: cardno,  //     callBack:res=>{  //       console.log('绑定分销员',res)  //     }  //   }  //   http.request(params)  // },  /**   * 查询分销相关信息   */  getDistInfo() {    //查询分销开关是否开启    http.request({      url: "/p/distribution/distributionBasicSet/canDistribution",      method: "GET",      dontTrunLogin: true,      // data: {      //   shopId: this.data.shopId,      // },      callBack: (res) => {        if (res == 1) {          this.getIsDistInfo();        }      }    })  },  /**   * 查询用户 是否为分销员   */  getIsDistInfo() {    http.request({      url: "/p/distribution/user/distributionUserInfo",      method: "GET",      callBack: (res) => {        console.log('是否分销员', res)        if (res && res.state == 1) {          this.setData({            isDist: true          });          this.getIsDistProd();          wx.setStorageSync("distCardNo", res.cardNo);        }      }    })  },  /**   * 查询是否为分销商品   */  getIsDistProd() {    http.request({      url: "/p/distribution/prod/isDistributionProd",      method: "GET",      data: {        prodId: this.data.prodId,      },      callBack: (res) => {        console.log('是否分销商品', res)        if (res) {          this.setData({            isDistProd: true          });        }      }    })  },  /**   * 获取商品是否被收藏信息   */  getCollection() {    wx.showLoading();    var params = {      url: "/p/user/collection/isCollection",      method: "GET",      dontTrunLogin: true,      data: {        prodId: this.data.prodId      },      callBack: (res) => {        this.setData({          isCollection: res        })        wx.hideLoading();      }    };    http.request(params);  },  /**   * 添加或者取消收藏商品   */  addOrCannelCollection() {    util.checkAuthInfo(() => {      var params = {        url: "/p/user/collection/addOrCancel",        method: "POST",        data: this.data.prodId,        callBack: (res) => {          this.setData({            isCollection: !this.data.isCollection          })          wx.showToast({            title: res ? '已添加收藏' : '已取消收藏',            duration: 3000,            icon: 'none',          })          setTimeout(() => {            wx.hideToast()          }, 3000)        }      };      http.request(params);    })  },  // 获取商品信息  getProdInfo() {    wx.showLoading();    var params = {      url: "/prod/prodInfo",      method: "GET",      data: {        prodId: this.data.prodId,        platform:1,        shopId:this.data.shopId        // userType: 0      },      callBack: (res) => {        let pic = ''        var imgStrs = res.imgs;        if(imgStrs){          var imgs = imgStrs.split(",");        }        var content = res.content?util.formatHtml(res.content):'';        if(res.pic){          pic = res.pic.split(',')          res.pic = pic[0]        }        this.setData({          imgs: imgs,          content: content,          price: res.price,          prodName: res.prodName,          prodId: res.prodId,          brief: res.brief,          totalStocks: res.totalStocks,          // skuId: res.skuId          skuList: res.skuList,          pic: res.pic,          // shopId: res.shopId,          video: res.video,          prodType: res.prodType        });        if (res.video) {          this.getVideoInfo()        }        // 团购商品        if (res.prodType === 1) {          this.setData({            groupActivityId: res.activityId          });          this.getGroupActivity();          this.getJoinGroupList();        }        // 获取优惠券        this.getCouponList();        // 组装sku        res.skuList&&this.groupSkuProp(res.skuList);        this.getShopInfo();        wx.hideLoading();      },      errCallBack: (err) => {        console.log(err)        if (err.statusCode == 400) {          wx.showModal({            title: '提示',            content: err.data,            showCancel: false,            success: (res) => {              if (res.confirm) {                wx.navigateBack({                  delta: 1                })              }            }          })        }      }    };    http.request(params);  },  /**   * 获取店铺信息   */  getShopInfo() {    http.request({      url: "/shop/headInfo",      method: "GET",      data: {        shopId: this.data.shopId,      },      callBack: (res) => {        this.setData({          shopName: res.shopName,          shopLogo: res.shopLogo,          phoneNumber: res.tel        })      }    })  },  getProdCommData() {    http.request({      url: "/prod/prodCommData",      method: "GET",      data: {        prodId: this.data.prodId,      },      callBack: (res) => {        this.setData({          prodCommData: res        })      }    })  },  // 获取部分评论  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: "/prod/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)          })        }      }    })  },  /**   * 评论小图点击事件(点击图片显示大图)   */  clickImg: function (e) {    const current = e.currentTarget.dataset.index //获取当前点击的 图片 url    const pics = e.currentTarget.dataset.pics    wx.previewImage({      current: pics[current],      urls: pics    })  },  getCouponList() {    http.request({      url: "/coupon/listByProdId",      method: "GET",      data: {        prodId: this.data.prodId,        shopId: this.data.shopId,      },      callBack: (res) => {        this.setData({          couponList: res        })      }    })  },  /**   * 团购商品详情信息   */  getGroupActivity() {    http.request({      url: "/groupProd/info",      method: "GET",      data: {        prodId: this.data.prodId,        groupActivityId: this.data.groupActivityId,      },      callBack: (res) => {        if (res.success) {          this.setData({            groupActivity: res.obj,            maxNum: res.obj.maxNum,            hasMaxNum: res.obj.hasMaxNum          })          this.setDefaultGroupSku();          this.groupActivityCountdown(res.obj)        } else {          this.setData({            groupActivityId: null          });        }      }    })  },  // 团购倒计时  groupActivityCountdown(groupActivity) {    let endOfGroupTime;    // activityStatus 1 未开始    if (groupActivity.activityStatus === 1) {      endOfGroupTime = util.endOfStartTime(util.dateToTimestamp(groupActivity.startTime), new Date().getTime())    } else {      endOfGroupTime = util.endOfStartTime(new Date().getTime(), util.dateToTimestamp(groupActivity.endTime))    }    this.setData({      endOfGroupTime: endOfGroupTime,      endOfGroupTimer: setTimeout(() => this.groupActivityCountdown(groupActivity), 1000)    })  },  // 可加入的拼团列表  getJoinGroupList() {    http.request({      url: "/groupProd/joinGroupList",      method: "GET",      data: {        prodId: this.data.prodId,        groupActivityId: this.data.groupActivityId,        showSize: 3      },      callBack: (res) => {        this.setData({          joinGroupList: res        })        this.joinGroupListCountdown(res)      }    })  },  joinGroupListCountdown(joinGroupList) {    joinGroupList.forEach(item => {      item.endOfGroupTime = util.endOfStartTime(new Date().getTime(), util.dateToTimestamp(item.endTime))    })    this.setData({      joinGroupList: joinGroupList,      joinGroupListTimer: setTimeout(() => this.joinGroupListCountdown(joinGroupList), 1000)    })  },  //根据sku的属性 分组  groupSkuProp: function (skuList) {    // var skuList = this.data.skuList;    if (skuList.length == 1 && skuList[0].properties == "") {      this.setData({        defaultSku: skuList[0]      });      this.setDefaultGroupSku();      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].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    });    this.setDefaultGroupSku();  },  //将已选的 {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    });    this.setDefaultGroupSku();  },  //点击选择规格  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    });    this.parseSelectedObjToVals();  },  //判断数组是否包含某对象  array_contain: function (array, obj) {    for (var i = 0; i < array.length; i++) {      if (array[i] == obj) //如果要求数据类型也一致,这里可使用恒等号===        return true;    }    return false;  },  /**   * 设置选中的拼团sku   */  setDefaultGroupSku() {    if (this.data.groupActivityId) {      var groupSkuList = this.data.groupActivity.groupSkuList;      if (groupSkuList) {        for (var i = 0; i < groupSkuList.length; i++) {          if (groupSkuList[i].properties == this.data.selectedProperties) {            this.setData({              detaultGroupSku: groupSkuList[i]            });            break;          }        }      }    }  },  /**   * 去凑团   */  toSpellGroupDetail(e) {    const groupTeamId = e.currentTarget.dataset.groupteamid    util.checkAuthInfo(() => {      wx.navigateTo({        url: '/pages/spellGroupDetails/spellGroupDetails?groupTeamId=' + groupTeamId,      })    })  },  /**   * 生命周期函数--监听页面初次渲染完成   */  onReady: function () {    this.videoContext = wx.createVideoContext('myVideo')  },  /**   * 生命周期函数--监听页面显示   */  onShow: function () {    this.getCartCount()    if (this.data.prodType == 1) {      this.getJoinGroupList()    }  },  getCartCount: function () {    var params = {      url: "/p/shopCart/prodCount",      method: "GET",      dontTrunLogin: true,      data: {platform:1},      callBack: (res) => {        if (res > 0) {          // wx.setTabBarBadge({          //   index: 2,          //   text: res + "",          // })          var app = getApp();          app.globalData.totalCartCount = res;        } else {          // wx.removeTabBarBadge({          //   index: 2          // })          var app = getApp();          app.globalData.totalCartCount = 0;        }        this.setData({          totalCartNum: res        })      }    };    http.request(params);  },  /**   * 阻止滚动   */  preventScorll() {  },  /**   * 页面相关事件处理函数--监听用户下拉动作   */  onPullDownRefresh: function () {  },  /**   * 页面上拉触底事件的处理函数   */  onReachBottom: function () {  },  /**   * 跳转到首页   */  toHomePage: function () {    wx.switchTab({      url: '/pages/index/index',    })  },  /**   * 跳转到购物车   */  toCartPage: function () {    wx.switchTab({      url: '/pages/basket/basket',    })  },  handleContact: function (e) {    console.log(e.detail, '----路径')    console.log(e.detail.query, '----参数')    // this.get_register()  },  /**   * 创建商户   * @param {*} event    */  // get_register: function () {  //   let url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxc032a09413289004&secret=453c5047ae43288f1d015d48df32a5c0'  //   wx.request({  //     url:url,  //     method: 'GET',  //     data: {},  //     header: {  //       'content-type': 'application/json' // 默认值  //     },  //     success(res) {  //       // console.log(res.data.access_token)  //       wx.request({  //         url: 'https://api.weixin.qq.com/cgi-bin/business/register?access_token='+res.data.access_token,  //         method: 'POST',  //         data: {  //           account_name: "test_shopname",  //           nickname: "苹果",  //           icon_media_id: "png",  //           transfer_to_commkf: true  //         },  //         header: {  //           'content-type': 'application/json' // 默认值  //         },  //         success(res) {  //           console.log(res.data)  //         }  //       })  //     }  //   })  // },  /**   * 加入购物车   */  addToCart: function (event) {    if(this.data.totalStocks == 0) return    // let skuList = this.data.skuList[0]    // if (skuList.weight > 20000) {    //   wx.showToast({    //     title: "商品超过20kg,太重咯~",    //     icon: "none"    //   })    //   return;    // }    if(this.data.totalStocks<0){      wx.showToast({        title: "该商品暂无库存~",        icon: "none"      })      return;    }    if (this.data.isPlaying) {      this._stopPlay()    }    if (!this.data.skuShow) {      this.setData({        skuShow: true      })      return    }    wx.showLoading({      mask: true    });    // 查看是否授权    util.checkAuthInfo(this.callChangeItem)  },  callChangeItem() {    wx.showLoading({      mask: true    });    http.request({      url: "/p/shopCart/changeItem",      method: "POST",      data: {        basketId: 0,        count: this.data.prodNum,        prodId: this.data.prodId,        shopId: this.data.shopId,        shopName: this.data.shopName,        skuId: this.data.defaultSku.skuId,        distributionCardNo: this.data.distributionCardNo,        platform:1      },      callBack: (res) => {        this.setData({          totalCartNum: this.data.totalCartNum + this.data.prodNum,          skuShow: false,        });        wx.hideLoading();        wx.showToast({          title: "加入购物车成功",          icon: "none"        })      }    });  },  /**   * 立即购买   */  buyNow: function () {    if(this.data.totalStocks == 0) return    // let skuList = this.data.skuList[0]    // if (skuList.weight > 20000) {    //   wx.showToast({    //     title: "商品超过20kg,太重咯~",    //     icon: "none"    //   })    //   return;    // }    if(this.data.totalStocks<0){      wx.showToast({        title: "该商品暂无库存~",        icon: "none"      })      return;    }    if (this.data.isPlaying) {      this._stopPlay()    }    if (!this.data.skuShow) {      this.setData({        skuShow: true      })      return    }    wx.showLoading({      mask: true    });    // 查看是否授权    util.checkAuthInfo(this._buyNowData(this))  },  /**   * 立即购买参数配置   */  _buyNowData(ctx) {    wx.setStorageSync("orderItem", JSON.stringify({      prodId: ctx.data.prodId,      skuId: ctx.data.defaultSku.skuId,      prodCount: ctx.data.prodNum,      shopId: ctx.data.shopId,      distributionCardNo: ctx.data.distributionCardNo    }));    wx.navigateTo({      url: '/pages/submit-order/submit-order?orderEntry=1',    })  },  /**   * 减数量   */  onCountMinus: function () {    var prodNum = this.data.prodNum;    if (prodNum > 1) {      this.setData({        prodNum: prodNum - 1      });    }  },  /**   * 加数量   */  onCountPlus: function () {    var prodNum = this.data.prodNum;    // 判断是否限购    if (this.data.hasMaxNum) {      if (prodNum < this.data.totalStocks && prodNum < this.data.maxNum) {        this.setData({          prodNum: prodNum + 1        });      } else {        wx.showToast({          title: '限购' + this.data.maxNum + '件',          icon: 'none',        })      }    } else {      if (prodNum < this.data.totalStocks) {        this.setData({          prodNum: prodNum + 1        });      } else {        wx.showToast({          title: '库存不足!',          icon: 'none'        })      }    }  },  /**   * 用户点击转发   */  onShareAppMessage: function (res) {    if (res.from === 'button') {      var cardno = wx.getStorageSync("distCardNo");      return {        title: this.data.prodName,        path: '/pages/prod/prod?prodid=' + this.data.prodId + '&cardno=' + cardno + '&type=' + this.data.shareType,        imageUrl: this.data.pic,      }    } else {      return {        title: this.data.prodName,        path: '/pages/prod/prod?prodid=' + this.data.prodId      }    }  },  /**   * 优惠券   */  showPopup: function () {    if (this.data.loadCouponIds) {      this.setData({        popupShow: true      });      return;    }    http.request({      url: "/p/myCoupon/listCouponIds",      method: "GET",      data: {},      callBack: (couponIds) => {        var couponList = this.data.couponList;        couponList.forEach(coupon => {          if (couponIds && couponIds.length) {            // 领取该优惠券数量            var couponLimit = 0;            couponIds.forEach(couponId => {              if (couponId == coupon.couponId) {                couponLimit++;              }            });            // 小于用户领取优惠券上限,可以领取优惠券            if (couponLimit < coupon.limitNum) {              coupon.canReceive = true;            } else {              coupon.canReceive = false;            }          } else {            coupon.canReceive = true;          }        });        this.setData({          couponList: couponList,          popupShow: true,          loadCouponIds: true        })      }    })  },  showSku: function (e) {    if (e.currentTarget.dataset.alonebuy == 1) {      this.setData({        skuShow: true,        skuShowType: 0      });    } else {      if (this.data.groupActivityId) {        this.setData({          skuShow: true,          skuShowType: 1        });      } else {        this.setData({          skuShow: true,          skuShowType: 0        });      }    }  },  showGroupSku: function () {    if (this.data.isPlaying) {      this._stopPlay()    }    this.setData({      skuShow: true,      skuShowType: 1    });  },  showComment: function () {    this.setData({      commentShow: true    });  },  closePopup: function () {    this.setData({      popupShow: false,      skuShow: false,      commentShow: false    });  },  /**   * 赚字浮层   */  onShowShare: function (e) {    if (this.data.isPlaying) {      this._stopPlay()    }    this.setData({      shareShow: true,      shareType: e.currentTarget.dataset.type,    });  },  /**   * 回到顶部   */  backToTop: function () {    wx.pageScrollTo({      scrollTop: 0    })  },  /**   * 监听页面滚动   */  onPageScroll: function (e) {    if (e.scrollTop > 80) {      this.setData({        showBacktop: true      })    } else if (e.scrollTop < 80) {      this.setData({        showBacktop: false      })    }  },  closeEarn: function () {    this.setData({      shareShow: false    })  },  toDistCenterPage: function () {    wx.navigateTo({      url: '/pages/dis-center/dis-center',    })  },  /**   * 生成小程序二维码   */  genWeixinCode() {    wx.showLoading({      mask: true    })    var cardNo = wx.getStorageSync("distCardNo");    var content = JSON.stringify({      shareProdId: this.data.prodId,      cardNo: cardNo,    })    http.request({      url: "/qrcodeTicket/miniQrCode",      method: "GET",      responseType: 'arraybuffer',      data: {        content: content,        type: 2      },      callBack: (res) => {        this.setData({          wxCodeShow: true,          shareShow: false,          shareWxCode: "data:image/jpg;base64," + wx.arrayBufferToBase64(res)        });        wx.hideLoading();      }    })    console.log('分销员id:' + cardNo)  },  /**   * 关闭二维码弹窗   */  closeCodePopup() {    this.setData({      wxCodeShow: false    });  },  /**   * 保存图片至相册   */  downloadImg() {    var ths = this    var imgSrc = this.data.shareWxCode.slice(22); //base64编码    var save = wx.getFileSystemManager();    save.writeFile({      filePath: wx.env.USER_DATA_PATH + '/分享商品-' + this.data.prodName + '.png',      data: imgSrc,      encoding: 'base64',      success: res => {        wx.saveImageToPhotosAlbum({          filePath: wx.env.USER_DATA_PATH + '/分享商品-' + this.data.prodName + '.png',          success: function (res) {            wx.showToast({              title: '保存成功',            })            ths.setData({              wxCodeShow: false            })          },          fail: function (err) {            wx.showModal({              title: '提示',              content: '保存图片需要授予存储权限',              success: modalRes => {                if (modalRes.confirm) {                  wx.openSetting({                    success(settingdata) {                      if (settingdata.authSetting['scope.writePhotosAlbum']) {                        console.log('用户权限成功')                      } else {                        console.log('用户取消权限')                      }                    }                  })                }              }            })          }        })        // console.log(res)      },      fail: err => {        // console.log(err)      }    })  },  /**   * 获取用户信息   */  onGotUserInfo: function (e) {    if (e.detail.errMsg != "getUserInfo:fail auth deny") {      this.setData({        isAuthInfo: true      });      http.updateUserInfo();    }  },  /**   * 确认开团   */  groupConfirmOrder: function (e) {    if (!this.data.findSku) {      return;    }    wx.showLoading({      mask: true    });    this.setData({      teamId: e.currentTarget.dataset.teamid    })    // 查看是否授权    util.checkAuthInfo(this._groupConfirmParams)  },  // 拼团确认订单参数  _groupConfirmParams() {    wx.setStorageSync("groupOrderItem", JSON.stringify({      groupSkuId: this.data.detaultGroupSku.groupSkuId, // this.data.groupSkuId,      prodCount: this.data.prodNum, // this.data.prodNum,      groupTeamId: this.data.teamId // this.data.groupTeamId    }));    wx.navigateTo({      url: '/pages/groupConfirmOrder/groupConfirmOrder',    })  },  /**   * 跳转到店铺页   */  toShopPage: function () {    wx.navigateTo({      url: '/pages/shopPage/shopPage?shopId=' + this.data.shopId,    })  },  /**   * 通过商品id获取商品所有促销活动   */  getPordDiscountList() {    http.request({      url: "/marking/discount/getDiscountByProdId",      method: "GET",      data: {        prodId: this.data.prodId      },      callBack: res => {        this.setData({          prodDiscountList: res        })      }    })  },  /**   * 促销活动弹窗   */  clickDiscount: function () {    var showDiscountPopup = !this.data.showDiscountPopup    this.setData({      showDiscountPopup    })  },  /**   * 页面从前台变为后台时执行   */  onHide: function () {    this.setData({      isCollection: false,      skuShow: false,    })    clearTimeout(this.data.joinGroupListTimer)  },  /**   * 视频信息   */  getVideoInfo() {    wx.showLoading()    wx.request({      url: this.data.video + '?avinfo',      success: res => {        wx.hideLoading()        let time = Number(res.data.format.duration).toFixed(0)        this.setData({          videoDuration: time < 60 ? '00′' + time + '″' : ((parseInt(time / 60) < 10 ? '0' + parseInt(time / 60) : parseInt(time / 60)) + '′' + (time % 60 < 10 ? '0' + time % 60 : time % 60) + '″')        })      }    })  },  /**   * 视频播放/停止按钮   */  videoOper() {    if (this.data.isPlaying) {      this._stopPlay()    } else {      this._startPlay()    }  },  /**   * 视频播放结束时   */  playEnd() {    this._stopPlay()  },  _startPlay() {    this.setData({      isPlaying: true,    })    this.videoContext.play()    this.videoContext.seek(0)  },  _stopPlay() {    this.setData({      isPlaying: false    })    this.videoContext.stop()    this.videoContext.seek(0)  },})
 |