对接后端
This commit is contained in:
parent
8f9a6371c4
commit
1e49191b9a
|
@ -1,37 +1,79 @@
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
import type { ApiResponse } from './types'
|
import type { ApiResponse, PageResult } from './types'
|
||||||
|
|
||||||
|
// 定义接口的请求参数类型
|
||||||
export interface LoginParams {
|
export interface LoginParams {
|
||||||
username: string
|
phone: string
|
||||||
password: string
|
password: string
|
||||||
|
verifyCode?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 定义后端返回的用户信息类型
|
||||||
export interface UserInfo {
|
export interface UserInfo {
|
||||||
id: number
|
id: number
|
||||||
username: string
|
phone: string
|
||||||
nickname: string
|
nickname: string
|
||||||
avatar: string
|
avatar: string
|
||||||
roles: string[]
|
gender: 0 | 1 // 0-女 1-男
|
||||||
|
age: number
|
||||||
|
address: string
|
||||||
|
emergencyContact: {
|
||||||
|
name: string
|
||||||
|
phone: string
|
||||||
|
relation: string
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 定义用户列表查询参数
|
||||||
|
export interface UserQueryParams {
|
||||||
|
page: number
|
||||||
|
pageSize: number
|
||||||
|
nickname?: string
|
||||||
|
phone?: string
|
||||||
|
gender?: 0 | 1
|
||||||
|
ageRange?: [number, number]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 用户API接口
|
||||||
export const userApi = {
|
export const userApi = {
|
||||||
// 登录
|
// 手机号密码登录
|
||||||
login(data: LoginParams) {
|
login(data: LoginParams) {
|
||||||
return request.post<ApiResponse<{ token: string }>>('/auth/login', data)
|
return request.post<ApiResponse<{ token: string }>>('/auth/login', data)
|
||||||
},
|
},
|
||||||
|
|
||||||
// 获取用户信息
|
// 发送验证码
|
||||||
getUserInfo() {
|
sendVerifyCode(phone: string) {
|
||||||
return request.get<ApiResponse<UserInfo>>('/user/info')
|
return request.post<ApiResponse<void>>('/auth/send-code', { phone })
|
||||||
},
|
},
|
||||||
|
|
||||||
// 修改密码
|
// 获取当前登录用户信息
|
||||||
changePassword(data: { oldPassword: string; newPassword: string }) {
|
getCurrentUser() {
|
||||||
return request.post<ApiResponse>('/user/change-password', data)
|
return request.get<ApiResponse<UserInfo>>('/user/current')
|
||||||
},
|
},
|
||||||
|
|
||||||
// 更新用户信息
|
// 更新用户信息
|
||||||
updateUserInfo(data: Partial<UserInfo>) {
|
updateUserInfo(data: Partial<UserInfo>) {
|
||||||
return request.put<ApiResponse>('/user/info', data)
|
return request.put<ApiResponse<UserInfo>>('/user/info', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 更新用户头像
|
||||||
|
updateAvatar(file: File) {
|
||||||
|
const formData = new FormData()
|
||||||
|
formData.append('avatar', file)
|
||||||
|
return request.post<ApiResponse<{ avatarUrl: string }>>('/user/avatar', formData, {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'multipart/form-data'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 分页获取用户列表(管理员接口)
|
||||||
|
getUserList(params: UserQueryParams) {
|
||||||
|
return request.get<ApiResponse<PageResult<UserInfo>>>('/admin/users', { params })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 修改密码
|
||||||
|
changePassword(data: { oldPassword: string; newPassword: string }) {
|
||||||
|
return request.post<ApiResponse<void>>('/user/change-password', data)
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue