import { PageContainer, ProCard } from '@ant-design/pro-components'; import React, { useEffect, useRef, useState } from 'react'; import { LoadingOutlined, PlusOutlined } from '@ant-design/icons'; import { Button, message, Upload } from 'antd'; import type { UploadChangeParam } from 'antd/es/upload'; import type { RcFile, UploadFile, UploadProps } from 'antd/es/upload/interface'; import type { ActionType } from '@ant-design/pro-components'; // svg 转组件 import { ReactComponent as AvatarSvg } from '../../../../public/icons/avatar.svg'; import styles from "./center.less"; import UpdateAccountForm from './components/UpdateAccountForm'; import UpdatePasswordForm from './components/UpdatePasswordForm'; import { FormattedMessage } from '@umijs/max'; const getBase64 = (img: RcFile, callback: (url: string) => void) => { const reader = new FileReader(); reader.addEventListener('load', () => callback(reader.result as string)); reader.readAsDataURL(img); }; const beforeUpload = (file: RcFile) => { const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; if (!isJpgOrPng) { message.error('You can only upload JPG/PNG file!'); } const isLt2M = file.size / 1024 / 1024 < 2; if (!isLt2M) { message.error('Image must smaller than 2MB!'); } return isJpgOrPng && isLt2M; }; /** * @个人中心 * @returns */ const AccountCenter: React.FC = () => { const [loading, setLoading] = useState(false); const [imageUrl, setImageUrl] = useState(); const actionRef = useRef(); const [updateAccountModalOpen, setUpdateAccountModalOpen] = useState(false); const [updatePasswordModalOpen, setUpdatePasswordModalOpen] = useState(false); const [currentRow, setCurrentRow] = useState(); const handleUpdateAccountModal = () => { if (updateAccountModalOpen) { setUpdateAccountModalOpen(false); setCurrentRow(undefined); } else { setUpdateAccountModalOpen(true); } }; const handleUpdatePasswordModal = () => { if (updatePasswordModalOpen) { setUpdatePasswordModalOpen(false); setCurrentRow(undefined); } else { setUpdatePasswordModalOpen(true); } }; const handleChange: UploadProps['onChange'] = (info: UploadChangeParam) => { if (info.file.status === 'uploading') { setLoading(true); return; } if (info.file.status === 'done') { // Get this url from response in real world. getBase64(info.file.originFileObj as RcFile, (url) => { setLoading(false); setImageUrl(url); }); } console.log(info); }; const uploadButton = (
{loading ? : } {/*
Upload
*/}
); return ( {imageUrl ? avatar : uploadButton}
用户名:王立强
账号ID:awtk-55975980
注册时间:2012-10-16 23:55:35
登录账号:wangliqun
登录密码:wangliqun
); }; export default AccountCenter;