<template>
	<view class="content">
		<!-- 用户信息 -->
		<view class="info-box">
			<image src="@/static/user/user_back.png" mode="aspectFill" />
			<view class="user-flex">
				<image class="cover" @click="onBtn('Setting', {})" :src="userInfo.avatar || require('@/static/user/cover.png')"
					mode="aspectFill" />
				<view class="user-content">
					<view class="name">{{ userInfo.nickname }}</view>
					<view class="tabs">
						<view class="tabs-item">
							<image :src="identity.cover_url" mode="heightFix" />{{identity.identity_text}}
						</view>
					</view>
					<view class="chainAddress" v-if="userInfo.addr">
						<text @click="copy(userInfo.addr)">区块地址:{{userInfo.addr.substring(0,5) + '****' + userInfo.addr.substring(userInfo.addr.length - 5)}}</text>
					</view>
				</view>
			</view>
		</view>

		<!-- 会员卡 -->
		<view class="vip-card">
			<view class="title">
				<image src="@/static/user/icon_06.png" mode="widthFix" />
				共力会员
			</view>
			<view class="subtitle">
				<u-notice-bar :text="cardText" icon="" bgColor="" duration="3000" color="#fcc692" direction="column">
				</u-notice-bar>
			</view>
			<view class="btn" @click="onBtn('Vip', {})">{{userInfo.isOpenVip ? '开通': '续费'}}</view>
		</view>

		<!-- 健康数据 -->
		<view class="health-flex">
			<view class="health-flex-item" @click="onBtn('AccountIntegral', {})">
				<view class="title">共力值</view>
				<view class="num">{{account.glz}}</view>
			</view>
			<view class="health-flex-item" @click="onBtn('AccountDt', {})">
				<view class="title">DT积分</view>
				<view class="num">{{account.dt}}</view>
			</view>
		</view>
		<!-- 订单 -->
		<view class="order-box">
			<view class="order-box-item" @click="onBtn('Order', { index: 0 })">
				<image class="icon" src="@/static/user/order_icon_04.png" mode="widthFix" />
				<view class="title">我的订单</view>
			</view>
			<view class="order-box-item" @click="onBtn('Order', { index: 1 })">
				<image class="icon" src="@/static/user/order_icon_01.png" mode="widthFix" />
				<view class="title">待付款</view>
			</view>
			<view class="order-box-item" @click="onBtn('Order', { index: 2 })">
				<image class="icon" src="@/static/user/order_icon_02.png" mode="widthFix" />
				<view class="title">待发货</view>
			</view>
			<view class="order-box-item" @click="onBtn('Order', { index: 3 })">
				<image class="icon" src="@/static/user/order_icon_03.png" mode="widthFix" />
				<view class="title">待收货</view>
			</view>
			<view class="order-box-item" @click="onBtn('OrderRefund')">
				<image class="icon" src="@/static/user/order_icon_05.png" mode="widthFix" />
				<view class="title">退换货</view>
			</view>
		</view>
		<!-- 功能块 -->
		<view class="btns-box">
			<view class="btns-box-item" @click="onMnemonic">
				<image class="icon" src="@/static/user/userIcon_02.png" mode="widthFix" />
				导出助记词
				<uni-icons class="forward" type="forward" color="#999" />
			</view>
			<view class="btns-box-item" @click="onBtn('Address', { type: 'edit' })">
				<image class="icon" src="@/static/user/userIcon_03.png" mode="widthFix" />
				地址管理
				<uni-icons class="forward" type="forward" color="#999" />
			</view>
			<view class="btns-box-item" @click="onBtn('Invitation', {})">
				<image class="icon" src="@/static/user/userIcon_03.png" mode="widthFix" />
				分享邀请
				<uni-icons class="forward" type="forward" color="#999" />
			</view>
		</view>
		<view class="btns-box">
			<view class="btns-box-item">
				<image class="icon" src="@/static/user/userIcon_03.png" mode="widthFix" />
				意见反馈
				<uni-icons class="forward" type="forward" color="#999" />
			</view>
			<view class="btns-box-item">
				<image class="icon" src="@/static/user/userIcon_03.png" mode="widthFix" />
				版本更新
				<uni-icons class="forward" type="forward" color="#999" />
			</view>
			<view class="btns-box-item" @click="logOut" v-if="$store.state.token != ''">
				<image class="icon" src="@/static/user/userIcon_05.png" mode="widthFix" />
				退出登录
				<uni-icons class="forward" type="forward" color="#999" />
			</view>
		</view>
		<view class="footer-text">
			<view>共力生态</view>
			<view>The total force ecological</view>
		</view>
		<!-- 助记词弹出框 -->
		<u-modal :show="wordsShow" :zoom="false" confirmText="复制" @confirm="copyWord" confirmColor="#34CE98">
			<slot default>
				<view class="wordsCont">
					<view class="wordsCont-title">导出助记词</view>
					<view class="wordsCont-tips">请务必抄下助记词并存在安全的地方，若助记词丢失，重装或换设备登录时将无法查看历史消息！若助记词被他人获取，将可能获取你的信息！</view>
					<view class="wordsCont-text">{{mnemonic}}</view>
					<image class="wordsCont-close" @click="wordsShow = false" src="@/static/icon/userCloes.png" mode="widthFix"></image>
				</view>
			</slot>
		</u-modal>
	</view>
