import { ContentTypeEnum } from '@/enums/httpEnum' import { defHttp } from '@/utils/http/axios' export interface ProfileDept { id: number name: string } export interface ProfileRole { id: number name: string } export interface ProfilePost { id: number name: string } export interface SocialUser { id: number type: number openid: string token: string rawTokenInfo: string nickname: string avatar: string rawUserInfo: string code: string state: string } export interface ProfileVO { id: number username: string nickname: string dept: ProfileDept roles: ProfileRole[] posts: ProfilePost[] socialUsers: SocialUser[] email: string mobile: string sex: number avatar: string status: number remark: string loginIp: string loginDate: Date createTime: Date } export interface UserProfileUpdateReqVO { nickname: string email: string mobile: string sex: number } enum Api { getUserProfileApi = '/system/user/profile/get', putUserProfileApi = '/system/user/profile/update', uploadAvatarApi = '/system/user/profile/update-avatar', updateUserPwdApi = '/system/user/profile/update-password', socialBindApi = '/system/social-user/bind', socialUnbindApi = '/system/social-user/unbind', } /** * @description: getUserProfileApi */ export function getUserProfileApi() { return defHttp.get({ url: Api.getUserProfileApi }) } /** * @description: updateUserProfileApi */ export function updateUserProfileApi(data: UserProfileUpdateReqVO) { return defHttp.put({ url: Api.putUserProfileApi, data }) } // 用户密码重置 export function updateUserPwdApi(oldPassword: string, newPassword: string) { return defHttp.put({ url: Api.updateUserPwdApi, data: { oldPassword, newPassword, }, }) } // 用户头像上传 export function uploadAvatarApi(data) { return defHttp.put({ url: Api.uploadAvatarApi, headers: { 'Content-type': ContentTypeEnum.FORM_DATA, // @ts-expect-error 'ignoreCancelToken': true, }, data, }) } // 社交绑定,使用 code 授权码 export function socialBind(type, code, state) { return defHttp.post({ url: Api.socialBindApi, data: { type, code, state, }, }) } // 取消社交绑定 export function socialUnbind(type, openid) { return defHttp.delete({ url: Api.socialUnbindApi, data: { type, openid, }, }) } // 社交授权的跳转 export function socialAuthRedirect(type, redirectUri) { return defHttp.get({ url: `/system/auth/social-auth-redirect?type=${type}&redirectUri=${redirectUri}`, }) }