
import { useMemo } from 'react'
import ReactEcharts from 'echarts-for-react';


const LineBarCharts = ({ dataSource }: { dataSource: any[] }) => {

  const category = dataSource?.map(item => item.lx)
  const realData = dataSource?.map(item => item.num)

  const option = useMemo(() => {
    return {
      color: ['#FFEB6E', '#36BD3B',],
      tooltip: {
        trigger: 'axis',
        borderWidth: '0',
        backgroundColor: 'rgba(73,81,92,.95)',
        textStyle: {
          color: '#fff',
          fontSize: 16,
        },
        valueFormatter: function(value: any) {
          return `${value || '0'}件`;
        }
      },
      grid: {
        left: '0',
        right: '0',
        bottom: '2%',
        top: '25%',
        containLabel: true,
      },
      legend: {
        data: ['投诉量', '占全市总投诉量的比重'],
        icon: "circle",
        top: 10,
        itemGap: 50,
        textStyle: {
          fontSize: '16px',
          color: '#E4EDFF',
        }
      },
      xAxis: [
        {
          type: 'category',
          boundaryGap: true, //坐标轴两端不留空
          axisLine: {
            show: false, //隐藏X轴轴线
          },
          axisLabel: {
            show: true,
            interval: 0,
            textStyle: {
              padding: [2, 0, 0, 0],
              color: '#CBEDFF',
            },
          },
          axisTick: {
            show: false, //隐藏X轴刻度
          },
          axisPointer: {
            type: 'shadow',
          },
          data: category,
        },
      ],
      yAxis: [
        {
          type: 'value',
          name: '件',
          min: 0,
          max: 'dataMax',
          interval: 50,
          axisLabel: {
            textStyle: {
              color: '#CBEDFF',
              fontSize: 16
            },
          },
          //name的样式设计
          nameTextStyle: {
            align: 'left',
            color: '#CBEDFF',
            padding: [0, 0, 20, -20],
            fontSize: 16
          },
          splitLine: {
            show: false,
          },
          axisLine: {
            show: false,
          },
          axisTick: {
            show: false,
          },
        },
        // {
        //   type: 'value',
        //   name: '%',
        //   min: 0,
        //   max: 100,
        //   interval: 25,
        //   nameTextStyle: {
        //     color: '#CBEDFF',
        //     padding: [0, 0, 20, 25],
        //     fontSize: 16
        //   },
        //   axisLabel: {
        //     textStyle: {
        //       color: '#CBEDFF',
        //       fontSize: 16
        //     },
        //   },
        //   //name的样式设计
        //   splitLine: {
        //     show: false,
        //   },
        //   axisLine: {
        //     show: false,
        //   },
        //   axisTick: {
        //     show: false,
        //   },
        // },
      ],
      series: [
        {
          name: '投诉量',
          type: 'bar',
          stack: true, //堆叠柱状图
          barWidth: 22, //柱状图宽度
          data: realData,
          itemStyle: {
            barBorderRadius: [12, 12, 12, 12],
          },
          label: {
            show: true,
            position: 'top',
            distance: 6,
            color: '#FFFFFF',
            fontSize: 20,
            fontWeight: 700,
            formatter: function(params: any) {
              return `${params.value || '0'}件`;
            }
          }
        },
        // {
        //   name: '占全市总投诉量的比重',
        //   type: 'line',
        //   yAxisIndex: 1,
        //   data: [ 30, 40, 20, 10, 60, 30],
        //   lineStyle: {
        //     width: 4
        //   },
        //   symbol: 'circle',
        //   symbolSize: 8,
        // },
      ]
    }
  }, [dataSource])

  return (
    <ReactEcharts
      option={option} // option：图表配置项
      style={{ width: '880px', height: '353px', margin: '0 auto' }}
    />
  )
}

export default LineBarCharts
