<template>
  <div ref="chart" style="width: 100%;height:280px;"></div>
</template>

<script setup >
import { onBeforeMount, reactive, ref,defineProps } from "vue";
// 局部引入echarts核心模块
import * as echarts from "echarts";

const chart = ref(); // 创建DOM引用

const props = defineProps({
  list1: {
    type: Array,
    default: () => {
      return [];
    },
  },
  list2: {
    type: Array,
    default: () => {
      return [];
    },
  },
  year: {
    type: Array,
    default: () => {
      return [];
    },
  },
});

const data = reactive({
  list1: [],
  list2: [],
  year: [],
  option: {}
})

const getOption = () =>{
  data.option = {
  tooltip: {
    trigger: "axis",
    formatter: "{b0}<br />{a0}:{c0} <br />{a1}:{c1} ",
  },
  legend: {
    top: "5%",
    right: "11%",
    textStyle: {
      fontSize: 12,
      color: "#ffffff",
    },
  },
  grid: {
    left: "1%",
    right: "10%",
    bottom: "5%",
    containLabel: true,
  },
  calculable: true,
  xAxis: [
    {
      type: "category",
      axisLabel: {
        //坐标轴刻度标签的相关设置
        textStyle: {
          color: "#ffffff",
        },
      },
      data: data.year,
    },
     {
      axisTick: false,
      type: "category",
      data: data.year,
      axisLabel: {
        show: false,
      },
    },

  ],

  yAxis: [
    {
      type: "value",
      splitLine: {
        show: true,
        lineStyle: {
          color: "rgba(226, 226, 226, 0.3)",
          width: 1,
        },
      },
      axisLabel: {
        //坐标轴刻度标签的相关设置
        textStyle: {
          color: "#ffffff",
        },
      },
    },
     {
      type: "value",
      min: 0,
      max: 100,
      splitLine: {
        show: false,
        lineStyle: {
          type: "solid",
          color: "rgb(221, 242, 255,0.1)"
        },
      },
      axisLine: {
        show: false,
        lineStyle: {
          type: "dotted",
        },
      },
      axisLabel: {
        show: false,
        fontSize: 14,
        fontFamily: "MicrosoftYaHei",
        color: "#DEF1FF",
        lineHeight: 19,
      },
    },

  ],
  series: [
    {
      name: "特困补助金额",
      type: "bar",
      data: data.list1,
      barWidth: "18%",
      itemStyle: {
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
          {
            offset: 0,
            color: "rgba(142, 187, 255, 1)",
          },
          {
            offset: 1,
            color: "rgba(142, 187, 255, 0.20)",
          },
        ]),
      },
    },
    {
      name: "低保补助金额",
      type: "bar",
      data: data.list2,
      barWidth: "18%",
      itemStyle: {
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
          {
            offset: 0,
            color: "rgba(23, 237, 255, 1)",
          },
          {
            offset: 1,
            color: "rgba(23, 237, 255, 0.20)",
          },
        ]),
      },
    },
    {
      type: "bar",
      xAxisIndex: 1,
      yAxisIndex: 1,
      itemStyle: {
        color: "rgba(221, 242, 255, 0.1)",
      },
      data: data.year.map(() => 100),
      barWidth: 50,
    },
  ],
};
}
const setChart = () => {
  // Vue3中： 需要引入
  var myChart = echarts.init(chart.value);

  // 使用刚指定的配置项和数据显示图表。
  myChart.setOption(data.option);
}

// 使用生命钩子
onBeforeMount(() => {
  setTimeout(() => {
    data.list1 = props.list1
    data.list2 = props.list2
    data.year = props.year
    getOption()
    setChart()
  }, 600)
});
</script>

<style scoped>
</style>