<template>
	<share-poster ref="poster">
		<view class="page">
			<uni-nav-bar leftText="" :statusBar="true" backgroundColor="transparent" :border="false">
				<!-- <template v-slot:left v-if="!load_image">
					<view class="icon-center" @click="backUser">
						<image class="back-icon" src="/static/share/nav_icon_back_black.png" mode="widthFix"></image>
					</view>
				</template>
				<template v-slot:default v-if="!load_image">
					<view class="nav-bar">
						<text class="title">分享群</text>
					</view>
				</template> -->
			</uni-nav-bar>

			<view class="qr-box">
				<view class="qr-box-title">
					<!-- <view class="chatgroup-avatar-group">
						<image :class="'chatgroup-avatar-item-' + member.length" v-for="(item,index) in member"
							:key="index" :src="photo(item.photo)" :lazy-load="true">
						</image>
					</view>
					<view class="chatgroup-title">
						<text v-for="(item,index) in member" :key="index">{{item.show_name}}
							<block v-if="index < member.length - 1">、</block>
						</text>
					</view> -->
					<image class="qr-box-avatar" :lazy-load="true" :src="group_photo" mode="widthFix"></image>
					<view class="chatgroup-title">
						{{group_data.name}}
					</view>
				</view>
				<view class="qrimg">
					<tki-qrcode ref="qrcode" :val="qrData" :onval="true" :size="300" unit="upx" background="#ffffff"
						foreground="#000000" pdground="#000000" :loadMake="true" :showLoading="true"
						loadingText="加载中..." @result="qrR" />
				</view>
				<text class="text_font">使用易趣APP扫描二维码,加入群聊</text>
				<view class="btn-group" v-if="!load_image">
					<view class="btn" @click="savePoster">
						<image src="/static/share/album_down_save.webp" mode="widthFix"></image>
						<text>保存</text>
					</view>
					<view class="btn" @click="createPoster">
						<image src="/static/share/album_share_friend.webp" mode="widthFix"></image>
						<text>分享</text>
					</view>
				</view>
			</view>
			<view class="qr-box-small" @click="groupCopy" v-if="!load_image">
				<view class="kouling">
					<image src="/static/group/kouling.png" mode=""></image>
					<text>生成群口令</text>
				</view>
				<view class="kouling-tips">
					点击生成群口令
				</view>
			</view>
			<view class="share" v-if="load_image">
				<image class="share_icon" src="@/static/share_icon.png" mode="widthFix"></image>
			</view>
		</view>
	</share-poster>
</template>


<script>
	import tkiQrcode from '../../../components/tki-qrcode/tki-qrcode.vue';
	import _data from '../../../common/_data';
	import _hook from '../../../common/_hook';
	import _page from '../../../common/common';
	import uniNavBar from '@/components/uni-ui/uni-nav-bar/uni-nav-bar.vue'
	export default {
		components: {
			tkiQrcode,
			uniNavBar,
		},
		data() {
			return {
				list_id: '',
				my_data: {
					id: 0
				},
				group_photo: '',
				load_image: false,
				group_data: {}, //群数据
				member: [], //成员

			}
		},
		onShow() {
			_hook.routeTabBarHook();
			let _this = this;
			/** 监听新的个人数据 */
			uni.$on('data_user_info', function(data) {
				_this.my_data = data;
			});
			_this.my_data = _data.data('user_info');
			// this.group_photo = _data.data('cache')['group_photo_' + _this.list_id];
		},
		onLoad(option) {
			this.list_id = option.list_id;
			this.getData();
		},
		onUnload() {
			uni.$off('data_user_info');
		},
		computed: {
			qrData() {
				return _page.qrAction.addGroup({
					user_id: this.my_data.id,
					list_id: this.list_id
				});
			},
			staticPhoto() {
				return _data.staticPhoto();
			},
		},
		methods: {
			photo(path) {
				return this.staticPhoto + path + '?_=' + Math.random();
			},
			getData() {
				let _this = this;
				_this.$httpSend({
					path: '/im/message/getChatDetails',
					data: {
						list_id: _this.list_id,
					},
					success(data) {
						console.log("群数据", data);
						_this.group_data = data.group;
						// todo
						_this.member = data.member;
						// _this.member = [..._this.member, ..._this.member, ..._this.member];
						if (_this.member.length >= 6) {
							_this.member = _this.member.splice(0, 6);
						}

						_this.group_photo = _this.photo(data.group.is_photo);
					}
				});
			},
			backUser() {
				uni.navigateBack({

				})
			},
			qrR(ref) {
				this.img_path = ref;
			},
			saveQrcode() {
				_page.saveImgToPhotos(this.img_path);
			},
			// app截图保存、分享
			capture(type) {
				const _this = this;
				var pages = getCurrentPages();
				var page = pages[pages.length - 1];
				var bitmap = null;
				var currentWebview = page.$getAppWebview();
				bitmap = new plus.nativeObj.Bitmap('amway_img');
				currentWebview.draw(bitmap, function() {
					console.log("绘制截图成功");
					bitmap.save("_doc/b.jpg", {}, function(i) {
						console.log("保存图片成功", JSON.stringify(i));
						uni.saveImageToPhotosAlbum({
							filePath: i.target,
							success: function() {
								bitmap.clear(); //销毁缓存图片
								if (type == 'save') {
									uni.showToast({
										icon: 'none',
										title: '保存成功',
									})
								}
								if (type == "share") {
									uni.shareWithSystem({
										type: 'image',
										imageUrl: i.target,
									})
								}
								_this.load_image = false;
								uni.hideLoading();
							}
						})
					}, function(err) {
						_this.load_image = false;
						uni.hideLoading();
						console.log("保存失败", JSON.stringify(err))
					})
				}, function(err) {
					_this.load_image = false;
					uni.hideLoading();
					console.log("绘制截图失败", JSON.stringify(err))
				}, {
					check: true, // 设置为检测白屏
					clip: {
						top: '100px',
						left: '0px',
						height: '100%',
						width: '100%'
					} // 设置截屏区域
				})
			},
			// 生成海报
			createPoster() {
				// #ifdef H5
				uni.showToast({
					icon: 'none',
					title: '请截图分享'
				})
				// #endif
				// #ifdef APP-PLUS
				this.createImage('share');
				// #endif
			},
			// 生成海报
			createImage(type) {
				this.load_image = true;
				uni.showLoading({
					title: '正在生成...'
				});
				setTimeout(() => {
					this.capture(type);
				}, 300)
			},
			// 保存海报
			savePoster() {
				// #ifdef H5
				uni.showToast({
					icon: 'none',
					title: '请截图保存'
				})
				// #endif
				// #ifdef APP-PLUS
				this.createImage('save');
				// #endif
			},
			groupCopy() {
				_page.uniCopy({
					content: this.group_data.id,
					success: function() {
						uni.showToast({
							'title': '复制成功',
							duration: 2000
						})
					}
				})
			},
		},
		watch: {

		},
	}
</script>

