|
|
|
|
/**
|
|
|
|
|
* 首页 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);
|
|
|
|
|
};
|