/** * 业务结构树形项组件 * * 递归显示业务结构层级 * 使用位置:业务结构分析卡片 * 黑金主题风格 */ import React from 'react'; import { Box, HStack, VStack, Text, Badge, Tag, TagLabel } from '@chakra-ui/react'; import { formatPercentage, formatBusinessRevenue } from '@utils/priceFormatters'; import type { BusinessTreeItemProps } from '../types'; // 黑金主题配置(使用更亮的金色提高对比度) const THEME = { bg: 'gray.700', gold: '#F4D03F', // 亮金色 goldLight: '#F0D78C', textPrimary: '#F4D03F', // 亮金色(提高对比度) textSecondary: 'gray.400', border: 'rgba(212, 175, 55, 0.5)', }; const BusinessTreeItem: React.FC = ({ business, depth = 0 }) => { // 获取营收显示 const getRevenueDisplay = (): string => { const revenue = business.revenue || business.financial_metrics?.revenue; const unit = business.revenue_unit; if (revenue !== undefined && revenue !== null) { return formatBusinessRevenue(revenue, unit); } return '-'; }; return ( 0 ? '4px solid' : 'none'} borderLeftColor={THEME.gold} borderRadius="md" mb={2} _hover={{ shadow: 'md', bg: 'gray.600' }} transition="all 0.2s" > {business.business_name} {business.financial_metrics?.revenue_ratio && business.financial_metrics.revenue_ratio > 30 && ( 核心业务 )} 营收占比: {formatPercentage(business.financial_metrics?.revenue_ratio)} 毛利率: {formatPercentage(business.financial_metrics?.gross_margin)} {business.growth_metrics?.revenue_growth !== undefined && ( 0 ? 'red.600' : 'green.600'} color="white" > 增长: {business.growth_metrics.revenue_growth > 0 ? '+' : ''} {formatPercentage(business.growth_metrics.revenue_growth)} )} {getRevenueDisplay()} 营业收入 ); }; export default BusinessTreeItem;