<template>
	<view class="container">
		<view class="user-box">
			<view class="icon-name-box">
				<view class="icon-box">
					<image class="icon"
					:src="user.userIcon ?? '/static/images/avatar-img/1.png'"
					@click="onIconOpen"
					></image>
				</view>
				<view class="name-box">
					<view class="name" v-if="isLogin">
						<view class="text">
							{{user.name}}
						</view>
						<view class="iconfont icon-xiugai" @click="onIconOpen"></view>
					</view>
					<view class="function" v-else>
						<view class="function-item" @click="toLogin">
							登录
						</view>/
						<view class="function-item" @click="toRegister">
							注册
						</view>
					</view>
				</view>
			</view>
			<view class="info-box">
				<view class="info-item-box">
					<view class="label">
						任职机构:
					</view>
					<view class="text">
						{{isLogin ? user.corpName ?? '无' : ''}}
					</view>
				</view>
				<view class="info-item-box">
					<view class="label">
						机构备案证号:
					</view>
					<view class="text">
						{{isLogin ? user.corpRegNo ?? '无' : ''}}
					</view>
				</view>
			</view>
		</view>
		<view class="certificate-box">
			<view class="title-box">
				我的证件
			</view>
			<view class="list-box">
				<view class="list-item-box" @click="onShowCreditCard">
					<CreditCard :isLogin="isLogin" :data="creditCard"></CreditCard>
				</view>
				<view class="list-item-box" :class="[isLogin ? (zhongjie.zsbh ? 'zhongjie-back' : 'zhongjie-back-zhiyin') : 'zhongjie-back-login']" @click="onZhongJieRenZhengClick(zhongjie.zsbh)">
				</view>
				<view class="list-item-box" :class="[isLogin ? (anjie.zsbh ? 'anjie-back' : 'anjie-back-zhiyin') : 'anjie-back-login']" @click="onAnJieRenZhengClick(anjie.zsbh)">
				</view>
			</view>
		</view>
		<u-popup v-model="showCreditCard" mode="center">
			<view class="certificate-preview-box">
				<CreditCard :isLogin="isLogin" :size="`normal ${creditCard.isAgtNTAsst ? 'green' : creditCard.isAgtNT ? 'red' : 'blue'}`" :data="creditCard" @guide="onCreditZhiYin" @previewImage="onPreviewImage"></CreditCard>
			</view>
		</u-popup>
		<view class="menu-box">
			<view class="menu-item-box" @click="onHuiFeiJiaoJiao()">
				<view class="icon-box">
					<view class="iconfont icon-qianbi"></view>
				</view>
				<view class="content-box">
					会费缴交
				</view>
				<view class="suffix-box">
					<view class="iconfont icon-chevron-right"></view>
				</view>
			</view>
			<view class="menu-item-box" @click="onJiXuJiaoYuNianJian()">
				<view class="icon-box">
					<view class="iconfont icon-nianjianmingxi"></view>
				</view>
				<view class="content-box">
					继续教育年检
				</view>
				<view class="suffix-box">
					<view class="iconfont icon-chevron-right"></view>
				</view>
			</view>
			<view class="menu-item-box" @click="onWoDeDingDan()">
				<view class="icon-box">
					<view class="iconfont icon-dingdan"></view>
				</view>
				<view class="content-box">
					我的订单
				</view>
				<view class="suffix-box">
					<view class="iconfont icon-chevron-right"></view>
				</view>
			</view>
			<!-- <view class="menu-item-box">
				<view class="icon-box">
					<view class="iconfont icon-xiazai"></view>
				</view>
				<view class="content-box">
					视频缓存
				</view>
				<view class="suffix-box">
					<view class="iconfont icon-chevron-right"></view>
				</view>
			</view> -->
			<view class="menu-item-box">
				<view class="icon-box">
					<view class="iconfont icon-shoucang"></view>
				</view>
				<view class="content-box" @click="onWoDeShouChang()">
					我的收藏
				</view>
				<view class="suffix-box">
					<view class="iconfont icon-chevron-right"></view>
				</view>
			</view>
			<view class="menu-item-box" @click="onChangJianWenTi()" v-if="false">
				<view class="icon-box">
					<view class="iconfont icon-anquan"></view>
				</view>
				<view class="content-box">
					常见问题
				</view>
				<view class="suffix-box">
					<view class="iconfont icon-chevron-right"></view>
				</view>
			</view>
			<view class="menu-item-box" @click="onLianXiWoMen()">
				<view class="icon-box">
					<view class="iconfont icon-yonghuzu"></view>
				</view>
				<view class="content-box">
					联系我们
				</view>
				<view class="suffix-box">
					<view class="iconfont icon-chevron-right"></view>
				</view>
			</view>
			<view class="menu-item-box" @click="onLogout()">
				<view class="icon-box">
					<view class="iconfont icon-shezhi"></view>
				</view>
				<view class="content-box">
					退出/切换账号
				</view>
				<view class="suffix-box">
					<view class="iconfont icon-chevron-right"></view>
				</view>
			</view>
		</view>
		<u-popup v-model="iconVisible" mode="center" border-radius="10">
			<view class="icon-list-box">
				<view class="title">
					修改头像
				</view>
				<u-row gutter="20">
					<u-col span="3" v-for="icon in iconList" :key="icon.name" @click="currentIcon = icon">
						<view class="icon-item" :class="{'icon-active': icon.name === currentIcon.name}">
							<image class="icon" :src="icon.url" mode="aspectFill"></image>
						</view>
					</u-col>
				</u-row>
				<view class="button-box">
					<view class="button-item">
						<u-button type="primary" @click="onIconSubmit">修改</u-button>
					</view>
					<view class="button-item">
						<u-button type="info" @click="onIconCancel">取消</u-button>
					</view>
				</view>
			</view>
		</u-popup>
		<!-- 与包裹页面所有内容的元素u-page同级,且在它的下方 -->
		<u-tabbar v-model="tabbarCurrentIndex" :list="tabbarList" icon-size="50" :active-color="tabbarActiveColor" :inactive-color="tabbarInactiveColor"></u-tabbar>
	</view>
