/* * 登录 */ import React, { Component } from 'react'; import { StyleSheet, Text, View, Image, TouchableOpacity, StatusBar, ToastAndroid, TextInput } from 'react-native'; import BasePage from './BasePage'; import Dimensions from './utils/dimensions'; import DeviceInfo from 'react-native-device-info'; import commonutil from './utils/commonutil'; import http_user from './services/user'; import wechat from './utils/wechat'; export default class Login extends BasePage { state = { phone_num: '', verification_text: '获取验证码', verification_code: '', http_verification_code: '', deviceCode: '' }; render() { return ( 跳过 手机号 this.setState({ phone_num: text })} value={this.state.phone_num} placeholder={'请输入手机号'} /> 验证码 this.setState({ verification_code: text })} value={this.state.verification_code} placeholder={'请输入验证码'} /> {this.state.verification_text} 登录 微信登录 ); } componentWillMount() { console.log('================================================'); // e.g US console.log('Device getUniqueID', DeviceInfo.getUniqueID()); // e.g US console.log('Device getSerialNumber', DeviceInfo.getSerialNumber()); // e.g US console.log('================================================'); // e.g US this.setState({ deviceCode: DeviceInfo.getUniqueID() + DeviceInfo.getSerialNumber() }); } getVerification() { if (this.state.verification_text === '获取验证码') { if (commonutil.isPoneAvailable(this.state.phone_num)) { http_user.getVerificationCode(this.state.phone_num).then((result) => { if (result.code != 200) { ToastAndroid.show(result.message, ToastAndroid.SHORT); return; } else { this.setState({ http_verification_code: result.data }); } this.setState({ verification_text: '60' }); this.CountDown(); }); } else { ToastAndroid.show('请输入正确的手机号', ToastAndroid.SHORT); } } else { } } CountDown() { if (parseInt(this.state.verification_text) == 0) { this.setState({ verification_text: '获取验证码' }); } else { this.count_timeout = setTimeout(() => { this.setState({ verification_text: parseInt(this.state.verification_text) - 1 + '' }); this.CountDown(); }, 1000); } } clickOK() { if (!commonutil.isPoneAvailable(this.state.phone_num)) { ToastAndroid.show('请输入正确的手机号', ToastAndroid.SHORT); return; } if (this.state.verification_code == '') { ToastAndroid.show('请输入验证码', ToastAndroid.SHORT); return; } if (this.state.http_verification_code == this.state.verification_code) { let option = { method: 'POST', //请求方法 //请求体 body: { mobile: this.state.phone_num, sign: this.state.verification_code, channel: commonutil.getAppCode(), deviceCode: this.state.deviceCode } }; http_user.mobileLoginAndReg(option).then((result) => { if (result.code == 200) { var usermap = new Map(); usermap.set('isVisitor', result.data.isVisitor); usermap.set('birthday', result.data.user.birthday); usermap.set('channel', result.data.user.channel); usermap.set('city', result.data.user.city); usermap.set('country', result.data.user.country); usermap.set('eid', result.data.user.eid); usermap.set('gmtCreated', result.data.user.gmtCreated); usermap.set('gmtModified', result.data.user.gmtModified); usermap.set('grade', result.data.user.grade); usermap.set('mobile', result.data.user.mobile); usermap.set('nickName', result.data.user.nickName); usermap.set('province', result.data.user.province); usermap.set('school', result.data.user.school); usermap.set('sex', result.data.user.sex); usermap.set('status', result.data.user.status); usermap.set('uid', result.data.user.uid); usermap.set('ageGroup', result.data.user.ageGroup); map.set('avatar', res.data.avatar); //登陆成功了,可以存储用户数据到本地 console.log('===============手机号登录成功====================='); console.log(commonutil.mapToJson(usermap)); console.log('===============手机号登录成功====================='); clearTimeout(this.count_timeout); this.saveUserInfo(commonutil.mapToJson(usermap)); this.clearPageToNext('SchoolAge'); } else { ToastAndroid.show(result.message, ToastAndroid.SHORT); } }); } else { ToastAndroid.show('验证码不正确', ToastAndroid.SHORT); } } jumpBtn() { http_user.jumpLogin(this.state.deviceCode, commonutil.getAppCode()).then((result) => { if (result.code == 200) { //登陆成功了,可以存储用户数据到本地 if (result.data.isVisitor) { var usermap = new Map(); usermap.set('isVisitor', result.data.isVisitor); usermap.set('channel', result.data.visitor.channel + ''); usermap.set('birthday', ''); usermap.set('city', ''); usermap.set('gmtCreated', result.data.visitor.gmtCreated + ''); usermap.set('gmtModified', result.data.visitor.gmtModified + ''); usermap.set('country', ''); usermap.set('eid', ''); usermap.set('grade', ''); usermap.set('mobile', ''); usermap.set('nickName', ''); usermap.set('province', ''); usermap.set('school', ''); usermap.set('sex', ''); usermap.set('status', ''); usermap.set('uid', ''); usermap.set('ageGroup', 'PRESCHOOL'); usermap.set('avatar', ''); this.saveUserInfo(commonutil.mapToJson(usermap)); this.clearPageToNext('SchoolAge'); } } else { ToastAndroid.show(result.message, ToastAndroid.SHORT); } }); } wechatLogin() { wechat.wechatLogin((user) => { let option = { method: 'POST', body: { channel: commonutil.getAppCode(), deviceCode: this.state.deviceCode, openId: user['openid'], unionId: user['unionid'], avatar: user['headimgurl'], sex: user['sex'], nickName: user['nickname'] } }; http_user.wechatLogin(option).then((result) => { if (result.code == 200) { //登陆成功了,可以存储用户数据到本地 var usermap = new Map(); usermap.set('isVisitor', result.data.isVisitor); usermap.set('birthday', result.data.user.birthday); usermap.set('channel', result.data.user.channel); usermap.set('city', result.data.user.city); usermap.set('country', result.data.user.country); usermap.set('eid', result.data.user.eid); usermap.set('gmtCreated', result.data.user.gmtCreated); usermap.set('gmtModified', result.data.user.gmtModified); usermap.set('grade', result.data.user.grade); usermap.set('mobile', result.data.user.mobile); usermap.set('nickName', result.data.user.nickName); usermap.set('province', result.data.user.province); usermap.set('school', result.data.user.school); usermap.set('sex', result.data.user.sex); usermap.set('status', result.data.user.status); usermap.set('uid', result.data.user.uid); usermap.set('ageGroup', result.data.user.ageGroup); usermap.set('avatar', result.data.user.avatar); console.log('===============微信登录成功====================='); console.log(commonutil.mapToJson(usermap)); console.log('===============微信登录成功====================='); this.saveUserInfo(commonutil.mapToJson(usermap)); this.clearPageToNext('SchoolAge'); } else { ToastAndroid.show(result.message, ToastAndroid.SHORT); } }); }); } } const styles = StyleSheet.create({ wrapper: { flex: 1 }, jumpText: { color: '#3e3e3e', fontSize: 16, marginRight: 4 }, jump: { // width: Dimensions.width, flex: 2, alignItems: 'flex-end', justifyContent: 'center', paddingHorizontal: '8%' }, jumpBtn: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center' }, phoneNumberBox: { flex: 2, paddingHorizontal: '8%' }, phoneNumber: { color: '#3e3e3e', fontSize: 18, marginBottom: 10 }, phoneText: { width: '100%', borderRadius: 25, height: Dimensions.getHeight(50), backgroundColor: '#f3f3f3' }, signNumberBox: { flex: 2, paddingHorizontal: '8%' }, signNumberLine2: { flexDirection: 'row', width: Dimensions.width }, signText: { width: '54%', height: Dimensions.getHeight(50), backgroundColor: '#f3f3f3', borderRadius: 25, marginRight: 9 }, getSign: { width: 105, height: Dimensions.getHeight(50), borderRadius: 25, backgroundColor: '#38da84', lineHeight: Dimensions.getHeight(50), color: '#fff', fontSize: 16, textAlign: 'center' }, loginIn: { flex: 3, paddingHorizontal: '8%' }, loginText: { width: '100%', height: Dimensions.getHeight(50), backgroundColor: '#63aeff', textAlign: 'center', lineHeight: Dimensions.getHeight(50), color: '#fff', fontSize: 20, borderRadius: 25 }, wechatLogin: { flex: 3, flexDirection: 'row', paddingHorizontal: '33.6%', alignItems: 'center', justifyContent: 'center' }, wechatLoginText: { fontSize: 16, color: '#3e3e3e', marginHorizontal: 6 } });