| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 | let Parse = getApp().Parse;let company = getApp().globalData.companyPage({  /**   * 页面的初始数据   */  data: {    noBind:false //不绑定关系  },  /**   * 生命周期函数--监听页面加载   */  onLoad: async function (options) {    console.log(options);    let {      path,      sx,      sy,      cColor,      bColor,      noBind,      route //扫码携带路径    } = options    let userId = Parse.User.current().id    let imgUrl = await this.loadPoster() || 'https://file-cloud.fmode.cn/L3xHgXbTHJ/20230814/vod1h4054437092.png'    this.setData({      imgUrl,      path,      sx,      sy,      noBind,      route    });    const _this = this    let qrCodeUrl = `https://pwa.fmode.cn/gomini/${path}/?invite=${userId}`;    if(this.data.noBind){      qrCodeUrl = `https://pwa.fmode.cn/gomini/${path}/`;    }    if(route){      if(this.data.noBind){        qrCodeUrl = qrCodeUrl+`?route=${route}`      }else{        qrCodeUrl = qrCodeUrl+`&route=${route}`      }    }    console.log(qrCodeUrl);    wx.request({      url: "https://server.fmode.cn/api/common/qrcode",      data: {        qrCode: qrCodeUrl,        darkColor: bColor || "#ffffff",        lightColor: cColor || "#000000"      },      async success(res) {        if (res.data.code == 1) {          let that = this;          //把base64文件转图片          let fileSystemManager = wx.getFileSystemManager()          fileSystemManager.writeFile({            filePath: wx.env.USER_DATA_PATH + '/qr_code.png',            data: res.data.data.slice(22),            encoding: 'base64',            success: res => {              _this.setData({                xcxcode: wx.env.USER_DATA_PATH + '/qr_code.png'              })              _this.drawOne()            },            fail(e) {              console.log('文件保存失败', e)            }          })        } else {          wx.showToast({            title: '请先删除小程序重新授权后重试',            icon: 'none'          })        }      },    });  },  //获取海报图片  async loadPoster() {    let Poster = new Parse.Query('Banner')    Poster.equalTo('company', company)    Poster.equalTo('desc', 'invite')    Poster.ascending('index')    let poster = await Poster.first()    if(poster?.id){      return poster.get('image')    }    return  },  async drawOne() {    let { sx, sy } = this.data    let that = this    let imgPath = that.data.imgUrl; //背景图片;    let avatar = Parse.User.current()?.get('avatar')    let balance = await this.getImageInfo(imgPath)    let userAvatar = await this.getImageInfo(avatar)    let xcxcode = that.data.xcxcode; //二维码    const ctx = wx.createCanvasContext('myCanvas');    //填充背景(图片的白色背景)    ctx.setFillStyle('#ffffff');    ctx.fillRect(0, 0, 375, 596); //坐标和宽高    ctx.fillRect(0, 0, 338, 480); //坐标和宽高    // 第一张图片(背景图片)    if(company != 'UP2cStyjuk')  ctx.drawImage(balance, 0, 0, 340, 540);    userAvatar && ctx.drawImage(userAvatar, 126 , 100, 80, 80);    //绘制二维码    ctx.drawImage(xcxcode, sx ? sx : 70 , sy ? sy : 250, 200, 200);    ctx.draw();     },  getImageInfo(url){    return new Promise((result)=>{      wx.getImageInfo({        src: url, //服务器返回的图片地址        success: function (res) {          // res.path是网络图片的本地地址          let Path = res.path;          result(Path)        },        fail(err) {          console.log(err);          result()        }      });    })  },  // 保存图片  savetup: function () {    let that = this;    wx.canvasToTempFilePath({      x: 0,      y: 0,      width: 750,      height: 1334,      destWidth: 750,      destHeight: 1334,      canvasId: 'myCanvas',      success: function (result) {        wx.getSetting({          success(res) {            if (!res.authSetting['scope.writePhotosAlbum']) {              wx.authorize({                scope: 'scope.writePhotosAlbum',                success() {                  //这里是用户同意授权后的回调                  // that.saveImgToLocal();                  wx.saveImageToPhotosAlbum({                    filePath: result.tempFilePath,                    success(res) {                      wx.showModal({                        title: '图片保存成功!',                        content: '请将图片分享到朋友圈',                        showCancel: false,                        confirmText: '知道了',                        confirmColor: '#72B9C3',                        success: function (res) {                          if (res.confirm) {                            console.log('用户点击确定');                            that.setData({                              show: false                            })                          }                        }                      })                    }                  })                },                fail() { //这里是用户拒绝授权后的回调                  wx.showToast({                    title: '打开相册授权,才能保存二维码哦~',                    icon: 'none',                    duration: 2000                  })                  that.setData({                    openSettingBtnHidden: false                  })                }              })            } else {              //调取小程序当中获取图片              console.log(result.tempFilePath);              wx.saveImageToPhotosAlbum({                filePath: result.tempFilePath,                success(res) {                  wx.showModal({                    title: '图片保存成功!',                    content: '请将图片分享到朋友圈',                    showCancel: false,                    confirmText: '知道了',                    confirmColor: '#72B9C3',                    success: function (res) {                      if (res.confirm) {                        console.log('用户点击确定');                        that.setData({                          show: false                        })                      }                    }                  })                }              })            }          }        })      },      fail: function (res) {        console.log(res)      }    })  },  onCopy() {    let id = Parse.User.current().id;    let url = 'https://server.fmode.cn/api/wxapp/wechat/urlLink'    let query = `invite=${id}`    if(this.data.noBind) {      query = ``    }    wx.request({      url: url,      data: {        company: company,        path: 'index',        query: query,      },      header: {        'content-type': 'application/json'      },      method: 'POST',      dataType: 'json',      responseType: 'text',      success: (result) => {        console.log(result);        if (result ?.data ?.url_link) {          let path = result.data.url_link          wx.setClipboardData({            data: path,            success: function (res) {              wx.getClipboardData({                success: function (res) {                  wx.showToast({                    title: '复制成功',                  })                  // console.log(res.data) // data                }              })            }          })          return        }        wx.showToast({          title: '复制错误',          icon: 'error',          image: '',          duration: 1500,          mask: false,        });      },      fail: () => {},      complete: () => {}    });  },  onShareTimeline() {    console.log(123)    return {      title: '发送朋友圈',      query: '',    }  },  /**   * 生命周期函数--监听页面初次渲染完成   */  onReady: function () {  },  /**   * 生命周期函数--监听页面显示   */  onShow: function () {  },  /**   * 生命周期函数--监听页面隐藏   */  onHide: function () {  },  /**   * 生命周期函数--监听页面卸载   */  onUnload: function () {  },  /**   * 页面相关事件处理函数--监听用户下拉动作   */  onPullDownRefresh: function () {  },  /**   * 页面上拉触底事件的处理函数   */  onReachBottom: function () {  },  /**   * 用户点击右上角分享   */  onShareAppMessage: function () {    let uid = Parse.User.current().id    let path = `index?invite=${uid}`    if(this.data.noBind) {      path = 'index'    }    if(this.data.route){      if(this.data.noBind){        qrCodeUrl = qrCodeUrl+`?route=${this.data.route}`      }else{        qrCodeUrl = qrCodeUrl+`&route=${this.data.route}`      }    }    return {      title: '邀请好友',      path: path,      imageUrl: '',    }  }})
 |