feat(circle): 添加酒友圈社交模块
- 新增酒友圈、圈子详情、发布动态、好友列表、活动创建等页面配置 - 添加酒友圈相关API接口,包括动态、评论、好友、活动等功能 - 实现模拟数据用于前端开发和测试 - 创建评论项、空状态、活动卡片、动态卡片、好友项等组件 - 编写酒友圈模块详细的接口文档,定义数据结构和业务规则
This commit is contained in:
+104
@@ -154,3 +154,107 @@ export async function refreshAuthToken() {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// 酒友圈 API(当前返回 Mock 数据,后端就绪后切换为 SDK 调用)
|
||||
// ==========================================
|
||||
import { MOCK_FEEDS, MOCK_COMMENTS, MOCK_FRIENDS, MOCK_FRIEND_REQUESTS, MOCK_EVENTS } from './mock-data'
|
||||
|
||||
/** 模拟网络延迟 */
|
||||
function mockDelay(data, ms = 300) {
|
||||
return new Promise(resolve => setTimeout(() => resolve({ data }), ms))
|
||||
}
|
||||
|
||||
/** 获取动态信息流 */
|
||||
export function GetCircleFeeds({ page = 1, pageSize = 10 } = {}) {
|
||||
// TODO: 后端就绪后替换为 client.GetCircleFeeds(...)
|
||||
const start = (page - 1) * pageSize
|
||||
const list = MOCK_FEEDS.slice(start, start + pageSize)
|
||||
return mockDelay({ list, total: MOCK_FEEDS.length, hasMore: start + pageSize < MOCK_FEEDS.length })
|
||||
}
|
||||
|
||||
/** 点赞动态 */
|
||||
export function LikeFeed({ feedId }) {
|
||||
return mockDelay({ success: true })
|
||||
}
|
||||
|
||||
/** 取消点赞 */
|
||||
export function UnlikeFeed({ feedId }) {
|
||||
return mockDelay({ success: true })
|
||||
}
|
||||
|
||||
/** 获取动态评论 */
|
||||
export function GetFeedComments({ feedId }) {
|
||||
const list = MOCK_COMMENTS[feedId] || []
|
||||
return mockDelay({ list })
|
||||
}
|
||||
|
||||
/** 发表评论 */
|
||||
export function AddComment({ feedId, content }) {
|
||||
return mockDelay({ success: true, comment: { id: 'c_' + Date.now(), content, time: '刚刚' } })
|
||||
}
|
||||
|
||||
/** 发布动态 */
|
||||
export function PublishFeed({ text, images, recordId, visibility }) {
|
||||
return mockDelay({ success: true, feedId: 'feed_' + Date.now() })
|
||||
}
|
||||
|
||||
/** 获取酒友列表 */
|
||||
export function GetFriends({ keyword = '' } = {}) {
|
||||
const list = keyword
|
||||
? MOCK_FRIENDS.filter(f => f.nickname.includes(keyword))
|
||||
: MOCK_FRIENDS
|
||||
return mockDelay({ list })
|
||||
}
|
||||
|
||||
/** 获取好友请求 */
|
||||
export function GetFriendRequests() {
|
||||
return mockDelay({ list: MOCK_FRIEND_REQUESTS })
|
||||
}
|
||||
|
||||
/** 发送好友请求 */
|
||||
export function SendFriendRequest({ userId }) {
|
||||
return mockDelay({ success: true })
|
||||
}
|
||||
|
||||
/** 接受好友请求 */
|
||||
export function AcceptFriendRequest({ requestId }) {
|
||||
return mockDelay({ success: true })
|
||||
}
|
||||
|
||||
/** 删除酒友 */
|
||||
export function RemoveFriend({ userId }) {
|
||||
return mockDelay({ success: true })
|
||||
}
|
||||
|
||||
/** 获取酒局列表 */
|
||||
export function GetEvents({ status = '' } = {}) {
|
||||
const list = status ? MOCK_EVENTS.filter(e => e.status === status) : MOCK_EVENTS
|
||||
return mockDelay({ list })
|
||||
}
|
||||
|
||||
/** 获取酒局详情 */
|
||||
export function GetEventDetail({ eventId }) {
|
||||
const evt = MOCK_EVENTS.find(e => e.id === eventId) || MOCK_EVENTS[0]
|
||||
return mockDelay(evt)
|
||||
}
|
||||
|
||||
/** 发起酒局 */
|
||||
export function CreateEvent({ title, time, location, maxPeople, note }) {
|
||||
return mockDelay({ success: true, eventId: 'evt_' + Date.now() })
|
||||
}
|
||||
|
||||
/** 报名酒局 */
|
||||
export function JoinEvent({ eventId }) {
|
||||
return mockDelay({ success: true })
|
||||
}
|
||||
|
||||
/** 取消报名 */
|
||||
export function QuitEvent({ eventId }) {
|
||||
return mockDelay({ success: true })
|
||||
}
|
||||
|
||||
/** 酒局签到 */
|
||||
export function CheckInEvent({ eventId }) {
|
||||
return mockDelay({ success: true })
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user