refactor: 重构大厅组件以优化状态管理与数据加载
- 在 HallDrawPanel 组件中引入 useHallDrawLive 自定义 Hook,简化状态管理与数据获取逻辑 - 移除不必要的状态与副作用,提升组件性能 - 在 HallScreen 组件中替换 Card 组件为 HallBettingGrid,优化下注表格展示 - 在 HallWalletStrip 组件中添加事件监听以支持钱包刷新功能
This commit is contained in:
76
src/types/api/ticket.ts
Normal file
76
src/types/api/ticket.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
/** `POST /api/v1/ticket/preview` / `place` 请求行 */
|
||||
export type TicketLineInput = {
|
||||
number: string;
|
||||
play_code: string;
|
||||
amount: number;
|
||||
digit_slot?: number;
|
||||
dimension?: "D2" | "D3" | "D4";
|
||||
};
|
||||
|
||||
export type TicketConfigVersions = {
|
||||
play_config_version_no: number;
|
||||
odds_version_no: number;
|
||||
risk_cap_version_no: number;
|
||||
};
|
||||
|
||||
export type TicketPreviewPayload = {
|
||||
draw_id: string;
|
||||
currency_code: string;
|
||||
client_trace_id?: string | null;
|
||||
lines: TicketLineInput[];
|
||||
};
|
||||
|
||||
export type TicketPlacePayload = TicketPreviewPayload & {
|
||||
expected_config_versions?: TicketConfigVersions;
|
||||
};
|
||||
|
||||
export type TicketPreviewLine = {
|
||||
client_line_no: number;
|
||||
number: string;
|
||||
play_code: string;
|
||||
normalized_number: string;
|
||||
combination_count: number;
|
||||
total_bet_amount: number;
|
||||
rebate_rate: string;
|
||||
rebate_amount: number;
|
||||
actual_deduct_amount: number;
|
||||
estimated_max_payout: number;
|
||||
risk_status: string;
|
||||
warnings: unknown[];
|
||||
rule_snapshot_json: unknown;
|
||||
};
|
||||
|
||||
export type TicketPreviewWarning = {
|
||||
number_4d: string;
|
||||
message: string;
|
||||
};
|
||||
|
||||
export type TicketPreviewData = {
|
||||
draw: { draw_id: string; status: string };
|
||||
config_versions: TicketConfigVersions;
|
||||
summary: {
|
||||
total_bet_amount: number;
|
||||
total_rebate_amount: number;
|
||||
total_actual_deduct: number;
|
||||
total_estimated_payout: number;
|
||||
};
|
||||
lines: TicketPreviewLine[];
|
||||
warnings: TicketPreviewWarning[];
|
||||
};
|
||||
|
||||
export type TicketPlaceItem = {
|
||||
ticket_no: string;
|
||||
play_code: string;
|
||||
number: string;
|
||||
total_bet_amount: number;
|
||||
actual_deduct_amount: number;
|
||||
estimated_max_payout: number;
|
||||
combination_count: number;
|
||||
};
|
||||
|
||||
export type TicketPlaceData = {
|
||||
order_no: string;
|
||||
draw: { draw_id: string; status: string };
|
||||
summary: TicketPreviewData["summary"];
|
||||
items: TicketPlaceItem[];
|
||||
};
|
||||
Reference in New Issue
Block a user