ColumnFooter.tsx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import React from 'react'
  2. import { IDrawingData, IMetricAxisConfig } from './Pivot'
  3. import { IWidgetMetric , DimetionType, IChartStyles } from '../Widget'
  4. import { IChartLine } from './Chart'
  5. import Xaxis from './Xaxis'
  6. import { getAxisData, decodeMetricName } from '../util'
  7. const styles = require('./Pivot.less')
  8. interface IColumnFooterProps {
  9. rowKeys: string[][]
  10. colKeys: string[][]
  11. rowTree: object
  12. colTree: object
  13. tree: object
  14. metrics: IWidgetMetric[]
  15. metricAxisConfig: IMetricAxisConfig
  16. chartStyles: IChartStyles
  17. drawingData: IDrawingData
  18. dimetionAxis: DimetionType
  19. }
  20. export class ColumnFooter extends React.Component<IColumnFooterProps, {}> {
  21. public render () {
  22. const { rowKeys, colKeys, rowTree, colTree, tree, metrics, metricAxisConfig, chartStyles, drawingData, dimetionAxis } = this.props
  23. const { elementSize } = drawingData
  24. let footers: IChartLine[] = []
  25. let tableWidth = 0
  26. if (dimetionAxis) {
  27. const { data, length } = getAxisData('x', rowKeys, colKeys, rowTree, colTree, tree, metrics, drawingData, dimetionAxis)
  28. footers = data
  29. tableWidth = length
  30. }
  31. return (
  32. <div className={styles.columnFooter}>
  33. {dimetionAxis &&
  34. <Xaxis
  35. width={tableWidth}
  36. metrics={metrics}
  37. data={footers}
  38. metricAxisConfig={metricAxisConfig}
  39. chartStyles={chartStyles}
  40. dimetionAxis={dimetionAxis}
  41. elementSize={elementSize}
  42. />
  43. }
  44. </div>
  45. )
  46. }
  47. }
  48. export default ColumnFooter