yangfeng
2023-12-11 da4d9e70d2c37f59a365b0fb88ad70e8c1ba79b4
src/views/cockpitPage/components/BarChart.vue
@@ -3,8 +3,8 @@
    <ChartTitle name="车间正品率"></ChartTitle>
    <div class="bar-contents">
      <div class="bar-total">
        <div class="bar-item">当日合计生产:{{ chartData.total }}</div>
        <div class="bar-item">正品率:{{ chartData.rate }}</div>
        <div class="bar-item">7日合计生产:{{ chartData.total }}</div>
        <div class="bar-item">正品率:{{ chartData.rate }}%</div>
      </div>
      <div class="chart" ref="chart"></div>
    </div>
@@ -54,11 +54,15 @@
      //   datay: [120, 200, 150, 180, 170, 150, 130, 180, 140],
      //   datay2: [20, 30, 50, 40, 70, 50, 30, 80, 40],
      // },
      startValue: 0,
      endValue: 5,
      chartTimer: null,
    };
  },
  watch: {
    "chartData.datay"(val) {
      this.startValue = 0;
      this.endValue = 5;
      this.pieChart("chart", this.chartData);
    },
  },
@@ -77,9 +81,10 @@
      myChart = echarts.init(chartDom);
      let option;
      let lineColor = "#35ddc74d";
      let spirit = "/cockpitPage/order-bg.png";
      if (data) {
        option = {
          color: ["#dcb018", "#00FFFF"],
          color: ["#fccd1d", "#00FFFF"],
          tooltip: {
            trigger: "axis",
            axisPointer: {
@@ -112,7 +117,8 @@
                '<span style=width:70px;display:inline-block">' +
                "正品率" +
                "</span>&nbsp;" +
                data.rate;
                data.rate +
                "%";
              list.push(lastString);
              listItem = list.join("<br>");
              return '<div class="showBox">' + listItem + "</div>";
@@ -129,8 +135,11 @@
              type: "inside",
              xAxisIndex: 0,
              show: false,
              startValue: 0, // 从头开始
              endValue: 5, // 一次性展示几个
              startValue: that.startValue, // 从头开始
              endValue: that.endValue, // 一次性展示几个
              zoomOnMouseWheel: false,
              moveOnMouseWheel: true,
              moveOnMouseMove: true,
            },
          ],
          legend: {
@@ -144,7 +153,7 @@
                name: "正品数量",
                icon: "circle",
                textStyle: {
                  color: "#dcb018",
                  color: "#fccd1d",
                },
              },
              {
@@ -175,8 +184,8 @@
                  color: "#00FFFF",
                },
                formatter: function (value) {
                  if (value.length > 5) {
                    return `${value.slice(0, 4)}...`;
                  if (value.length > 4) {
                    return `${value.slice(0, 3)}...`;
                  }
                  return value;
                },
@@ -257,27 +266,25 @@
          ],
          series: [
            {
              type: "bar",
              type: "pictorialBar",
              name: "正品数量",
              barWidth: "15",
              itemStyle: {
                normal: {
                  //柱形图圆角,初始化效果
                  barBorderRadius: [4, 4, 0, 0],
                },
              },
              symbol: spirit,
              symbolRepeat: true,
              symbolMargin: "25%",
              symbolClip: true,
              symbolSize: [17, 4],
              barCategoryGap: "40%",
              data: data.datay,
            },
            {
              type: "bar",
              type: "pictorialBar",
              barGap: "10%",
              name: "次品数量",
              barWidth: "15",
              itemStyle: {
                normal: {
                  //柱形图圆角,初始化效果
                  barBorderRadius: [4, 4, 0, 0],
                },
              },
              symbol: spirit,
              symbolRepeat: true,
              symbolMargin: "25%",
              symbolClip: true,
              symbolSize: [17, 4],
              data: data.datay2,
            },
          ],
@@ -285,8 +292,8 @@
        this.chartTimer = setInterval(function () {
          // 每次向左滑动一个,最后一个从头开始。
          if (option.dataZoom[0].endValue == that.chartData.datay.length) {
            option.dataZoom[0].startValue = 0;
            option.dataZoom[0].endValue = 5;
            option.dataZoom[0].startValue = that.startValue;
            option.dataZoom[0].endValue = that.endValue;
          } else {
            option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1;
            option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1;