<template>
	<view class="content">
		<view class="memberBanner">
			<image mode="widthFix" :src="packages.poster"></image>
		</view>
		<view class="memberCon">
			<view class="topTit">
				<text class="titInner">
					<text class="titCon"><text class="f_blue">￥<text
								class="f_big">{{packages.price}}</text></text>{{packages.name}}</text>
					<text class="line"></text>
				</text>
			</view>
			<view class="title flex_center">
				<view class="i_left">
					<image src="../../../../static/i_left.png"></image>
				</view>
				<view class="tit_center">套餐项目</view>
				<view class="i_right">
					<image src="../../../../static/i_right.png"></image>
				</view>
			</view>
			<view class="mealCol flex_start flex_wrap">

				<block v-for="(mod, i) in packages.items">
					<view class="colInfo">
						<view class="flex_between"><text class="colInfoText">{{mod.product_type.name}}</text><text
								class="f_black">{{((mod.num!=""&&mod.num!=undefined)? mod.num:"1")}} {{((mod.unit!=""&&mod.unit!=undefined)? mod.unit:"次")}}</text></view>
					</view>
				</block>
			</view>

			<view class="memberPop">
				<view class="cardOuter">
					<view :class="cardActive" @click="cardActive">

						<view class="note">{{packages.content}}</view>
					</view>
				</view>
				<button class="buyNow" @click="goBuy">立即购买</button>
			</view>

		</view>
		<view class="shareIcon" @click="shareOpen" v-if="user_info.promotion == 1">
			<image src="../../../../static/share.png"></image>
		</view>


		<uni-popup ref="shareCode" :mask-click="true" type="bottom" class="shareBox">
			<view class="codeOuter">
				<view class="shareCon" @click="shareClose">
					<canvas style="width:80%;margin-left:10%;position: absolute;"
						:style="{ height:(shareHeight*scare) + 'px', marginTop:(cropperH-(shareHeight*scare))/2+'rpx'}"
						canvas-id="firstCanvas" id="firstCanvas"></canvas>
					<!-- <image class="shareBg" mode="widthFix" src="../../static/bg_haibao@2x.png"></image> -->
					<!-- <image class="code" src="../../static/300_qr.png"></image> -->
				</view>
				<view class="shareBott" :style="{display: shareBtnDisplay}">
					<button class="shareCol" @click="shareClose" open-type="share"
						style="border-radius:0;flex:1;">发给朋友</button>
					<button class="shareCol" @click="save" style="border-radius:0;flex:1;">保存相册</button>
				</view>
			</view>
		</uni-popup>

	</view>
</template>

<script>
	let sysInfo = uni.getSystemInfoSync();
	let SCREEN_WIDTH = sysInfo.screenWidth
	let SCREEN_HEIGHT = sysInfo.screenHeight;
	let WindowHeight = sysInfo.windowHeight;

	let windowWidth = sysInfo.windowWidth;
	import {
		weixin
	} from '../../../../utils/weixin.js';
	export default {
		data() {
			return {
				cardActive: 0,
				img: '',
				user_info: {
					promotion: ''
				},
				shareBtnDisplay: 'none',
				// 动态的宽高
				cropperW: SCREEN_WIDTH,
				cropperH: SCREEN_HEIGHT,
				packages: [],
				sharePath: "",
				scare: 1,
				shareHeight: 500,
				id: ""
			}
		},
		onLoad(option) {
			if (option.promotion_id) {
				uni.setStorageSync("base_promotion_id", option.promotion_id)
			}
			if (option.id) {
				this.id = option.id;
				this.getPackages();
			}
			weixin.getOpenidInfo(info => {
				this.user_info = info
			}, false)

			this.scare = windowWidth / 375;
		},
		onShow() {
			if (this.checkLogin()) {
				this.getPackages()
			}
		},
		onShareAppMessage() {
			return {
				title: this.packages.name,
				path: 'packages/packageBuy/pages/packageInfo/index?id='+this.id+'&promotion_id=' + this.user_info.id,
				imageUrl: this.img
			}
		},
		methods: {
			shareOpen() {
				uni.showLoading({
					title: '加载中'
				});
				var that = this;
				this.$refs.shareCode.open();

				uni.getImageInfo({
					src: this.packages.poster,
					success: rbg => {
						this.img = rbg.path;
						this.getAvatar();
					}
				});
			},
			getAvatar: function() {
				let userProfile = uni.getStorageSync('user_profile');
				if(!weixin.isNull(userProfile)){
					uni.getImageInfo({
						src: userProfile.avatarUrl, // 头像
						success: rlogo => {
							this.imgAvatar = rlogo.path;
							this.draw();
						}
					});
				}
				else{
					this.imgAvatar="../../../../static/avatar.jpg";
					this.draw();
				}
			},
			draw: function() {

				var that = this;
				uni.request({
					url: this.baseUrl + '/api/member/get-wxa-qrcode',
					method: 'GET',
					data: {
						path: 'packages/packageBuy/pages/packageInfo/index',
						scene: 'id='+this.id+'&promotion_id=' + this.user_info.id
					},
					success: r => {
						if (r.data.status === 1) {
							uni.getImageInfo({
								src: this.baseUrl + r.data.data, // 二维码
								success: res => {
									var ctx = uni.createCanvasContext('firstCanvas')


									var w = SCREEN_WIDTH * 0.8;
									var h = this.shareHeight * this.scare;
									// ctx.fillStyle = '#fff';
									// ctx.fillRect(0, 0, 214, 342);


									ctx.drawImage('../../../../static/bg_haibao@2x.jpg', 0, 0,
										w, h
									); //(SCREEN_HEIGHT - 50 - SCREEN_WIDTH * 0.8 * 1.65) /2, SCREEN_WIDTH * 0.8, SCREEN_WIDTH * 0.8 * 1.5);

									ctx.drawImage('../../../../static/bg_haibao1.png', 20, 30 +
										40,
										w -
										40, h - 100);
									/* SCREEN_WIDTH *
									0.15, (SCREEN_HEIGHT - SCREEN_WIDTH * 0.6 * 1.65) /
									2, SCREEN_WIDTH * 0.695, SCREEN_WIDTH * 0.6 * 1.5); */


									ctx.drawImage(this.img, 20, 30 + 40, w -
										40, (h - 60 - 60) * 0.5);
									/* SCREEN_WIDTH * 0.15, (SCREEN_HEIGHT - SCREEN_WIDTH *
										0.6 * 1.65) /
									2, SCREEN_WIDTH * 0.695, SCREEN_WIDTH * 0.695 / 1.6); */

									let packagesFirst = this.packages
									ctx.font = "22rpx bold";
									// 设置颜色
									ctx.fillStyle = "#fff";
									// 绘制文字（参数：要写的字，x坐标，y坐标）
									ctx.fillText("会员福利孕产礼包", 20, 50);

									ctx.font = "16rpx bold";
									// 设置颜色
									ctx.fillStyle = "#000";
									// 绘制文字（参数：要写的字，x坐标，y坐标）
									ctx.fillText("专享大礼包", 40, (h + 50) * 0.5 + 20);

									ctx.font = "14rpx bold";
									// 设置颜色
									ctx.fillStyle = "#3377b7";
									// 绘制文字（参数：要写的字，x坐标，y坐标）

									ctx.fillText("¥" + packagesFirst.price + "" + packagesFirst
										.name, 40, (h + 50) * 0.5 + 20 + 30);


									let user_info = uni.getStorageSync("user_info_yunyubang");


									var img = this.imgAvatar;

									that.circleImg(ctx,
										img,
										40, h - 60 - w * 0.15,
										w * 0.15 / 2);

									ctx.font = "12rpx normal";
									// 设置颜色
									ctx.fillStyle = "#000";
									// 绘制文字（参数：要写的字，x坐标，y坐标）
									ctx.fillText(user_info.name,
										40, h - 40);

									this.circleImg(ctx, res.path, w - 40 - w * 0.2, h - 40 -
										w *
										0.2, w * 0.2 / 2);

									ctx.draw(),
										// r: 半径
										setTimeout(() => {
											uni.canvasToTempFilePath({
												canvasId: 'firstCanvas',
												fileType: 'jpg',
												success: (res) => {
													this.shareBtnDisplay =
														'flex'
													uni.hideLoading();
													this.sharePath = res
														.tempFilePath;
												},
											})
										}, 100)
								}
							})
						} else {
							uni.hideLoading()
							this.$refs.shareCode.close()
							this.alert(r.data.msg)
						}
					}
				})

			},
			circleImg: function(ctx, img, x, y, r) {
				ctx.save()
				var d = 2 * r;
				var cx = x + r;
				var cy = y + r;
				ctx.arc(cx, cy, r, 0, 2 * Math.PI);

				ctx.clip();
				ctx.drawImage(img, x, y, d, d);
				ctx.restore();
			},
			shareClose() {
				this.$refs.shareCode.close()
			},
			open() {
				this.$refs.popup.open('top')

			},
			close() {
				this.$refs.popup.close()
			},
			goBuy() {
				if (this.checkLogin()) {
					let package_id = this.id;

					uni.navigateTo({
						url:"../buyMember/buyMember?package_id=" + package_id
					});
				}
			},
			//保存图片时，h5端不能直接保存，只能通过预览长按保存
			save() {

				let _this = this;
				// #ifdef H5
				uni.previewImage({
					urls: [_this.sharePath]
				})
				// #endif
				// #ifdef APP-PLUS||MP-WEIXIN
				uni.saveImageToPhotosAlbum({
					filePath: _this.sharePath,
					success: function() {
						_this.$refs.shareCode.close()
						_this.alert('保存成功')
					}
				});
				// #endif
			},
			getPackages() {
				// this.reqByToken('​/api/member/get-packages', {}, r => {
				// 	this.packages = r
				// }, 'GET')
				const phone_token = uni.getStorageSync('phone_token')
				weixin.request({
					api: '/api/member/get-packages-info/' + this.id,
					method: 'GET',
					utilSuccess: r => {
						r.data.poster = this.baseUrl + r.data.poster;
						this.packages = r.data
					},
					utilFail: r => {
						console.log(r);
					}
				})
			},
		}
	}
