< template> 
  < div ref = "chart"  style = "height: 100%" > < /div> 
< /template> 
< script> 
import  * as echarts from "echarts" ; 
var cate =  [ "质量通病1" , "质量通病2" , "质量通病3" , "质量通病4" , "质量通病5" ] ; 
//数据值,顺序和Y轴的名字一一对应
var barData =  [ 92 , 90 , 75 , 65 , 55 ] ; 
export  default { 
  name: "LineChart" ,
  props: [ "dataList" , "xAxisLabel" , "yAxisLabel" , "legend" ] ,
  watch: { 
    dataList ( )  { 
      this.initChart( ) ; 
    } ,
  } ,
  mounted ( )  { 
    this.initChart( ) ; 
  } ,
  methods: { 
    initChart ( )  { 
      const chart =  echarts.init( this.$refs .chart) ; 
      const option =  { 
        backgroundColor: "#061740" ,
        tooltip: { 
          trigger: "axis" ,
          axisPointer: { 
            type: "shadow" ,
          } ,
        } ,
        //图表位置
        grid: { 
          left: "5%" ,
          right: "10%" ,
          bottom: "3%" ,
          top: "3%" ,
          containLabel: true,
        } ,
        //X轴
        xAxis: { 
          type: "value" ,
          axisLine: { 
            show: false,
          } ,
          axisTick: { 
            show: false,
          } ,
          //不显示X轴刻度线和数字
          splitLine: {  show: false  } ,
          axisLabel: {  show: false  } ,
        } ,
        yAxis: { 
          type: "category" ,
          data: cate,
          //升序
          inverse: true,
          splitLine: {  show: false  } ,
          axisLine: { 
            show: false,
          } ,
          axisTick: { 
            show: false,
          } ,
          //key和图间距
          offset: 10 ,
          //动画部分
          animationDuration: 300 ,
          animationDurationUpdate: 300 ,
          //key文字大小
          nameTextStyle: { 
            fontSize: 5 ,
          } ,
          axisLabel: { 
            textStyle: { 
              color: "#F5F5F5" , //更改坐标轴文字颜色
              fontSize: 12 , //更改坐标轴文字大小
            } ,
          } ,
        } ,
        series: [ 
          { 
            //柱状图自动排序,排序自动让Y轴名字跟着数据动
            realtimeSort: true,
            name: "数量" ,
            type: "bar" ,
            data: barData,
            barWidth: 6 ,
            barGap: 10 ,
            smooth: true,
            valueAnimation: true,
            //Y轴数字显示部分
            label: { 
              normal: { 
                show: true,
                position: "right" ,
                valueAnimation: true,
                offset: [ 5 , -2] ,
                textStyle: { 
                  color: "#F5F5F5" ,
                  fontSize: 13 ,
                } ,
                formatter: "{c} %" ,
              } ,
            } ,
            itemStyle: { 
              emphasis: { 
                barBorderRadius: 7 ,
              } ,
              //颜色样式部分
              normal: { 
                barBorderRadius: 8 ,
                color: new echarts.graphic.LinearGradient( 0 , 0 , 1 , 0 , [ 
                  {  offset: 0 , color: "rgba(0, 108, 255, 0.5)"  } ,
                  {  offset: 1 , color: "rgba(34, 200, 255, 1)"  } ,
                ] ) ,
              } ,
            } ,
          } ,
        ] ,
        //动画部分
        animationDuration: 0 ,
        animationDurationUpdate: 3000 ,
        animationEasing: "linear" ,
        animationEasingUpdate: "linear" ,
      } ; 
      chart.setOption( option) ; 
      window.addEventListener( "resize" , ( )  = >  { 
        chart.resize( ) ; 
      } ) ; 
    } ,
  } ,
} ; 
< /script>