From b8b5182c670cc092db13de08b297610441a8f17b Mon Sep 17 00:00:00 2001 From: zhx Date: Fri, 3 Jul 2026 13:27:03 +0800 Subject: [PATCH] =?UTF-8?q?ui=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- finance/src/FinanceApp.jsx | 8 -- finance/src/FinanceApp.test.jsx | 5 +- .../components/FinanceRechargeDetailList.jsx | 50 ++++++++-- .../FinanceRechargeDetailList.test.jsx | 91 ++++++++++++++----- finance/src/components/FinanceShell.jsx | 15 +-- finance/src/styles/index.css | 45 +++++---- 6 files changed, 137 insertions(+), 77 deletions(-) diff --git a/finance/src/FinanceApp.jsx b/finance/src/FinanceApp.jsx index d5faf90..7969149 100644 --- a/finance/src/FinanceApp.jsx +++ b/finance/src/FinanceApp.jsx @@ -394,14 +394,6 @@ export function FinanceApp() { canViewWithdrawals={session.canViewWithdrawalApplications} loading={optionsState.loading || rechargeDetailsState.loading || myApplicationsState.loading || applicationsState.loading || withdrawalsState.loading} session={session} - onRefresh={() => { - loadOptions(); - loadRechargeDetails(); - loadRechargeSummary(); - loadMyApplications(); - loadApplications(); - loadWithdrawals(); - }} onViewChange={setActiveView} > {activeView === "rechargeDetails" && session.canViewAppRechargeDetails ? ( diff --git a/finance/src/FinanceApp.test.jsx b/finance/src/FinanceApp.test.jsx index d01300c..28d4391 100644 --- a/finance/src/FinanceApp.test.jsx +++ b/finance/src/FinanceApp.test.jsx @@ -41,7 +41,10 @@ test("keeps create application dialog open when backdrop is clicked", async () = ); - fireEvent.click(await screen.findByRole("button", { name: "添加" })); + await screen.findByRole("button", { name: "添加" }); + expect(document.querySelector(".finance-header")).toBeNull(); + + fireEvent.click(screen.getByRole("button", { name: "添加" })); expect(within(screen.getByRole("dialog")).getByRole("heading", { name: "发起申请" })).toBeInTheDocument(); const backdrop = document.querySelector(".MuiBackdrop-root"); diff --git a/finance/src/components/FinanceRechargeDetailList.jsx b/finance/src/components/FinanceRechargeDetailList.jsx index a12ea7a..a6cf6ec 100644 --- a/finance/src/components/FinanceRechargeDetailList.jsx +++ b/finance/src/components/FinanceRechargeDetailList.jsx @@ -9,6 +9,8 @@ import TableContainer from "@mui/material/TableContainer"; import TableHead from "@mui/material/TableHead"; import TableRow from "@mui/material/TableRow"; import TextField from "@mui/material/TextField"; +import { useState } from "react"; +import { AdminSwitch } from "@/shared/ui/AdminSwitch.jsx"; import { TimeRangeFilter } from "@/shared/ui/TimeRangeFilter.jsx"; import { EMPTY_RECHARGE_SUMMARY, @@ -33,12 +35,14 @@ export function FinanceRechargeDetailList({ summary, summaryLoading, }) { + const [showCoinColumns, setShowCoinColumns] = useState(false); const items = bills.items || []; const page = Number(bills.page || filters.page || 1); const pageSize = Number(bills.pageSize || 50); const total = Number(bills.total || 0); const hasNextPage = page * pageSize < total; const regionOptions = regions || []; + const visibleColumnCount = showCoinColumns ? 9 : 7; const pendingGoogleTxIds = items .filter((item) => item.rechargeType === "google_play_recharge" && !item.paidSyncedAtMs) .map((item) => item.transactionId) @@ -46,7 +50,7 @@ export function FinanceRechargeDetailList({ return (
- +
onFiltersChange({ keyword: event.target.value })} /> +