import React, {useEffect, useState} from 'react';
import {Button, Card, Checkbox, Form, Input, message, Modal, Typography} from "antd";
import './Login.css'
import request from "../common/request";
import {LockOutlined, LockTwoTone, UserOutlined} from '@ant-design/icons';
import {setToken} from "../utils/utils";
import brandingApi from "../api/branding";
import strings from "../utils/strings";
import {useNavigate} from "react-router-dom";
import {setCurrentUser} from "../service/permission";
const {Title} = Typography;
const LoginForm = () => {
const navigate = useNavigate();
let [inLogin, setInLogin] = useState(false);
let [branding, setBranding] = useState({});
useEffect(() => {
const x = async () => {
let branding = await brandingApi.getBranding();
document.title = branding['name'];
setBranding(branding);
}
x();
}, []);
const afterLoginSuccess = async (data) => {
// 跳转登录
sessionStorage.removeItem('current');
sessionStorage.removeItem('openKeys');
setToken(data['token']);
let user = data['info'];
setCurrentUser(user);
if (user) {
if (user['type'] === 'user') {
navigate('/my-asset');
} else {
navigate('/');
}
}
}
const login = async (values) => {
let result = await request.post('/login', values);
if (result['code'] === 1) {
Modal.destroyAll();
await afterLoginSuccess(result['data']);
}
}
const handleOk = (loginAccount, totp) => {
if (!strings.hasText(totp)) {
message.warn("请输入双因素认证码");
return false;
}
loginAccount['totp'] = totp;
login(loginAccount);
return false;
}
const showTOTP = (loginAccount) => {
let value = '';
Modal.confirm({
title: '双因素认证',
icon: