import React from 'react'; import { Form, Button, Input, Row, InputNumber, Utils } from 'knowdesign'; import message from '@src/components/Message'; import { FormMap } from './config'; import Api from '../../api'; import { useHistory } from 'react-router-dom'; import { systemCipherKey } from '@src/constants/common'; export enum FormItemType { input = 'input', inputPassword = 'inputPassword', inputNumber = 'inputNumber', custom = 'custom', } export interface IFormItem { key: string; type: FormItemType; attrs?: any; rules?: any[]; invisible?: boolean; customFormItem?: any; } export const renderFormItem = (item: IFormItem) => { switch (item.type) { default: case FormItemType.input: return ; case FormItemType.inputPassword: return ; case FormItemType.inputNumber: return ; case FormItemType.custom: return (item as IFormItem).customFormItem; } }; export const LoginForm: React.FC = (props) => { const [form] = Form.useForm(); const history = useHistory(); const handleSubmit = async ({ userName, pw }: { userName: string; pw: string }) => { Utils.post(Api.login, { userName, pw: Utils.encryptAES(pw, systemCipherKey), }).then((res) => { message.success('登录成功'); localStorage.setItem('userInfo', JSON.stringify(res)); const redirectPath = window.location.search.slice('?redirect='.length) || '/'; history.replace(redirectPath); }); }; return ( <>
{FormMap.map((formItem) => { return ( {renderFormItem(formItem)} ); })}
); };