feat(game): 添加连续奖励表格和银行选项图标

- 在游戏规则模态框中添加连续奖励表格组件
- 更新英文和印尼语的游戏规则文本内容
- 添加银行选项的图标显示功能,支持自定义logo或默认地标图标
- 实现连续奖励数据类型和接口定义
- 在游戏会话存储中添加连续奖励行数据管理
- 集成银行选择下拉菜单中的图标展示
- 更新WithdrawField组件以支持银行图标显示
This commit is contained in:
JiaJun
2026-07-09 18:22:33 +08:00
parent 69cd9a7521
commit 20a6fc5175
16 changed files with 852 additions and 451 deletions

View File

@@ -1,4 +1,4 @@
import { Minus, Plus } from 'lucide-react'
import { Landmark, Minus, Plus } from 'lucide-react'
import { type ReactNode, useState } from 'react'
import { useTranslation } from 'react-i18next'
import lengthBlueBtn from '@/assets/system/length-blue-btn.webp'
@@ -16,7 +16,7 @@ import { useWithdrawSubmit } from '@/hooks/use-withdraw-submit'
import { useWithdrawVm } from '@/hooks/use-withdraw-vm'
import { cn } from '@/lib/utils'
import { useModalStore } from '@/store'
import type { FinanceCurrencyConfig } from '@/type'
import type { FinanceCurrencyConfig, FinanceWithdrawBank } from '@/type'
const PANEL_CLASS =
'rounded-md border border-[rgba(110,229,243,0.24)] bg-[linear-gradient(180deg,rgba(7,30,43,0.9),rgba(3,15,26,0.94))] shadow-[inset_0_0_calc(var(--design-unit)*10)_rgba(88,225,238,0.08)]'
@@ -33,6 +33,22 @@ function getPaymentGlyph(code: string, name: string) {
return name.trim().slice(0, 1).toUpperCase() || code.slice(0, 1).toUpperCase()
}
function BankOptionLogo({ bank }: { bank: FinanceWithdrawBank }) {
if (bank.logo.trim()) {
return (
<img
src={bank.logo}
alt={bank.label}
className="h-design-18 w-design-18 shrink-0 rounded-[calc(var(--design-unit)*3)] object-contain"
/>
)
}
return (
<Landmark className="h-design-15 w-design-15 shrink-0 text-[#8DE4EA]" />
)
}
function WithdrawField({
label,
children,
@@ -537,7 +553,10 @@ function MobileWithdraw() {
<SelectContent>
{vm.sortedBanks.map((bank) => (
<SelectItem key={bank.code} value={bank.code}>
{bank.label}
<span className="flex min-w-0 items-center gap-design-4">
<BankOptionLogo bank={bank} />
<span className="min-w-0 truncate">{bank.label}</span>
</span>
</SelectItem>
))}
</SelectContent>