feat: 增强结果展示与用户交互

- 在 PlayerBottomNav 中新增注单导航选项
- 在 DrawResultDetailScreen 中添加高亮显示用户命中号码的功能,并显示个人派彩信息
- 在 DrawResultsListScreen 中引入 JackpotResultsStrip 组件以展示奖池信息
- 在 TwentyThreeResultsGrid 中实现命中号码的高亮效果,提升用户体验
This commit is contained in:
2026-05-11 15:40:42 +08:00
parent 1922a29f49
commit 377e03e167
16 changed files with 922 additions and 17 deletions

5
src/types/api/jackpot.ts Normal file
View File

@@ -0,0 +1,5 @@
export type JackpotSummaryData = {
currency_code: string;
enabled: boolean;
current_amount_minor: number;
};

View File

@@ -0,0 +1,69 @@
import type { DrawResultListItem } from "@/types/api/draw-results";
export type TicketItemListRow = {
ticket_no: string;
order_no: string | null | undefined;
draw_no: string | null | undefined;
currency_code: string | null | undefined;
play_code: string;
original_number: string | null;
total_bet_amount: number;
actual_deduct_amount: number;
status: string;
win_amount: number;
jackpot_win_amount: number;
placed_at: string | null | undefined;
updated_at: string | null | undefined;
};
export type TicketItemsListPayload = {
items: TicketItemListRow[];
total: number;
page: number;
per_page: number;
last_page: number;
};
export type TicketItemCombinationRow = {
combination_no: number;
number_4d: string;
bet_amount: number;
estimated_payout: number;
};
export type TicketItemDetailPayload = {
ticket_no: string;
order_no: string | null | undefined;
draw_no: string | null | undefined;
currency_code: string | null | undefined;
play_code: string;
dimension: number | null;
digit_slot: number | null;
original_number: string | null;
normalized_number: string;
unit_bet_amount: number;
total_bet_amount: number;
rebate_rate_snapshot: string;
actual_deduct_amount: number;
status: string;
win_amount: number;
jackpot_win_amount: number;
settled_at: string | null | undefined;
placed_at: string | null | undefined;
odds_snapshot_json: unknown;
combinations: TicketItemCombinationRow[];
settlement: {
matched_prize_tier: string | null;
win_amount_minor: number;
jackpot_allocation_minor: number;
} | null;
published_draw_results: DrawResultListItem | null;
};
export type TicketDrawMyMatchPayload = {
draw_no: string;
hit_numbers_4d: string[];
total_win_minor: number;
total_jackpot_win_minor: number;
has_bets: boolean;
};