<template>
  <chart :options="bar()" class="bar" />
</template>

<script>
import { graphic } from "echarts/lib/export";
export default {
  props: {
    data: {
      type: Array,
      default: () => {
        return [];
      }
    },
    bar_width: {
      type: Number,
      default: 12
    },
    colors: {
      type: Array,
      default: () => {
        return ["#515fe7", "#e56600"];
      }
    },
    bar_border_radius: {
      type: Array,
      default: () => {
        return [10, 10, 10, 10];
      }
    },
    show_split: {
      type: Boolean,
      default: false
    },
    x_router: {
      type: Number,
      default: 0
    }
  },
  data: () => ({}),
  mounted() {},
  methods: {
    bar() {
      let self = this;
      return {
        grid: {
          left: 10,
          right: 10,
          bottom: 25,
          top: 25,
          containLabel: true
        },
        legend: {
          left: "right",
          itemWidth: 10,
          itemHeight: 10,
          orient: "horizontal",
          backgroundColor: "#f4f7fc"
        },
        color: this.colors,
        tooltip: {},
        dataset: {
          source: self.data
        },
        xAxis: {
          type: "category",
          //   data: self.data.legendData,
          axisLabel: {
            margin: 20,
            color: "#0d1847",
            textStyle: {
              fontSize: 12
            },
            interval: 0,
            rotate: self.x_router,
            formatter: function(value) {
              let valueTxt = "";
              if (value.length > 6) {
                valueTxt = value.substring(0, 5) + "...";
              } else {
                valueTxt = value;
              }
              return valueTxt;
            }
          },
          axisLine: {
            lineStyle: {
              color: "#f2f2f2"
            }
          },
          axisTick: {
            show: false
          },
          splitArea: {
            show: true,
            areaStyle: {
              color: ["#fff", "#f8f9fd"],
              opacity: 0.5
            },
            interval: 0
          }
        },
        yAxis: [
          {
            axisLabel: {
              color: "#a9aec0",
              textStyle: {
                fontSize: 12
              }
            },
            minInterval: 1,
            axisLine: {
              lineStyle: {
                color: "rgba(0, 0, 0, 0)"
              }
            },
            axisTick: {
              show: false
            },
            splitLine: {
              lineStyle: {
                color: "#f2f2f2",
                type: "solid"
              }
            }
          }
        ],
        // Declare several bar series, each will be mapped
        // to a column of dataset.source by default.
        series: [
          {
            type: "bar",
            type: "bar",
            barWidth: self.bar_width,
            itemStyle: {
              normal: {
                color: function(params) {
                  return new graphic.LinearGradient(
                    0,
                    0,
                    0,
                    1,
                    [
                      {
                        offset: 0,
                        color: self.colors[0] // 0% 处的颜色
                      },
                      {
                        offset: 1,
                        color: self.colors[0] // 100% 处的颜色
                      }
                    ],
                    false
                  );
                },
                barBorderRadius: self.bar_border_radius
              }
            }
          },
          {
            type: "bar",
            type: "bar",
            barWidth: self.bar_width,
            itemStyle: {
              normal: {
                color: function(params) {
                  return new graphic.LinearGradient(
                    0,
                    0,
                    0,
                    1,
                    [
                      {
                        offset: 0,
                        color: self.colors[1] // 0% 处的颜色
                      },
                      {
                        offset: 1,
                        color: self.colors[1] // 100% 处的颜色
                      }
                    ],
                    false
                  );
                },
                barBorderRadius: self.bar_border_radius
              }
            }
          }
        ]
      };
    }
  }
};
</script>
<style scoped>
.bar {
  width: 100%;
  height: 100%;
}
</style>