init
This commit is contained in:
		
							
								
								
									
										114
									
								
								project-wl-yonghuduan-uniapp-vue3/pages/my/index.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								project-wl-yonghuduan-uniapp-vue3/pages/my/index.scss
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										198
									
								
								project-wl-yonghuduan-uniapp-vue3/pages/my/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										198
									
								
								project-wl-yonghuduan-uniapp-vue3/pages/my/index.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,198 @@
 | 
			
		||||
<!-- 我的页面 -->
 | 
			
		||||
<template>
 | 
			
		||||
	<view class="my">
 | 
			
		||||
		<!-- banner图 -->
 | 
			
		||||
		<view class="banner">
 | 
			
		||||
			<!-- 头像用户名 -->
 | 
			
		||||
			<view class="headBox" @click="toLogin">
 | 
			
		||||
				<image :src="avatarUrl" />
 | 
			
		||||
				<view class="userName">{{nickName}}</view>
 | 
			
		||||
			</view>
 | 
			
		||||
		</view>
 | 
			
		||||
		<!-- 地址簿,实名认证,专属快递员 -->
 | 
			
		||||
		<view class="list-top">
 | 
			
		||||
			<view class="list-item" @click="handleToAddress">
 | 
			
		||||
				<view class="left">
 | 
			
		||||
					<image class="icon" src='../../static/my-address.png' />
 | 
			
		||||
					<view class="label">地址簿</view>
 | 
			
		||||
				</view>
 | 
			
		||||
 | 
			
		||||
				<image class="arrow" src='../../static/icon15.png' />
 | 
			
		||||
			</view>
 | 
			
		||||
			<view class="list-item" @click="handleTorealName">
 | 
			
		||||
				<view class="left">
 | 
			
		||||
					<image class="icon" src='../../static/my-name.png' />
 | 
			
		||||
					<view class="label">实名认证</view>
 | 
			
		||||
				</view>
 | 
			
		||||
 | 
			
		||||
				<image class="arrow" src='../../static/icon15.png' />
 | 
			
		||||
			</view>
 | 
			
		||||
			<view class="list-item" @click="handleSecondQi">
 | 
			
		||||
				<view class="left">
 | 
			
		||||
					<image class="icon" src='../../static/my-send.png' />
 | 
			
		||||
					<view class="label">专属快递员</view>
 | 
			
		||||
				</view>
 | 
			
		||||
 | 
			
		||||
				<image class="arrow" src='../../static/icon15.png' />
 | 
			
		||||
			</view>
 | 
			
		||||
		</view>
 | 
			
		||||
 | 
			
		||||
		<view class="list-bottom" v-if="token">
 | 
			
		||||
			<picker mode="selector" @change="changeSex" :value="sex" :range="sexList">
 | 
			
		||||
				<view class="list-item sex">
 | 
			
		||||
					<view class="label">性别</view>
 | 
			
		||||
					<view class="item-value">{{sex?'男':'女'}}</view>
 | 
			
		||||
					<image class="arrow" src='../../static/icon15.png' />
 | 
			
		||||
				</view>
 | 
			
		||||
			</picker>
 | 
			
		||||
			<view class="line"></view>
 | 
			
		||||
			<picker mode="date" :value="birthday" :start="startDate" :end="endDate" @change="getDateChange">
 | 
			
		||||
				<view class="list-item">
 | 
			
		||||
					<view class="label">生日</view>
 | 
			
		||||
					<view class="item-value">{{birthday}}</view>
 | 
			
		||||
					<image class="arrow" src='../../static/icon15.png' />
 | 
			
		||||
				</view>
 | 
			
		||||
			</picker>
 | 
			
		||||
		</view>
 | 
			
		||||
 | 
			
		||||
		<view class="logout" @click="handleLogout" v-if="token">退出登录</view>
 | 
			
		||||
	</view>
 | 
			
		||||
	<!-- end -->
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup>
 | 
			
		||||
	import {
 | 
			
		||||
		ref,
 | 
			
		||||
		reactive,
 | 
			
		||||
	} from 'vue';
 | 
			
		||||
	import {
 | 
			
		||||
		getUserInfo,
 | 
			
		||||
		updateUserInfo
 | 
			
		||||
	} from '@/pages/api/my.js';
 | 
			
		||||
	import {
 | 
			
		||||
		onShow,
 | 
			
		||||
	} from '@dcloudio/uni-app';
 | 
			
		||||
	import {
 | 
			
		||||
		handleSecondQi
 | 
			
		||||
	} from '@/utils/index.js'
 | 
			
		||||
	const token = ref()
 | 
			
		||||
	const sexList = reactive(['女', '男'])
 | 
			
		||||
	let nickName = ref('')
 | 
			
		||||
	let avatarUrl = ref('')
 | 
			
		||||
	let startDate = ref()
 | 
			
		||||
	let endDate = ref()
 | 
			
		||||
	let idCard = ref('')
 | 
			
		||||
	let name = ref('')
 | 
			
		||||
	let sex = ref(1)
 | 
			
		||||
	let birthday = ref('1995-09-01')
 | 
			
		||||
	const isRealNameAuth = ref(false)
 | 
			
		||||
	onShow(() => {
 | 
			
		||||
		startDate.value = getDate('start')
 | 
			
		||||
		endDate.value = getDate('end')
 | 
			
		||||
		nickName.value = uni.getStorageSync('nickName') || '神领用户'
 | 
			
		||||
		avatarUrl.value = uni.getStorageSync('avatarUrl') || '../../static/defaultHeadImg.png'
 | 
			
		||||
		token.value = uni.getStorageSync('token')
 | 
			
		||||
		baseUserInfo()
 | 
			
		||||
	})
 | 
			
		||||
	//退出登录
 | 
			
		||||
	const handleLogout = () => {
 | 
			
		||||
		uni.removeStorageSync('token');
 | 
			
		||||
		uni.removeStorageSync('nickName');
 | 
			
		||||
		uni.removeStorageSync('avatarUrl');
 | 
			
		||||
		uni.switchTab({
 | 
			
		||||
			url: '/pages/index/index'
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
	const baseUserInfo = () => {
 | 
			
		||||
		getUserInfo().then((res) => {
 | 
			
		||||
			if (res) {
 | 
			
		||||
				isRealNameAuth.value = Boolean(res.data.idCardNoVerify)
 | 
			
		||||
				idCard.value = res.data.idCardNo || ''
 | 
			
		||||
				name.value = res.data.name
 | 
			
		||||
				sex.value = res.data.sex
 | 
			
		||||
				birthday.value = res.data.birthday
 | 
			
		||||
				nickName.value = res.data.phone
 | 
			
		||||
				uni.setStorageSync('nickName', res.data.phone);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
	const getDate = (type) => {
 | 
			
		||||
		const date = new Date()
 | 
			
		||||
		let year = date.getFullYear()
 | 
			
		||||
		let month = date.getMonth() + 1
 | 
			
		||||
		let day = date.getDate()
 | 
			
		||||
		if (type === "start") {
 | 
			
		||||
			year = year - 60
 | 
			
		||||
		} else {
 | 
			
		||||
			year = year + 2
 | 
			
		||||
		}
 | 
			
		||||
		month = month > 9 ? month : "0" + month
 | 
			
		||||
		day = day > 9 ? day : '0' + day
 | 
			
		||||
		return `${year}-${month}-${day}`
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
	const toLogin = () => {
 | 
			
		||||
		if (uni.getStorageSync('token')) {
 | 
			
		||||
			getUserInfoFunc()
 | 
			
		||||
		} else {
 | 
			
		||||
			uni.navigateTo({
 | 
			
		||||
				url: '/pages/login/index'
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	//跳转到地址簿
 | 
			
		||||
	const handleToAddress = () => {
 | 
			
		||||
		uni.navigateTo({
 | 
			
		||||
			url: uni.getStorageSync('token') ? '/pages/address/index?type=address&isFromAddress=true' :
 | 
			
		||||
				'/pages/login/index'
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
	//跳转到实名认证页面
 | 
			
		||||
	const handleTorealName = () => {
 | 
			
		||||
		if (!uni.getStorageSync('token')) {
 | 
			
		||||
			return uni.navigateTo({
 | 
			
		||||
				url: '/pages/login/index'
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
		if (isRealNameAuth.value) {
 | 
			
		||||
			uni.navigateTo({
 | 
			
		||||
				url: '/subPages/authentication-success/index?name=' + name.value + '&idCard=' + idCard.value
 | 
			
		||||
			});
 | 
			
		||||
		} else {
 | 
			
		||||
			uni.navigateTo({
 | 
			
		||||
				url: '/subPages/realName-authentication/index'
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const getDateChange = (e) => {
 | 
			
		||||
		updateUserInfo({
 | 
			
		||||
			birthday: e.detail.value
 | 
			
		||||
		}).then((res) => {
 | 
			
		||||
			baseUserInfo()
 | 
			
		||||
		}).catch((err) => {
 | 
			
		||||
			uni.showToast({
 | 
			
		||||
				title: '网络异常',
 | 
			
		||||
				duration: 2000,
 | 
			
		||||
				icon: 'none'
 | 
			
		||||
			});
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const changeSex = (e) => {
 | 
			
		||||
		updateUserInfo({
 | 
			
		||||
			sex: Number(e.detail.value)
 | 
			
		||||
		}).then((res) => {
 | 
			
		||||
			baseUserInfo()
 | 
			
		||||
		}).catch((err) => {
 | 
			
		||||
			uni.showToast({
 | 
			
		||||
				title: '网络异常',
 | 
			
		||||
				duration: 2000,
 | 
			
		||||
				icon: 'none'
 | 
			
		||||
			});
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
</script>
 | 
			
		||||
<style src="./index.scss" lang="scss" scoped></style>
 | 
			
		||||
		Reference in New Issue
	
	Block a user