<template>
	<div style="width: 100%; height: 100%;">
		<div class="content" :style="{ 'background': `#F5FAFF` }" v-show="show_home" v-if="detail">
			<div class="logo">
				<img src="/img/icon-logo.png" alt />
			</div>
			<!-- 未开始 -->
			<div class="not-open" v-show="status == 'not-open'">
				<img src="/subject/001.gif">
			</div>

			<!-- 红包打开 -->
			<div class="redPacket" 
				:class="{ redPacket2: status != 'open', key_packet: status == 'open' }"
				v-if="status != 'nothing'"
				v-show="status != 'not-open'">

				<!-- 内容 -->
				<div class="head">
					<div class="head-title">
						<img :src="detail.postBizData.postUserInfo.avatarUrl" alt />
						<span>{{ detail.postBizData.postUserInfo.nickName }}</span>
					</div>

					<!-- <div class="head-txt" v-if="status == 'open' || status == 'opened'">Awesome! You Will Get</div> -->
					<!-- <div class="head-area" v-else-if="status == 'opened'">opened!</div> -->

					<!-- 红包被领完了 -->
					<div class="head-area" v-if="status == 'nothing'">
						<div class="txt">Better luck next time!</div>
					</div>

					<!-- 过期 -->
					<div class="head-area expire" v-if="status == 'expire'">
						<div class="txt">This Giveaways</div>
						<div class="titme">expired on {{ formatTime(detail.postBizData.endTimestamp, 'MM-DD') }}</div>
					</div>

					<!-- 非chrome浏览器 -->
					<div class="head-area expire" v-if="status == 'no-chrome'">
						<div class="txt">Get Giveaways</div>
						<div class="titme">with chrome</div>
					</div>
					<!-- 领取成功 -->
					<div class="head-area head-money" v-if="status == 'open' || status == 'opened'">
						<div class="txt">AWESOME! YOU Will GET</div>
						<div class="head-money-area">
							<img :src="currencyIconPath" alt />
							<span class="money-txt" :style="{ fontSize: amount_font_size + 'px' }">{{ receiveAmount }}</span>
						</div>
					</div>
				</div>

				<!-- 领取列表 -->
				<div class="luck-list-title">
					<div>{{ detail.postBizData.receiveCount || 0 }}/{{ detail.postBizData.totalCount || 0 }} Winners
					</div>
					<div> {{ detail.postBizData.receiveAmountValue }} / {{
							detail.postBizData.amountValue || ''
					}} {{ detail.postBizData.currencySymbol || '' }}</div>
				</div>
				<div class="luck-list" @scroll="handleScroll($event)">
					<div class="luck-item" v-for="item, i in luck_list" v-bind:key="i">
						<img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl" alt />
						<img v-else src="/svg/icon-twitter.svg" alt />
						<div class="luck-content">
							<div class="luck-title">{{ item.simpleUserInfoVO.nickName || 'Twitter User' }}</div>
							<div class="luck-time">{{ formatTime(item.receiveTimestamp, 'MM-DD HH:mm') }}</div>
						</div>
						<div class="luck-money">
							<img :src="item.currencyIconPath" alt />
							<div class="luck-money-txt">{{ item.amountValue || 0 }}</div>
						</div>
						<div class="luck-king" v-if="item.maxAmount">
							<img src="/svg/icon-king-hat.svg" alt />
							<span>Luckiest Draw</span>
						</div>
					</div>
				</div>
			</div>
			<div class="redBag" v-else>
				<img src="/subject/001-card.png" alt="">
				<img class="open-gif" src="/subject/001.gif" />
				<div class="title" v-if="detail.postBizData.postUserInfo">
					<img :src="detail.postBizData.postUserInfo.avatarUrl" alt />
					<span>{{ detail.postBizData.postUserInfo.nickName || 'FutureDoctor' }}</span>
				</div>
				<div class="money-area">
					<div class="txt">{{ detail.postBizData.currencySymbol }} GIVEAWAY</div>
					<div class="coin">
						<img :src="detail.postBizData.currencyIconPath" alt />
						<font-amount :amount="detail.postBizData.amountValue"></font-amount>
					</div>
					<div class="people">{{ detail.postBizData.totalCount }} WINNERS TO SHARE</div>
				</div>
			</div>


			<!-- 安装 -->
			<div class="install" v-if="status == 'nothing' || status == 'open' || status == 'opened'"
				:class="{ key_install: status == 'open' }">
				<div v-if="status == 'nothing'">
					<div class="title">Install Denet to Draw</div>
				</div>
				<div v-else>
					<div class="title">Withdraw to Wallet</div>
					<div class="validity">
						<template v-if="validity_state">
							<span style="color:#FFA620;">Remaining valid time </span>
							<span style="color: #FFA620;">{{ validity }}</span>
						</template>
						<template v-else>
							<span style="color: #FFA620;">Giveaways Validity</span>
						</template>
					</div>
				</div>

				<div class="flow">
					<div class="line"></div>

					<div class="area_num">
						<div class="num">1</div>
						<span>Install DeNet</span>
					</div>
					<div class="tip">Used to verify tasks and get rewards</div>
					<div class="install_btn" @click="installExtension">Install</div>
					<div class="area_num">
						<div class="num">2</div>
						<span v-if="status == 'nothing'">Complete Tasks</span>
						<span v-else>Complete Tasks by {{ detail.postBizData.postUserInfo.nickName }}</span>
					</div>
					<div class="tip">Complete like, retweet and follow in a simple way</div>
				</div>
			</div>

			<!-- 过期 -->
			<div class="install install-error" v-if="status == 'expire'">
				<div class="title">Install DeNet</div>
				<div class="title">Don't miss the next Giveaway</div>
				<div class="tip">Used to verify tasks and get rewards</div>
				<div class="install_btn" @click="installExtension">Install</div>
			</div>


			<!-- 非chrome 浏览器状态 -->
			<div class="install install-error" v-if="status == 'no-chrome'">
				<div class="title">Open Giveaways</div>
				<div class="title">with chrome</div>
				<div class="tip">Only supports getting Giveaways through chrome</div>
				<div class="install_chrome" @click="clickOpenChrome()">
					<img src="/svg/icon-chrome.svg" alt />
					Install Chrome
				</div>
			</div>
			<div v-if="status == 'error'"></div>
		</div>
		<div v-if="show_moblie" class="moblie">
			<div class="head-area">
				<div class="gift">
                    <img :src=" require('../static/subject/gift.svg') " />
                </div>
				<div class="txt">
                    <div>Complete tasks</div>
                    <div>to Draw Prizes</div>
                </div>
			</div>
			<!-- 领取列表 -->
			<div class="luck-list" @scroll="handleScroll($event)">
				<div class="luck-item" v-for="item, i in luck_list" v-bind:key="i">
					<img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl" alt />
					<img v-else src="/svg/icon-twitter.svg" alt />
					<div class="luck-content">
						<div class="luck-title">{{ item.simpleUserInfoVO.nickName || 'Twitter User' }}</div>
						<div class="luck-time">{{ formatTime(item.receiveTimestamp) }}</div>
					</div>
					<div class="luck-money">
						<img :src="item.currencyIconPath" alt />
						<div class="luck-money-txt">{{ item.amountValue || 0 }}</div>
					</div>
					<div class="luck-king" v-if="item.maxAmount">
						<img src="/svg/icon-king-hat.svg" alt />
						<span>Luckiest Draw</span>
					</div>
				</div>
			</div>
			<div class="area-cp-link">
				<div class="area-list">
                    <div class="item">
                        <div class="icon"><img :src=" require('../static/subject/01.svg') " /></div>
                        <div class="font">Complete the tasks on tweet</div>
                    </div>
                    <div class="item">
                        <div class="icon"><img :src=" require('../static/subject/02.svg') " /></div>
                        <div class="font">Open link on PC to draw</div>
                        <div class="pc"><img :src=" require('../static/subject/pc.svg') " /></div>
                    </div>
                </div>
				<div class="area-content">
					{{ cp_link }}
				</div>
				<div class="area-btn">
					<div class="btn" :data-clipboard-text="cp_link" @click="copyLinkHandle">Copy Link</div>
				</div>
			</div>
			<div class="layer" v-show="layer_show">
				<div class="layer-box">
					<div class="layer-txt">Unable to copy, please enter the link manually</div>
					<div class="layer-btn" @click="layer_show = false">Done</div>
				</div>
			</div>
		</div>
	</div>
