import { ProForm, ProFormText, ProFormUploadButton, } from "@ant-design/pro-components"; import { message } from "antd"; import { useAppSelector } from "../../../hooks"; import { currentUser } from "../../../reducers/current-user"; import { API_HOST, delete_, get, put } from "../../../request"; import type { IUserRequest, IUserResponse } from "../../../api/Auth"; import type { UploadChangeParam, UploadFile } from "antd/es/upload/interface"; import { get as getToken } from "../../../reducers/current-user"; import type { IAttachmentResponse } from "../../../api/Attachments"; import { useIntl } from "react-intl"; import type { IDeleteResponse } from "../../../api/Group"; interface IAccount { id: string; realName: string; nickName: string; email: string; avatar?: UploadFile[]; } const SettingAccountWidget = () => { const user = useAppSelector(currentUser); const intl = useIntl(); return ( onFinish={async (values: IAccount) => { console.log(values); let _avatar: string = ""; if ( typeof values.avatar === "undefined" || values.avatar.length === 0 ) { _avatar = ""; } else if (typeof values.avatar[0].response === "undefined") { _avatar = values.avatar[0].uid; } else { console.debug("upload ", values.avatar[0].response); _avatar = values.avatar[0].response.data.name; } const url = `/v2/user/${user?.id}`; const postData = { nickName: values.nickName, avatar: _avatar, email: values.email, }; console.log("account put ", url, postData); const res = await put(url, postData); if (res.ok) { message.success(intl.formatMessage({ id: "flashes.success" })); } else { message.error(res.message); } }} params={{}} request={async () => { const url = `/v2/user/${user?.id}`; console.log("url", url); const res = await get(url); if (res.ok) { } return { id: res.data.id, realName: res.data.userName, nickName: res.data.nickName, email: res.data.email, avatar: res.data.avatar && res.data.avatarName ? [ { uid: res.data.avatarName, name: "avatar", thumbUrl: res.data.avatar, }, ] : [], }; }} > ): boolean => { console.log("remove", file); const url = `/v2/attachment/1?name=${file.uid}`; console.info("avatar delete url", url); delete_(url) .then((json) => { if (json.ok) { message.success("删除成功"); } else { message.error(json.message); } }) .catch((e) => console.log("Oops errors!", e)); return true; }, }} action={`${API_HOST}/api/v2/attachment?type=avatar`} extra="必须为正方形。最大512*512" onChange={(_info: UploadChangeParam>) => {}} /> ); }; export default SettingAccountWidget;