Newer
Older
gdtMimiProgram / pages / index / index.vue
dutingting on 23 Nov 2022 2 KB 注册逻辑bug修改
//首页
<template>
	<view class="index">
		<TabBar></TabBar>
		<view 
			v-for="item in menu" 
			:key="item.id" 
			class="menu-item" 
			@click="handleClick(item.id)"
		>{{item.name}}</view>
		
		<u-popup customStyle="poppo" :show="show" :round="10" mode="center" @close="show=false">
			<u--input v-model="inputValue" placeholder="填写手机号码" border="surround"></u--input>
			<button @click="confirmPhone">确认</button>
		</u-popup>
	</view>
</template>

<script>
	import { mapMutations } from 'vuex';
	import TabBar from '@/components/tabBar/tabBar.vue';
	import { getLogin, getUserProfile } from '@/utils/auth.js';
	import { verifyPhone } from '@/api/index.js';
	import { getLocationParams } from '@/common/utils.js';
	export default {
		components: {
			TabBar,
		},
		data() {
			return {
				currentPagePath: '',
				menu: [
					{
						id: 'submit',
						name: '访客信息提交'
					},
					{
						id: 'check',
						name: '物联设备状态查看'
					},
				],
				phone: '',
				show: false,
				active: '',   //点击的是哪个按钮
				inputValue: '',
			}
		},
		mounted() {
			// console.log('88888888');
			// console.log(this.$route);
			// console.log('88888888');
			// this.currentPagePath = this.$route.meta.pagePath;
			this.phone = uni.getStorageSync('registerPhone');
			getLogin();
			
		},
		onShow() {
			let pages = getCurrentPages();
			const curPage = pages[pages.length - 1];
			this.currentPagePath = curPage.route;
			uni.setStorageSync('currentPagePath', this.currentPagePath);
		},
		methods: {
			// ...mapMutations(['setNavRect'])
			async handleClick(id) {
				this.active = id;
				const sessionId = uni.getStorageSync('sessionId');
				//如果this.phone为空,先弹出获取手机号,得到手机号之后验证此人是都注册过
				if(!sessionId) {
					await getLogin();
				}
				if(this.phone) {
					this.checkphone();
				} else {  //如果没有电话就弹出填写电话的框
					this.show = true;
				}
			},
			confirmPhone() {
				this.phone = this.inputValue;
				this.checkphone();
			},
			async checkphone() {
				const res = await verifyPhone(this.phone);
				if(res === '用户未注册') {
					wx.reLaunch({
						url: '/pages/register/register'
					});
				} else {
					getUserProfile();
					if(this.active === "submit"){
						wx.navigateTo({
							url: `/pages/information/information?id=${this.active}`,
						});
					}
				}
			}
		}
	}
</script>

<style lang="scss" scoped>
	.index {
		padding-top: 40rpx;
		display: flex;
		justify-content: space-around;
		.menu-item {
			width: 320rpx;
			height: 320rpx;
			text-align: center;
			line-height: 320rpx;
			border-radius: 10rpx;
			color: #000;
			background-color: #eee;
			border: 1px solid gray;
		}
	}
	.poppo {
		padding: 30rpx;
	}
</style>
<style lang="scss">
	.index {
		.u-popup__content {
			padding: 20rpx 40rpx;
		}
	}
	
</style>