|
|
|
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: oldPassword,
|
|
|
|
newPassword: newPassword
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
// 用户头像上传
|
|
|
|
export function uploadAvatarApi(data) {
|
|
|
|
return defHttp.put({
|
|
|
|
url: Api.uploadAvatarApi,
|
|
|
|
headers: {
|
|
|
|
'Content-type': ContentTypeEnum.FORM_DATA,
|
|
|
|
// @ts-ignore
|
|
|
|
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
|
|
|
|
})
|
|
|
|
}
|