</script>
<style>
	page {
		background: linear-gradient(to right, #488e4c 0%, #039786 100%);
		padding-bottom: 160rpx;
	}
</style>
<style lang="scss" scoped>
	.content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.memberBanner {
		display: block;
		width: 100%;

		image {
			display: block;
			width: 100%;
		}
	}

	.joinBox {
		width: 100%;
		box-sizing: border-box;
		position: fixed;
		z-index: 5;
		left: 0;
		bottom: 0;
		box-shadow: -5rpx 0px 20rpx rgba(0, 0, 0, 0.1);

		button {
			width: 100%;
			height: 100rpx;
			color: #fff;
			font-size: 28rpx;
			text-align: center;
			line-height: 100rpx;
			text-align: center;
			background: linear-gradient(to bottom, #FF578A 0%, #FF578A 100%);
		}
	}

	.popBox {
		background: #fff;
		width: 100%;
	}

	.shareIcon {
		position: fixed;
		width: 136rpx;
		height: 136rpx;
		bottom: 30rpx;
		right: 30rpx;
		z-index: 9;

		image {
			display: block;
			width: 136rpx;
			height: 136rpx;
		}
	}

	.memberPop {
		background: #fff;
		width: 100%;

		.title {
			font-size: 36rpx;
			color: #000;
			text-align: center;
			padding: 25rpx 0;
		}

		.i_close {
			display: block;
			width: 38rpx;
			height: 36rpx;
			position: absolute;
			top: 30rpx;
			right: 30rpx;
		}

		.cardOuter {
			display: flex;
			flex-direction: column;
			padding: 20rpx;

			.note {
				color: #999;
				font-size: 24rpx;
				text-align: left;
			}

			.cardCol {
				flex: 1;
				height: 156rpx;
				margin: 0 15rpx 15rpx 15rpx;
				border-radius: 8rpx;
				box-sizing: border-box;
				border: 2rpx solid #F5DFB5;
				font-size: 28rpx;
				color: #999;
				text-align: center;
				line-height: 2;
				padding: 10rpx 30rpx;

				.cardTit {
					color: #333;
					font-size: 32rpx;
					font-weight: 700;
				}
			}

			.cardCol.cur {
				border: 2rpx solid #E40280;
				box-shadow: 0 0 15rpx rgba(228, 2, 128, 0.4);
				color: #FF578A;

				.cardTit {
					color: #FF578A;
				}
			}
		}

		.buyNow {
			width: 500rpx;
			height: 80rpx;
			border-radius: 40rpx;
			color: #fff;
			font-size: 30rpx;
			text-align: center;
			line-height: 80rpx;
			text-align: center;
			background: #FF578A;
			margin: 30rpx auto 0 auto;
		}
	}

	.shareBox {
		background: rgba(0, 0, 0, 0.5);
	}

	.codeOuter {
		width: 100%;
		height: 100vh;
		background: rgba(0, 0, 0, 0.5);
		// padding-top: 13vh;
		box-sizing: border-box;
		position: relative;
	}

	.shareCon {
		// width: 500rpx;
		// margin: 0 auto;
		//position: absolute;
		//top: 45%;
		//left: 50%;
		// transform: translate(-50%, -50%);

		.code {
			width: 300rpx;
			height: 300rpx;
			display: block;
			position: absolute;
			left: 50%;
			margin-left: -150rpx;
			top: 50%;
			margin-top: -150rpx;
		}
	}

	.shareBott {
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		display: flex;
		justify-content: flex-start;

		.shareCol {
			width: 50%;
			height: 100rpx;
			text-align: center;
			line-height: 100rpx;
			font-size: 30rpx;
			background: #FF578A;
			color: #fff;
		}

		.shareCol:first-child {
			background: #e8e8e8;
			color: #666;
		}
	}

	.memberCon {
		width: 690rpx;
		background: #fff;
		border-radius: 8rpx;
		padding: 30rpx 0;
		box-sizing: border-box;
		margin-top: 20rpx;
		flex-direction: column !important;

		.topTit {
			font-size: 33rpx;
			color: #302c2f;
			font-weight: 700;
			padding: 0 30rpx;

			.titInner {
				position: relative;
			}

			.titCon {
				position: relative;
				z-index: 3;
			}

			.line {
				display: inline-block;
				height: 30rpx;
				width: 110%;
				position: absolute;
				left: 0;
				bottom: 0;
				background: linear-gradient(to bottom, #FDFEFD 0%, #91E4C1 100%);
				z-index: 1;
			}

			.f_blue {
				color: #0079b8;
			}

			.f_big {
				font-size: 43rpx;
				padding: 0 5rpx;
			}
		}

		.title {
			padding: 20rpx 30rpx;

			.i_left {
				image {
					display: block;
					width: 23rpx;
					height: 23rpx;
				}
			}

			.i_right {
				image {
					display: block;
					width: 23rpx;
					height: 23rpx;
				}
			}

			.tit_center {
				font-size: 28rpx;
				color: #0c967f;
				font-weight: bold;
				min-width: 250rpx;
				text-align: center;
			}
		}

		.mealCol {
			padding: 0 20rpx;

			.width_453 {
				width: 480rpx !important;
			}

			.colInfo {
				width: 100%;
				margin: 10rpx;
				background: #def6eb;
				height: 50rpx;
				border-radius: 25rpx;
				padding: 0 30rpx;
				font-size: 26rpx;
				font-weight: 700;
				line-height: 50rpx;
				box-sizing: border-box;
				color: #079683;

				.f_black {
					color: #044238;
				}

				.colInfoText {
					overflow: hidden;
					white-space: nowrap;
					text-overflow: ellipsis;
					flex: 1;
				}
			}

			.colInfo:nth-child(even) {
				margin: 10rpx 0 10rpx 10rpx;
			}
		}
	}
</style>
