diff --git a/web/src/app/admin/dimensions/page.tsx b/web/src/app/admin/dimensions/page.tsx index 0b4c29e..ddce7a4 100644 --- a/web/src/app/admin/dimensions/page.tsx +++ b/web/src/app/admin/dimensions/page.tsx @@ -15,21 +15,19 @@ import { Spin, Table, Tag, - Tree, Typography, type MenuProps, } from "antd"; -import { MoreOutlined, EditOutlined, PlusOutlined } from "@ant-design/icons"; +import { MoreOutlined, PlusOutlined } from "@ant-design/icons"; import type { ColumnsType } from "antd/es/table"; -import type { DataNode } from "antd/es/tree"; import Link from "next/link"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { useCallback, useMemo, useRef, useState } from "react"; import { useAuth } from "@/components/auth-provider"; import { useToastFeedback } from "@/hooks/use-toast-feedback"; import { useTopicSubscription } from "@/hooks/use-topic-subscription"; import { readApiError } from "@/lib/api"; -import type { DimensionItem, DimensionItemListResponse, DimensionItemTreeNode } from "@/types/dimension"; +import type { DimensionItem, DimensionItemListResponse } from "@/types/dimension"; type CreateDimensionValues = { dimension_type: string; @@ -79,7 +77,6 @@ export default function AdminDimensionsPage() { const [createModalOpen, setCreateModalOpen] = useState(false); const [editingItem, setEditingItem] = useState(null); const [selectedDimensionType, setSelectedDimensionType] = useState(undefined); - const [viewMode, setViewMode] = useState<"table" | "tree">("tree"); const [pagination, setPagination] = useState({ current: 1, pageSize: 50 }); const [tableScrollY, setTableScrollY] = useState(DIMENSIONS_TABLE_MIN_SCROLL_Y); const tableScrollAnchorRef = useRef(null); @@ -102,8 +99,6 @@ export default function AdminDimensionsPage() { }, [paginationCurrent, paginationPageSize, selectedDimensionType]); const dimensionsPath = `/api/v1/dimensions?${dimensionsQueryParams}`; - const treeQueryParams = selectedDimensionType ? `?dimension_type=${selectedDimensionType}` : ""; - const treePath = `/api/v1/dimensions/tree${treeQueryParams}`; const loadDimensions = useCallback(async () => { const response = await fetchWithAuth(dimensionsPath); @@ -111,22 +106,10 @@ export default function AdminDimensionsPage() { return (await response.json()) as DimensionItemListResponse; }, [fetchWithAuth, dimensionsPath]); - const loadTree = useCallback(async () => { - const response = await fetchWithAuth(treePath); - if (!response.ok) throw new Error(await readApiError(response)); - return (await response.json()) as DimensionItemTreeNode[]; - }, [fetchWithAuth, treePath]); - const dimensionsQuery = useQuery({ queryKey: ["admin.dimensions", dimensionsQueryParams], queryFn: loadDimensions, - enabled: !!user && canRead && viewMode === "table", - }); - - const treeQuery = useQuery({ - queryKey: ["admin.dimensions.tree", treeQueryParams], - queryFn: loadTree, - enabled: !!user && canRead && viewMode === "tree", + enabled: !!user && canRead, }); useTopicSubscription( @@ -134,16 +117,13 @@ export default function AdminDimensionsPage() { useCallback(() => { if (!user || !canRead) return; void queryClient.invalidateQueries({ queryKey: ["admin.dimensions"] }); - void queryClient.invalidateQueries({ queryKey: ["admin.dimensions.tree"] }); }, [canRead, queryClient, user]), ); const dimensions = useMemo(() => dimensionsQuery.data?.items ?? [], [dimensionsQuery.data?.items]); - const treeData = useMemo(() => treeQuery.data ?? [], [treeQuery.data]); const refreshData = async () => { await queryClient.refetchQueries({ queryKey: ["admin.dimensions"] }); - await queryClient.refetchQueries({ queryKey: ["admin.dimensions.tree"] }); }; const createDimensionMutation = useMutation({ @@ -260,8 +240,7 @@ export default function AdminDimensionsPage() { createForm.resetFields(); }; - const queryError = (dimensionsQuery.error instanceof Error ? dimensionsQuery.error.message : "") || - (treeQuery.error instanceof Error ? treeQuery.error.message : ""); + const queryError = dimensionsQuery.error instanceof Error ? dimensionsQuery.error.message : ""; const anyError = error || queryError; useToastFeedback({ @@ -271,20 +250,6 @@ export default function AdminDimensionsPage() { clearSuccess: () => setSuccess(""), }); - const buildTreeData = (nodes: DimensionItemTreeNode[]): DataNode[] => { - return nodes.map((node) => ({ - key: node.id, - title: ( - - {node.name} - ({node.code}) - {statusLabel(node.is_enabled)} - - ), - children: node.children ? buildTreeData(node.children) : [], - })); - }; - const columns: ColumnsType = [ { title: "维度类型", @@ -431,22 +396,11 @@ export default function AdminDimensionsPage() { -