/** * 登录页面V2 * @邠心vbe on 2022/12/23 */ import React from 'react'; import {View, Text, StyleSheet, Image, TextInput, ScrollView, Platform} from 'react-native'; import { BackButton } from '../../components/Toolbar'; import apiUser from '../../api/apiUser'; import { setAccessToken } from '../../api/http'; import { getStorageSync, setStorage, getStorageJsonSync, setStorageJson } from '../../utils/storage'; import Button from '../../components/Button'; import Dialog from '../../components/Dialog'; import { PageList } from '../Router'; import utils from '../../utils/utils'; import CheckBoxText from '../../components/CheckBoxText'; export const AutoLogin = async (back) => { const data = await getStorageJsonSync('loginData') if (data && data.email && data.password) { apiUser.login(data).then(res => { if (res.data.accessToken) { setAccessToken(res.data.accessToken); if (back) back(); } }).catch((err) => { console.warn('AutoLogin', err); toastShort('Sign in failed') }); } } //注册FCM通知token export const RegisterToken = async () => { if (getUserId() > 0 && notifyToken.token) { const thisDate = utils.formatYYMM(new Date()) + "-" + getUserId(); const lastDate = await getStorageSync('RegisterTokenDate'); console.log('>>>RegisterToken<<<', thisDate, lastDate + "●"); if (thisDate != lastDate) { const params = { os: notifyToken.os ? notifyToken.os : Platform.OS, googleToken: notifyToken.token } apiUser.setNotifyToken(params).then(res => { console.log('>>>RegisterToken-Suc<<<', res); setStorage('RegisterTokenDate', thisDate); }).catch(err => { console.log('>>>RegisterToken-Err<<<', err); }); } } } export default class Login extends React.Component { constructor(props) { super(props); this.state = { email: '', password: '', rememberMe: true } } componentDidMount() { /*if (this.props.route.params.action) { this.props.navigation.addListener('beforeRemove', (e) => { if (this.props.route.params.action == '401') { //dispatchPage(StackActions.push('home')); dispatchPage(state => { console.log('routes', state); const r = []; var index = 0; var homekey = ''; for (let i = 0; i < state.routes.length; i++) { const item = state.routes[i]; if (item.name == 'home') { r.push(item); index = i; homekey = item.key; break; } else { r.push(item); } } console.log('new routes', r); return { ...CommonActions.goBack(), source: this.props.route.key, target: homekey, }; }); } }); }*/ this.getEmail(); } async getEmail() { const data = await getStorageJsonSync('loginData'); if (data && data.email) { this.setState({ email: data.email }); } } onLogin() { //console.log(this.state); if (this.state.email == '') { toastShort('Please enter email address'); return; } if (this.state.password == '') { toastShort('Please enter password'); return; } Dialog.showProgressDialog(); apiUser.login(this.state).then(res => { console.log('res.data', res); if (res.data.accessToken) { setAccessToken(res.data.accessToken); Dialog.dismissLoading(); if (this.state.rememberMe) { setStorageJson('loginData', this.state); } else { setStorageJson('loginData', {}); } startPage(PageList.home); //this.props.navigation.goBack(); } else { toastShort(res.msg); Dialog.dismissLoading(); } }).catch((err) => { toastShort(err); Dialog.dismissLoading(); }); } getBackTopPosition() { return isIOS ? statusHeight : 4; } render() { return ( { this.setState({ email: v }) }}/> { this.setState({ password: v }) }} onSubmitEditing={() => { this.onLogin(); }}/> { this.setState({ rememberMe: newValue }); }} text={'Remember me'} /> startPage(PageList.forgotPassword)}>Forgot Password