You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
2.6 KiB
129 lines
2.6 KiB
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}`, |
|
}) |
|
}
|
|
|