</template>

<script>
	import {
		info,
		chainSeed
	} from '@/apis/interfaces/user';
	
	export default {
		data() {
			return {
				cardText: [],
				userInfo: {
					nickname	: '',
					addr		: '',
					avatar		: '',
					isOpenVip	: '',
				},
				identity : {
					button_cover_url: '',
					cover_url		: '',
					identity_text	: ''
				},
				account	 : {
					glz	: 0.00,
					dt	: 0.00
				},
				mnemonic : '',
				wordsShow: false
			};
		},
		onShow() {
			this.getInfo();
		},
		methods: {
			// 用户信息
			getInfo() {
				if (this.$store.state.token === '') return;
				info().then(res => {
					uni.setNavigationBarTitle({
						title: res.nickname
					});
					this.cardText = res.identity_array
					this.userInfo = {
						nickname	: res.nickname,
						addr		: res.addr,
						avatar		: res.avatar,
						isOpenVip	: res.is_open_vip,
					}
					this.identity = res.identity
					this.account  = res.account
				})
				.catch(err => {
					uni.showToast({
						title: err.message,
						icon: 'none'
					});
				});
			},
			// 导出助记词
			onMnemonic(){
				chainSeed().then(res => {
					this.mnemonic = res.seed
					this.wordsShow = true
				}).catch(err => {
					uni.showToast({
						title: err.message,
						icon : 'none'
					})
				})
			},
			// 按钮导航
			onBtn(name, params) {
				this.$Router.push({
					name,
					params
				});
			},
			// 退出登录
			logOut() {
				uni.removeStorage({
					key: 'isnew',
					success: () =>{
						this.$store.commit('setToken', '');
						this.$Router.replaceAll({name: 'Auth'})
					}
				})
			},
			// 复制
			copy(data) {
				uni.setClipboardData({
					data: data,
					success: function() {
						uni.showToast({
							title: '复制成功',
							icon: 'none',
							mask: true,
							duration: 2000
						})
					}
				});
			},
			// 复制助记词
			copyWord() {
				uni.setClipboardData({
					data: this.mnemonic,
					success: () => {
						this.wordsShow = false
						uni.showToast({
							title: '助记词已复制',
							icon: 'none',
							mask: true
						})
					}
				});
			},
		}
	};
</script>