<style lang="scss" scoped>
	.chatgroup-avatar-group {
		display: flex;
		flex-wrap: wrap;
		width: 200rpx;
		height: 200rpx;
		border-radius: 50%;
		overflow: hidden;
		margin-right: 20rpx;
		box-sizing: border-box;
		padding: 20rpx 10rpx;
		justify-content: center;
		align-items: center;

		.chatgroup-avatar-item-0 {
			width: 100rpx;
			height: 100rpx;
			border-radius: 50%;
		}

		.chatgroup-avatar-item-1 {
			width: 100rpx;
			height: 100rpx;
			border-radius: 50%;
		}

		.chatgroup-avatar-item-2 {
			width: 90rpx;
			height: 90rpx;
			border-radius: 50%;
		}

		.chatgroup-avatar-item-3 {
			width: 90rpx;
			height: 90rpx;
			border-radius: 50%;
		}

		.chatgroup-avatar-item-4 {
			width: 80rpx;
			height: 80rpx;
			border-radius: 50%;
		}

		.chatgroup-avatar-item-5 {
			width: 60rpx;
			height: 60rpx;
			border-radius: 50%;
		}

		.chatgroup-avatar-item-6 {
			width: 60rpx;
			height: 60rpx;
			border-radius: 50%;
		}
	}

	.chatgroup-avatar {
		width: 150rpx;
		height: 150rpx;
		border-radius: 50%;
		margin-right: 20rpx;
	}

	.chatgroup-title {
		font-size: 30rpx;
		font-weight: bold;
		width: 500rpx; //固定宽度
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		overflow: hidden;
		word-break: break-all;
		text-align: center;
		margin: 6rpx auto;
	}

	.share {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 80rpx;
		margin: 30rpx;

		.share_icon {
			width: 200rpx;
		}
	}

	.btn-group {
		width: 400rpx;
		height: 120rpx;
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin: 20rpx auto;

		.btn {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;

			image {
				width: 58rpx;
				height: 58rpx;
			}

			text {
				color: #0e131c;
				font-size: 32rpx;
				font-weight: bold;
			}
		}
	}

	.qr-box-small {
		width: 630rpx;
		margin: 20rpx auto;
		border-radius: 40rpx;
		// height: 100rpx;
		overflow: hidden;
		box-shadow: 0 0 10rpx 2rpx rgba(0, 0, 0, .2);
		background: #fff;
		box-sizing: border-box;
		padding: 20rpx 30rpx;
		display: flex;
		flex-direction: column;

		.kouling {
			display: flex;
			justify-content: center;
			align-items: center;

			image {
				width: 40rpx;
				height: 40rpx;
			}

			text {
				font-size: 30rpx;
			}
		}

		.kouling-tips {
			font-size: 24rpx;
			color: #d2d3d6;
			display: flex;
			justify-content: center;
			align-items: center;
		}
	}

	.qr-box {
		width: 650rpx;
		margin: 10rpx auto 0;
		// border-radius: 50rpx;
		// height: 1040rpx;
		// overflow: hidden;
		// box-shadow: 0 0 10rpx 0rpx rgba(0, 0, 0, .1);
		// background: #fff;
		background: url('@/static/bg.png') no-repeat;
		background-size: 100% 100%;
		box-sizing: border-box;
		padding: 30rpx;

		.qr-box-title {
			display: flex;
			flex-direction: column;
			align-items: center;
			margin-bottom: 20rpx;

			.qr-box-avatar {
				width: 160rpx;
				height: 160rpx;
				border-radius: 10rpx;
				// box-shadow: 0 10px 30rpx 6rpx rgba(0, 0, 0, .1);
				margin-bottom: 30rpx;
				margin-top: 30rpx;
			}

			.qr-box-tip {
				display: flex;
				flex-direction: column;
				align-items: center;

				text {
					font-size: 30rpx;
				}

				.gray {
					color: #d2d3d6;
				}

				.black {
					color: #353941;
				}
			}
		}
	}

	.page {
		background: url('@/static/share/im_group_qr_bg_big.png') no-repeat;
		background-size: 100% auto;
	}

	// page {
	// 	height: 100vh;
	// 	background: url('@/static/share/im_group_qr_bg_big.png') no-repeat;
	// 	background-size: 100% auto;
	// }

	.icon-center {
		width: 100%;
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.back-icon {
		width: 44rpx;
		height: 44rpx;
		flex-shrink: 0;
	}

	.refresh-icon {
		width: 50rpx;
		height: 50rpx;
		flex-shrink: 0;
	}

	@keyframes round {
		0% {
			transform: rotate(0);
		}

		0% {
			transform: rotate(-360deg);
		}
	}

	.refresh {
		animation: round 1s linear infinite;
	}

	.nav-bar {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 100%;
		margin-left: -30rpx;

		.title {
			font-weight: bold;
			font-size: 30rpx;
		}
	}


	.qrimg {
		text-align: center;
		background: #FFFFFF;
		padding-bottom: 10upx;
	}

	.bode_main {
		margin: 150upx 35upx 0 35upx;
		width: 680upx;
		height: 900upx;
		border-radius: 50upx;
		overflow: hidden;
	}

	.photo {
		width: 110upx;
		height: 110upx;
		margin-left: 30upx;
		margin-right: 30upx;
	}

	.my_padding {
		padding-bottom: 20px;
	}

	.my_padding:before {
		background-color: white;
	}

	.my_padding:before {
		background-color: white;
	}

	.my_padding:after {
		background-color: white;
	}

	.text_font {
		color: #8f8f94;
		display: flex;
		justify-content: center;
		align-items: center;
	}
</style>
