<template>
	<view class="flex-col page" :style="{ backgroundImage: 'url(' + bkgPubilcPath + ')' }">

		<image class="imgPos_1" :src="mineUrl + '/main/mh.png'" />
		<image class="imgPos_2" :src="mineUrl + '/main/hb.png'" />

		<view class="flex-col group">
			<view class="flex-row items-center group_2">
				<button class="avatar_button" open-type="chooseAvatar" @chooseavatar="onChooseAvatar" >
					<image class="avatar_son" mode="aspectFill" :src="publicPath + myAvatar" />
				</button>


				<view class="ml-20 flex-col items-start flex-1">
					<!-- <text class="text">微信用户</text> -->

					<input class="text" type="nickname" v-model="nickName" placeholder="请输入昵称" name="nickname"
						@blur="onUpdateNick" maxlength="10" :disabled="disabledInput"/>
					<text class="mt-18 font text_2">剩余积分:{{ myPoints }}</text>
				</view>
			</view>
			<view class="flex-row equal-division" style="z-index: 99;">
				<view class="flex-col items-center" @click="gotoOrderListPage(0)">
					<image class="shrink-0 image_2" :src="mineUrl + '/main/all.png'" />
					<text class="font text_3">全部</text>
				</view>
				<view class="flex-col items-center ml-1" @click="gotoOrderListPage(1)">
					<image class="shrink-0 image_2" :src="mineUrl + '/main/dzf.png'" />
					<text class="font text_5">待支付</text>
				</view>
				<view class="flex-col items-center ml-1" @click="gotoOrderListPage(2)">
					<image class="shrink-0 image_2" :src="mineUrl + '/main/dfh.png'" />
					<text class="font text_4">待发货</text>
				</view>
				<view class="flex-col items-center ml-1" @click="gotoOrderListPage(3)">
					<image class="shrink-0 image_2" :src="mineUrl + '/main/dsh.png'" />
					<text class="font text_6">待收货</text>
				</view>
				<view class="flex-col items-center ml-1" @click="gotoOrderListPage(4)">
					<image class="shrink-0 image_2" :src="mineUrl + '/main/ytk.png'" />
					<text class="font text_7">已退款</text>
				</view>
			</view>
		</view>
		<view class="flex-col mt-20" v-if="nickName != '未登录'" style="z-index: 99;">
			<view class="flex-col group_3">
				<view class="flex-row justify-between relative" @click="jump_addressList">
					<image class="image_3" :src="mineUrl + '/main/address.png'" />
					<image class="self-start image_4 image_5" :src="mineUrl + '/main/yjt.png'" />
					<text class="font_2 text_8 pos">地 址 列 表</text>
					<view class="divider pos_2"></view>
				</view>

				<view class="flex-row justify-between relative" @click="goToText">
					<image class="image_6" :src="mineUrl + '/main/contact.png'" />
					<image class="self-start image_4 image_7" :src="mineUrl + '/main/yjt.png'" />
					<text class="font_2 pos_3">联系人列表</text>
					<view class="divider pos_4"></view>
				</view>
			</view>
			<view class="flex-col group_3">
				<view class="flex-row justify-between relative" @click="jumpToBookingOrder">
					<image class="image_33" :src="mineUrl + '/main/wdyy.png'" />
					<image class="self-start image_4 image_5" :src="mineUrl + '/main/yjt.png'" />
					<text class="font_2 text_8 pos">我 的 预 约</text>
					<view class="divider pos_2"></view>
				</view>
			
				<view class="flex-row justify-between relative" @click="gotoRentOrder">
					<image class="image_6" :src="mineUrl + '/main/rent.png'" />
					<image class="self-start image_4 image_7" :src="mineUrl + '/main/yjt.png'" />
					<text class="font_2 pos_3">我 的 租 赁</text>
					<view class="divider pos_4"></view>
				</view>
			</view>
			<view class="flex-col group_5">
				<!-- <view class="divider view"></view> -->
				<view class="flex-row justify-between items-center group_6" @click="jumpToMyCoupon">
					<view class="flex-row items-center">
						<image class="shrink-0 image_10" :src="mineUrl + '/main/coupon.png'" />
						<text class="font_2">我的优惠券</text>
					</view>
					<image class="image_4 image_11" :src="mineUrl + '/main/yjt.png'" />
				</view>

				<view class="divider view_2"></view>

				<view class="flex-row justify-between group_7" @click="userLogout" v-if="nickName != '未登录'">
					<view class="flex-row self-center">
						<view class="flex-row shrink-0">
							<image class="shrink-0 image_12" :src="mineUrl + '/main/logout.png'" />
							<text class="ml-10 self-start font_3 text_10">退 出 登 录</text>
						</view>
					</view>
					<image class="self-start image_4 image_13" :src="mineUrl + '/main/yjt.png'" />
				</view>
			</view>
		</view>
		<view class="flex-col mt-20" v-if="nickName === '未登录'">
			<view class="flex-col group_3">
				<view class="flex-row justify-between relative" @click="gotoLogin">
					<image class="image_3" :src="mineUrl + '/main/logout.png'" />
					<image class="self-start image_4 image_5" :src="mineUrl + '/main/yjt.png'" />
					<text class="font_2 text_8 pos">立 即 登 陆</text>
					<!-- <view class="divider pos_2"></view> -->
				</view>
			</view>
		</view>
	</view>
