phone-code.vue 3.0 KB
Newer Older
芊里 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
<template>
	<view class="wrap">
		<view class="wrap-content">
			<view class="content">
				<!-- 顶部文字 -->
				<text class="content-top-title">请输入验证码</text>
				<login-ikonw class="login-iknow" :text="tipText"></login-ikonw>
				<!-- 登录框 (选择手机号所属国家和地区需要另行实现) -->
				<uni-forms ref="form" :value="formData" :rules="rules">
					<uni-forms-item name="phone">
						<uni-easyinput type="number" class="phone-input-box" :inputBorder="false"
							v-model="formData.code" maxlength="6" placeholder="请输入验证码">
							<template slot="right">
芊里 已提交
14
								<login-short-code :phone="formData.phone" ref="shortCode"></login-short-code>
芊里 已提交
15 16 17 18 19 20 21
							</template>
						</uni-easyinput>
					</uni-forms-item>
					<button class="send-btn-box" :disabled="!canSubmit" :type="canSubmit?'primary':'default'"
						@click="submit">登录</button>
				</uni-forms>
			</view>
L
123  
linju 已提交
22 23
		</view>
		<uni-quick-login></uni-quick-login>
芊里 已提交
24 25 26
	</view>
</template>

芊里 已提交
27 28 29 30
<script>
	import mixin from '../../common/loginPage.mixin.js';
	export default {
		mixins:[mixin],
芊里 已提交
31 32
		data() {
			return {
芊里 已提交
33
				currenPhoneArea: '',
芊里 已提交
34 35 36 37
			}
		},
		computed: {
			tipText() {
芊里 已提交
38
				return `验证码已通过短信发送至${this.currenPhoneArea} ${this.formData.phone}。`;
芊里 已提交
39 40
			},
			canSubmit() {
41
				return this.isPhone && this.isCode;
芊里 已提交
42 43
			}
		},
L
123  
linju 已提交
44
		onLoad({phoneNumber,phoneArea}) {
芊里 已提交
45
			this.formData.phone = phoneNumber;
L
123  
linju 已提交
46
			this.currenPhoneArea = '+' + Number(phoneArea);
芊里 已提交
47 48 49 50
		},
		onReady() {
			this.$refs.shortCode.start();
		},
芊里 已提交
51
		methods: {
芊里 已提交
52 53 54 55
			/**
			 * 完成并提交
			 */
			submit(){
L
123  
linju 已提交
56 57 58 59 60
				uniCloud.callFunction({//联网验证登陆
					"name": "user-center",
					"data": {
						"action": "loginBySms",
						"params":{
芊里 已提交
61
							"mobile":this.formData.phone,
L
123  
linju 已提交
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
							"code":this.formData.code
						}
					},
					success:async (e) => {
						uni.hideLoading()
						console.log(e.result);
						if(e.result.code === 0){
							uni.setStorageSync('uni_id_uid', e.result.uid)
							uni.setStorageSync('uni_id_token', e.result.token)
							uni.setStorageSync('uni_id_token_expired', e.result.tokenExpired)
							// console.log('66666=',e.result.uid,e.result.token,e.result.tokenExpired);
							delete e.result.userInfo.token
							this.setUserInfo(e.result.userInfo)
							uni.showToast({
								title: '登陆成功',
								icon: 'none'
							});
L
123  
linju 已提交
79 80 81
							uni.switchTab({
								url:"/pages/list/list"
							})
L
123  
linju 已提交
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
						}else{
							uni.showModal({
								title: '错误',
								content: e.result.msg,
								showCancel: false,
								confirmText: '知道了',
							});
						}
					},
					fail: (err) => {
						console.log(err);
						uni.showModal({
							title: '错误',
							content: JSON.stringify(err),
							showCancel: false,
							confirmText: '知道了',
						});
						if(err.errCode===30002){
							
						}
					},
					complete: () => {
						uni.hideLoading()
					}
				})
芊里 已提交
107 108 109 110 111 112 113 114 115 116 117
			}
		}
	}
</script>

<style>
	@import url("../../common/loginPage.css");
	.phone-input-box{
		margin-top: 20rpx;
	}
</style>