import classNames from 'classnames'; import { CLS_PREFIX } from '../../common/constants'; import { DrillDownDimensionType } from '../../common/type'; import { Dropdown, Menu } from 'antd'; import { DownOutlined } from '@ant-design/icons'; type Props = { drillDownDimension?: DrillDownDimensionType; dimensions: DrillDownDimensionType[]; isSecondDrillDown?: boolean; onSelectDimension: (dimension?: DrillDownDimensionType) => void; onCancelDrillDown: () => void; }; const DEFAULT_DIMENSION_COUNT = 5; const DimensionSection: React.FC = ({ drillDownDimension, dimensions, isSecondDrillDown, onSelectDimension, onCancelDrillDown, }) => { const prefixCls = `${CLS_PREFIX}-drill-down-dimensions`; const defaultDimensions = dimensions.slice(0, DEFAULT_DIMENSION_COUNT); if (defaultDimensions.length === 0) { return null; } return (
{isSecondDrillDown ? '二级' : '推荐'}下钻维度:
{defaultDimensions.map((dimension, index) => { const itemNameClass = classNames(`${prefixCls}-content-item-name`, { [`${prefixCls}-content-item-active`]: drillDownDimension?.id === dimension.id, }); return (
{ onSelectDimension( drillDownDimension?.id === dimension.id ? undefined : dimension ); }} > {dimension.name} {index !== defaultDimensions.length - 1 && }
); })} {dimensions.length > DEFAULT_DIMENSION_COUNT && (
{dimensions.slice(DEFAULT_DIMENSION_COUNT).map(dimension => { const itemNameClass = classNames({ [`${prefixCls}-menu-item-active`]: drillDownDimension?.id === dimension.id, }); return ( { onSelectDimension(dimension); }} > {dimension.name} ); })} } > 更多
)} {drillDownDimension && (
取消{isSecondDrillDown ? '二级' : ''}下钻
)}
); }; export default DimensionSection;