python学习
This commit is contained in:
124
native/template/share/index.js
Normal file
124
native/template/share/index.js
Normal file
@@ -0,0 +1,124 @@
|
||||
const WXAPI = require('apifm-wxapi')
|
||||
let goodsDetail;
|
||||
const ctx = wx.createCanvasContext('firstCanvas');
|
||||
const clientWidth = wx.getSystemInfoSync().screenWidth;
|
||||
|
||||
function px(number) {
|
||||
return number * clientWidth / 750;
|
||||
}
|
||||
|
||||
export default {
|
||||
init(page) {
|
||||
page._createPoster = this._createPoster;
|
||||
page._drawQrcode = this._drawQrcode;
|
||||
page._saveToMobile = this._saveToMobile;
|
||||
},
|
||||
_createPoster(e) {
|
||||
wx.showLoading({
|
||||
title: '正在生成海报',
|
||||
});
|
||||
ctx.setFillStyle('#fff');
|
||||
ctx.fillRect(0, 0, px(600), px(1000));
|
||||
this._drawQrcode();
|
||||
},
|
||||
async _drawQrcode() {
|
||||
const _this = this
|
||||
const qrcodeRes = await WXAPI.wxaQrcode({
|
||||
scene: _this.data.goodsDetail.basicInfo.id + ',' + wx.getStorageSync('uid'),
|
||||
page: 'pages/goods-details/index',
|
||||
is_hyaline: false,
|
||||
expireHours: 1
|
||||
})
|
||||
if (qrcodeRes.code != 0) {
|
||||
wx.showModal({
|
||||
title: '错误',
|
||||
content: '无法获取小程序码',
|
||||
showCancel: false,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
let x = 0,
|
||||
y = 0;
|
||||
wx.getImageInfo({
|
||||
src: _this.data.goodsDetail.basicInfo.pic,
|
||||
success(res) {
|
||||
|
||||
ctx.drawImage(res.path, 0, 0, res.width, res.height, x, y, px(600), px(600))
|
||||
y += px(600)
|
||||
|
||||
// x = px(300);
|
||||
// y = y + 20;
|
||||
// ctx.setFontSize(14)
|
||||
// ctx.setFillStyle('#333')
|
||||
// ctx.setTextAlign('center')
|
||||
// let name = _this.data.goodsDetail.basicInfo.name
|
||||
// ctx.fillText(name, x, y)
|
||||
|
||||
// x = px(300);
|
||||
// y = y + 30;
|
||||
// ctx.setFontSize(12)
|
||||
// ctx.setFillStyle('#ccc')
|
||||
// ctx.setTextAlign('center')
|
||||
// name = wx.getStorageSync('mallName')
|
||||
// ctx.fillText(name, x, y)
|
||||
y = y - 20
|
||||
|
||||
// 写入二维码
|
||||
wx.getImageInfo({
|
||||
src: qrcodeRes.data,
|
||||
success(qrRes) {
|
||||
x = px(150)
|
||||
y = y + 30
|
||||
ctx.drawImage(qrRes.path, 0, 0, qrRes.width, qrRes.height, x, y, px(300), px(300))
|
||||
x = px(300);
|
||||
y = y + px(300) + 20;
|
||||
ctx.setFontSize(12)
|
||||
ctx.setFillStyle('#aaa')
|
||||
ctx.setTextAlign('center')
|
||||
ctx.fillText('长按识别小程序码查看详情', x, y)
|
||||
|
||||
ctx.draw()
|
||||
wx.hideLoading();
|
||||
_this.setData({
|
||||
posterShow: true
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
_saveToMobile() {
|
||||
const _this = this
|
||||
wx.canvasToTempFilePath({
|
||||
canvasId: 'firstCanvas',
|
||||
success: function (res) {
|
||||
let tempFilePath = res.tempFilePath
|
||||
wx.saveImageToPhotosAlbum({
|
||||
filePath: tempFilePath,
|
||||
success: (res) => {
|
||||
wx.showModal({
|
||||
content: '图片已保存到手机相册',
|
||||
showCancel: false,
|
||||
confirmText: '知道了',
|
||||
confirmColor: '#333'
|
||||
})
|
||||
},
|
||||
complete: () => {
|
||||
_this.setData({
|
||||
posterShow: false
|
||||
})
|
||||
},
|
||||
fail: (res) => {
|
||||
wx.showToast({
|
||||
title: res.errMsg,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user