plus.js 10.9 KB
var e = function(e) {
    return e && e.__esModule ? e : {
      default: e
    };
  }(require("../../../utils/LoadMore.js")),
  t = getApp(),
  a = t.request,
  o = t.globalData.setting,
  os = o,
  i = require("../../../utils/util.js"),
  ut = i,
  s = require("../../../utils/common.js"),
  n = new e.default();
var regeneratorRuntime = require('../../../utils/runtime.js');
var api = require('../../../api/api.js');
//wx.downloadFile把线上地址设为本地地址
Page({

  /**
   * 页面的初始数据
   */
  data: {
    images: [o.imghost + "/miniapp/images/plus/card_one.jpg", o.imghost + "/miniapp/images/plus/card_two.jpg", o.imghost + "/miniapp/images/plus/card_three.jpg"],
    currentId: 0,
    url: o.imghost,
    j: false,
    screenWidth: 0,
    screenheight: 0,
    canvasHidden: true,
    shareImgPath: null,
    plusCard: "",
    imagePath: ""
  },
  swiperChange: function(e) {
    var currentId = e.detail.current;
    this.setData({
      currentId: currentId
    })

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    var that = this;
    //获取用户设备信息,屏幕宽度
    wx.getSystemInfo({
      success: res => {
        that.setData({
          screenWidth: res.screenWidth
        })
      }
    })
    this.getPlusCardType();
    this.saveImageToPhotosAlbum();
  },
  //获取卡类
  getPlusCardType: function(e) {
    var storid = o.stoid;
    var th = this;
    getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => {
      th.setData({
        plusCard: res.data.data
      })
    })

  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  saveImageToPhotosAlbum: function() {
    wx.showLoading({
      title: '生成中...',
    })
    var th = this;
    var unit = th.data.screenWidth / 750 * 1.35;
    const ctx = wx.createCanvasContext('myCanvas');
    //设置画板显示,才能开始绘图
    th.setData({

      canvasHidden: false
    })
    ctx.drawImage("../../../images/plus/share/mackground.png", 0, 0, 554 * unit, 930 * unit);
    ctx.setFontSize(26 * unit);
    ctx.setFillStyle("rgb(0,0,0)");
    ctx.fillText("钱巧玲", 155 * unit, 75 * unit, 200 * unit);

    var tj_path = "../../../images/userinfo/q_tj.png";
    ctx.drawImage(tj_path, 385 * unit, 45 * unit, 90 * unit, 30 * unit);
    ctx.setFontSize(18 * unit);
    ctx.setFillStyle("rgb(255,255,255)");
    ctx.fillText("强烈推荐", 394 * unit, 65 * unit);

    ctx.setStrokeStyle("rgb(255,255,255)");
    ctx.setLineDash([5 * unit, 5 * unit], 5 * unit);
    ctx.beginPath();
    ctx.moveTo(0, 125 * unit);
    ctx.lineTo(554 * unit, 125 * unit);
    ctx.stroke();

    var x = 55 * unit,
      y = 165 * unit,
      w = 444 * unit,
      h = 220 * unit,
      r = 14 * unit;
    ctx.save();
    // 开始绘制
    ctx.beginPath();
    // 因为边缘描边存在锯齿,最好指定使用 transparent 填充
    // 这里是使用 fill 还是 stroke都可以,二选一即可
    ctx.setFillStyle('rgb(237,188,150)')
    // ctx.setStrokeStyle('transparent')
    // 左上角
    ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5)

    // border-top
    ctx.moveTo(x + r, y)
    ctx.lineTo(x + w - r, y)
    ctx.lineTo(x + w, y + r)
    // 右上角
    ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2)

    // border-right
    ctx.lineTo(x + w, y + h - r)
    ctx.lineTo(x + w - r, y + h)
    // 右下角
    ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5)

    // border-bottom
    ctx.lineTo(x + r, y + h)
    ctx.lineTo(x, y + h - r)
    // 左下角
    ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI)

    // border-left
    ctx.lineTo(x, y + r)
    ctx.lineTo(x + r, y)

    // 这里是使用 fill 还是 stroke都可以,二选一即可,但是需要与上面对应
    ctx.fill()

    ctx.clip(); //画了圆 再剪切 原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内
    ctx.drawImage("../../../images/plus/share/one.jpg", x, y, 444 * unit, 220 * unit); // 推进去图片
    ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 可以继续绘制

    ctx.beginPath();
    // 卡图片
    //  ctx.drawImage("../../../images/plus/share/one.jpg", 55 * unit, 165 * unit, 444 * unit, 220 * unit,);
    ctx.setFontSize(26 * unit);
    ctx.setFillStyle("rgb(237,188,150)");
    ctx.fillText("PLUSI会员", 80 * unit, 215 * unit);
    ctx.setFontSize(18 * unit);
    ctx.setFillStyle("rgb(237,188,150)");
    ctx.fillText("开通会员年卡仅199元", 80 * unit, 240 * unit);

    ctx.drawImage("../../../images/plus/share/privilege_o.png", 80 * unit, 343 * unit, 20 * unit, 20 * unit);

    ctx.setFontSize(14 * unit);
    ctx.setFillStyle("rgb(237,188,150)");
    ctx.fillText("根据大家购买数据,您成为超级会员预计可省¥3031元", 105 * unit, 360 * unit);

    ctx.rect(70 * unit, 425 * unit, 182 * unit, 1 * unit);
    ctx.setFillStyle('rgb(218,194,169)');
    ctx.fill();

    ctx.drawImage("../../../images/plus/share/square.png", 267 * unit, 420 * unit, 13 * unit, 13 * unit);

    ctx.beginPath();
    ctx.rect(295 * unit, 425 * unit, 182 * unit, 1 * unit);
    ctx.setFillStyle('rgb(218,194,169)');
    ctx.fill();

    ctx.drawImage("../../../images/plus/share/square.png", 80 * unit, 470 * unit, 10 * unit, 10 * unit);
    ctx.setFontSize(24 * unit);
    ctx.setFillStyle("rgb(198,165,126)");
    ctx.fillText("超级VIP权益", 100 * unit, 475 * unit);

    ctx.setFontSize(20 * unit);
    ctx.setFillStyle("rgb(198,165,126)");
    ctx.fillText("超级会员专属权益", 100 * unit, 505 * unit);
    ctx.drawImage("../../../images/plus/share/Ancrown.png", 355 * unit, 440 * unit, 65 * unit, 65 * unit);

    ctx.rect(85 * unit, 530 * unit, 375 * unit, 1 * unit)
    ctx.setFillStyle('rgb(218,194,169)')
    ctx.fill();

    ctx.drawImage("../../../images/plus/share/square.png", 80 * unit, 575 * unit, 10 * unit, 10 * unit);
    ctx.setFontSize(24 * unit);
    ctx.setFillStyle("rgb(198,165,126)");
    ctx.fillText("超级VIP标识", 100 * unit, 580 * unit);

    ctx.setFontSize(20 * unit);
    ctx.setFillStyle("rgb(198,165,126)");
    ctx.fillText("彰显尊贵身份的象征", 100 * unit, 610 * unit);
    ctx.drawImage("../../../images/plus/share/Identification.png", 355 * unit, 548 * unit, 65 * unit, 65 * unit);

    ctx.rect(85 * unit, 635 * unit, 375 * unit, 1 * unit);
    ctx.setFillStyle('rgb(218,194,169)');
    ctx.fill();

    ctx.drawImage("../../../images/plus/share/square.png", 80 * unit, 695 * unit, 10 * unit, 10 * unit);
    ctx.setFontSize(24 * unit);
    ctx.setFillStyle("rgb(198,165,126)");
    ctx.fillText("超级VIP价格", 100 * unit, 695 * unit);

    ctx.setFontSize(20 * unit);
    ctx.setFillStyle("rgb(198,165,126)");
    ctx.fillText("享受专属会员超低价", 100 * unit, 725 * unit);
    ctx.drawImage("../../../images/plus/share/money.png", 355 * unit, 660 * unit, 65 * unit, 65 * unit);

    ctx.rect(85 * unit, 750 * unit, 375 * unit, 1 * unit)
    ctx.setFillStyle('rgb(218,194,169)')
    ctx.fill();

    ctx.drawImage("../../../images/userinfo/user_head.jpg", 100 * unit, 780 * unit, 110 * unit, 110 * unit);

    ctx.setFontSize(20 * unit);
    ctx.setFillStyle("#000");
    ctx.fillText("解锁新权益 精彩享不停", 230 * unit, 825 * unit);

    ctx.setFontSize(20 * unit);
    ctx.setFillStyle("#000");
    ctx.fillText("长按识别二维码,立即开通!", 230 * unit, 865 * unit);

    //---绘制圆形要放在最后----
    ctx.save();
    ctx.beginPath();
    var h_x = 60 * unit;
    var h_y = 24 * unit;
    var h_r = 40 * unit;
    var cx = h_x + h_r;
    var cy = h_y + h_r;
    ctx.arc(cx, cy, h_r, 0, Math.PI * 2, false);
    ctx.closePath();
    ctx.fill();
    ctx.clip();
    ctx.drawImage("../../../images/userinfo/user_head.jpg", h_x, h_y, h_r * 2, h_r * 2);
    ctx.restore();

    var x = 345 * unit,
      y = 190 * unit,
      w = 105 * unit,
      h = 30 * unit,
      r = 14 * unit;
    ctx.save();
    // 开始绘制
    ctx.beginPath();
    // 因为边缘描边存在锯齿,最好指定使用 transparent 填充
    // 这里是使用 fill 还是 stroke都可以,二选一即可
    ctx.setFillStyle('rgb(237,188,150)')
    // ctx.setStrokeStyle('transparent')
    // 左上角
    ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5)

    // border-top
    ctx.moveTo(x + r, y)
    ctx.lineTo(x + w - r, y)
    ctx.lineTo(x + w, y + r)
    // 右上角
    ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2)

    // border-right
    ctx.lineTo(x + w, y + h - r)
    ctx.lineTo(x + w - r, y + h)
    // 右下角
    ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5)

    // border-bottom
    ctx.lineTo(x + r, y + h)
    ctx.lineTo(x, y + h - r)
    // 左下角
    ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI)

    // border-left
    ctx.lineTo(x, y + r)
    ctx.lineTo(x + r, y)

    // 这里是使用 fill 还是 stroke都可以,二选一即可,但是需要与上面对应
    ctx.fill()
    // ctx.stroke()
    ctx.closePath()
    // 剪切
    ctx.clip();

    ctx.setFontSize(18 * unit);
    ctx.setFillStyle("#000");
    ctx.fillText("立即开通", 362 * unit, 212 * unit);

    //绘制图片
    ctx.draw(false,
     wx.canvasToTempFilePath({
      x: 0,
      y: 0,
      width: 750,
      height: 930,
      destWidth: 1.2 * 750 * 750 / th.data.screenWidth,
      destHeight: 1.2 * 1217 * 750 / th.data.screenWidth,
      canvasId: 'myCanvas',
      success: function(res) {
        console.log("sssssssssssssssssssssssss" + res.tempFilePath);
        var tempFilePath = res.tempFilePath;
        th.setData({
          imagePath: tempFilePath,
          maskHidden: false,
          canvasHidden: true
        });
        wx.previewImage({
          urls: [res.tempFilePath],
        })
        if (!res.tempFilePath) {
          wx.showModal({
            title: '提示',
            content: '图片绘制中,请稍后重试',
            showCancel: false
          })
        }
        wx.hideLoading();
       }

    }))

  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
    var goods_list = this.selectComponent("#goods_list"); //组件的id
    goods_list.get_list();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {
    var goods_list = this.selectComponent("#goods_list"); //组件的id
    goods_list.get_list();
    this.setData({
      j: true
    })
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },
  //开通会员
  Opening: function() {
    this.setData({
      j: true
    })
  },
  //返回会员页面
  OpeningClose: function() {
    this.setData({
      j: false
    })
  }

})