yangfeng
2023-12-04 1e5dc53615446a620d4d0fc0068c09989686e015
src/views/cockpitPage/components/MaterialChart.vue
@@ -10,7 +10,7 @@
<script>
import ChartTitle from "@/views/cockpitPage/components/ChartTitle.vue";
//引入echart
import * as echarts from 'echarts'
import * as echarts from "echarts";
export default {
  components: {
    ChartTitle,
@@ -19,78 +19,76 @@
  data() {
    return {
      chartData:{
        datax:['产品1', '产品2', '产品3', '产品4','产品5', '产品6'],
        datay:[120, 200, 150, 380, 470, 150, 230],
      }
        datax: [
          "产品1",
          "产品2",
          "产品3",
          "产品4",
          "产品5",
          "产品6",
          "产品7",
          "产品8",
          "产品9",
          "产品10",
        ],
        datay: [120, 200, 150, 380, 470, 150, 230, 130, 210, 145, 330],
      },
    };
  },
  mounted() {
    this.pieChart('chart',this.chartData)
    this.pieChart("chart", this.chartData);
  },
  watch: {},
  methods: {
    //在职
    pieChart(chartName,data){
          let chartDom = this.$refs[chartName]
      let that = this;
      let chartDom = this.$refs[chartName];
          let myChart = echarts.init(chartDom);
          let option;
          let lineColor='#35ddc74d'
      let lineColor = "#35ddc74d";
          if(data){
            option = {
              color:['#00FFFF','#dcb018'],
          color: ["#00FFFF", "#dcb018"],
              tooltip: {
                trigger: 'axis',
            trigger: "axis",
                axisPointer: {
                  type: 'none'
              type: "none",
                },
              },
              grid: {
                right: "80px",
                bottom:'60px',
                left:'60px',
                top:'30px',
            bottom: "60px",
            left: "60px",
            top: "30px",
              },
              dataZoom: [
                {
                  type: 'inside',
                  // show: true, //显示滚动条
                  start:0,
                  end: 100,
              type: "inside",
                  yAxisIndex: 0,
                  minSpan:20,
                  maxSpan:100,
                  // handleSize: 8
                },
                {
                  //   type: 'slider', //两个一个是slider,一个是inside,slider是增加滚动条以及鼠标拖动滚动条功能,inside则是鼠标滚轮滚动滚动条。
                  type: 'inside',
                  // show: true,
                  // realtime : true,
                  yAxisIndex: 0,
                  minSpan:20,
                  maxSpan:100,
                  start: 0,
                  end: 100
              show: false,
              startValue: 0, // 从头开始
              endValue: 5, // 一次性展示几个
                },
              ],
              legend: {
                itemWidth: 8,
                itemHeight: 8,
                itemGap: 35,//间距
                bottom:'5px',
                left:'center',
            bottom: "5px",
            left: "center",
              },
              yAxis: [
                {
                  type: 'category',
              type: "category",
                  axisTick: {
                    show: false
                show: false,
                  },
                  axisLine: {
                    show: true,
                    lineStyle: {
                      color:lineColor,
                    }
                },
                  },
                  axisLabel:{
                    // rotate:45,
@@ -98,32 +96,33 @@
                    show: true,
                    textStyle: {
                      color:function(params,index){
                        let colorList=['#dcb018','#00FFFF']
                    let colorList = ["#dcb018", "#00FFFF"];
                        if(index % 2 == 0){
                          return colorList[0]
                      return colorList[0];
                        }else{
                          return colorList[1]
                      return colorList[1];
                        }
                      }
                  },
                    },
                  },
                  data: data.datax?data.datax:[],
                }
            },
              ],
              xAxis: [
                {
                  type: '',
                  name: '单位:件',
              type: "value",
              name: "单位:件",
                  // min: data.yAxis[0].min?data.yAxis.min:0,
                  minInterval: 1,//坐标轴是整数
                  max:Math.ceil(eval(`Math.max(${data.datay})`)/5)*5,//数据最大值加3
                  interval: Math.ceil(eval( `Math.max(${data.datay})`)/7)*7 / 7,
                  position: 'left',
              interval:
                (Math.ceil(eval(`Math.max(${data.datay})`) / 7) * 7) / 7,
              position: "left",
                  axisLine: {
                    show: true,
                    lineStyle: {
                      color:'#0a112B',
                    }
                  color: "#0a112B",
                },
                  },
                  nameTextStyle:{
                    color:"#00FFFF",
@@ -133,45 +132,58 @@
                    lineStyle: {
                      // 使用深浅的间隔色
                      color: lineColor,
                    }
                },
                  },
                  axisTick: {
                    show: false
                show: false,
                  },
                
                  axisLabel: {
                    textStyle: {
                      color: '#00FFFF'
                  color: "#00FFFF",
                    },
                  }
              },
                },
              ],
              series:[
                {
                  type: 'bar',
                  name: '',
                  barWidth: '15',
              type: "bar",
              name: "",
              barWidth: "15",
                  itemStyle: {
                    normal: {
                      //柱形图圆角,初始化效果
                      barBorderRadius:[4, 4, 0, 0],
                      color:function(params){
                        let colorList=['#dcb018','#00FFFF']
                    let colorList = ["#dcb018", "#00FFFF"];
                        if(params.dataIndex % 2 == 0){
                          return colorList[0]
                      return colorList[0];
                        }else{
                          return colorList[1]
                      return colorList[1];
                        }
                      }
                  },
                    },
                  },
                  data: data.datay,
                },
              ]
          ],
            };
        setInterval(function () {
          // 每次向左滑动一个,最后一个从头开始。
          if (option.dataZoom[0].endValue == that.chartData.datay.length) {
            option.dataZoom[0].startValue = 0;
            option.dataZoom[0].endValue = 5;
          } else {
            option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1;
            option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1;
          }
          myChart.setOption(option);
        }, 4000);
            option && myChart.setOption(option);
        window.addEventListener("resize", function () {
          myChart.resize();
        });
          }else{
            option={};
            myChart.setOption(option,true);
@@ -189,7 +201,7 @@
  .bar-contents{
    width:100%;
    height:calc(100% - 60px);
    border:1px solid #00FFFF;
    border: 1px solid #00ffff;
    box-sizing: border-box;
    .chart{
        width: 100%;