- 在getPlayEffective接口中增加provider_code参数支持 - 优化接口调用时对currency和provider_code的传递逻辑 - hall-bet-preview-dialog新增previewLineKey方法,解决列表渲染key冲突问题 - 修改投注和结果弹窗中开注商标题的国际化调用方式 - hall-betting-grid中增加选中开注商的默认逻辑,接口调用时传递provider_code - 优化provider名称显示逻辑,完善开注商选择及摘要文本显示 - 订单详情页中显示开注商名称,提升显示准确性 - 补充i18n中开注商相关文案,支持多语言环境 - 更新PlayEffectiveOddsSlice和PlayEffectivePayload类型,加入provider_code字段支持
This commit is contained in:
@@ -482,12 +482,19 @@ export function HallBettingGrid({ drawLive }: { drawLive: HallDrawLiveSnapshot }
|
||||
}, []);
|
||||
const catalogSeqRef = useRef(0);
|
||||
const walletSeqRef = useRef(0);
|
||||
const selectedCatalogProviderCode =
|
||||
selectedProviderCodes[0] ??
|
||||
betProviders.find((provider) => provider.is_default)?.code ??
|
||||
betProviders[0]?.code;
|
||||
|
||||
const loadCatalog = useCallback(async () => {
|
||||
const seq = ++catalogSeqRef.current;
|
||||
setCatalogState({ kind: "loading" });
|
||||
try {
|
||||
const data = await getPlayEffective({ currency: currencyParam });
|
||||
const data = await getPlayEffective({
|
||||
currency: currencyParam,
|
||||
provider_code: selectedCatalogProviderCode,
|
||||
});
|
||||
if (seq !== catalogSeqRef.current) return;
|
||||
setCatalogState({ kind: "ok", data });
|
||||
} catch (e) {
|
||||
@@ -495,7 +502,7 @@ export function HallBettingGrid({ drawLive }: { drawLive: HallDrawLiveSnapshot }
|
||||
const msg = e instanceof LotteryApiBizError ? e.message : t("hall.loadingError");
|
||||
setCatalogState({ kind: "error", message: msg });
|
||||
}
|
||||
}, [currencyParam, t]);
|
||||
}, [currencyParam, selectedCatalogProviderCode, t]);
|
||||
|
||||
const refreshWallet = useCallback(async () => {
|
||||
const seq = ++walletSeqRef.current;
|
||||
@@ -1257,14 +1264,13 @@ export function HallBettingGrid({ drawLive }: { drawLive: HallDrawLiveSnapshot }
|
||||
const providerSummaryText =
|
||||
selectedProviderCodes.length > 0
|
||||
? t("hall.providers.summary", {
|
||||
defaultValue: "已选 {{count}} 家,金额按每家公司计算",
|
||||
count: providerSummaryCount,
|
||||
})
|
||||
: t("hall.providers.platformDefaultSummary", {
|
||||
defaultValue: implicitDefaultProvider
|
||||
? `未选择时走平台默认(${implicitDefaultProvider.name})`
|
||||
: "未选择时走平台默认",
|
||||
});
|
||||
: implicitDefaultProvider
|
||||
? t("hall.providers.platformDefaultSummary", {
|
||||
provider: implicitDefaultProvider.name,
|
||||
})
|
||||
: t("hall.providers.platformDefaultSummaryNoProvider");
|
||||
|
||||
return (
|
||||
<>
|
||||
@@ -1511,7 +1517,7 @@ export function HallBettingGrid({ drawLive }: { drawLive: HallDrawLiveSnapshot }
|
||||
<div className="flex flex-wrap items-center justify-between gap-2">
|
||||
<div className="flex flex-wrap items-center gap-1.5">
|
||||
<span className="mr-1 text-[11px] font-black text-[#304f86]">
|
||||
{t("hall.providers.title", { defaultValue: "开注商" })}
|
||||
{t("hall.providers.title")}
|
||||
</span>
|
||||
{!isMobile ? betProviders.map((provider) => {
|
||||
const checked = selectedProviderCodes.includes(provider.code);
|
||||
@@ -1544,11 +1550,9 @@ export function HallBettingGrid({ drawLive }: { drawLive: HallDrawLiveSnapshot }
|
||||
<span className="text-xs font-semibold text-[#58709d]">
|
||||
{selectedProviderNames.length > 0
|
||||
? selectedProviderNames.join(" / ")
|
||||
: t("hall.providers.platformDefault", {
|
||||
defaultValue: implicitDefaultProvider
|
||||
? `平台默认(${implicitDefaultProvider.name})`
|
||||
: "平台默认",
|
||||
})}
|
||||
: implicitDefaultProvider
|
||||
? t("hall.providers.platformDefault", { provider: implicitDefaultProvider.name })
|
||||
: t("hall.providers.platformDefaultNoProvider")}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user