import { request } from '@/utils/request' import { API_BASE } from '@/config' /** 用户信息 */ export interface UserInfo { id: number nickname: string avatar_url: string slogan: string role: 'user' | 'admin' created_at: string } /** 获取当前用户信息 */ export function getUserInfo() { return request({ url: '/user/me' }) } /** 更新昵称/签名 */ export function updateNickname(nickname: string, slogan?: string) { const data: any = { nickname } if (slogan !== undefined) data.slogan = slogan return request({ url: '/user/me', method: 'PUT', data }) } /** 上传头像(返回新 URL) */ export function uploadAvatar(filePath: string): Promise<{ avatar_url: string }> { return new Promise((resolve, reject) => { const token = uni.getStorageSync('xc:token') uni.uploadFile({ url: `${API_BASE}/user/avatar`, filePath, name: 'file', header: { Authorization: `Bearer ${token}` }, success: (res) => { try { const data = JSON.parse(res.data) if (data.code === 0) { resolve(data.data) } else { reject(new Error(data.message || '上传失败')) } } catch { reject(new Error('上传响应解析失败')) } }, fail: () => reject(new Error('网络错误')) }) }) }