</template>

<script>
import axios from 'axios';
import Cookies from 'js-cookie'
import { isBrowser } from '../utils/help.js'
import Report from "../log-center/log"
import { Toast } from 'vant';
import FontAmount from '../components/FontAmount.vue'


var moment = require('moment');
var ClipboardJS = require('clipboard')

const api = {
	prod: 'https://api.denetme.net',
	pre: 'https://preapi.denetme.net',
	test: 'https://testapi.denetme.net'
}
const page = {
	prod: "https://h5.denetme.net",
	pre: "https://preh5.denetme.net",
	test: 'https://testh5.denetme.net'
}
const jumpUrl = page[process.env.NUXT_ENV.MODE] + '/'
const baseURL = api[process.env.NUXT_ENV.MODE]
const appType = 1;

let appVersionCode = 6;
export default {
	name: "index",
	data() {
		return {
			cp_link: '',
			appVersionCode: appVersionCode,
			mid: '',
			show_moblie: false,
			show_home: false,
			layer_show: false,
			amount_font_size:46,
			validity: '',
			receiveAmount: 0,
			validity_state: true,
			detail: {
				postId: '',
				postBizData: {
					imagePath: '',
					postUserInfo: {
					}
				}
			},
			currencyIconPath: '',
			title: 'DeNet Giveaway',
			metaTitle: 'DeNet: An Easy Web3 Tool For GIVEAWAY / AIRDROP',
			jumpUrl: jumpUrl,
			status: '',
            reportStatus: 'normal',
			page_index: 1,
			page_size: 20,
			luck_list: [],
			luck_list_end: false,
			config: {
				extensionsInstallChannel: 'officeDownload', // chromeAppStore
				extensionsInstallUrl: ''
			}
		}
	},
	components: {
		FontAmount,
	},
	head() {
		return {
			type: '',
			title: this.title,
			appVersionCode: 3,
			meta: [
				// facebook 
				{
					name: 'og:url',
					content: this.jumpUrl + this.detail.postId
				},
				{
					name: 'og:title',
					content: this.metaTitle
				},
				{
					name: 'og:image',
					content: this.detail.postBizData.imagePath || ''
				},
				// twitter
				{
					name: 'twitter:card',
					content: 'summary_large_image'
				},
				{
					name: 'twitter:url',
					content: this.jumpUrl + this.detail.postId
				},
				{
					name: 'twitter:title',
					content: this.metaTitle
				},
				{
					name: 'twitter:image',
					content: this.detail.postBizData.imagePath || ''
				}
			]
		}
	},
	methods: {
		copyLinkHandle() {
			Report.reportLog({
				baseInfo: {
					appVersionCode: this.appVersionCode,
					mid: this.mid,
					pageSource: Report.pageSource.mobileLandingPage,
					appType,
					machineCode: this.mid
				},
				params: {
					eventData: {
						businessType: Report.businessType.buttonClick,
						objectType: Report.objectType.copyLinkButton,
                        postId: this.detail.postId,
                        srcContentId: this.detail.srcContentId,
                        senderId: this.detail.srcUserId,
					}
				}
			})
		},
		clickOpenChrome() {
			window.open('https://www.google.com/chrome')

            let extParams = this.isMobile() ? {} : { status: this.reportStatus }
            Report.reportLog({
				baseInfo: {
					appVersionCode: this.appVersionCode,
					mid: this.mid,
					pageSource: Report.pageSource.newUserLandingPage,
					appType,
					machineCode: this.mid
				},
				params: {
					eventData: {
						businessType: Report.businessType.buttonClick,
						objectType: Report.objectType.installButton,
                        postId: this.detail.postId,
                        srcContentId: this.detail.srcContentId,
                        senderId: this.detail.srcUserId,
					},
                    extParams: extParams
				}
			})
		},
		isMobile() {
			let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
			return flag;
		},
		installExtension() {
			let { extensionsInstallChannel, extensionsInstallUrl } = this.config;
			let url = extensionsInstallUrl;
            let extParams = this.isMobile() ? {} : { status: this.reportStatus }
			Report.reportLog({
				baseInfo: {
					appVersionCode: this.appVersionCode,
					mid: this.mid,
					pageSource: Report.pageSource.newUserLandingPage,
					appType,
					machineCode: this.mid
				},
				params: {
					eventData: {
						businessType: Report.businessType.buttonClick,
						objectType: Report.objectType.installButton,
                        postId: this.detail.postId,
                        srcContentId: this.detail.srcContentId,
                        senderId: this.detail.srcUserId,
					},
                    extParams: extParams,
				}
			})
			switch (extensionsInstallChannel) {
				case "officeDownload":
					location.href = url;
					this.$router.push({
						path: '/install'
					})
					break;
				case "chromeAppStore":
					window.open(extensionsInstallUrl)
					break;
			}
		},
		formatTime(time, _type = 'MM-DD HH:mm:ss') {
			return moment(time).format(_type)
		},
		guid() {
			return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
				var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
				return v.toString(16);
			});
		},
		handleScroll(e) {
			e = e.target
			if (this.luck_list_end) {
				return
			}
			if ((e.clientHeight + e.scrollTop) / e.scrollHeight > .8) {
				this.luck_list_end = false
				this.page_index++
				this.getReceivedList()
			}
		},
		getFontSize(amount) {
			let _num = parseInt(360 / amount.length);
			this.amount_font_size = _num < 46 ? _num : 46;
		},
		setCookieMid() {
			let _cookie_mid_arr = Cookies.get('mid') || []
			if (_cookie_mid_arr.length > 0) {
				this.mid = JSON.parse(_cookie_mid_arr)[0].mid
			} else {
				this.mid = this.guid()
				Cookies.set('mid', JSON.stringify([{ mid: this.mid }]), { expires: 1000 })
			}
		},
		async getRedPacket() {
			this.currencyIconPath = this.detail.postBizData.currencyIconPath
			let { data } = await axios.post(`${baseURL}/denet/post/luckdrop/receiveLuckdrop`, {
				baseInfo: {
					appVersionCode: this.appVersionCode,
					mid: this.mid
				},
				params: {
					postId: this.detail.postId || ''
				}
			})
			this.show_home = true
			switch (data.code.toString()) {
				case '0':
					this.getDetail()
					if (data.data.receiveAmount == '0') {
                        this.reportStatus = 'empty'
						this.status = 'nothing'
					} else {
						if (data.data.newReceived) {
							this.status = 'not-open'
							setTimeout(() => {
								this.status = 'open'
							}, 3000)
							this.receiveAmount = data.data.receiveAmount
						} else {
							this.status = 'opened'
						}
					}
					this.getValidity(data.data.endTimestamp)
					this.receiveAmount = data.data.receiveAmount
					this.getFontSize(this.receiveAmount)
					break;
				case '2003':
					// this.status = 'expire'
                    this.reportStatus = 'empty'
					this.getDetail()
					this.status = 'nothing'
					break
				// 红包被领完了
				case '2008':
                    this.reportStatus = 'empty'
					this.getDetail()
					this.status = 'nothing'
					break
				case '2029':
					// 推文未发布
					this.status = 'error'
					break
				default:
					console.log('getRedPacket', data)
					// this.show_home = false
                    this.reportStatus = 'empty'
					this.getDetail()
					this.status = 'nothing'
					break;
			}
			// 领取列表分页
			this.getReceivedList()
		},
		async getReceivedList() {

			let { data } = await axios.post(`${baseURL}/denet/post/luckdrop/getReceivedList`, {
				baseInfo: {
					appVersionCode: this.appVersionCode,
					mid: this.mid
				},
				params: {
					pageNum: this.page_index,
					pageSize: this.page_size,
					postId: this.detail.postId || ''
				}
			})
			if (data.code == 0) {
				if (data.data.length > 0) {
					this.luck_list = this.luck_list.concat(data.data)
					this.luck_list_end = false
				} else {
					this.luck_list_end = true
				}
			} else {
				console.log('getReceivedList', data)
			}
		},
		getValidity(end_time) {

			let _d1, _d2, _d3, _h, _m, _s
			let timer = setInterval(() => {
				let _time = new Date().getTime()
				_d3 = end_time - _time
				if (_d3 > 0) {
					_d1 = moment(end_time)
					_d2 = moment(_time)
					_h = moment.duration(_d1.diff(_d2)).hours()
					_m = moment.duration(_d1.diff(_d2)).minutes()
					_s = moment.duration(_d1.diff(_d2)).seconds()
					if (_h < 10) {
						_h = '0' + _h
					}
					if (_m < 10) {
						_m = '0' + _m
					}
					if (_s < 10) {
						_s = '0' + _s
					}
					this.validity = `${_h}:${_m}:${_s}`
				} else {
					clearInterval(timer)
				}
			}, 1000)
		},
		setPickupInfo() {
			let pickupInfo = {
				srcContentId: this.detail.srcContentId,
				postNickName: this.detail.postBizData.postUserInfo.nickName,
                createTime: Date.now(),
			};
			Cookies.set('pickup_info', JSON.stringify(pickupInfo), { expires: 100 });
		},
		async getDetail() {
			let { data } = await axios.post(`${baseURL}/denet/post/getDetail`, {
				baseInfo: {
					appVersionCode: this.appVersionCode,
					mid: this.mid
				},
				params: {
					postId: this.detail.postId
				}
			})
			if (data.code == 0) {
				this.detail.postBizData = JSON.parse(data.data.postBizData)
			}
		},
		async getConfig() {
			let { data } = await axios.post(`${baseURL}/denet/base/config/getFrontConfig`, {
				baseInfo: {
					appVersionCode: this.appVersionCode,
					mid: this.mid
				},
				params: {
				}
			})
			if (data.code == 0) {
				this.config = data.data;
			}
		},
	},

	async asyncData(params) {
		let { route } = params;
		let { data } = await axios.post(`${baseURL}/denet/post/getDetail`, {
			baseInfo: {
				appVersionCode: appVersionCode,
				mid: function () {
					return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
						var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
						return v.toString(16);
					});
				}()
			},
			params: {
				postId: route.params.id || ''
			}
		})
		if (data.code == 0) {
			if (data.data && data.data.postBizData && typeof data.data.postBizData == 'string') {
				data.data.postBizData = JSON.parse(data.data.postBizData)
			} 
			if(data.data.postBizData === null) {
				data.data.postBizData = {
					postUserInfo: {
					}
				}
			}
			return {
				detail: data.data,
			}
		}
	},


	mounted() {
		this.getConfig()
		if (!this.detail.postId) {
			return
		}
		console.log(this.detail)
		//改变font-size
		// (function (doc, win) {
		// 	var docEI = doc.documentElement,
		// 		resizeEvt = 'orientationchange' in window ? 'orientataionchange' : 'resize',
		// 		recalc = function () {
		// 			var clientWidth = docEI.clientWidth;
		// 			if (!clientWidth) return;
		// 			//100是字体大小,1510是开发时浏览器窗口的宽度,等比计算
		// 			docEI.style.fontSize = 10 * (clientWidth / 1510) + 'px';
		// 		}

		// 	if (!doc.addEventListener) return;
		// 	win.addEventListener(resizeEvt, recalc, false);
		// 	doc.addEventListener('DOMContentLoaded', recalc, false);
		// })(document, window);

		document.documentElement.style.fontSize = '62.5%'
		if (this.isMobile()) {
			this.setCookieMid();
            setTimeout(() => {
                Report.reportLog({
                    baseInfo: {
                        appVersionCode: this.appVersionCode,
                        mid: this.mid,
                        pageSource: Report.pageSource.mobileLandingPage,
                        appType,
                        machineCode: this.mid
                    },
                    params: {
                        eventData: {
                            businessType: Report.businessType.pageView,
                            postId: this.detail.postId,
                            srcContentId: this.detail.srcContentId,
                            senderId: this.detail.srcUserId,
                        }
                    }
                })
            }, 500)
			this.show_moblie = true
			this.cp_link = window.location.href
			// 复制链接
			var clipboard = new ClipboardJS('.btn');
			clipboard.on('success', function (e) {
				Toast('copy success');
				console.info('Action:', e.action);
				console.info('Text:', e.text);
				console.info('Trigger:', e.trigger);

				e.clearSelection();
			});

			clipboard.on('error', function (e) {
				this.layer_show = true
				console.error('Action:', e.action);
				console.error('Trigger:', e.trigger);
			});
			// 领取列表分页
			this.getReceivedList()
		} else if (isBrowser() == 'chrome') {
			// 领取任务红包
			this.setCookieMid()
			// 是否被领完
			if(this.detail.postBizData.receiveCount < this.detail.postBizData.totalCount){
				this.getRedPacket()	
			}else{
				this.show_home = true
				this.status = 'nothing'
                this.reportStatus = 'empty'
			}
			this.setPickupInfo()
            setTimeout(() => {
                Report.reportLog({
                    baseInfo: {
                        appVersionCode: this.appVersionCode,
                        mid: this.mid,
                        pageSource: Report.pageSource.newUserLandingPage,
                        appType,
                        machineCode: this.mid
                    },
                    params: {
                        eventData: {
                            businessType: Report.businessType.pageView,
                            postId: this.detail.postId,
                            srcContentId: this.detail.srcContentId,
                            senderId: this.detail.srcUserId,
                        },
                        extParams: {
                            status: this.reportStatus,
                        }
                    }
                });
            }, 1000)
		} else {
			this.show_home = true
			this.status = 'no-chrome'
            this.reportStatus = 'not-chrome'
            Report.reportLog({
				baseInfo: {
					appVersionCode: this.appVersionCode,
					mid: this.mid,
					pageSource: Report.pageSource.newUserLandingPage,
					appType,
					machineCode: this.mid
				},
				params: {
					eventData: {
						businessType: Report.businessType.pageView,
                        postId: this.detail.postId,
                        srcContentId: this.detail.srcContentId,
                        senderId: this.detail.srcUserId,
					},
                    extParams: {
                        status: this.reportStatus,
                    }
				}
			})
		}
	}
}
</script>

<style lang="scss" >
html,
body,
#__nuxt,
#__layout {
	width: 100%;
	height: 100%;
	padding: 0;
	margin: 0;
}

.moblie {
	display: flex;
	flex-wrap: wrap;
	height: 100%;
	align-content: flex-start;
	flex-direction: column;

	.layer {
		position: fixed;
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		background: rgba(0, 0, 0, .5);

		.layer-box {
			width: 30rem;
			height: 17rem;
			background: #FFFFFF;
			border-radius: 11px;
			opacity: 1;
			position: absolute;
			top: 25rem;
			left: 50%;
			margin-left: -15rem;

			.layer-txt {
				margin: 3rem 0;
				width: 100%;
				padding: 0 2.7rem;
				font-weight: 600;
				font-size: 1.8rem;
				text-align: center;
			}

			.layer-btn {
				width: 19rem;
				height: 4rem;
				background: #389AFF;
				border-radius: 100px;
				margin: 0 auto;
				text-align: center;
				line-height: 4rem;
				color: #fff;
				font-weight: 600;
				font-size: 1.8rem;
			}
		}
	}

	.head-area {
		width: 100%;
		height: 11rem;
		text-align: center;
		letter-spacing: 0.3px;
		font-size: 2rem;
		text-align: center;
		color: #fff;
		background: #389AFF;
		border-radius: 0 586px 586px/0 0 104px 104px;
		display: flex;
		align-items: center;
        justify-content: center;
        .gift {
            margin-right: 1.4rem;
            img {
                width: 5.2rem;
            }
        }
		.txt {
			font-size: 1.8rem;
			text-align: left;
		}
	}

	.luck-list-title {
		/*      margin-top: 47px;*/
		margin: 0 16px;
		padding: 14px 0 11px 0;
		background: #fff;
		display: flex;
		justify-content: space-between;
		color: #B0B0B0;
		border-bottom: 1px solid #D1D1D1;
	}



	.luck-list {
		flex: 1;
		width: 100%;
		overflow-y: auto;

		.luck-item {
			display: flex;
			padding: 12px 0;
			margin: 0 16px;
			border-bottom: 1px solid #F2F2F2;
			justify-content: space-between;
			position: relative;

			img:first-child {
				border-radius: 50%;
			}

			.luck-king {
				position: absolute;
				top: 36px;
				right: 0px;
				display: flex;
				align-items: center;

				img {
					width: 22px;
					height: 19px;
					margin: 0;
				}

				span {
					font-weight: 500;
					font-size: 12px;
					line-height: 14px;
					letter-spacing: 0.3px;
					color: #f5b945;
				}
			}

			img {
				width: 42px;
				height: 42px;
				margin-right: 12px;
			}

			.luck-content {
				flex: auto;

				.luck-title {
					font-weight: 500;
					font-size: 16px;
					letter-spacing: 0.3px;
					color: #444444;
				}

				.luck-time {
					font-weight: 400;
					font-size: 12px;
					line-height: 14px;

					color: #9b9b9b;
				}
			}

			.luck-money {
				display: flex;
				height: 17px;
				align-items: center;

				img {
					width: 14px;
					height: 14px;
					margin-right: 6px;
				}

				.luck-money-txt {
					font-weight: 500;
					font-size: 14px;
					/* identical to box height */

					text-align: right;
					letter-spacing: 0.3px;

					color: #444444;
				}
			}
		}

		.luck-item:last-child {
			border: 0;
		}
	}

	.area-cp-link {
		background: #fff;
		width: 100%;
		flex-wrap: wrap;
		height: 20rem;
		box-shadow: 0px -4px 10px rgba(0, 0, 0, 0.1);
		border-top-left-radius: 1rem;
		border-top-right-radius: 1rem;

        .area-list {
            width: 34.3rem;
            margin: 1.5rem auto;
            .item {
                clear: both;
                overflow: hidden;
                margin: 0.7rem 0;
                font-size: 1.6rem;
                font-weight: 500;
                .icon {
                    float: left;
                    margin-right: 0.8rem;
                }
                .font {
                    float: left;
                    margin-right: 0.8rem;
                }
                .pc {
                    float: left;
                }
            }
        }

		.area-content {
			background: #F4F4F4;
			padding: 0.7rem 1rem;
            margin: 0 auto 1rem;
			width: 34.3rem;
			font-size: 1.3rem;
            border-radius: 0.5rem;
			word-break: break-all;
		}

		.area-btn {
			flex: 1;
			display: flex;
			justify-content: center;

			.btn {
				width: 34.3rem;
				height: 4rem;
				background: #389AFF;
				border-radius: 100px;
				font-size: 1.8rem;
				color: #FFFFFF;
			}
		}
	}
}

