<!-- 我的邀请 -->
<template>
	<view class="min-page">
		<u-navbar title="分享好友" back-icon-color="#fff" :background="background" immersive :border-bottom="false"
			title-color="#fff"></u-navbar>
		<view class="u-relative">
			<u-image src="/me/static/invite/top-bg.png" alt="" width="100%" mode="widthFix"></u-image>
			<view class="u-absolute top-title">
				<u-image src="/me/static/invite/title.png" alt="" width="544rpx" mode="widthFix"></u-image>
			</view>
		</view>
		<view class=" invite-box u-relative">
			<view class="top">
				<u-image src="/me/static/invite/bg1.png" alt="" width="422rpx" height="76rpx"></u-image>
				<view class="u-absolute font-bold">
					<text>邀请详情</text>
				</view>
			</view>
			<view class="u-font-32 font-bold u-text-center color-000" style="padding-top: 84rpx;">
				您的邀请码
			</view>
			<view class="text-center  ">
				<view class=" u-m-t-32  text-xxl text-red text-bold u-m-b-32">
					{{invitationCode}}
				</view>
				<view class="u-flex u-row-between" style="padding: 0 88rpx;">
					<!-- #ifdef H5 -->
					<u-button @tap="sharurl" :custom-style="customStyle" :hair-line="false"
						:ripple="true">一键分享</u-button>
					<!-- #endif -->

					<!-- #ifdef APP -->
					<u-button @tap="sharurl" :custom-style="customStyle" :hair-line="false"
						:ripple="true">一键分享</u-button>
					<!-- #endif -->

					<!-- #ifdef MP-TOUTIAO || MP-KUAISHOU -->
					<u-button open-type="share" :custom-style="customStyle" :hair-line="false"
						:ripple="true">一键分享</u-button>
					<!-- #endif -->

					<!-- #ifdef MP-WEIXIN -->
					<u-button open-type="share" :custom-style="customStyle" :hair-line="false"
						:ripple="true">一键分享</u-button>
					<!-- #endif -->
					<!-- #ifndef MP-KUAISHOU -->
					<u-button style="margin-left: 50rpx;" @click.stop="onSaveImg()" :custom-style="customStyle"
						:hair-line="false" :ripple="true">保存海报</u-button>
					<!-- #endif -->
				</view>

			</view>
			<view class="gap u-m-t-32"></view>
			<view class="u-m-t-32">
				<view class="font-bold color-000 u-font-32 u-text-center">我的邀请战绩</view>
				<view class="flex justify-around u-m-t-32 u-text-center font-bold" style="line-height: 46rpx;">
					<view>
						<view class="">已邀请</view>
						<view class="text-red u-m-t-16 "><text class=" u-font-40">{{inviterNumber}}</text>人</view>
					</view>
					<view>
						<view class="">累计收益</view>
						<view class="text-red u-m-t-16 "><text class=" u-font-40">{{cumulativeRevenue}}</text>元</view>
					</view>
					<view>
						<view class="">已签到</view>
						<view class="text-red u-m-t-16 "><text class=" u-font-40">{{inviteCount}}</text>人</view>
					</view>
					<!-- <view>
						<view class="">已提现</view>
						<view class="text-red u-m-t-16 "><text class="u-font-40">{{withdrawn}}</text>元</view>
					</view> -->
				</view>
				<view class="u-m-t-16 color-999 u-text-center u-p-b-32">好友签到成功可额外获得1元现金红包</view>
			</view>

		</view>
		<view class="margin u-m-t-40 u-m-b-32 padding bg-white radius-16" >
			<view class="u-font-32 color-333 font-bold u-text-center">已邀请列表</view>
			<view v-if="inviterList.length" class="u-m-t-20">
				<view class="flex justify-between" style="line-height: 80rpx;" v-for="(item, index) in inviterList"
					:key='index'>
					<view class="flex">
						<!-- <u-image :src="item.avatar == null?avatar:item.avatar" width="40px" mode="widthFix"></u-image> -->
						<image src="../static/invite/5.png" style="width: 80rpx;" mode="widthFix"></image>
						<text class="margin-left-sm">{{item.userName}}</text>
					</view>
					<view style="width: 160rpx;" class="u-flex u-row-right font-bold">
						<text class=" text-red" v-if="item.money>0">已签到</text>
						<text class=" color-999" v-else>未签到</text>
					</view>
				</view>
			</view>
			<!-- <view class="u-p-t-30 u-p-b-30 empty" v-if="hasAjax&&!inviterList.length">
				<my-empty ></my-empty>
			</view> -->
			
		</view>

		<!-- <view class="padding" style="position: relative;height: 250rpx;">
			<u-image src="@/me/static/invite/jiqiao.png" alt="" width="100%" height="100%"></u-image>
			<view class="padding-top jiqiao" style="">
				<view class="padding-top-xl padding-lr padding-bottom" style="line-height: 48rpx;">
					<block v-if="price2==0">
						<view class="flex padding-sm" style="background-color: #ffffff;">
							<text class="cuIcon-title text-yellow"></text>
							<view>邀请好友可得开通会员及消费金额 {{price}}%的佣金奖励</view>
						</view>
					</block>
					<block v-else>
						<view class="flex padding-sm" style="background-color: #ffffff;">
							<text class="cuIcon-title text-yellow"></text>
							<view>可得一级好友开通会员及消费金额 {{price}}%的佣金奖励</view>
						</view>
						<view class="flex padding-sm" style="background-color: #ffffff;">
							<text class="cuIcon-title text-yellow"></text>
							<view>可得二级好友开通会员及消费金额 {{price2}}%的佣金奖励</view>
						</view>
					</block>

				</view>
			</view>
		</view> -->


		<tki-qrcode ref="qrcode" :val="erweima" :size="200" background="#fff" foreground="#000" pdground="#000"
			:onval="true" :loadMake="true" @result="qrR" :show="false"></tki-qrcode>
		<view class="cu-modal" :class="modalName == 'Image' ? 'show' : ''" @tap="hideModal">
			<view class="cu-dialog" v-if="bgImg && erweimapath && haibaoShow" @tap="hideModal">
				<view class="bg-img">
					<wm-poster @success="posterSuccess" @successH5="successH5" :imgSrc="bgImg"
						:Referrer="'我的邀请码:'+invitationCode" :QrSrc="erweimapath" :LineType="false"></wm-poster>
				</view>
			</view>
		</view>
	</view>