</template>

<script setup>
	import CreditCard from '@/components/creditCard.vue'

	import { ref, computed } from 'vue'
	import { onLoad, onShow } from '@dcloudio/uni-app'
	import { getToken, removeToken } from '@/utils/auth.js'
	import { useAuthStore } from '@/store/authStore'

	import { getCreditCard, getZhongjie, getAnjie, getIconList, updateIcon } from '@/api/user.js'
	import { msgError, msgSuccess, showConfirm } from '@/utils/common'

	import { useTabbarStore } from '@/store/tabbarStore.js'
	const tabbarStore = useTabbarStore()
	// 底部导航栏数据
	const tabbarList = computed(() => {
		return tabbarStore.list
	})
	// 底部导航栏选中颜色
	const tabbarActiveColor = computed(() => {
		return tabbarStore.activeColor
	})
	// 底部导航栏未选中颜色
	const tabbarInactiveColor = computed(() => {
		return tabbarStore.inactiveColor
	})
	const tabbarCurrentIndex = 0

	const authStore = useAuthStore()

	// 用户信息
	const user = ref({
		userIcon: null,
		name: '某某某',
		corpName: '广州市xx地产有限公司',
		corpRegNo: '123xxxx'
	})

	const iconVisible = ref(false)
	const iconList = ref([
		{
			name: '',
			src: ''
		}
	])
	const currentIcon = ref({
		name: '',
		src: ''
	})
	function onIconOpen() {
		if (!isLogin.value) {
			return
		}
		currentIcon.value = iconList.value[0]
		iconVisible.value = true
	}
	function onIconSubmit() {
		updateIcon({userIcon: currentIcon.value.name}).then(res => {
			if (res && res.message === 'success') {
				msgSuccess('修改成功')
				authStore.setUserIcon(currentIcon.value.url)
				iconVisible.value = false
			} else {
				msgError('修改失败')
			}
		})
	}
	function onIconCancel() {
		iconVisible.value = false
	}

	// 是否预览信用信息卡
	const showCreditCard = ref(false)
	// 信用信息卡
	const creditCard = ref({
		creditNo: '',
		name: '',
		date: '',
		publisher: '',
		headUrl: '',
		url: '',
		isAgtNT: false,
		isAgtNTAsst: false
	})
	function onShowCreditCard() {
		showCreditCard.value = false
		if (isLogin.value) {
			showCreditCard.value = true
			// if (creditCard.value.creditNo) {
			// 	showCreditCard.value = true
			// } else {
			// 	uni.navigateTo({
			// 		url: '/pages/zhiyin/zhiyin?title=信息信用卡指引'
			// 	})
			// }
		}
	}
	function onCreditZhiYin() {
		uni.navigateTo({
			url: '/pages/zhiyin/zhiyin?title=信息信用卡指引'
		})
	}
	function onPreviewImage(url) {
		uni.previewImage({
			current: 1,
			urls: [url],
			showmenu: false
		})
	}
	// 中介认证点击
	function onZhongJieRenZhengClick(valid) {
		if (!isLogin.value) {
			return
		}
		if (valid) {
			uni.navigateTo({
				url: '/pages/certificateDetail/certificateDetail?type=zhongjie&title=广州市房地产中介从业人员水平认证证书'
			})
		} else {
			uni.navigateTo({
				url: '/pages/zhiyin/zhiyin?title=中介认证报名指引'
			})
		}
	}
	// 按揭认证点击
	function onAnJieRenZhengClick(valid) {
		if (!isLogin.value) {
			return
		}
		if (valid) {
			uni.navigateTo({
				url: '/pages/certificateDetail/certificateDetail?type=anjie&title=广州市房地产按揭从业人员水平认证证书'
			})
		} else {
			uni.navigateTo({
				url: '/pages/zhiyin/zhiyin?title=按揭认证报名指引'
			})
		}
	}
	const zhongjie = ref({
		zsbh: null,
		fzbm: null,
		fzrq: null,
		xm: null,
		xb: null,
		sfzh: null,
		whcd: null
	})
	const anjie = ref({
		zsbh: null,
		fzbm: null,
		fzrq: null,
		xm: null,
		xb: null,
		sfzh: null,
		whcd: null
	})
	function showMsg() {
		showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => {
			if (res.confirm) {
				uni.reLaunch({
					url: '/pages/initial/initial'
				});
			}
		})
	}

	// 点击-会费缴交
	function onHuiFeiJiaoJiao() {
		if (!isLogin.value) {
			showMsg()
			return
		}
		uni.navigateTo({
			url: '/pages/huifeijiaojiaoRukou/huifeijiaojiaoRukou'
		})
	}
	// 点击-继续教育年检
	function onJiXuJiaoYuNianJian() {
		if (!isLogin.value) {
			showMsg()
			return
		}
		uni.navigateTo({
			url: '/pages/jixujiaoyunianjian/jixujiaoyunianjian'
		})
	}
	// 点击-我的订单
	function onWoDeDingDan() {
		if (!isLogin.value) {
			showMsg()
			return
		}
		uni.navigateTo({
			url: '/pages/order/order'
		})
	}
	// 点击-我的收藏
	function onWoDeShouChang() {
		if (!isLogin.value) {
			showMsg()
			return
		}
		uni.navigateTo({
			url: '/pages/collect/collect'
		})
	}
	// 点击-常见问题
	function onChangJianWenTi() {
		console.log('点击-常见问题');
	}
	// 点击-联系我们
	function onLianXiWoMen() {
		uni.navigateTo({
			url: '/pages/contactUs/contactUs'
		})
	}
	// 点击-退出登录
	function onLogout() {
		if (!isLogin.value) {
			return
		}
		showConfirm('是否确认退出登录').then(res => {
			if (res.confirm) {
				authStore.clearAuthToken()
				authStore.cleanUserInfo()
				uni.redirectTo({
					url: '/pages/initial/initial'
				})
			}
		})

	}

	function toLogin() {
		uni.navigateTo({
			url: '/pages/initial/initial'
		})
	}
	function toRegister() {
		uni.navigateTo({
			url: '/pages/register/register'
		})
	}

	const isLogin = computed(() => {
		return authStore.token ? true : false
	})

	onShow(() => {
		user.value = authStore.userInfo
		getCreditCard().then(res => {
			if (res && res.message === 'success') {
				creditCard.value = res.data
				authStore.setCreditCard(res.data)

				getZhongjie().then(res => {
					if (res && res.message === 'success') {
						zhongjie.value = res.data ?? {zsbh: null}
					}
				})
				getAnjie().then(res => {
					if (res && res.message === 'success') {
						anjie.value = res.data ?? {zsbh: null}
					}
				})
				getIconList().then(res => {
					if (res && res.message === 'success') {
						iconList.value = res.data
					}
				})
			}
		})
	})
