import request from '@/utils/request' import type { AxiosResponse } from 'axios' interface RegisterData { [key: string]: any } export interface UserInfo { userId: string | number userName: string nickName: string avatar?: string roles?: string[] permissions?: string[] [key: string]: any } export interface GetInfoResponse { user: UserInfo roles: string[] permissions: string[] isDefaultModifyPwd?: boolean isPasswordExpired?: boolean [key: string]: any } interface LoginResponse { token?: string [key: string]: any } interface CaptchaResponse { captchaEnabled?: boolean img?: string uuid?: string } // 登录方法 export function login(username: string, password: string, code?: string, uuid?: string): Promise> { const data: string = `username=${username}&password=${password}&code=${code}&uuid=${uuid}` return request({ url: '/api/login/account', headers: { isToken: false, repeatSubmit: false, 'Content-Type': 'application/x-www-form-urlencoded' }, method: 'post', data: data }) } export function authorize(params:string): Promise> { return request({ url: '/oauth2/authorize', headers: { isToken: true, repeatSubmit: false, 'Content-Type': 'application/x-www-form-urlencoded' }, method: 'post', data: params }) } // 注册方法 export function register(data: RegisterData): Promise> { return request({ url: '/register', headers: { isToken: false }, method: 'post', data: data }) } // 获取用户详细信息 export function getInfo(): Promise> { return request({ url: '/getInfo', method: 'get' }) } // 退出方法 export function logout(): Promise> { return request({ url: '/logout', method: 'post' }) } // 获取验证码 export function getCodeImg(): Promise { return request({ url: '/captcha/image', headers: { isToken: false }, method: 'get', timeout: 20000 }) }