去掉礼物相关

This commit is contained in:
zhx 2026-06-02 18:00:12 +08:00
parent 333659f80c
commit c0c81cd97b
3 changed files with 20 additions and 16 deletions

View File

@ -69,7 +69,7 @@ export function createCoinAdjustment(payload: CoinAdjustmentPayload): Promise<Co
} }
export function getGiftDiamondRatios(regionId: string | number): Promise<GiftDiamondRatioResponse> { export function getGiftDiamondRatios(regionId: string | number): Promise<GiftDiamondRatioResponse> {
return apiRequest<GiftDiamondRatioResponse>("/api/v1/admin/operations/gift-diamond-ratios", { return apiRequest<GiftDiamondRatioResponse>("/v1/admin/operations/gift-diamond-ratios", {
method: "GET", method: "GET",
query: { region_id: regionId }, query: { region_id: regionId },
}); });
@ -79,7 +79,7 @@ export function updateGiftDiamondRatios(payload: {
regionId: number; regionId: number;
ratios: Record<string, string>; ratios: Record<string, string>;
}): Promise<GiftDiamondRatioResponse> { }): Promise<GiftDiamondRatioResponse> {
return apiRequest<GiftDiamondRatioResponse, typeof payload>("/api/v1/admin/operations/gift-diamond-ratios", { return apiRequest<GiftDiamondRatioResponse, typeof payload>("/v1/admin/operations/gift-diamond-ratios", {
body: payload, body: payload,
method: "PUT", method: "PUT",
}); });

View File

@ -185,28 +185,33 @@
background: var(--bg-card-strong); background: var(--bg-card-strong);
} }
.ratioBody {
padding: var(--space-5);
background: var(--bg-card);
}
.ratioPanel { .ratioPanel {
display: grid; display: grid;
gap: var(--space-5); width: min(100%, 980px);
max-width: 760px; gap: var(--space-4);
} }
.ratioHeader { .ratioHeader {
display: flex; display: flex;
align-items: center; align-items: center;
gap: var(--space-3);
color: var(--text-primary); color: var(--text-primary);
} }
.ratioHeader h2 { .ratioHeader h2 {
margin: 0; margin: 0;
font-size: 18px; font-size: 16px;
font-weight: 800; font-weight: 800;
line-height: 1.4;
} }
.ratioGrid { .ratioGrid {
display: grid; display: grid;
grid-template-columns: repeat(3, minmax(160px, 1fr)); grid-template-columns: repeat(3, minmax(180px, 1fr));
gap: var(--space-4); gap: var(--space-4);
} }

View File

@ -1,5 +1,5 @@
import PercentOutlined from "@mui/icons-material/PercentOutlined";
import SaveOutlined from "@mui/icons-material/SaveOutlined"; import SaveOutlined from "@mui/icons-material/SaveOutlined";
import InputAdornment from "@mui/material/InputAdornment";
import MenuItem from "@mui/material/MenuItem"; import MenuItem from "@mui/material/MenuItem";
import TextField from "@mui/material/TextField"; import TextField from "@mui/material/TextField";
import { useCallback, useEffect, useMemo, useState } from "react"; import { useCallback, useEffect, useMemo, useState } from "react";
@ -8,7 +8,7 @@ import { useGiftDiamondAbilities } from "@/features/operations/permissions.js";
import styles from "@/features/operations/operations.module.css"; import styles from "@/features/operations/operations.module.css";
import { useAdminQuery } from "@/shared/hooks/useAdminQuery.js"; import { useAdminQuery } from "@/shared/hooks/useAdminQuery.js";
import { useRegionOptions } from "@/shared/hooks/useRegionOptions.js"; import { useRegionOptions } from "@/shared/hooks/useRegionOptions.js";
import { AdminListBody, AdminListPage, AdminListToolbar } from "@/shared/ui/AdminListLayout.jsx"; import { AdminListPage, AdminListToolbar } from "@/shared/ui/AdminListLayout.jsx";
import { Button } from "@/shared/ui/Button.jsx"; import { Button } from "@/shared/ui/Button.jsx";
import { DataState } from "@/shared/ui/DataState.jsx"; import { DataState } from "@/shared/ui/DataState.jsx";
import { useToast } from "@/shared/ui/ToastProvider.jsx"; import { useToast } from "@/shared/ui/ToastProvider.jsx";
@ -119,13 +119,10 @@ export function GiftDiamondRatioPage() {
} }
/> />
<DataState error={query.error} loading={query.loading || loadingRegions} onRetry={query.reload}> <DataState error={query.error} loading={query.loading || loadingRegions} onRetry={query.reload}>
<AdminListBody> <div className={styles.ratioBody}>
<section className={styles.ratioPanel}> <section className={styles.ratioPanel}>
<div className={styles.ratioHeader}> <div className={styles.ratioHeader}>
<PercentOutlined fontSize="small" /> <h2>{selectedRegionLabel}</h2>
<div>
<h2>{selectedRegionLabel}</h2>
</div>
</div> </div>
<div className={styles.ratioGrid}> <div className={styles.ratioGrid}>
{giftTypes.map((giftType) => ( {giftTypes.map((giftType) => (
@ -136,14 +133,16 @@ export function GiftDiamondRatioPage() {
size="small" size="small"
value={form[giftType.value] || ""} value={form[giftType.value] || ""}
inputProps={{ max: 100, min: 0, step: "0.01" }} inputProps={{ max: 100, min: 0, step: "0.01" }}
InputProps={{
endAdornment: <InputAdornment position="end">%</InputAdornment>,
}}
disabled={!abilities.canUpdate || saving} disabled={!abilities.canUpdate || saving}
onChange={(event) => changeRatio(giftType.value, event.target.value)} onChange={(event) => changeRatio(giftType.value, event.target.value)}
helperText="%"
/> />
))} ))}
</div> </div>
</section> </section>
</AdminListBody> </div>
</DataState> </DataState>
</AdminListPage> </AdminListPage>
); );