You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
371 lines
10 KiB
371 lines
10 KiB
Page({
|
|
data: {
|
|
groupNo: '',
|
|
windowWidth: 0,
|
|
windowHeight: 0,
|
|
scaleW: 0.85,
|
|
scaleH: 1.15,
|
|
shareImgSrc: '',
|
|
showPopup: false,
|
|
show: false,
|
|
cancelWithMask: true,
|
|
actions: [{
|
|
name: '微信好友',
|
|
icon: '../../images/wechat_ico.png',
|
|
openType: 'share'
|
|
}, {
|
|
name: '朋友圈',
|
|
icon: '../../images/moments_ico.png'
|
|
}],
|
|
txtmoment: '保存图片,分享到朋友圈',
|
|
qrImageUrl: "",
|
|
bgImageUrl: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1527496410439&di=54c111d35f3ca9d1e9b193834785c264&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F013c81583fa08ea8012060c864c3b7.jpg',
|
|
},
|
|
|
|
onLoad: function (options) {
|
|
this.data.groupNo = options.groupNo;
|
|
console.log('options>' + this.data.groupNo);
|
|
wx.getSystemInfo({
|
|
success: (res) => {
|
|
this.setData({
|
|
windowWidth: res.windowWidth,
|
|
windowHeight: res.windowHeight,
|
|
})
|
|
}
|
|
});
|
|
var that = this;
|
|
wx.request({
|
|
url: getApp().gw.hostUrl + '/mall/wxa/activity/group/wxa_code',
|
|
method: 'get',
|
|
data: {
|
|
groupNo: that.data.groupNo,
|
|
width: 80,
|
|
page: 'index/index'
|
|
},
|
|
header: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
'sessionId': wx.getStorageSync('sessionId')
|
|
},
|
|
success: function (res) {
|
|
if (res.statusCode == 200) {
|
|
that.data.qrImageUrl = res.data.msg;
|
|
}
|
|
}
|
|
})
|
|
},
|
|
//打败Actionsheet,进行分享
|
|
openActionsheet: function () {
|
|
if (this.data.qrImageUrl.length == 0) {
|
|
wx.showLoading({
|
|
title: '正在获取',
|
|
mask: true,
|
|
});
|
|
var that = this;
|
|
wx.request({
|
|
url: getApp().gw.hostUrl + '/mall/wxa/activity/group/wxa_code',
|
|
method: 'get',
|
|
data: {
|
|
groupNo: that.data.groupNo,
|
|
width: 80,
|
|
page: 'index/index'
|
|
},
|
|
header: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
'sessionId': wx.getStorageSync('sessionId')
|
|
},
|
|
success: function (res) {
|
|
wx.hideLoading();
|
|
if (res.statusCode == 200) {
|
|
that.setData({
|
|
qrImageUrl: res.data.msg,
|
|
show: true
|
|
});
|
|
} else {
|
|
wx.showToast({
|
|
title: '获取信息失败!',
|
|
icon: 'none',
|
|
duration: 1000
|
|
});
|
|
}
|
|
},
|
|
fail: function (res) {
|
|
wx.hideLoading();
|
|
wx.showToast({
|
|
title: '网络错误!',
|
|
icon: 'none',
|
|
duration: 1000
|
|
});
|
|
}
|
|
});
|
|
} else {
|
|
this.setData({
|
|
'show': true
|
|
});
|
|
}
|
|
},
|
|
|
|
closeActionSheet: function () {
|
|
this.setData({
|
|
'show': false
|
|
});
|
|
},
|
|
|
|
onShareAppMessage: function () {
|
|
return {
|
|
title: '1号家政',
|
|
imageUrl: this.data.qrImageUrl,
|
|
path: '/pages/index/index',
|
|
};
|
|
},
|
|
|
|
clickAction({ detail }) {
|
|
// 如果是分享按钮被点击, 不处理关闭
|
|
const { index } = detail;
|
|
if (index === 0) {
|
|
return
|
|
} else if (index == 1) {
|
|
this.showMomentImage();
|
|
}
|
|
this.setData({
|
|
[`show`]: false,
|
|
[`actions[${index}].loading`]: false
|
|
});
|
|
},
|
|
|
|
goActivityInfo: function () {
|
|
|
|
},
|
|
|
|
togglePopup: function () {
|
|
this.setData({
|
|
shareImgSrc: '',
|
|
showPopup: !this.data.showPopup,
|
|
})
|
|
},
|
|
|
|
//绘制图片,加上二维码和相关的信息;
|
|
drawMomentImage: function (avatarPath, imgPath, qrCodePath) {
|
|
var that = this;
|
|
console.log(avatarPath.length + "," + imgPath.length + "," + qrCodePath.length);
|
|
if (avatarPath.length == 0 || qrCodePath.length == 0 || imgPath.length == 0) {
|
|
return;
|
|
}
|
|
|
|
const ctx = wx.createCanvasContext('shareCanvas');
|
|
var viewWidth = that.data.windowWidth * that.data.scaleW;
|
|
var viewHight = that.data.windowWidth * that.data.scaleH;
|
|
|
|
ctx.clearRect(0, 0, viewWidth, viewHight)
|
|
ctx.setFillStyle('white')
|
|
ctx.fillRect(0, viewHight - 120, viewWidth, viewHight);
|
|
|
|
ctx.drawImage(imgPath, 0, 0, viewWidth, viewHight - 120)
|
|
ctx.drawImage(qrCodePath, viewWidth - 110, viewHight - 110, 100, 100);
|
|
ctx.save();
|
|
|
|
ctx.beginPath(); //开始绘制
|
|
ctx.arc(36 / 2 + 10, 36 / 2 + 200, 36 / 2, 0, Math.PI * 2, false);
|
|
ctx.clip();//
|
|
ctx.drawImage(avatarPath, 10, 200, 36, 36); // 推进去图片
|
|
ctx.drawImage(avatarPath, 10, viewHight - 113, 24, 24)
|
|
ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 还可以继续绘制
|
|
ctx.save();
|
|
|
|
ctx.setFontSize(15)
|
|
ctx.setTextBaseline('top')
|
|
ctx.setFillStyle('#333')
|
|
ctx.fillText(getApp().globalData.userInfo.nickName, 40, viewHight - 111)
|
|
|
|
ctx.setFontSize(16)
|
|
ctx.setFillStyle('#000')
|
|
ctx.fillText('宠友们快来围观萌宠靓照', 10, viewHight - 80)
|
|
ctx.fillText('我在萌爪幼稚园', 10, viewHight - 58)
|
|
|
|
ctx.setFontSize(13)
|
|
ctx.fillText('长按扫码查看详情', 10, viewHight - 26)
|
|
ctx.draw()
|
|
//将绘制的图片保存到内存,然后进行展示;
|
|
setTimeout(function () {
|
|
wx.canvasToTempFilePath({
|
|
x: 0,
|
|
y: 0,
|
|
width: viewWidth,
|
|
height: viewHight,
|
|
destWidth: viewWidth,
|
|
destHeight: viewHight,
|
|
canvasId: 'shareCanvas',
|
|
success: function (res) {
|
|
that.setData({
|
|
shareImgSrc: res.tempFilePath,
|
|
showPopup: !that.data.showPopup
|
|
})
|
|
wx.hideLoading();
|
|
},
|
|
fail: function (err) {
|
|
that.handleErr(err, false);
|
|
}
|
|
})
|
|
}, 2000);
|
|
},
|
|
|
|
handleErr: function (err, toast) {
|
|
if (!toast) {
|
|
toast = true;
|
|
wx.hideLoading();
|
|
wx.showToast({
|
|
title: '生成图片失败!',
|
|
icon: 'none',
|
|
duration: 1000
|
|
});
|
|
}
|
|
},
|
|
|
|
showMomentImage: function () {
|
|
var that = this;
|
|
var toast = false;
|
|
var avatarPath = '';
|
|
var imgPath = '';
|
|
var qrCodePath = '';
|
|
wx.showLoading({
|
|
title: '正在生成图片',
|
|
mask: true,
|
|
});
|
|
console.log(getApp().globalData.userInfo);
|
|
//下载微信头像,保存到本地;
|
|
wx.downloadFile({
|
|
url: getApp().globalData.userInfo.avatarUrl,
|
|
success: (res) => {
|
|
if (res.statusCode == 200 && res.tempFilePath != undefined && res.tempFilePath.length > 0) {
|
|
avatarPath = res.tempFilePath;
|
|
that.drawMomentImage(avatarPath, imgPath, qrCodePath);
|
|
} else {
|
|
that.handleErr(err, toast);
|
|
toast = true;
|
|
}
|
|
},
|
|
fail: function (err) {
|
|
that.handleErr(err, toast);
|
|
toast = true;
|
|
}
|
|
});
|
|
//下载小程序的二维码,保存到本地;
|
|
wx.downloadFile({
|
|
url: that.data.qrImageUrl,
|
|
success: (res) => {
|
|
if (res.statusCode == 200 && res.tempFilePath != undefined && res.tempFilePath.length > 0) {
|
|
console.log(res);
|
|
qrCodePath = res.tempFilePath;
|
|
that.drawMomentImage(avatarPath, imgPath, qrCodePath);
|
|
} else {
|
|
that.handleErr(err, toast);
|
|
toast = true;
|
|
}
|
|
},
|
|
fail: function (err) {
|
|
that.handleErr(err, toast);
|
|
toast = true;
|
|
}
|
|
});
|
|
//下载背景图片,保存到本地;
|
|
wx.downloadFile({
|
|
url: that.data.bgImageUrl,
|
|
success: (res) => {
|
|
if (res.statusCode == 200 && res.tempFilePath != undefined && res.tempFilePath.length > 0) {
|
|
console.log(res);
|
|
imgPath = res.tempFilePath;
|
|
that.drawMomentImage(avatarPath, imgPath, qrCodePath);
|
|
} else {
|
|
that.handleErr(err, toast);
|
|
toast = true;
|
|
}
|
|
},
|
|
fail: function (err) {
|
|
that.handleErr(err, toast);
|
|
toast = true;
|
|
}
|
|
});
|
|
|
|
// wx.downloadFile({
|
|
// url: getApp().globalData.userInfo.avatarUrl,
|
|
// success: (aRes) => {
|
|
// wx.downloadFile({
|
|
// url: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1527496410439&di=54c111d35f3ca9d1e9b193834785c264&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F013c81583fa08ea8012060c864c3b7.jpg',
|
|
// success: (res) => {
|
|
// //从服务器获二维码图片,保存到本地;
|
|
// wx.downloadFile({
|
|
// url: that.qrImageUrl,
|
|
// success: (qRres) => {
|
|
// that.drawMomentImage(aRes.tempFilePath, res.tempFilePath, qRres.tempFilePath);
|
|
// },
|
|
// fail: function (err) {
|
|
// wx.hideLoading();
|
|
// wx.showToast({
|
|
// title: '生成图片失败!qRres',
|
|
// icon: 'none',
|
|
// duration: 1000
|
|
// });
|
|
// }
|
|
// })
|
|
// },
|
|
// fail: function (err) {
|
|
// console.log(err);
|
|
// wx.hideLoading();
|
|
// wx.showToast({
|
|
// title: '生成图片失败!res',
|
|
// icon: 'none',
|
|
// duration: 1000
|
|
// });
|
|
// }
|
|
// })
|
|
// },
|
|
// fail: function (err) {
|
|
// wx.hideLoading();
|
|
// wx.showToast({
|
|
// title: '生成图片失败!' + err.errMsg,
|
|
// icon: 'none',
|
|
// duration: 1000
|
|
// });
|
|
// }
|
|
// });
|
|
},
|
|
|
|
//将图片保存到本地相册
|
|
saveImageToAlbum: function () {
|
|
wx.showLoading({
|
|
title: '正在保存成图片',
|
|
mask: true,
|
|
});
|
|
var that = this;
|
|
setTimeout(function () {
|
|
wx.saveImageToPhotosAlbum({
|
|
filePath: that.data.shareImgSrc,
|
|
success(res) {
|
|
wx.hideLoading();
|
|
that.togglePopup()
|
|
wx.showModal({
|
|
title: '保存图片成功',
|
|
content: '图片成功保存到相册了,去发圈噻~',
|
|
showCancel: false,
|
|
confirmText: '好哒',
|
|
confirmColor: '#333',
|
|
success: function (res) {
|
|
if (res.confirm) {
|
|
console.log('用户点击确定');
|
|
}
|
|
}
|
|
})
|
|
},
|
|
fail: function (res) {
|
|
console.log(res)
|
|
wx.hideLoading();
|
|
wx.showToast({
|
|
title: '保存图片失败!aRres',
|
|
icon: 'none',
|
|
duration: 1000
|
|
});
|
|
}
|
|
})
|
|
}, 3000)
|
|
},
|
|
|
|
})
|