统一菜单命名并移除剩余台账工具(05-31-unified-menu-remove-ledger-tools-wave2)

这个提交包含在:
2026-05-31 15:06:26 +08:00
父节点 46fa609961
当前提交 43efc9ea08
共修改 47 个文件,包含 498 行新增和 358 行删除
+11 -13
查看文件
@@ -1,7 +1,6 @@
import { useEffect, useMemo, useRef, useState } from "react";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { Link, useSearchParams } from "react-router-dom";
import { Wrench } from "lucide-react";
import { toast } from "sonner";
import { isApiError } from "../api/types";
import { mapApiErrorMessage } from "../api/errorMessages";
@@ -281,7 +280,7 @@ export function PurchaseRequestsPage() {
const [supplierFilter, setSupplierFilter] = useState("");
const [legalEntityFilter, setLegalEntityFilter] = useState("");
const [costCenterFilter, setCostCenterFilter] = useState("");
const [showLedgerTools, setShowLedgerTools] = useState(false);
const [showAdvancedFilters, setShowAdvancedFilters] = useState(false);
const [page, setPage] = useState(1);
const [selectedId, setSelectedId] = useState(searchParams.get("id") ?? "");
const [hydratedDetailId, setHydratedDetailId] = useState("");
@@ -457,12 +456,12 @@ export function PurchaseRequestsPage() {
const totalPages = Math.max(1, Math.ceil((listQuery.data?.total ?? 0) / PAGE_SIZE));
const purchaseItems = listQuery.data?.items ?? [];
const hasAdvancedFilters = Boolean(supplierFilter || legalEntityFilter || costCenterFilter || (canViewAll && !mine));
const canShowLedgerTools =
const canShowAdvancedFilters =
canViewAll ||
Boolean((suppliersQuery.data?.items ?? []).length) ||
Boolean((legalEntitiesQuery.data?.items ?? []).length) ||
Boolean((costCentersQuery.data?.items ?? []).length);
const showAdvancedTools = canShowLedgerTools && (showLedgerTools || hasAdvancedFilters);
const showAdvancedFilterPanel = canShowAdvancedFilters && (showAdvancedFilters || hasAdvancedFilters);
const emptyState = resolvePurchaseEmptyStateCopy(status);
const totalAmountPreview = useMemo(
() => items.reduce((sum, item) => sum + Number(moneyPreview(item.quantity, item.unitPrice)), 0).toFixed(2),
@@ -803,7 +802,7 @@ export function PurchaseRequestsPage() {
<ListWorkspace>
{downloadReasonDialog}
<WorkspaceHeader
title="采购申请"
title="采购"
actions={
<div className="flex flex-wrap gap-2">
{isPurchaseDetailMode ? (
@@ -822,15 +821,14 @@ export function PurchaseRequestsPage() {
{createMutation.isPending ? "创建中..." : "新建采购"}
</Button>
) : null}
{canShowLedgerTools ? (
{canShowAdvancedFilters ? (
<Button
data-testid="purchase-ledger-tools"
data-testid="purchase-advanced-filters"
type="button"
variant={showAdvancedTools ? "default" : "secondary"}
onClick={() => setShowLedgerTools((current) => !current)}
variant={showAdvancedFilterPanel ? "default" : "secondary"}
onClick={() => setShowAdvancedFilters((current) => !current)}
>
<Wrench aria-hidden className="mr-1 size-4" />
台账工具
筛选
</Button>
) : null}
</>
@@ -853,8 +851,8 @@ export function PurchaseRequestsPage() {
{mine ? "我相关" : "全范围"}
</span>
}
advanced={showAdvancedTools ? (
<div className="grid gap-3 md:grid-cols-3 xl:grid-cols-4" data-testid="purchase-ledger-tools-panel">
advanced={showAdvancedFilterPanel ? (
<div className="grid gap-3 md:grid-cols-3 xl:grid-cols-4" data-testid="purchase-advanced-filters-panel">
<select
className="select-std"
value={supplierFilter}