import * as _ from 'lodash'; import * as legend from './chartComponent/legend' import * as series from './chartComponent/series' import * as toolbox from './chartComponent/toolbox' import * as tooltip from './chartComponent/tootip' import * as xAxis from './chartComponent/xAxis' import * as yAxis from './chartComponent/yAxis' import * as datazoom from './chartComponent/datazoom'; const color = ['#7cb5ec', '#90ed7d', '#f7a35c', '#8085e9', '#f15c80', '#e4d354', '#2b908f', '#f45b5b', '#91e8e1', '#434348']; const backgroundColor = "#fff"; // 柱状图 export function getColumnChartOption(data: columnData) { let option = { backgroundColor: backgroundColor, color: color, grid: data.style.interval, legend: legend.getHorizontalLegend(), toolbox: toolbox.getToolBoxBasicMenu(), tooltip: tooltip.getCommonTooltipOfAxis(data.tooltipUnit, data.tooltipFormatter), xAxis: xAxis.getCategoryAxis(data.xData), yAxis: yAxis.getValueAxis(data.yAxisName), series: series.getColumnChartSeries(data) } return option; } // 条形图 export function getBarChartOption(data: barData) { const option = { color: color, backgroundColor: backgroundColor, grid: data.style.interval, legend: legend.getAboveBlock(data.seriesName), toolbox: toolbox.getToolBoxBasicMenu(), tooltip: tooltip.getCommonTooltipOfAxis(data.tooltipUnit, data.tooltipFormatter), xAxis: xAxis.getValueAxis(data.xAxisName), yAxis: yAxis.getCategoryAxis(data.yData), series: series.getBarChartSeries(data) } console.log(option) return option; } // 分组堆叠图 export function getStackBarChartOption(data: stackBarData) { let option = { backgroundColor: backgroundColor, color: color, grid: data.style.interval, legend: legend.getHorizontalLegend(), toolbox: toolbox.getToolBoxBasicMenu(), tooltip: tooltip.getCommonTooltipOfItem(data.tooltipUnit, data.tooltipFormatter, data.tooltipPosition), xAxis: xAxis.getCategoryAxis(data.xData), yAxis: yAxis.getValueAxis(data.yAxisName), series: series.getStackBarChartSeries(data) } return option; } /** * 获取金字塔图option */ export function getPyramidBarChartOption(data: pyramid) { const option = { color: color, backgroundColor: backgroundColor, grid: data.style.pyramidGrid, legend: legend.getHorizontalLegend(), toolbox: toolbox.getToolBoxBasicMenu(), tooltip: tooltip.getCommonTooltipOfItem(data.tooltipUnit, data.tooltipFormatter,data.position), xAxis: xAxis.getPyramidCategoryAxis(data.xAxisName), yAxis: yAxis.getPyramidYAxis(data.yData), series: series.getPyramidBarChartSeries(data) } return option; } export interface columnData { /** * @xdata x轴的data */ xData?: string[] | []; yData?: string[][] | []; /** * @seriesName 图例 */ seriesName: string[] | []; /** * @yAxisName y轴名 */ yAxisName?: string; /** * @tooltipUnit 单位 */ tooltipUnit?: string; style?: any; tooltipFormatter?: (param) => string } export interface barData { xData?: string[][] | [], yData?: string[] | [], style?: any, /** * @seriesName 系列名 */ seriesName: string[] | [], /** * @xAxisName 值轴名 */ xAxisName?: string; /** * @tooltipUnit 单位 */ tooltipUnit?: string | string[]; tooltipFormatter?: string | ((param) => string), } export interface stackBarData extends columnData { seriesName: string[], stack: string[], tooltipPosition: any } /** * @xData string[][] | [] * @yData sting[] | [] * @style * @seriesName string[] | [] * @xAxisName string * @tooltipUnit string * @tooltipUnit */ export interface pyramid extends barData { stack: string, tooltipUnit: string, tooltipFormatter?: (((parmas) => string) | string) ,position?:any} export const getOptionOfBasicLineChart = function (basicLineChartParam: BasicLineChartParam): any { let basicLineChartOption = { color: color, backgroundColor: backgroundColor, grid: basicLineChartParam.customGrid, legend: legend.getLegendBottomNoScroll(basicLineChartParam.style), tooltip: tooltip.getToolTipOfItemChart(basicLineChartParam.style, basicLineChartParam.unit), toolbox: toolbox.getToolBoxBasicMenu(), xAxis: xAxis.getXaxisOfCategoryTick(basicLineChartParam.xAxisName, basicLineChartParam.xAxisDatas), yAxis: yAxis.getYaxisOfValue(basicLineChartParam.style, basicLineChartParam.yAxisName, basicLineChartParam.yNameGap), series: series.getBasicLineChartSeries(basicLineChartParam.datas, basicLineChartParam.seriesNames) } return basicLineChartOption; } export const getOptionOfPointValueLineChart = function (basicLineChartParam: BasicLineChartParam): any { let basicLineChartOption = { color: color, backgroundColor: backgroundColor, grid: basicLineChartParam.customGrid, legend: legend.getLegendRightScroll(basicLineChartParam.style), tooltip: tooltip.getToolTipOfAxisChart(basicLineChartParam.style, basicLineChartParam.unit), toolbox: toolbox.getToolBoxBasicMenu(), xAxis: xAxis.getXaxisOfCategory(basicLineChartParam.xAxisName, basicLineChartParam.xAxisDatas), yAxis: yAxis.getYaxisOfValue(basicLineChartParam.style, basicLineChartParam.yAxisName, basicLineChartParam.yNameGap), series: series.getMoreLineChartSeries(basicLineChartParam.datas, basicLineChartParam.seriesNames) } return basicLineChartOption; } export const getOptionOfBigDataLineChart = function (bigDataLineChartParam: BigDataLineChartParam): any { let bigDataLineChartOption = { color: color, backgroundColor: backgroundColor, grid: bigDataLineChartParam.customGrid, legend: legend.getLegendBottomNoScroll(bigDataLineChartParam.style), tooltip: tooltip.getToolTipOfAxisChart(bigDataLineChartParam.style, bigDataLineChartParam.unit), toolbox: toolbox.getToolBoxBasicMenu(), xAxis: xAxis.getXaxisOfTime(bigDataLineChartParam.xAxisName), yAxis: yAxis.getYaxisOfValue(bigDataLineChartParam.style, bigDataLineChartParam.yAxisName, bigDataLineChartParam.yNameGap), series: series.getBigDataLineChartSeries(bigDataLineChartParam.datas, bigDataLineChartParam.seriesNames) } return bigDataLineChartOption; } export const getOptionOfAnnotationsLineChart = function (annotationsLineChartParam: AnnotationsLineChartParam): any { let bigDataLineChartOption = { color: color, backgroundColor: backgroundColor, grid: annotationsLineChartParam.customGrid, legend: legend.getLegendNotShow(annotationsLineChartParam.style), tooltip: tooltip.getToolTipOfAxisChartNoXaxisData(annotationsLineChartParam.style, annotationsLineChartParam.unit), toolbox: toolbox.getToolBoxBasicMenu(), xAxis: xAxis.getXaxisOfTime(annotationsLineChartParam.xAxisName), yAxis: yAxis.getYaxisOfValue(annotationsLineChartParam.style, annotationsLineChartParam.yAxisName, annotationsLineChartParam.yNameGap), series: series.getAnnotationsLineChartSeries(annotationsLineChartParam.datas, annotationsLineChartParam.seriesNames, annotationsLineChartParam.markPoints), dataZoom: datazoom.getDatazoomInside() } return bigDataLineChartOption; } export const getOptionOfNegativeBarChart = function (negativeBarChartParam: NegativeBarChartParam): any { let negativeBarChartOption = { color: color, backgroundColor: backgroundColor, grid: negativeBarChartParam.customGrid, legend: legend.getLegendRightScroll(negativeBarChartParam.style), tooltip: tooltip.getToolTipOfItemChartTranslation(negativeBarChartParam.style, negativeBarChartParam.unit, negativeBarChartParam.translationNumber), toolbox: toolbox.getToolBoxBasicMenu(), xAxis: xAxis.getXaxisOfCategoryNoXDatas(negativeBarChartParam.xAxisName), yAxis: yAxis.getYaxisOfValueTranlation(negativeBarChartParam.style, negativeBarChartParam.yAxisName, negativeBarChartParam.yNameGap, negativeBarChartParam.translationNumber), series: series.getNegativeBarChartSeries(negativeBarChartParam.datas, negativeBarChartParam.seriesNames, negativeBarChartParam.translationNumber), // dataZoom: datazoom.getDatazoomInside() } return negativeBarChartOption; } export interface BasicLineChartParam { customGrid: any; style?: any, unit?: string, xAxisName?: string; yAxisName?: string; xAxisDatas?: any[]; yNameGap?: number; datas: any[][]; seriesNames: any[]; } export interface BigDataLineChartParam { customGrid: any; style?: any, unit?: string, xAxisName?: string; yAxisName?: string; yNameGap?: number; datas: any[][]; seriesNames: any[]; } export interface AnnotationsLineChartParam { customGrid:any; style?: any, unit?: string, xAxisName?: string; yAxisName?: string; yNameGap?: number; datas: any[][]; seriesNames: any[]; markPoints: any[]; } export interface NegativeBarChartParam { customGrid:any; style?: any, unit?: string, xAxisName?: string; yAxisName?: string; yNameGap?: number; datas: any[][]; seriesNames: any[]; translationNumber: number; }