.content {
	width: 100%;
	height: 100%;
	background-size: 100%;
	background-repeat: no-repeat;
	position: relative;
	font-family: "SF Pro Display";
	font-style: normal;
	font-weight: 600;

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

		img {
			width: 20rem;
			height: 20rem;
		}
	}

	.logo {
		position: absolute;
		left: 4rem;
		top: 1.5rem;

		img {
			width: 10.7rem;
			height: 3.4rem;
		}
	}

	.key_packet {
		animation: key_packet 3s;
		animation-delay: 0s;
		animation-fill-mode: forwards;
	}


	.redBag {
		display: flex;
		justify-content: flex-start;
		flex-direction: column;
		position: absolute;
		top: 14rem;
		left: 30.6rem;
		width: 37.5rem;
		height: 50rem;
		border-radius: 2rem;
		overflow-y: hidden;
		box-shadow: 0 0 5px #888888;
		background: #fff;

		.money-area {
			width: 100%;
			position: absolute;
			top: 65px;
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			justify-content: center;

			.txt {
				font-weight: 800;
				font-size: 16px;
				text-align: center;
				letter-spacing: 0.3px;
				color: #FFFFFF;
			}

			.coin {
				text-align: center;
				margin-top: 6px;
				margin-bottom: 7px;
				display: flex;
				justify-content: center;
				align-items: center;
				width: 90%;

				img {
				width: 46px;
				height: 46px;
				border-radius: 50%;
				border: 3px solid #FFFFFF;
				}

				span {
				margin-left: 15px;
				font-weight: 800;
				font-size: 60px;
				line-height: 76px;
				color: #FFFFFF;
				}
			}

			.people {
				font-weight: 800;
				font-size: 13px;
				line-height: 16px;
				letter-spacing: 0.05em;
				text-align: center;
				color: #FFFFFF;
			}
    	}

		.title {
			position: absolute;
			top: 15px;
			left: 15px;
			z-index: 3;
			display: flex;
			align-items: center;

			img {
				width: 24px;
				height: 24px;
				border: 2px solid #FFF;
				border-radius: 50%;
			}

			span {
				margin-left: 10px;
				font-weight: 600;
				font-size: 16px;
				letter-spacing: 0.3px;
				color: #fff;
			}
		}

		img {
			width: 100%;
		}

		.up {
			position: absolute;
			top: 0;
			z-index: 1;
		}

		.down {
			position: absolute;
			top: 253px;
		}

		.open {
			width: 335px;
			height: 50px;
			cursor: pointer;
			position: absolute;
			bottom: 28px;
			left: 50%;
			margin-left: -167.5px;
			z-index: 4;
		}

		.open-gif {
			width: 200px;
			height: 200px;
			text-align: center;
			position: absolute;
			bottom: 70px;
			left: 50%;
			margin-left: -100px;
			z-index: 3;
		}
	}

	.redPacket {
		display: flex;
		justify-content: flex-start;
		flex-direction: column;
		position: absolute;
		top: 9rem;
		left: 50%;
		width: 37.5rem;
		margin-left: -18rem;
		height: 65rem;
		border-radius: 2rem;
		// background: red;
		overflow-y: hidden;
		box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.1);
		background: #fff;



		.top {
			top: 0;
			position: absolute;
			width: 100%;
			z-index: 12;
		}

		.down {
			bottom: 0;
			position: absolute;
			height: 32.3rem;
			z-index: 11;
		}


		.head {
			position: relative;

			.head-title {
				position: absolute;
				top: 0;
				width: 100%;
				display: flex;
				align-items: center;
				justify-content: center;
				height: 3.6rem;
				background: rgba(255, 255, 255, .1);


				img {
					width: 1.8rem;
					height: 1.8rem;
					border-radius: 50%;

					border: 1px solid #fff;
				}

				span {
					margin-left: .8rem;
					font-size: 1.2rem;
					color: #fff;
				}
			}

			.head-txt {
				margin-top: 4.7rem;
				font-size: 2rem;
				text-align: center;
				color: #fff;
			}

			.head-area {
				height: 19rem;
				text-align: center;
				letter-spacing: 0.3px;
				font-size: 2rem;
				text-align: center;
				color: #fff;
				background: #389AFF;
				border-radius: 0 586px 586px/0 0 164px 164px;

				.txt {
					padding-top: 8.5rem;
				}
			}

			.head-money {
				.txt {
					padding-top: 6.8rem;
					font-weight: 800;
					font-size: 1.5rem;
					text-align: center;
					letter-spacing: 0.3px;
				}

				.head-money-area {
					display: flex;
					width: 100%;
					justify-content: center;
					align-items: center;

					img {
						width: 4rem;
						height: 4rem;
						border: 2px solid #FFFFFF;
						border-radius: 100px;
					}

					span {
						margin-left: 1.3rem;
						font-size: 4.6rem;
						word-break: break-all;
					}
				}
			}
		}

		.luck-list-title {
			/*      margin-top: 47px;*/
			margin: 0 16px;
			padding: 14px 0 11px 0;
			background: #fff;
			display: flex;
            font-weight: 500;
			justify-content: space-between;
			color: #B0B0B0;
			border-bottom: 1px solid #F2F2F2;
		}


		.luck-list {
			background: #fff;
			overflow-y: auto;

			.luck-item {
				display: flex;
				padding: 12px 0;
				margin: 0 16px;
				border-bottom: 1px solid #F2F2F2;
				justify-content: space-between;
				position: relative;

				img:first-child {
					border-radius: 50%;
				}

				.luck-king {
					position: absolute;
					top: 36px;
					right: 0px;
					display: flex;
					align-items: center;

					img {
						width: 22px;
						height: 19px;
						margin: 0;
					}

					span {
						font-weight: 500;
						font-size: 12px;
						line-height: 14px;
						letter-spacing: 0.3px;
						color: #f5b945;
					}
				}

				img {
					width: 42px;
					height: 42px;
					margin-right: 12px;
				}

				.luck-content {
					flex: auto;

					.luck-title {
						font-weight: 500;
						font-size: 16px;
						letter-spacing: 0.3px;
						color: #444444;
                        margin-bottom: 5px;
					}

					.luck-time {
						font-weight: 400;
						font-size: 12px;
						line-height: 14px;
						color: #B0B0B0;
					}
				}

				.luck-money {
					display: flex;
					height: 17px;
					align-items: center;

					img {
						width: 14px;
						height: 14px;
						margin-right: 6px;
					}

					.luck-money-txt {
						font-weight: 500;
						font-size: 14px;
						/* identical to box height */

						text-align: right;
						letter-spacing: 0.3px;

						color: #444444;
					}
				}
			}

			.luck-item:last-child {
				border: 0;
			}
		}

		.area {
			position: absolute;
			z-index: 112;
			width: 100%;

			.title {
				z-index: 11;
				margin-top: 8.5rem;
				text-align: center;

				img {
					width: 3.6rem;
					height: 3.6rem;
					border: 2px solid #fff4db;
					border-radius: 50%;
				}

				span {
					letter-spacing: 0.3px;
					font-size: 1.6rem;
					color: #fff2d3;
				}
			}

			.txt {
				font-size: 4rem;
				text-align: center;
				letter-spacing: 0.03rem;
				color: #fff2d3;
			}
		}

		.key_area {
			animation: key_area 1s;
			animation-delay: 1s;
			animation-fill-mode: forwards;
		}
	}

	.redPacket2 {
		left: 43.6rem;
		margin-left: -18rem;
	}

	.key_install {
		opacity: 0;
		animation: key_install 2s;
		animation-delay: 0s;
		animation-fill-mode: forwards;
	}

	.install {
		position: absolute;
		top: 20rem;
		left: 73.5rem;

		.title {
			font-size: 4.8rem;
			color: #000000;
			letter-spacing: 0.3px;
		}

		.validity {
			margin-top: 1rem;
			color: #FF0000;
			width: 40rem;
			height: 3.3rem;
			line-height: 3.3rem;
            font-weight: normal;
			span {
				font-size: 1.4rem;
			}
		}

		.flow {
			position: absolute;
			margin-top: 4rem;

			.line {
				position: absolute;
				height: 16rem;
				border: 1px solid #e0e0e0;
				top: 3rem;
				left: 1.2rem;
			}

			.area_num {
				display: flex;
				align-items: center;

				.num {
					width: 2.4rem;
					height: 2.4rem;
					background-color: rgba(56, 154, 255, 1);
					border-radius: 50%;
					color: #fff;
					text-align: center;
					line-height: 2.4rem;
					font-size: 1.4rem;
				}

				span {
					margin-left: 1.5rem;
					color: #000000;
					font-size: 1.8rem;
				}
			}

			.tip {
				margin-left: 4rem;
				margin-top: 0.7rem;
				font-size: 1.4rem;
				color: #a4a4a4;
			}

			.install_btn {
				cursor: pointer;
				margin-left: 4rem;
				margin-top: 2rem;
				margin-bottom: 6.7rem;
				width: 23rem;
				height: 5.8rem;
				background: #389aff;
				border-radius: 10rem;
				color: #fff;
				line-height: 5.8rem;
				text-align: center;
				font-size: 2rem;
			}
		}

		.tip {
			margin-top: 0.7rem;
			font-size: 1.4rem;
			color: #a4a4a4;
		}

		.install_btn {
			cursor: pointer;
			margin-top: 2rem;
			margin-bottom: 6.7rem;
			width: 23rem;
			height: 5.8rem;
			background: #389aff;
			border-radius: 10rem;
			color: #fff;
			line-height: 5.8rem;
			text-align: center;
			font-size: 2rem;
		}
	}

	.install-error {
		left: 78.5rem;

		.install_chrome {
			cursor: pointer;
			width: 24.3rem;
			height: 5.8rem;
			font-size: 2rem;
			font-weight: 500;
			letter-spacing: 0.3px;
			display: flex;
			align-items: center;
			background: #FFFFFF;
			border: 1px solid #e8e8e8;
			border-radius: 10rem;
			margin-top: 3.3rem;

			img {
				width: 3.2rem;
				height: 3.2rem;
				margin-left: 3.3rem;
			}

			span {
				margin-left: 1.2rem;
			}
		}
	}
}

@keyframes key_area {
	0% {
		opacity: 1;
	}

	100% {
		opacity: 0;
	}
}

@keyframes key_install {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

@keyframes key_packet {
	0% {}

	100% {
		left: 30.6rem;
		margin-left: -18rem;
	}
}
</style>