|
@@ -1,4 +1,4 @@
|
|
|
-import {miniProgramConfig} from '../../api/other';
|
|
|
+import {miniProgramConfig,sharePoster} from '../../api/other';
|
|
|
import {BASE_URL} from '../../utils/request';
|
|
|
import {isLoggedIn,doLogin} from '../../utils/auth';
|
|
|
const app = getApp();
|
|
@@ -10,8 +10,12 @@ Page({
|
|
|
start_time:'',
|
|
|
end_time:'',
|
|
|
ad_img:'',
|
|
|
+ share_img:'',
|
|
|
pendingAction:null,//按钮类型
|
|
|
- loggedIn:false
|
|
|
+ loggedIn:false,
|
|
|
+ showShare: false,
|
|
|
+ showPoster:false,
|
|
|
+ posterImg:'',//生成的海报
|
|
|
},
|
|
|
async onLoad(){
|
|
|
const res = await miniProgramConfig();
|
|
@@ -21,7 +25,8 @@ Page({
|
|
|
introduction:res.data.marathon_event.introduction,
|
|
|
start_time:res.data.marathon_event.start_time,
|
|
|
end_time:res.data.marathon_event.end_time,
|
|
|
- ad_img:res.data.ad_img
|
|
|
+ ad_img:res.data.ad_img,
|
|
|
+ share_img:res.data.share_img
|
|
|
})
|
|
|
},
|
|
|
onShow() {
|
|
@@ -70,7 +75,7 @@ Page({
|
|
|
success: async loginRes => {
|
|
|
await doLogin({
|
|
|
code: loginRes.code,
|
|
|
- // phone: { encryptedData, iv }
|
|
|
+ phone: { encryptedData, iv }
|
|
|
});
|
|
|
this.setData({ loggedIn: isLoggedIn() })
|
|
|
this.doAction(action);
|
|
@@ -84,12 +89,72 @@ Page({
|
|
|
doAction(action) {
|
|
|
if (action === 'register') wx.navigateTo({ url: '/pages/register/register' });
|
|
|
if (action === 'invite'){
|
|
|
- const tabbar = this.getTabBar && this.getTabBar()
|
|
|
- if (tabbar && tabbar.openShare) {
|
|
|
- tabbar.openShare()
|
|
|
- } else {
|
|
|
- console.log("没找到 tabbar 组件")
|
|
|
- }
|
|
|
+ this.setData({ showShare: true });
|
|
|
};
|
|
|
+ },
|
|
|
+ // 弹框取消
|
|
|
+ onClose(){
|
|
|
+ this.setData({ showShare: false });
|
|
|
+ },
|
|
|
+ // 点击海报生成图片
|
|
|
+ async openPoster(){
|
|
|
+ this.setData({
|
|
|
+ showShare: false
|
|
|
+ })
|
|
|
+ wx.showLoading({
|
|
|
+ title: '海报生成中...',
|
|
|
+ mask: true
|
|
|
+ });
|
|
|
+ try {
|
|
|
+ const res = await sharePoster();
|
|
|
+ if(res.code == 200){
|
|
|
+ console.log(res.data);
|
|
|
+ this.setData({ showPoster:true,posterImg: res.data});
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error)
|
|
|
+ } finally{
|
|
|
+ wx.hideLoading();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ closePoster(){
|
|
|
+ this.setData({ showPoster: false});
|
|
|
+ },
|
|
|
+ // 保存相册
|
|
|
+ savePoster() {
|
|
|
+ if (!this.data.posterImg) {
|
|
|
+ wx.showToast({ title: '没有海报图片', icon: 'none' });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 将 base64 转临时文件路径
|
|
|
+ const base64Data = this.data.posterImg;
|
|
|
+ const filePath = `${wx.env.USER_DATA_PATH}/poster.png`;
|
|
|
+ const fs = wx.getFileSystemManager();
|
|
|
+ const buffer = wx.base64ToArrayBuffer(base64Data);
|
|
|
+
|
|
|
+ fs.writeFileSync(filePath, buffer, 'binary');
|
|
|
+
|
|
|
+ wx.saveImageToPhotosAlbum({
|
|
|
+ filePath,
|
|
|
+ success() { wx.showToast({ title: '保存成功' }); },
|
|
|
+ fail(err) {
|
|
|
+ if (err.errMsg.includes('auth')) wx.openSetting();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 发送朋友
|
|
|
+ sendImg(){
|
|
|
+ // 将 base64 转临时文件路径
|
|
|
+ const base64Data = this.data.posterImg;
|
|
|
+ const filePath = `${wx.env.USER_DATA_PATH}/poster.png`;
|
|
|
+ const fs = wx.getFileSystemManager();
|
|
|
+ const buffer = wx.base64ToArrayBuffer(base64Data);
|
|
|
+
|
|
|
+ fs.writeFileSync(filePath, buffer, 'binary');
|
|
|
+ wx.showShareImageMenu({
|
|
|
+ path: filePath,
|
|
|
+ success() {},
|
|
|
+ fail: console.error,
|
|
|
+ })
|
|
|
}
|
|
|
})
|