<style lang="scss" scoped>
	.content {
		background: $window-color;
		min-height: 100vh;
	}

	// 版权信息
	.footer-text {
		text-align: center;
		font-size: $title-size-sm;
		padding: $padding $padding $padding * 2;
		color: $text-gray-m;
	}

	// 用户信息
	.info-box {
		position: relative;
		background: linear-gradient(to right, #34ce98, #22aa98);
		color: white;
		@extend .ios-top;

		&>image {
			position: absolute;
			top: 0;
			right: 0;
			width: 100%;
			height: 100%;
			// z-index: 100;
		}

		.user-flex {
			position: relative;
			padding: $padding * 2 $padding ($padding * 2 + 60);
			height: 128rpx;

			.cover {
				position: absolute;
				width: 128rpx;
				height: 128rpx;
				border-radius: 50%;
				border: solid 6rpx white;
				box-sizing: border-box;
				z-index: 100;
			}

			.user-content {
				padding-left: 158rpx;
				height: 140rpx;
				display: flex;
				flex-direction: column;
				justify-content: center;
				position: relative;

				.chainAddress {
					overflow: hidden;
					white-space: nowrap;
					text-overflow: ellipsis;
					font-size: $title-size-m;
					padding-top: 10rpx;
					display: flex;
					flex-direction: row;
					align-items: center;
					justify-content: flex-start;
					position: relative;
					z-index: 200;
				}

				.name {
					line-height: 40rpx;
					font-weight: bold;
					font-size: $title-size + 8;
					@extend .nowrap;
				}
				.tabs {
					padding-top: 10rpx;
					&-item {
						background: rgba($color: #000000, $alpha: 0.3);
						font-size: $title-size-sm - 4;
						display: inline-block;
						line-height: 36rpx;
						padding: 0 20rpx;
						border-radius: 20rpx;

						image {
							width: 38rpx;
							height: 38rpx;
							vertical-align: middle;
							margin-bottom: 2rpx;
							margin-right: 8rpx;
						}
					}
				}
			}
		}
	}

	// 会员卡
	.vip-card {
		position: relative;
		margin: -60rpx $margin $margin;
		background: linear-gradient(to right bottom, #3e5364, #31364a);
		border-radius: $radius;
		box-sizing: border-box;
		color: #fcc692;
		padding: $padding ($padding + 170) $padding $padding;

		.title {
			font-weight: bold;
			font-size: $title-size-lg;
			line-height: 40rpx;

			image {
				width: 32rpx;
				height: 32rpx;
				margin-right: 10rpx;
				vertical-align: middle;
				margin-bottom: 4rpx;
			}
		}

		.subtitle {
			font-size: $title-size-sm;
			margin-top: 10rpx;

			.u-notice-bar {
				padding: 0;
			}
		}

		.btn {
			position: absolute;
			right: $margin;
			margin-top: -30rpx;
			top: 50%;
			height: 60rpx;
			line-height: 60rpx;
			background: linear-gradient(to right, #fce3c5, #fcc590);
			color: #31364a;
			font-weight: bold;
			width: 150rpx;
			text-align: center;
			font-size: $title-size-m;
			border-radius: 30rpx;
		}
	}

	// 订单信息
	.order-box {
		margin: $margin;
		background: white;
		border-radius: $radius;
		display: flex;
		justify-content: space-between;

		&-item {
			width: 25%;
			padding: $padding $padding/2;
			text-align: center;

			.icon {
				width: 48rpx;
				height: 48rpx;
				vertical-align: top;
			}

			.title {
				font-size: $title-size-sm;
				margin-top: $margin/3;
			}
		}
	}

	// 健康数据
	.health-flex {
		display: flex;
		margin: $margin ($margin - 10);

		&-item {
			margin: 0 10rpx;
			background: white;
			width: calc(50% - 20rpx);
			border-radius: $radius;
			padding: $padding;
			box-sizing: border-box;
			.title {
				font-size: $title-size-lg;

				.icon {
					width: 32rpx;
					height: 32rpx;
					vertical-align: middle;
					margin-left: 10rpx;
					margin-bottom: 2rpx;
				}
			}
			.num {
				font-weight: bold;
				font-size: $title-size + 10;
				padding: $padding/3 0 0;
				text {
					font-size: 70%;
					padding-left: 10rpx;
				}
			}
		}
	}

	// 模块
	.btns-box {
		background: white;
		margin: $margin;
		border-radius: $radius;

		&-item {
			position: relative;
			line-height: 90rpx;
			padding: $padding * 0.6 $padding;
			font-size: $title-size-lg;

			&::after {
				position: absolute;
				height: 1rpx;
				content: ' ';
				left: $margin;
				right: $margin;
				bottom: 0;
				background-color: #f9f9f9;
			}

			&:last-child::after {
				display: none;
			}

			.forward {
				position: absolute;
				right: $margin;
			}

			.icon {
				width: 44rpx;
				height: 44rpx;
				vertical-align: middle;
				margin-right: $margin/2;
				margin-bottom: 8rpx;
			}
		}
	}
	/* 助记词弹框 */
	.wordsCont {
		width: 100%;
		position: relative;
		text-align: center;
	}
	
	.wordsCont-title {
		width: 100%;
		font-weight: 600;
		font-size: 44rpx;
	}
	
	.wordsCont-tips {
		padding: 30rpx 0;
		box-sizing: border-box;
		color: #de5660;
		line-height: 48rpx;
		font-size: 30rpx;
	}
	
	.wordsCont-text {
		font-weight: 500;
		margin-top: 10rpx;
	}
	
	.wordsCont-close {
		position: absolute;
		top: 0;
		right: 0;
		width: 44rpx;
		height: 44rpx;
	}
</style>