</template>

<script setup>
	import {
		onMounted,
		ref
	} from 'vue';
	import {
		onShow,
		onLoad
	} from "@dcloudio/uni-app";
	import { baseUrl } from '../../../api/request';
	import { getFonts } from '../../../common/globalFont';
	import { mineUrl } from '../../../common/globalImagesUrl';
	import { publicPath,bkgPubilcPath } from '../../../common/globalImagesUrl';
	import { onPullDownRefresh } from '@dcloudio/uni-app';
	import { JudgeIsNullity } from '../../../common/globalFunction';

	onPullDownRefresh(async () => { //下拉刷新
		await getMyUser()
		setTimeout(() => {
			uni.stopPullDownRefresh() //停止下拉刷新
		}, 1000)
	})
	
	onShow( async ()=>{
		await getMyUser()
	})
	

	onLoad(() => {
		getFonts() //启动使从服务器下载字体
	})
	
	const gotoLogin = () => {
		uni.redirectTo({
			url: '/pages/login/login'
		})
	}

	onMounted(() => {
		getMyUser()
	})

	const goToText = () => { //跳转到联系人信息
		uni.navigateTo({
			url: '/pages/mine/Contact/testContact'
		})
	}
	const goTo = () => { //跳转到预约
		uni.navigateTo({
			url: '/pages/mine/bookings/booking'
		})
	}
	const gotoOrderListPage = (tab) => {
		uni.navigateTo({
			url: '/pages/my-order/myOrderList/myOrderList?status=' + tab
		})
	}

	const jumpToBookingOrder = () => {
		uni.navigateTo({
			url: '/pages/book/photoProductsOrderDetail/photoProductsOrderDetail'
		})
	}

	const jumpToMyCoupon = () => {
		uni.navigateTo({
			url: '/pages/coupon/MyCoupon/MyCoupon'
		})
	}

	const jump_addressList = () => {
		uni.navigateTo({
			url: '/pages/mine/addressList/addressList'
		})
	}
	const cookie = wx.getStorageSync('cookie')

	const gotoRentOrder = () => {
		uni.navigateTo({
			url: '/pages/clothesRent/clotherRentOrderList/clotherRentOrderList'
		})
	}

	const logout = async () => {
		const res = await uni.request({
			url: baseUrl + '/user/mini/logout',
			method: 'POST',
			header: {
				cookie
			}
		})
	}


	const userLogout = () => {
		uni.showModal({
			title: '提示',
			content: '您确定要退出登录吗?',
			success: (res) => {
				if (res.confirm) {
					logout()
					uni.showToast({
						title: '退出成功'
					})
					uni.redirectTo({
						url: '/pages/login/login'
					})
				}
			}
		})
	}


	let tempFile = ''
	const myAvatar = ref(mineUrl + '/main/avatar.png')
	const onChooseAvatar = (e) => {
		if(nickName.value === '未登录') {
			uni.redirectTo({
				url: '/pages/login/login'
			})
			return;
		}
		tempFile = e.detail.avatarUrl
		console.log(tempFile)
		uni.uploadFile({
			url: baseUrl + '/file/uploadFile',
			filePath: tempFile,
			name: 'file',
			formData: {
				biz: 'user_avatar'
			},
			header: {
				cookie
			},
			success: (res) => {
				myAvatar.value = JSON.parse(res.data).data
				updateMyUser()
			},
			fail: (e) => {
				console.log(e)
			}
		})
	}


	const nickName = ref('非遗雅士')
	const onUpdateNick = (e) => {
		if(nickName.value === '未登录') {
			uni.navigateTo({
				url: '/pages/login/login'
			})
			return;
		}
		if (JudgeIsNullity(nickName.value)) {
			getMyUser()
			uni.showModal({
				title: '提示',
				content: '呢称不能为空',
				showCancel: false
			})
			return 
		}
		nickName.value = e.detail.value
		updateMyUser()
	}


	const updateMyUser = async () => {
		const res = await uni.request({
			url: baseUrl + '/user/update/my',
			method: 'POST',
			header: {
				cookie
			},
			data: {
				userName: nickName.value,
				userAvatar: myAvatar.value
			}
		})
		console.log(res.data.data)
	}
	
	const disabledInput = ref(true)
	const myPoints = ref(0)
	const getMyUser = async () => {
		const res = await uni.request({
			url: baseUrl + '/user/get/login',
			method: 'GET',
			header: {
				cookie
			}
		})
		console.log('登陆状态--->',res.data)
		if(res.data.code === 40100) {
			nickName.value = '未登录'
			uni.showToast({
				icon: 'error',
				title: '未登录'
			})
		} else if(res.data.code === 1) {
			disabledInput.value = false
			nickName.value = res.data.data.userName
			myAvatar.value = res.data.data.userAvatar
			myPoints.value = res.data.data.points
		}
	}