</template>

<script>
	let settingWritePhotosAlbum = false;
	import tkiQrcode from '../../components/tki-qrcode/tki-qrcode.vue';
	import wmPoster from '../components/wm-poster/wm-posterorders.vue';
	import myEmpty from '@/components/my-empty.vue';
	
	import config from '../../common/config.js'
	export default {
		components: {
			tkiQrcode,myEmpty,
			wmPoster
		},
		data() {
			return {
				//已签到人数
				inviteCount:0,
				hasAjax:false,
				erweimapath: '',
				poster: {},
				qrShow: false,
				haibaoImg: null,
				haibaoShow: false,
				modalName: '',
				canvasId: 'default_PosterCanvasId',
				avatar: '../../static/images/logo.png',
				background: {
					'background-color': 'transparent'
				},
				customStyle: {
					background: '#DDDCFF',
					border: '8rpx',
					color: '#4544FF',
					fontSize: '28rpx',
					fontWeight: '700',
					padding: '10rpx 32rpx',
				},
				page: 1,
				limit: 10,
				inviterName: '', //邀请码
				cumulativeRevenue: '', //累计收益
				inviterNumber: '', //邀请人数
				withdrawn: '', //已提现
				inviterList: [],
				erweima: '',
				bgImg: '',
				tuiguang: '',
				invitationCode: 0,
				price: 0,
				price2: 0,
				h5SaveImg: '',
				modalName: '',
				haibaoImgH5: '',
				qdCode: '', //渠道码
			}
		},
		onShareAppMessage(res) {
			return {
				path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
					.qdCode, //这是为了传参   onload(data){let id=data.id;} 
				title: this.tuiguang,
				imageUrl: this.bgImg
			}
		},
		onShareTimeline(res) {
			return {
				path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
					.qdCode, //这是为了传参   onload(data){let id=data.id;} 
				title: this.tuiguang,
				imageUrl: this.bgImg
			}
		},
		onLoad() {
			this.getInviter()
			this.queryInviter()

			this.invitationCode = uni.getStorageSync('invitationCode')
			this.getUserInfoBl()
			this.getBgImg()
			if (uni.getStorageSync('qdCode')) {
				this.qdCode = uni.getStorageSync('qdCode')
			}
			// h5携带邀请码去首页
			// #ifdef H5
			this.erweima = config.APIHOST2 + '/?invitation=' + this
				.invitationCode + '&qdCode=' + this.qdCode
			// #endif
			// app直接去app注册页面
			// #ifdef APP
			this.erweima = config.APIHOST2 + '/pages/login/registerApp/?invitation=' + this
				.invitationCode + '&qdCode=' + this.qdCode
			// #endif
			// #ifdef MP-WEIXIN
			this.getWxEq()
			// #endif
			// #ifdef MP-TOUTIAO
			this.getTouTiao()
			// #endif
		},
		methods: {
			//获取用户分销比例
			getUserInfoBl() {
				this.$Request.getT('/app/user/selectUserById').then(res => {
					if (res.code == 0) {
						//一级分销
						if (res.data.rate) {
							this.price = (Number(res.data.rate) * 100).toFixed(0)
						} else {
							this.price = 0
						}
						//二级分销
						if (res.data.twoRate) {
							this.price2 = (Number(res.data.twoRate) * 100).toFixed(0)
						} else {
							this.price2 = 0
						}
					}
				})
			},
			//获取头条二维码
			getTouTiao() {
				let that = this
				uni.downloadFile({
					url: config.APIHOST +
						'/app/invite/dyCreateQr?invitationCode=' + that
						.invitationCode + ',' + that.qdCode + '&page=/pages/index/index',
					success: (res) => {
						console.log(res)
						if (res.statusCode === 200) {
							that.erweimapath = res.tempFilePath
						} else {
							uni.hideLoading();
							uni.showToast({
								title: '海报制作失败，图片下载失败',
								icon: 'none'
							});
						}
					},
					fail: err => {
						console.log(err)
						uni.hideLoading();
						uni.showToast({
							title: '海报制作失败，图片下载失败',
							icon: 'none'
						});
					}
				});
			},
			//获取微信二维码
			getWxEq() {
				let that = this
				uni.downloadFile({
					url: config.APIHOST +
						'/app/invite/mpCreateQr?invitationCode=' + that
						.invitationCode + ',' + that.qdCode,
					success: (res) => {
						console.log(res)
						if (res.statusCode === 200) {
							that.erweimapath = res.tempFilePath
						} else {
							uni.hideLoading();
							uni.showToast({
								title: '海报制作失败，图片下载失败',
								icon: 'none'
							});
						}
					},
					fail: err => {
						console.log(err)
						uni.hideLoading();
						uni.showToast({
							title: '海报制作失败，图片下载失败',
							icon: 'none'
						});
					}
				});
			},
			sharurl() {
				let that = this;
				uni.showModal({
					title: '链接推广',
					content: this.tuiguang + this.erweima,
					showCancel: true,
					cancelText: '关闭',
					confirmText: '一键复制',
					success: res => {
						if (res.confirm) {
							uni.setClipboardData({
								data: this.tuiguang + this.erweima,
								success: function() {
									console.log('success');
									uni.showToast({
										title: '复制成功',
										duration: 1000,
										icon: 'none'
									});
								}
							});
						}
					}
				});
			},
			posterSuccess(haibaoImg) {
				this.haibaoImg = haibaoImg;
				this.modalName = 'Image';
				uni.hideLoading();
			},
			successH5(haibaoImg) {
				this.haibaoImgH5 = haibaoImg
				uni.previewImage({
					urls: [haibaoImg],
					current: 1,
				})
			},
			showModal() {
				// #ifndef H5
				if (!this.haibaoImg) {
					this.haibaoShow = true;
					uni.showLoading({
						title: '海报生成中'
					});
				} else {
					this.modalName = 'Image';
				}
				// #endif
				// #ifdef H5
				let ua = navigator.userAgent.toLowerCase();
				if (ua.indexOf('micromessenger') !== -1) {
					//微信浏览器
					if (!this.haibaoImg) {
						this.haibaoShow = true;
						uni.showLoading({
							title: '海报生成中'
						});
					} else {
						this.modalName = 'Image';
					}
				} else {
					if (!this.haibaoImgH5) {
						this.haibaoShow = true;
						uni.showLoading({
							title: '海报生成中'
						});
					} else {
						uni.previewImage({
							urls: [this.haibaoImgH5],
							current: 1,
						})
					}

				}
				// #endif
			},
			hideModal() {
				this.modalName = null;
			},
			qrR(path) {
				this.erweimapath = path;
			},
			getInviter() {
				let data = {
					page: this.page,
					limit: this.limit
				}
				this.$u.api.inviter(data).then(res => {
					if (res.code == 0) {
						this.inviterList = res.data.list
						this.hasAjax=true;
					} else {
						uni.showToast({
							title: res.msg,
							duration: 1000,
							icon: 'none'
						});
					}
				})
			},
			queryInviter() {
				this.$u.api.queryInviter().then(res => {
					if (res.code == 0) {
						this.cumulativeRevenue = res.data.inviteMoney.moneySum //累计收益
						this.inviterNumber = res.data.inviteCount //邀请人数
						this.withdrawn = res.data.inviteMoney.cashOut //已提现
						this.inviteSignCount =res.data.inviteSignCount 
					} else {
						uni.showToast({
							title: res.msg,
							duration: 1000,
							icon: 'none'
						});
					}
				})
			},


			goNav(e) {
				uni.navigateTo({
					url: e
				})
			},

			//获取背景图
			getBgImg() {
				this.$u.get('app/banner/selectBannerList?classify=5').then(res => {
					if (res.code == 0) {
						this.bgImg = res.data[0].imageUrl
						this.tuiguang = res.data[0].describes
						console.log(this.bgImg)
					} else {
						uni.showToast({
							title: res.msg,
							duration: 1000,
							icon: 'none'
						});
					}
				});
			},

			//生成h5海报
			createH5Poster() {
				let that = this;
				return new Promise((resolve, reject) => {
					uni.showLoading({
						title: '海报生成中'
					});
					const ctx = uni.createCanvasContext('poster');
					ctx.fillRect(0, 0, 375, 673);
					ctx.setFillStyle("#FFF");
					ctx.fillRect(0, 0, 375, 673);
					let imgUrl = that.bgImg;
					uni.downloadFile({
						url: imgUrl,
						success: (res) => {
							console.log(res, '***************')
							if (res.statusCode === 200) {
								uni.downloadFile({
									url: that.erweima,
									success: (res2) => {
										console.log(res2)
										if (res.statusCode === 200) {
											ctx.drawImage(res.tempFilePath, 0, 0, 375,
												500);
											// 长按识别二维码访问
											let textTop = 0;
											ctx.setFontSize(19);
											ctx.setFillStyle('#333');
											ctx.fillText("长按识别图中二维码", 17, textTop + 590);
											// 二维码
											ctx.drawImage(res2.tempFilePath, 238, textTop +
												526, 120, 120);
											ctx.draw(true, () => {
												// canvas画布转成图片并返回图片地址
												uni.canvasToTempFilePath({
													canvasId: 'poster',
													width: 375,
													height: 673,
													success: (res) => {
														console.log(
															"海报制作成功！"
														);
														resolve(res
															.tempFilePath
														);
													},
													fail: () => {
														uni
															.hideLoading();
														reject();
													}
												})
											});
										} else {
											uni.hideLoading();
											uni.showToast({
												title: '海报制作失败，图片下载失败',
												icon: 'none'
											});
										}
									},
									fail: err => {
										console.log(err)
										uni.hideLoading();
										uni.showToast({
											title: '海报制作失败，图片下载失败',
											icon: 'none'
										});
									},
									complete: com => {
										console.log(com)
										uni.showToast({
											title: com,
											icon: 'none'
										});
									},
								});
							} else {
								uni.hideLoading();
								uni.showToast({
									title: '海报制作失败，图片下载失败',
									icon: 'none'
								});
							}
						},
						fail: err => {
							// that.yu.toast(err)
							console.log(err)
							uni.hideLoading();
							uni.showToast({
								title: '海报制作失败，图片下载失败',
								icon: 'none',
							});
						}
					});
				});
			},

			//生成海报
			createPoster() {
				let that = this;
				return new Promise((resolve, reject) => {
					uni.showLoading({
						title: '海报生成中'
					});
					const ctx = uni.createCanvasContext('poster');
					ctx.fillRect(0, 0, 375, 673);
					ctx.setFillStyle("#FFF");
					ctx.fillRect(0, 0, 375, 673);
					let imgUrl = that.bgImg;
					uni.downloadFile({
						url: imgUrl,
						success: (res) => {
							console.log(res, '***************')
							if (res.statusCode === 200) {
								uni.downloadFile({
									url: config.APIHOST +
										'/app/invite/mpCreateQr?invitationCode=' + that
										.invitationCode,
									// url: 'https://jiaoyu.xianmxkj.com/sqx_fast/app/invite/mpCreateQr?invitationCode=' +
									// 	that.invitationCode,
									success: (res2) => {
										console.log(res2)
										if (res.statusCode === 200) {
											ctx.drawImage(res.tempFilePath, 0, 0, 375,
												500);
											// 长按识别二维码访问
											let textTop = 0;
											ctx.setFontSize(19);
											ctx.setFillStyle('#333');
											// ctx.fillText("长按识别图中二维码", 17, textTop + 590);
											// 二维码
											// ctx.drawImage(res2.tempFilePath, 238, textTop + 526, 120, 120);
											ctx.draw(true, () => {
												// canvas画布转成图片并返回图片地址
												uni.canvasToTempFilePath({
													canvasId: 'poster',
													width: 375,
													height: 673,
													success: (res) => {
														console.log(
															"海报制作成功！"
														);
														resolve(res
															.tempFilePath
														);
													},
													fail: () => {
														uni
															.hideLoading();
														reject();
													}
												})
											});
										} else {
											uni.hideLoading();
											uni.showToast({
												title: '海报制作失败，图片下载失败',
												icon: 'none'
											});
										}
									},
									fail: err => {
										console.log(err)
										uni.hideLoading();
										uni.showToast({
											title: '海报制作失败，图片下载失败',
											icon: 'none'
										});
									},
									complete: com => {
										console.log(com)
										uni.showToast({
											title: com,
											icon: 'none'
										});
									},
								});
							} else {
								uni.hideLoading();
								uni.showToast({
									title: '海报制作失败，图片下载失败',
									icon: 'none'
								});
							}
						},
						fail: err => {
							// that.yu.toast(err)
							console.log(err)
							uni.hideLoading();
							uni.showToast({
								title: '海报制作失败，图片下载失败',
								icon: 'none',
							});
						}
					});
				});
			},
			// 保存图片
			async onSaveImg() {
				this.showModal();
				return
				// #ifndef MP-WEIXIN
				this.showModal();
				// #endif

				// #ifdef MP-WEIXIN
				let imgUrl = await this.createPoster();
				uni.showLoading({
					title: '海报下载中'
				});
				if (settingWritePhotosAlbum) {
					uni.getSetting({
						success: res => {
							if (res.authSetting['scope.writePhotosAlbum']) {
								uni.saveImageToPhotosAlbum({
									filePath: imgUrl,
									success: () => {
										uni.hideLoading();
										uni.showToast({
											title: '保存成功'
										});
									}
								});
							} else {
								uni.showModal({
									title: '提示',
									content: '请先在设置页面打开“保存相册”使用权限',
									confirmText: '去设置',
									cancelText: '算了',
									success: data => {
										if (data.confirm) {
											uni.hideLoading();
											uni.openSetting();
										}
									}
								});
							}
						}
					});
				} else {
					uni.hideLoading();
					settingWritePhotosAlbum = true;
					uni.authorize({
						scope: 'scope.writePhotosAlbum',
						success: () => {
							uni.saveImageToPhotosAlbum({
								filePath: imgUrl,
								success: () => {
									uni.hideLoading();
									uni.showToast({
										title: '保存成功'
									});
								}
							});
						}
					});
				}
				// #endif
			},
		}
	}
