- users 表添加 nickname、avatar_url 字段 - 用户信息 API(GET/PUT /me)+ 头像上传(multer) - 头像通过 API 路由获取(公开,不经过 auth) - 登录接口返回用户昵称和头像 - 用户信息 Store + 个人资料编辑页面 - 我的页面和首页显示真实用户信息 - 群组表(groups、group_members)+ transactions 添加 group_id - 群组 API(创建/加入/退出/解散) - 交易和统计 API 支持 group_id 视图切换 - 群组客户端 Store + 身份切换 - 群组管理页面 - App 初始化群组 Store - UPLOAD_DIR 配置化 - Node.js 备份替代 mysqldump - 统一前端 BASE_URL(config.ts) - uploads 加入 .gitignore - 修复 trust proxy 警告
59 lines
1.4 KiB
TypeScript
59 lines
1.4 KiB
TypeScript
import { request } from '@/utils/request'
|
|
|
|
/** 群组信息 */
|
|
export interface Group {
|
|
id: number
|
|
name: string
|
|
invite_code: string
|
|
created_by: number
|
|
created_at: string
|
|
role: 'owner' | 'member'
|
|
my_nickname: string
|
|
member_count: number
|
|
}
|
|
|
|
/** 群组详情(含成员) */
|
|
export interface GroupDetail extends Group {
|
|
members: GroupMember[]
|
|
}
|
|
|
|
/** 群组成员 */
|
|
export interface GroupMember {
|
|
user_id: number
|
|
role: 'owner' | 'member'
|
|
nickname: string
|
|
user_nickname: string
|
|
avatar_url: string
|
|
joined_at: string
|
|
}
|
|
|
|
/** 创建群组 */
|
|
export function createGroup(data: { name: string }) {
|
|
return request<{ id: number; invite_code: string }>({ url: '/groups', method: 'POST', data })
|
|
}
|
|
|
|
/** 获取群组列表 */
|
|
export function getGroups() {
|
|
return request<Group[]>({ url: '/groups' })
|
|
}
|
|
|
|
/** 获取群组详情 */
|
|
export function getGroupDetail(id: number) {
|
|
return request<GroupDetail>({ url: `/groups/${id}` })
|
|
}
|
|
|
|
/** 加入群组 */
|
|
export function joinGroup(invite_code: string) {
|
|
return request<{ group_id: number; name: string }>({ url: '/groups/join', method: 'POST', data: { invite_code } })
|
|
}
|
|
|
|
/** 退出群组 */
|
|
export function leaveGroup(id: number) {
|
|
return request({ url: `/groups/${id}/leave`, method: 'POST' })
|
|
}
|
|
|
|
/** 解散群组 */
|
|
export function deleteGroup(id: number) {
|
|
return request({ url: `/groups/${id}`, method: 'DELETE' })
|
|
}
|