// pages/user/user.js import util from '../../utils/util' import api from '../../utils/api' const app = getApp() Page({ // 页面的初始数据 data: { auth: {}, userInfo: {}, howToWithdraw: false, qrCode: '', GamePlayList: [], CenterData: {}, showText: false, system: {}, sharePath: 'pages/share/share', shareInfo: {}, ShowShareMask: false, ShowshareCirclesMask: false, mpType: app.globalData.mpType }, onPageScroll: function (res) { if (this.data.howToWithdraw) { this.setData({ howToWithdraw: false }) } }, // 生命周期函数--监听页面加载 onLoad: function (options) { this.getShareInfo() this.getSystem() }, onShow: function (e) { if (app.globalData.openGZH) { this.OpenWithdraw() app.globalData.openGZH = false } else { this.setData({ howToWithdraw: false }) } let timer = setInterval(() => { console.log(app.globalData.PageCallback) if (app.globalData.PageCallback) { this.getGamePlayList() api.getUserInfo().then(res => { this.setData({ userInfo: res.data, auth: res.data.auth }) }) if (this.data.auth.memcenter === 1) { this.getCenterInfo() } clearInterval(timer) } }, 200) }, getShareInfo: function () { api.getShareInfo({ data: { path: this.data.sharePath } }).then(res => { this.setData({ shareInfo: res.data }) }).catch(err => { console.log('getShare', err) }) }, contact: function (e) { console.log('客服消息回调', e) }, routeTo: function (e) { util.routeTo(e.currentTarget.dataset.url) }, OpenWithdraw: function (e) { console.log(this.data.qrCode) if (!this.data.qrCode) { api.getWithdrawTips().then(res => { if (res.code === 200) { this.setData({ howToWithdraw: true, qrCode: res.data.image }) } }) } else { this.setData({ howToWithdraw: true }) } }, CloseWithdraw: function (e) { app.globalData.oepnGZH = false this.setData({ howToWithdraw: false }) }, // 评论/客服 getCenterInfo: function () { api.getCommentIndex().then(res => { if (res.code === 200) { this.setData({ CenterData: res.data }) } }) }, // 我玩过的游戏 getGamePlayList: function () { api.getGamePlayList({ page: 1, offset: 4, HideLoading: true }).then(res => { console.log(res, '----------------') if (!res.data.list.length) { api.getGameList({ rank_type: 3, page: 1, offset: 4, HideLoading: true }).then(res => { this.setData({ GamePlayList: res.data.list, showText: true }) }) } else { this.setData({ GamePlayList: res.data.list, showText: false }) } }) }, // 领取任务奖励 getTaskReward: function (e) { new Promise((resolve, reject) => { switch (e.currentTarget.dataset.tasktype) { case 'sign': api.getSignIncome().then(res => { if (res.code === 200) { resolve({ title: '签到奖励', content: this.data.mpType === 'gd' ? `恭喜获得${res.data.gain_integral}金币!` : `恭喜获得${res.data.gain_amount}元!` }) } }) break; case 'share': api.getShareIncome().then(res => { if (res.code === 200) { resolve({ title: '邀请奖励', content: this.data.mpType === 'gd' ? `恭喜获得${res.data.gain_integral}金币!` : `恭喜获得${res.data.gain_amount}元!` }) } }) break; case 'play': api.getPlayIncome().then(res => { if (res.code === 200) { resolve({ title: '试玩奖励', content: this.data.mpType === 'gd' ? `恭喜获得${res.data.gain_integral}金币!` : `恭喜获得${res.data.gain_amount}元!` }) } }) break; } }).then(info => { const _self = this wx.showModal({ title: info.title, content: info.content, showCancel: false, success: (e) => { api.getUserInfo().then(res => { _self.updateUserInfo(res.data) }) } }) }) }, // 更新用户信息 updateUserInfo: function (data) { this.setData({ userInfo: data, auth: data.auth }) }, openGame: function (e) { let id = e.currentTarget.dataset.id api.openGame({ game_id: id }).then(res => { console.log(res) }, err => { console.log(err) }) }, hideWithdraw: function (e) { this.setData({ howToWithdraw: false }) }, showPop: function (e) { wx.previewImage({ urls: [e.currentTarget.dataset.entrance] }) }, // 跳转赚钱技巧页 routeTips: function (e) { if (this.data.mpType === 'gd') { util.routeTo('/pages/lottery/lottery') } else { util.routeTo('/pages/user/purse') } }, // 显示隐藏分享menu ChangeShare: function (e) { wx.hideTabBar({ animation: true }) if (!this.data.shareInfo.title) { api.getShareInfo({ data: { path: this.data.sharePath } }).then(res => { console.log('getShare', res) this.setData({ shareInfo: res.data, ShowShareMask: e.currentTarget.dataset.show ? true : false }) }).catch(err => { console.log('getShare', err) }) } else { this.setData({ ShowShareMask: e.currentTarget.dataset.show ? true : false }) } this.getShareInfo() }, // 显示隐藏分享弹框 showShare: function (e) { let { show } = e.currentTarget.dataset if (!show) { wx.showTabBar({ animation: true }) } this.setData({ ShowShareMask: show ? true : false }) }, // 关闭分享朋友圈弹框 CloseshareCircles: function () { wx.showTabBar({ aniamtion: true }) this.setData({ ShowshareCirclesMask: false }) }, // 分享朋友圈 shareCircles: function () { console.log(this.data.shareImgSrc) if (this.data.shareImgSrc) { this.setData({ ShowShareMask: false, ShowshareCirclesMask: true }) return false } wx.showLoading({ title: '正在生成', mask: true }) this.setData({ ShowShareMask: false, ShowshareCirclesMask: true }) const _self = this const rpx = this.data.system.windowWidth / 750 const ctx = wx.createCanvasContext('shareCanvas') const canvasW = 466 * rpx const canvasH = 828 * rpx const avatarW = 70 * rpx const avatarH = 70 * rpx const avatarX = 200 * rpx const avatarY = 19 * rpx const avatarBW = 66 * rpx const avatarBH = 66 * rpx const avatarBX = 200 * rpx const avatarBY = 20 * rpx const QRcodeW = 454 * rpx const QRcodeH = 454 * rpx const QRcodeX = 6 * rpx const QRcodeY = 374 * rpx const QRcodeBW = 147 * rpx const QRcodeBH = 147 * rpx const QRcodeBX = 160 * rpx const QRcodeBY = 580 * rpx util.getImageInfo(this.data.shareInfo.pyq_bg).then(res => { ctx.drawImage(res.path, 0, 0, canvasW, canvasH) ctx.save() ctx.beginPath() ctx.arc(avatarBW / 2 + avatarBX, avatarBH / 2 + avatarBY, avatarBW / 2, 0, Math.PI * 2, false) ctx.clip() ctx.setFillStyle('white') ctx.fillRect(avatarBX, avatarBY, avatarBW, avatarBH) ctx.restore() ctx.draw(true) ctx.save() ctx.beginPath() ctx.arc(QRcodeBW / 2 + QRcodeBX, QRcodeBH / 2 + QRcodeBY, QRcodeBW / 2, 0, Math.PI * 2, false) ctx.clip() ctx.setFillStyle('white') ctx.fillRect(QRcodeBX, QRcodeBY, QRcodeBW, QRcodeBH) ctx.restore() ctx.draw(true) }).then(res => { return util.getImageInfo(this.data.shareInfo.mp_qr).then(res => { ctx.save() ctx.beginPath() ctx.arc(QRcodeW / 2 + QRcodeX, QRcodeH / 2 + QRcodeY, QRcodeW / 2, 0, Math.PI * 2, false) ctx.clip() ctx.drawImage(res.path, canvasW / 2 - QRcodeW / 2, QRcodeY, QRcodeW, QRcodeH) ctx.restore() ctx.draw(true) }) }).then(res => { return util.getImageInfo(this.data.userInfo.avatar).then(res => { ctx.beginPath() ctx.arc(avatarW / 2 + avatarX, avatarH / 2 + avatarY, avatarW / 2, 0, Math.PI * 2, false) ctx.clip() ctx.drawImage(res.path, canvasW / 2 - avatarW / 2, avatarY, avatarW, avatarH) ctx.restore() ctx.draw(true) }) }).then(res => { setTimeout(() => { wx.canvasToTempFilePath({ x: 0, y: 0, width: canvasW, height: canvasH, destWidth: canvasW * 4, destHeight: canvasH * 4, canvasId: 'shareCanvas', success: function (res) { wx.hideLoading() _self.setData({ shareImgSrc: res.tempFilePath }) }, fail: function (res) { console.log(res) } }) }, 500) }).catch(err => { wx.hideLoading() console.log(err) }) }, // 保存分享朋友圈图片 saveMemQRcode: function (e) { const _self = this wx.showLoading({ title: '正在保存...' }) wx.saveImageToPhotosAlbum({ filePath: _self.data.shareImgSrc, success: function (res) { console.log('保存图片', res) wx.showToast({ title: '保存成功', icon: 'success', duration: 1000 }) }, fail: function (err) { console.log('保存图片', err) if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied") { console.log("用户一开始拒绝了,我们想再次发起授权") console.log('打开设置窗口') wx.openSetting({ success(settingdata) { console.log(settingdata) if (settingdata.authSetting['scope.writePhotosAlbum']) { console.log('获取权限成功,给出再次点击图片保存到相册的提示。') } else { console.log('获取权限失败,给出不给权限就无法正常使用的提示') } } }) } }, complete: function () { wx.hideLoading() _self.setData({ ShowshareCirclesMask: false }) wx.showTabBar({ aniamtion: true }) } }) }, // 获取设备信息 getSystem: function (e) { const _self = this wx.getSystemInfo({ success: function (res) { _self.setData({ system: res }) } }) } })