整合前端仓库并保留提交历史

This commit is contained in:
2026-08-31 11:52:41 +08:00
172 changed files with 120216 additions and 1 deletions
+188
View File
@@ -0,0 +1,188 @@
import request from '~/utils/request'
/**
* 用户登录认证
*/
export function authenticateUser(data: {
username: string
password: string
}): Promise<any> {
return request.post('/auth/login', data)
}
/**
* 手机验证码登录
*/
export function authenticateWithMobile(data: {
mobile: string
code: string
key: string
}): Promise<any> {
return request.post('/auth/login/mobile', data)
}
/**
* 用户退出登录
*/
export function logoutUser(): Promise<boolean> {
return request.post('/auth/logout')
}
/**
* 用户注册
*/
export function registerUser(data: {
username: string
email: string
password: string
confirm_password: string
pid?: string
}): Promise<any> {
const url = data.pid ? `/auth/register?pid=${data.pid}` : '/auth/register'
return request.post(url, data)
}
/**
* 手机号注册
*/
export function registerWithMobile(data: {
mobile: string
code: string
key: string
pid?: string
}): Promise<any> {
const url = data.pid ? `/auth/register/mobile?pid=${data.pid}` : '/auth/register/mobile'
return request.post(url, data)
}
/**
* 微信授权登录
*/
export function authenticateWithWechat(data: any): Promise<any> {
return request.post('/auth/wechat', data)
}
/**
* 微信小程序登录
*/
export function authenticateWithWeapp(data: any): Promise<any> {
return request.post('/auth/weapp', data)
}
/**
* 绑定手机号
*/
export function bindMobile(data: {
mobile: string
code: string
pid?: string
}): Promise<any> {
const url = data.pid ? `/auth/bind?pid=${data.pid}` : '/auth/bind'
return request.post(url, data)
}
/**
* 生成微信扫码登录二维码
*/
export function generateWechatQrCode(): Promise<any> {
return request.post('/auth/wechat/scan')
}
/**
* 检查微信扫码状态
*/
export function checkWechatScanStatus(data: { scene_id: string }): Promise<any> {
return request.get('/auth/wechat/scan/status', data)
}
/**
* 检查微信登录可用性
*/
export function checkWechatAvailability(): Promise<boolean> {
return request.get('/auth/wechat/availability')
}
/**
* 获取第三方绑定列表
*/
export function getThirdPartyList(): Promise<any[]> {
return request.get('/auth/third-party/list')
}
/**
* 绑定第三方账号
*/
export function bindThirdParty(data: { platform: number }): Promise<boolean> {
return request.post('/auth/third-party/bind', data)
}
/**
* 解绑第三方账号
*/
export function unbindThirdParty(platform: number): Promise<boolean> {
return request.delete(`/auth/third-party/unbind/${platform}`)
}
/**
* 生成第三方绑定二维码
*/
export function generateBindQrCode(platform: number): Promise<any> {
return request.post('/auth/third-party/qr-code', { platform })
}
/**
* 检查绑定二维码状态
*/
export function checkBindQrStatus(sceneId: string): Promise<any> {
return request.get('/auth/third-party/qr-status', { scene_id: sceneId })
}
/**
* 验证邮箱(第一步:验证邮箱和验证码)
*/
export function verifyEmail(data: {
email: string
code: string
}): Promise<boolean> {
return request.post('/auth/verify-email', data)
}
/**
* 发送邮箱验证码
*/
export function sendEmailCode(data: {
email: string
captcha_key: string
captcha_code: string
}): Promise<boolean> {
return request.post('/auth/send-email-code', data)
}
/**
* 忘记密码 - 重置密码(第二步:设置新密码)
*/
export function forgetPassword(data: {
email: string
code: string
new_password: string
confirm_password: string
}): Promise<boolean> {
return request.post('/auth/forget-password', data)
}
/**
* 刷新 Token
*/
export function refreshToken(refresh_token: string): Promise<{
code: number
msg: string
data?: {
access_token: string
refresh_token: string
}
}> {
return request.post('/auth/refresh', { refresh_token }, {
// 不带 token 请求,避免 401 循环
headers: {}
} as any)
}
+99
View File
@@ -0,0 +1,99 @@
/**
* 认证模块相关类型定义
*/
/**
* 登录数据
*/
export interface LoginData {
username?: string
password?: string
phone?: string
verify_code?: string
pid?: string
}
/**
* 注册数据
*/
export interface RegisterData {
username?: string
password?: string
phone?: string
verify_code?: string
pid?: string
}
/**
* 绑定手机号数据
*/
export interface BindMobileData {
mobile: string
code: string
pid?: string
}
/**
* 用户信息(登录/注册后返回)
*/
export interface UserInfo {
id: number
username: string
nickname?: string
avatar?: string
phone?: string
email?: string
token: string
}
/**
* 登录配置
*/
export interface LoginConfig {
enable_username_login: boolean
enable_mobile_login: boolean
enable_wechat_login: boolean
enable_weapp_login: boolean
enable_register: boolean
}
/**
* 扫码状态
*/
export enum ScanStatus {
WAITING = 'waiting',
SCANNED = 'scanned',
CONFIRMED = 'confirmed',
EXPIRED = 'expired',
CANCELED = 'canceled'
}
/**
* 第三方平台类型
*/
export enum ThirdPartyPlatform {
WECHAT = 1,
QQ = 2,
ALIPAY = 3
}
/**
* 第三方绑定信息
*/
export interface ThirdPartyBinding {
platform: number
platform_name: string
nickname?: string
avatar?: string
bind_time: number
}
/**
* 扫码登录信息
*/
export interface QrCodeLoginInfo {
scene_id: string
qrcode_url: string
expires_in: number
}