2929import { ref , onMounted , onUnmounted , watch , markRaw } from ' vue' ;
3030import { FDatePicker , FButton } from ' @fesjs/fes-design' ;
3131import { ReloadOutlined } from ' @fesjs/fes-design/icon' ;
32- import type { EChartsOption , TooltipComponentFormatterCallback } from ' echarts' ;
32+ import type { EChartsOption , TooltipComponentFormatterCallback , BarSeriesOption } from ' echarts' ;
3333import echarts from ' ./useEcharts' ;
3434import {
3535 getYear , getMonth , getDate , subDays , differenceInDays ,
@@ -47,11 +47,11 @@ interface BarStyle {
4747
4848interface ChartConfig {
4949 title: string ;
50- series: {
50+ series: ( Pick < BarSeriesOption , Exclude < keyof BarSeriesOption , ' type ' | ' name ' | ' data ' | ' itemStyle ' >> & {
5151 field: string ;
5252 name: string ;
5353 itemStyle: BarStyle ;
54- }[];
54+ }) [];
5555 fetchData: (startTime : number , endTime : number ) => Promise <any []>;
5656 xAxisField: string ;
5757 tooltipFormatter? : (params : any []) => string ;
@@ -151,7 +151,10 @@ const transformData = (data: any[]) => {
151151 itemStyle: item .itemStyle ,
152152 emphasis: {
153153 focus: ' series' as const
154- }
154+ },
155+ ... Object .entries (item )
156+ .filter (([key ]) => ! [' field' , ' name' , ' itemStyle' ].includes (key ))
157+ .reduce ((acc , [key , value ]) => ({ ... acc , [key ]: value }), {})
155158 }));
156159
157160 return {
0 commit comments