import React from 'react' import classnames from 'classnames' import { IChartInfo } from '../Widget' import { checkChartEnable } from '../util' import { Tooltip } from 'antd' const styles = require('./Workbench.less') interface IChartIndicatorProps { chartInfo: IChartInfo dimetionsCount: number metricsCount: number selectedCharts: IChartInfo[] onSelect: (chart: IChartInfo) => void } export function ChartIndicator (props: IChartIndicatorProps) { const { chartInfo, dimetionsCount, metricsCount, selectedCharts } = props const { title, icon, rules } = chartInfo const contents = rules.map(({ dimension, metric }, ruleIdx) => { const subContents = [] if (Array.isArray(dimension)) { subContents.push(`${dimension[0]}个 到 ${dimension[1] === 9999 ? '多' : dimension[1]}个 维度`) } else { subContents.push(`${dimension}个 维度`) } if (Array.isArray(metric)) { subContents.push(`${metric[0]}个 到 ${metric[1] === 9999 ? '多' : metric[1]}个 指标`) } else { subContents.push(`${metric}个 指标`) } if (rules.length > 1) { return (
{subContents.join(',')}
) } return (subContents.map((item, idx) => ({item}
))) }) const overlay = ( <>{title}
{contents} > ) const iconClass = classnames({ iconfont: true, [icon]: true, [styles.enabled]: checkChartEnable(dimetionsCount, metricsCount, chartInfo), [styles.selected]: selectedCharts.filter((s) => s.id !== chartInfo.id).length === 0, [styles.multipleSelect]: selectedCharts.some((s) => s.id === chartInfo.id) }) return (