import type { Activity, Announcement, CarouselItem, SystemAnnouncementResponse } from '@/api' /** * 模拟数据 - 系统公告 * 这些数据可以用于开发和测试,实际使用时应从后端API获取 */ // 轮播图数据 export const mockCarousels: CarouselItem[] = [ { id: 1, imageUrl: 'https://images.unsplash.com/photo-1607827448387-a67db1383b59?w=800&h=400&fit=crop', title: '新年特惠活动', link: '/activity/1', }, { id: 2, imageUrl: 'https://images.unsplash.com/photo-1557683316-973673baf926?w=800&h=400&fit=crop', title: '新功能上线', link: '/activity/2', }, { id: 3, imageUrl: 'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=800&h=400&fit=crop', title: '限时优惠', link: '/activity/3', }, ] // 活动数据 export const mockActivities: Activity[] = [ { id: 1, title: '新年特惠活动', description: '参与新年特惠活动,即可获得丰厚奖励。活动期间充值即送额外积分,最高可获得50%额外积分奖励!', content: `

活动详情

为了感谢各位用户的支持,我们特别推出新年特惠活动!

活动时间

2025年1月1日 00:00 - 2025年1月31日 23:59

活动规则

注意事项

  1. 每个用户在活动期间最多可参与5次
  2. 赠送的积分将在充值成功后24小时内到账
  3. 本活动最终解释权归平台所有
机会难得,不要错过!
`, coverImage: 'https://images.unsplash.com/photo-1607827448387-a67db1383b59?w=1200&h=600&fit=crop', startTime: '2025-01-01T00:00:00Z', endTime: '2025-01-31T23:59:59Z', status: 'active', createdAt: '2024-12-25T10:00:00Z', updatedAt: '2024-12-26T15:30:00Z', }, { id: 2, title: 'AI功能免费体验', description: '全新AI功能上线,限时免费体验。包括智能对话、图像生成、代码辅助等多项功能。', content: `

新功能介绍

我们很高兴地宣布,全新的AI功能已经正式上线!

功能亮点

体验时间

2025年1月1日 - 2025年2月28日

在体验期间,所有功能完全免费使用!

`, coverImage: 'https://images.unsplash.com/photo-1557683316-973673baf926?w=1200&h=600&fit=crop', startTime: '2025-01-01T00:00:00Z', endTime: '2025-02-28T23:59:59Z', status: 'active', createdAt: '2024-12-28T08:00:00Z', updatedAt: '2024-12-28T08:00:00Z', }, { id: 3, title: '推荐好友得奖励', description: '邀请好友注册使用,双方均可获得积分奖励。推荐越多,奖励越多!', content: `

推荐计划

邀请您的朋友一起体验我们的服务,双方都能获得丰厚奖励!

奖励规则

如何参与

  1. 登录您的账户
  2. 进入"推荐好友"页面
  3. 复制您的专属邀请链接
  4. 分享给您的朋友
`, status: 'active', createdAt: '2024-12-20T10:00:00Z', }, ] // 公告数据 export const mockAnnouncements: Announcement[] = [ { id: 1, title: '系统维护升级公告', content: `

尊敬的用户:

为了给您提供更好的服务体验,我们计划于2025年1月10日 22:00 - 2025年1月11日 02:00对系统进行维护升级。

维护内容

影响范围

维护期间,系统将暂时无法访问,给您带来不便敬请谅解。

如有紧急问题,请联系客服:service@example.com

感谢您的理解与支持!

`, type: 'latest', isImportant: true, publishTime: '2025-01-05T10:00:00Z', createdAt: '2025-01-05T09:30:00Z', }, { id: 2, title: '隐私政策更新通知', content: `

尊敬的用户:

我们更新了隐私政策,新政策将于2025年1月15日生效。

主要变更

详细内容请查看完整的隐私政策

如有疑问,欢迎联系我们。

`, type: 'latest', isImportant: false, publishTime: '2025-01-03T14:00:00Z', createdAt: '2025-01-03T13:30:00Z', }, { id: 3, title: 'API接口升级通知', content: `

开发者们注意:

我们的API接口将进行版本升级,新版本为v2.0

升级时间

2025年2月1日

主要变化

旧版本API将继续维护至2025年6月1日。

`, type: 'history', isImportant: false, publishTime: '2024-12-28T10:00:00Z', createdAt: '2024-12-28T09:00:00Z', }, { id: 4, title: '新年假期客服安排', content: `

尊敬的用户:

新年假期期间(1月1日-1月3日),客服工作时间调整为:

1月4日起恢复正常工作时间。

`, type: 'history', isImportant: false, publishTime: '2024-12-25T15:00:00Z', createdAt: '2024-12-25T14:00:00Z', }, { id: 5, title: '用户协议更新', content: `

我们更新了用户服务协议,主要涉及:

继续使用服务即表示您同意新的用户协议。

`, type: 'history', isImportant: false, publishTime: '2024-12-20T10:00:00Z', createdAt: '2024-12-20T09:00:00Z', }, ] // 完整的系统公告响应数据 export const mockSystemAnnouncementData: SystemAnnouncementResponse = { carousels: mockCarousels, activities: mockActivities, announcements: mockAnnouncements, } /** * 模拟API延迟 */ export function mockDelay(ms: number = 500): Promise { return new Promise(resolve => setTimeout(resolve, ms)) } /** * 模拟获取系统公告API */ export async function getMockSystemAnnouncements(): Promise<{ data: SystemAnnouncementResponse }> { await mockDelay() return { data: mockSystemAnnouncementData } } /** * 模拟获取活动详情API */ export async function getMockActivityDetail(id: string | number) { await mockDelay() const activity = mockActivities.find(a => a.id.toString() === id.toString()) if (!activity) { throw new Error('活动不存在') } return { data: { ...activity, views: Math.floor(Math.random() * 10000) + 1000, participantCount: Math.floor(Math.random() * 1000) + 100, }, } } /** * 模拟获取公告详情API */ export async function getMockAnnouncementDetail(id: string | number) { await mockDelay() const announcement = mockAnnouncements.find(a => a.id.toString() === id.toString()) if (!announcement) { throw new Error('公告不存在') } return { data: { ...announcement, views: Math.floor(Math.random() * 10000) + 1000, }, } }