</script>

<style lang="scss" scoped>
	$certificate-width: 220rpx;
	$certificate-height: 300rpx;
	.container {
		height: 100vh;
		width: 100vw;
		padding: 0 20rpx;
		background: rgb(141, 204, 255);
		background: -moz-linear-gradient(   90deg, rgb(141, 204, 255) 10%, rgb(247, 247, 247) 30%);
		background: -webkit-linear-gradient(90deg, rgb(141, 204, 255) 10%, rgb(247, 247, 247) 30%);
		background: -o-linear-gradient(     90deg, rgb(141, 204, 255) 10%, rgb(247, 247, 247) 30%);
		background: -ms-linear-gradient(    90deg, rgb(141, 204, 255) 10%, rgb(247, 247, 247) 30%);
		background: linear-gradient(       180deg, rgb(141, 204, 255) 10%, rgb(247, 247, 247) 30%);

		.user-box {
			padding: 0 40rpx;
			.icon-name-box {
				display: flex;
				align-items: center;
				gap: 30rpx;
				margin-bottom: 15rpx;
				.icon-box {
					width: 90rpx;
					height: 90rpx;
					background-color: #fff;
					border-radius: 50%;
					overflow: hidden;
					-webkit-box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(168, 221, 239, 0.75);
					-moz-box-shadow:    0rpx 0rpx 10rpx 0rpx rgba(168, 221, 239, 0.75);
					box-shadow:         0rpx 0rpx 10rpx 0rpx rgba(168, 221, 239, 0.75);
					.icon {
						height: 100%;
						width: 100%;
						object-fit: cover;
					}
				}
				.name-box {
					font-size: $uni-title-font-size-1;
					letter-spacing: 5rpx;

					.name {
						display: flex;
						gap: 5rpx;
						.iconfont {
							font-size: $uni-font-size-3;
						}
					}
					.function {
						display: flex;
						gap: 5rpx;
					}
				}
			}
			.info-box {
				.info-item-box {
					display: flex;
					align-items: center;
					gap: 10rpx;
					margin-bottom: 10rpx;
					font-size: $uni-font-size-1;
					font-weight: bold;
					letter-spacing: 3rpx;
				}
			}
		}

		.certificate-box {
			padding: 0 20rpx;
			margin-top: 20rpx;
			.title-box {
				font-size: $uni-title-font-size-3;
				font-weight: bold;
			}
			.list-box {
				padding: 20rpx 50rpx;
				width: 100%;
				display: flex;
				gap: 130rpx;

				overflow-x: scroll;
				overflow-y: hidden;
				white-space:nowrap;

				.list-item-box {
					flex-shrink: 0;
					height: $certificate-height;
					width: $certificate-width;
					background-color: #fff;

					&:nth-child(1) {
						background-color: #fff;
					}
				}

				.zhongjie-back {
					z-index: 999;
					@include backgroundImg('http://www.gzrea.org.cn:8543/icon/wxmp/zhengshu/zhongjie-back.png')
				}
				.zhongjie-back-login {
					@include backgroundImg('http://www.gzrea.org.cn:8543/icon/wxmp/zhengshu/zhongjie-back-login.png')
				}
				.zhongjie-back-zhiyin {
					@include backgroundImg('http://www.gzrea.org.cn:8543/icon/wxmp/zhengshu/zhongjie-back-zhiyin.png')
				}
				.anjie-back {
					z-index: 999;
					@include backgroundImg('http://www.gzrea.org.cn:8543/icon/wxmp/zhengshu/anjie-back.png')
				}
				.anjie-back-login {
					@include backgroundImg('http://www.gzrea.org.cn:8543/icon/wxmp/zhengshu/anjie-back-login.png')
				}
				.anjie-back-zhiyin {
					@include backgroundImg('http://www.gzrea.org.cn:8543/icon/wxmp/zhengshu/anjie-back-zhiyin.png')
				}
			}
		}

		.certificate-preview-box {
			height: 65vh;
			width: 75vw;
		}

		.menu-box {
			padding: 20rpx 20rpx;
			margin: 10rpx 0;
			background-color: #fff;
			width: 100%;
			border-radius: $uni-card-border-radius;

			-webkit-box-shadow: 0px 0px 12rpx 0px rgba(50, 50, 50, 0.25);
			-moz-box-shadow:    0px 0px 12rpx 0px rgba(50, 50, 50, 0.25);
			box-shadow:         0px 0px 12rpx 0px rgba(50, 50, 50, 0.25);

			.menu-item-box {
				height: 100rpx;
				font-size: $uni-font-size-1;
				padding:  10rpx;
				display: flex;
				gap: 10rpx;
				align-items: center;
				border-radius: $uni-card-border-radius;
				&:active {
					background-color: $uni-bg-color-hover;
				}
				.icon-box {
					width: 5%;
					font-weight: bold;
				}
				.content-box {
					width: 75%;
					letter-spacing: 3rpx;
				}
				.suffix-box {
					width: 20%;
					text-align: right;
				}
			}
		}

		.icon-list-box {
			padding: 30rpx;
			width: 90vw;
			.title {
				font-size: $uni-title-font-size-2;
				font-weight: bold;
				margin-bottom: 30rpx;
			}
			.icon-item {
				width: 120rpx;
				height: 120rpx;
				border-radius: 50%;
				border: 1px solid #ccc;
				margin-bottom: 20rpx;
				.icon {
					height: 100%;
					width: 100%;
					object-fit: cover;
				}
			}
			.icon-active {
				border: 1px solid $uni-color-primary;
			}
			.button-box {
				margin-top: 30rpx;
				display: flex;
				align-items: center;
				gap: 30rpx;
				.button-item {
					&:first-child{
						margin-left: auto;
					}
					&:last-child {
						margin-right: auto;
					}
				}
			}
		}
	}
</style>