Files
xiaocai/client/src/api/user.ts
wangxiaogang 2705335002 feat: 系统配置 + 用户签名
- 新增 sys_config 表,存储应用版本号、标语、描述
- 关于小菜弹窗版本号改为从数据库动态获取
- 用户表新增 slogan 字段(个性签名)
- 编辑资料页面支持修改签名
- 管理后台新增系统配置管理页面
- 更新 CLAUDE.md 文档
2026-06-08 10:37:04 +08:00

51 lines
1.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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<UserInfo>({ 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('网络错误'))
})
})
}