/** * 登录页面 * @邠心vbe on 2021/03/18 */ import React from 'react'; import {View, Text, StyleSheet, Image, TextInput, ScrollView, Platform, Pressable} from 'react-native'; import { BackButton } from '../../components/Toolbar'; import apiUser from '../../api/apiUser'; import { setAccessToken } from '../../api/http'; import { getStorageJsonSync, setStorageJson } from '../../utils/storage'; import Button from '../../components/Button'; import Dialog from '../../components/Dialog'; import { PageList } from '../Router'; import CheckBoxText from '../../components/CheckBoxText'; import TextView from '../../components/TextView'; 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') }); } } export default class Login extends React.Component { constructor(props) { super(props); this.state = { email: '', password: '', rememberMe: true, showPassword: false } } 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($t('sign.plsInputEmail')); return; } if (this.state.password == '') { toastShort($t('sign.plsInputPassword')); 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; } togglePassword() { this.setState({ showPassword: !this.state.showPassword }) } render() { return ( {/* */} {$t('sign.plsLoginTitle')} {/* */} { this.setState({ email: v }) }}/> {/* */} { this.setState({ password: v }) }} onSubmitEditing={() => { this.onLogin(); }}/> this.togglePassword()}/> { this.setState({ rememberMe: newValue }); }} text={$t('sign.rememberMe')} /> startPage(PageList.forgotPassword)}>{$t('sign.forgotPassword')}