</script>

<style lang="scss" scoped>
	$color1: #5857FF;
	.cu-dialog{
		background-color: transparent;
	}
	.text-red {
		color: $color1;
	}

	.gap {
		width: 100%;
		height: 0;
		position: relative;
		border-bottom: 1px dashed #eee;

		&:before,
		&::after {
			display: block;
			content: '';
			position: absolute;
			width: 34rpx;
			height: 34rpx;
			background: #F3F4F8;
			border-radius: 50%;
			z-index: 2;
			top: 50%;
			transform: translateY(-50%);
			background-size: 100% 18px;
			background-repeat: repeat-x
		}

		&:before {
			left: -16rpx;
		}

		&::after {
			right: -16rpx;
		}
	}

	.radius-16 {
		border-radius: 16rpx;
	}

	.min-page {
		background: #F3F4F8;
	}

	.invite-box {
		position: relative;
		margin-top: -280rpx;
		background-color: #fff;
		border-radius: 16rpx 16rpx 16rpx 16rpx;
		margin-left: 28rpx;
		margin-right: 28rpx;

		.top {
			position: absolute;
			display: flex;
			justify-content: center;
			left: 134rpx;
			right: 134rpx;
			top: -24rpx;

			.u-absolute {
				left: 0;
				right: 0;
				z-index: 1;
				top: 0;
				bottom: 0;
				display: flex;
				justify-content: center;
				align-items: center;
				font-size: 32rpx;
				color: #FFFFFF;
			}
		}
	}

	.modal {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 1110;
		opacity: 0;
		outline: 0;
		text-align: center;
		-ms-transform: scale(1.185);
		transform: scale(1.185);
		backface-visibility: hidden;
		perspective: 2000upx;
		background: rgba(0, 0, 0, 0.6);
		transition: all 0.3s ease-in-out 0s;
		pointer-events: none;
	}
	.bg-img{
		background-color: transparent;
	}
	.modal.show {
		opacity: 1;
		transition-duration: 0.3s;
		-ms-transform: scale(1);
		transform: scale(1);
		overflow-x: hidden;
		overflow-y: auto;
		pointer-events: auto;
	}

	page {
		background: #F3F4F8;
	}

	img {
		display: block;
	}

	.poster_canvas {
		width: 750upx;
		height: 1334upx;
		position: fixed;
		top: -10000upx;
		left: 0;
	}

	.yaoqing {
		width: 100%;
		height: 136px;
		position: absolute;
		margin: auto;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		/* background-image: url('@/me/static/invite/fenxiang.png'); */
		/* background-size: 100%; */
		/* background-repeat: no-repeat; */
	}

	.top-title {
		left: 0;
		right: 0;
		display: flex;
		justify-content: center;
		top: 192rpx;

		.top-title-img {
			width: 550rpx;
			height: 92rpx;
		}
	}

	.zhanji {
		/* background-image: url('@/me/static/invite/yaoqing.png'); */
		/* background-size: 100%; */
		/* background-repeat: no-repeat; */
	}

	.jiqiao {
		width: 100%;
		height: 160rpx;
		position: absolute;
		margin: auto;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		/* 	background-image: url('@/me/static/invite/jiqiao.png');
		background-size: 100%;
		background-repeat: no-repeat; */
	}
</style>