You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
5.7 KiB
225 lines
5.7 KiB
/** |
|
* 首页 Mock 数据服务 |
|
* 用于开发和测试,模拟真实 API 响应 |
|
*/ |
|
|
|
import type { Banner, Notice, GameCategory, Game, HighPrizeGame, NavItem } from '@/types/home'; |
|
|
|
/** |
|
* Mock 轮播图数据 |
|
*/ |
|
export const mockBanners: Banner[] = [ |
|
{ |
|
id: '1', |
|
subject: 'https://via.placeholder.com/1080x350/FF6B6B/FFFFFF?text=Banner+1', |
|
link_type: 1, |
|
content: 'https://example.com', |
|
title: '新年大优惠', |
|
description: '充值送彩金', |
|
}, |
|
{ |
|
id: '2', |
|
subject: 'https://via.placeholder.com/1080x350/4ECDC4/FFFFFF?text=Banner+2', |
|
link_type: 1, |
|
content: 'https://example.com', |
|
title: '周末狂欢', |
|
description: '返水最高50%', |
|
}, |
|
{ |
|
id: '3', |
|
subject: 'https://via.placeholder.com/1080x350/45B7D1/FFFFFF?text=Banner+3', |
|
link_type: 1, |
|
content: 'https://example.com', |
|
title: '限时活动', |
|
description: '邀请好友送奖金', |
|
}, |
|
]; |
|
|
|
/** |
|
* Mock 公告数据 |
|
*/ |
|
export const mockNotices: Notice[] = [ |
|
{ |
|
id: '1', |
|
title: '系统维护通知', |
|
content: '系统将于今晚22:00-23:00进行维护,期间无法正常使用', |
|
content_type: 1, |
|
create_time: '2025-11-08 10:00:00', |
|
formatDate: '2025-11-08', |
|
}, |
|
{ |
|
id: '2', |
|
title: '新游戏上线', |
|
content: '全新游戏《幸运转盘》已上线,欢迎体验', |
|
content_type: 1, |
|
create_time: '2025-11-07 15:30:00', |
|
formatDate: '2025-11-07', |
|
}, |
|
{ |
|
id: '3', |
|
title: '活动规则更新', |
|
content: '详见活动页面', |
|
content_type: 3, |
|
create_time: '2025-11-06 09:00:00', |
|
formatDate: '2025-11-06', |
|
}, |
|
]; |
|
|
|
/** |
|
* Mock 游戏分类 |
|
*/ |
|
export const mockGameCategories: GameCategory[] = [ |
|
{ id: 0, key: 'recommend', name: '推荐', icon: 'star', big_type: 0 }, |
|
{ id: 1, key: 'chess', name: '棋牌', icon: 'chess', big_type: 1 }, |
|
{ id: 2, key: 'electronic', name: '电子', icon: 'game', big_type: 2 }, |
|
{ id: 3, key: 'fishing', name: '捕鱼', icon: 'fish', big_type: 3 }, |
|
{ id: 4, key: 'sports', name: '体育', icon: 'sports', big_type: 4 }, |
|
{ id: 5, key: 'lottery', name: '彩票', icon: 'lottery', big_type: 5 }, |
|
{ id: 6, key: 'live', name: '直播', icon: 'live', big_type: 6 }, |
|
]; |
|
|
|
/** |
|
* Mock 游戏数据 |
|
*/ |
|
export const mockGames: Game[] = [ |
|
{ |
|
id: '1', |
|
play_id: 1001, |
|
play_up_name: '真人百家乐', |
|
play_cname: '标准版', |
|
icon: 'https://via.placeholder.com/100/FF6B6B/FFFFFF?text=Game+1', |
|
big_type: 1, |
|
index: 1, |
|
}, |
|
{ |
|
id: '2', |
|
play_id: 1002, |
|
play_up_name: '电子老虎机', |
|
play_cname: '幸运转盘', |
|
icon: 'https://via.placeholder.com/100/4ECDC4/FFFFFF?text=Game+2', |
|
big_type: 2, |
|
index: 2, |
|
}, |
|
{ |
|
id: '3', |
|
play_id: 1003, |
|
play_up_name: '捕鱼达人', |
|
play_cname: '经典版', |
|
icon: 'https://via.placeholder.com/100/45B7D1/FFFFFF?text=Game+3', |
|
big_type: 3, |
|
index: 3, |
|
}, |
|
{ |
|
id: '4', |
|
play_id: 1004, |
|
play_up_name: '体育竞技', |
|
play_cname: '足球', |
|
icon: 'https://via.placeholder.com/100/96CEB4/FFFFFF?text=Game+4', |
|
big_type: 4, |
|
index: 4, |
|
}, |
|
{ |
|
id: '5', |
|
play_id: 1005, |
|
play_up_name: '彩票游戏', |
|
play_cname: '双色球', |
|
icon: 'https://via.placeholder.com/100/FFEAA7/FFFFFF?text=Game+5', |
|
big_type: 5, |
|
index: 5, |
|
}, |
|
{ |
|
id: '6', |
|
play_id: 1006, |
|
play_up_name: '真人直播', |
|
play_cname: '美女荷官', |
|
icon: 'https://via.placeholder.com/100/DFE6E9/FFFFFF?text=Game+6', |
|
big_type: 6, |
|
index: 6, |
|
}, |
|
]; |
|
|
|
/** |
|
* Mock 高奖金游戏数据 |
|
*/ |
|
export const mockHighPrizeGames: HighPrizeGame[] = [ |
|
{ |
|
id: '1', |
|
play_id: 1001, |
|
play_up_name: '真人百家乐', |
|
play_cname: '标准版', |
|
icon: 'https://via.placeholder.com/100/FF6B6B/FFFFFF?text=Prize+1', |
|
big_type: 1, |
|
index: 1, |
|
payout_amount: 50000, |
|
bet_amount: 1000, |
|
odds: 50000, |
|
cust_name: '幸运用户***', |
|
avatar: 'https://via.placeholder.com/50/FF6B6B/FFFFFF?text=User', |
|
update_time: '2025-11-08 14:30:00', |
|
}, |
|
{ |
|
id: '2', |
|
play_id: 1002, |
|
play_up_name: '电子老虎机', |
|
play_cname: '幸运转盘', |
|
icon: 'https://via.placeholder.com/100/4ECDC4/FFFFFF?text=Prize+2', |
|
big_type: 2, |
|
index: 2, |
|
payout_amount: 100000, |
|
bet_amount: 500, |
|
odds: 200000, |
|
cust_name: '幸运玩家***', |
|
avatar: 'https://via.placeholder.com/50/4ECDC4/FFFFFF?text=User', |
|
update_time: '2025-11-08 13:15:00', |
|
}, |
|
{ |
|
id: '3', |
|
play_id: 1003, |
|
play_up_name: '捕鱼达人', |
|
play_cname: '经典版', |
|
icon: 'https://via.placeholder.com/100/45B7D1/FFFFFF?text=Prize+3', |
|
big_type: 3, |
|
index: 3, |
|
payout_amount: 75000, |
|
bet_amount: 800, |
|
odds: 93750, |
|
cust_name: '大奖得主***', |
|
avatar: 'https://via.placeholder.com/50/45B7D1/FFFFFF?text=User', |
|
update_time: '2025-11-08 12:00:00', |
|
}, |
|
]; |
|
|
|
/** |
|
* Mock 快速导航项 |
|
*/ |
|
export const mockNavItems: NavItem[] = [ |
|
{ id: '1', name: '充值', icon: 'recharge', action: 'recharge' }, |
|
{ id: '2', name: '提现', icon: 'withdraw', action: 'withdraw' }, |
|
{ id: '3', name: '活动', icon: 'activity', action: 'activity' }, |
|
{ id: '4', name: '客服', icon: 'service', action: 'service' }, |
|
{ id: '5', name: '帮助', icon: 'help', action: 'help' }, |
|
]; |
|
|
|
/** |
|
* 获取 Mock 首页数据 |
|
*/ |
|
export const getMockHomePageData = () => { |
|
return { |
|
banners: mockBanners, |
|
notices: mockNotices, |
|
categories: mockGameCategories, |
|
games: mockGames, |
|
highPrizeGames: mockHighPrizeGames, |
|
navItems: mockNavItems, |
|
}; |
|
}; |
|
|
|
/** |
|
* 获取 Mock 游戏列表(支持分类过滤) |
|
*/ |
|
export const getMockGamesByCategory = (categoryId: string | number) => { |
|
if (categoryId === 0) { |
|
return mockGames; // 推荐分类返回所有游戏 |
|
} |
|
return mockGames.filter((game) => game.big_type === categoryId); |
|
};
|
|
|