</script>

<style lang="scss" scoped>
	.pos_99 {
		position: absolute;
		left: 3.75rpx;
		right: 37.5rpx;
		top: 124.69rpx;
	}
	
	button {
		padding: 0;
		margin: 0;
	}

	button::after {
		border: none;
	}

	.ml-1 {
		margin-left: 1.88rpx;
	}

	.mt-37 {
		margin-top: 69.38rpx;
	}

	.page {
		padding: 100rpx 0 211.88rpx;
		background-color: #ffffff00;
		background-size: 100% 100%;
		width: 100%;
		overflow-y: hidden;
		overflow-x: hidden;
		height: 100vh;
		position: relative;
	}

	.imgPos_1 {
		position: absolute;
		top: -80rpx;
		right: 0;
		opacity: 0.3;
	}

	.imgPos_2 {
		position: absolute;
		bottom: -160rpx;
		right: 0;
		opacity: 0.3;
	}

	.group {
		padding: 0 7.5rpx;
	}

	.group_2 {
		margin: 0 30rpx;
		padding: 0 7.5rpx 37.5rpx;
		border-bottom: solid 0.94rpx #aeaeae;
	}

	.image {
		border-radius: 50%;
		width: 150rpx;
		height: 150rpx;
	}

	.avatar_button {
		padding: 0;
		height: 150rpx;
		width: 150rpx;
		border-radius: 50%;
		background-color: #fff;
	}

	.avatar_son {
		border-radius: 50%;
		width: 150rpx;
		height: 150rpx;
	}

	.text {
		color: #323232;
		font-size: 40rpx;
		font-family: FangZhengFonts;
		line-height: 40.61rpx;
	}

	.font {
		font-size: 28.13rpx;
		font-family: FangZhengFonts;
		line-height: 27.02rpx;
		color: #323232;
	}

	.text_2 {
		margin-left: 7.5rpx;
		font-size: 30rpx;
		line-height: 27.9rpx;
	}

	.equal-division {
		margin-right: 5.63rpx;
	}

	.image_2 {
		width: 144rpx;
		height: 144rpx;
	}

	.text_3 {
		margin-top: -7.5rpx;
	}

	.text_5 {
		margin-top: -7.5rpx;
	}

	.text_4 {
		margin-top: -7.5rpx;
	}

	.text_6 {
		margin-top: -7.5rpx;
	}

	.text_7 {
		margin-top: -7.5rpx;
	}

	.group_3 {
		padding: 0 35.63rpx;
	}
	
	.image_33 {
		width: 120rpx;
		height: 123.75rpx;
	}
	
	.image_3 {
		width: 120rpx;
		height: 123.75rpx;
	}
		
	.image_4 {
		width: 39.38rpx;
		height: 41.25rpx;
	}

	.image_5 {
		margin-right: 31.88rpx;
		margin-top: 52.5rpx;
	}

	.font_2 {
		font-size: 37.5rpx;
		font-family: FangZhengFonts;
		line-height: 36.47rpx;
		color: #323232;
	}

	.text_8 {
		line-height: 35.74rpx;
	}

	.pos {
		position: absolute;
		left: 121.76rpx;
		top: 50%;
		transform: translateY(-50%);
	}

	.divider {
		background-color: #aeaeae;
		height: 0.94rpx;
	}

	.pos_2 {
		position: absolute;
		left: 3.75rpx;
		right: 37.5rpx;
		top: 117.19rpx;
	}

	.image_6 {
		width: 120rpx;
		height: 125.63rpx;
	}

	.image_7 {
		margin-right: 31.88rpx;
		margin-top: 52.5rpx;
	}

	.pos_3 {
		position: absolute;
		left: 116.72rpx;
		top: 50%;
		transform: translateY(-50%);
	}

	.pos_4 {
		position: absolute;
		left: 3.75rpx;
		right: 37.5rpx;
		top: 124.69rpx;
	}

	.group_4 {
		margin-top: 4rpx;
		padding: 0 28.13rpx 11.25rpx;
	}

	.image_8 {
		width: 133.13rpx;
		height: 114.38rpx;
	}

	.text_9 {
		padding-top: 20rpx;
		margin-left: -7.5rpx;
		line-height: 33.99rpx;
	}

	.image_9 {
		margin-right: 41.25rpx;
		margin-top: 45.5rpx;
	}

	.group_5 {
		padding: 0 39.38rpx;
	}

	.view {
		margin-right: 33.75rpx;
	}

	.group_6 {
		padding: 22.5rpx 0 7.5rpx;
	}

	.image_10 {
		width: 118.13rpx;
		height: 101.25rpx;
	}

	.image_11 {
		margin-right: 28.13rpx;
	}

	.view_2 {
		margin-right: 31.88rpx;
	}

	.group_7 {
		padding: 28.13rpx 7.5rpx 0;
		z-index: 9;
	}

	.image_12 {
		width: 91.88rpx;
		height: 91.88rpx;
	}

	.font_3 {
		font-size: 37.5rpx;
		font-family: FangZhengFonts;
		line-height: 30.47rpx;
		color: #323232;
	}

	.text_10 {
		margin-top: 26.25rpx;
	}

	.text_11 {
		margin-top: 22.5rpx;
	}

	.image_13 {
		margin-right: 20.63rpx;
		margin-top: 16.88rpx;
	}

	@import url(../../../common/css/global.css);
</style>