问题形容

产品要这样的成果,就做这样的成果呗。有图有假相,咱们先来看一下效果图:

效果图

代码附上

运行的话,间接赋值粘贴即可,遇到相似的性能,ctrl+CV改一下就行啦 ^_^

<template>  <div class="eWrap">    <div id="echartsDom"></div>  </div></template><script>import Echarts from "echarts";export default {  data() {    return {      myChart: null, // 定义变量用来寄存echarts实例      xData: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"], // 两个echarts专用的x轴的数据      y1Data: [8888, 9999, 7777, 10000, 3334, 7878, 6543], // 小件货物      y2Data: [56, 64, 32, 58, 64, 76, 81], // 网点负荷      y3Data: [88, 99, 77, 100, 21, 66, 95], // 大件货物    };  },  mounted() {    this.drawEcharts();  },  methods: {    // 画图办法    drawEcharts() {      this.myChart = Echarts.init(document.getElementById("echartsDom"));      this.myChart.setOption({        color: ["#bfa", "#baf", "pink", "#baf"], // 配置数据色彩        grid: [          // 配置第一个折线图的地位          {            left: "14.5%",            right: "12%",            top: "10%",            height: "32%",          },          // 配置第二个折线图地位          {            left: "14.5%",            right: "12%",            top: "60%",            height: "32%",          },        ],        tooltip: {          trigger: "axis",          // formatter函数动静批改tooltip款式          formatter: function (params) {            if (params) {              var htmlStr = "";              htmlStr += params[0].name.replace(/\-/g, "/") + "<br/>"; //x轴的名称              for (var i = 0; i < params.length; i++) {                var param = params[i]; // 存一份item项                var seriesName = param.seriesName; //图例名称                var value = param.value; //y轴值                var color = param.color; //图例色彩                htmlStr += "<div>";                htmlStr +=                  '<span style="margin-right:5px;display:inline-block;width:10px;height:10px;border-radius:5px;background-color:' +                  color +                  ';"></span>';                //圆点前面显示的文本                htmlStr += seriesName + ":" + value;                switch (seriesName) {                  case "小件货物":                    htmlStr += " " + "件";                    break;                  case "网点负荷":                    htmlStr += " " + "%";                    break;                  case "大件货物":                    htmlStr += " " + "件";                    break;                  default:                    htmlStr += " ";                }                htmlStr += "</div>";              }              return htmlStr;            } else {              return;            }          },          backgroundColor: "#ccc",          borderWidth: 1,          borderColor: "#ccc",          padding: 10,          textStyle: {            color: "#000",            fontSize: 12,            align: "left",          },        },        legend: {          show: true,          x: "center",          y: "0",          data: ["小件货物", "网点负荷", "大件货物", "网点负荷"],          textStyle: {            fontSize: 12,          },        },        // 将高低两个tootip合成一个        axisPointer: {          link: { xAxisIndex: "all" },        },        xAxis: [          {            type: "category",            scale: true,            axisLabel: {              show: false,            },            axisTick: {              alignWithLabel: true,            },            splitLine: {              show: false,            },            data: this.xData, //x轴工夫的数据          },          {            gridIndex: 1,            type: "category",            scale: true,            axisLabel: {              fontSize: 10,            },            axisTick: {              alignWithLabel: true,            },            splitLine: {              show: false,            },            data: this.xData, //x轴工夫的数据          },        ],        yAxis: [          {            type: "value",            name: "件数",            nameLocation: "center",            nameGap: 50,            nameTextStyle: {              fontSize: 12,              fontWeight: "500",            },            axisLabel: {              fontSize: 12,            },            min: function (value) {              return parseInt(value.min);            },            max: function (value) {              return parseInt(value.max * 1.05);            },            scale: false,            boundaryGap: [0, "100%"],            splitLine: {              show: false,            },            splitNumber: 4, //设置坐标轴的宰割段数          },          {            type: "value",            name: "负荷/百分比",            nameLocation: "center",            nameGap: 42,            nameTextStyle: {              fontSize: 12,            },            axisLabel: {              fontSize: 12,            },            // min: function (value) {            //   return parseInt(value.min);            // },            // max: function (value) {            //   return parseInt(value.max * 1.05);            // },            scale: true,            boundaryGap: [0, "100%"],            splitLine: {              show: false,            },            splitNumber: 4, //设置坐标轴的宰割段数          },          {            type: "value",            name: "件数",            nameLocation: "center",            gridIndex: 1,            nameGap: 30,            nameTextStyle: {              fontSize: 12,            },            axisLabel: {              fontSize: 12,            },            min: function (value) {              return parseInt(value.min);            },            max: function (value) {              return parseInt(value.max * 1.05);            },            scale: true,            boundaryGap: [0, "100%"],            splitLine: {              show: false,            },            splitNumber: 4, //设置坐标轴的宰割段数          },          {            type: "value",            name: "负荷/百分比",            nameLocation: "center",            gridIndex: 1,            nameGap: 42,            nameTextStyle: {              fontSize: 12,            },            axisLabel: {              fontSize: 12,            },            // min: function (value) {            //   return parseInt(value.min);            // },            // max: function (value) {            //   return parseInt(value.max * 1.05);            // },            scale: true,            boundaryGap: [0, "100%"],            splitLine: {              show: false,            },            splitNumber: 4, //设置坐标轴的宰割段数          },        ],        dataZoom: [          {            type: "inside",            startValue: this.y1Data.length - 4, // 搁置最初4个数组            endValue: this.y1Data.length - 1,            xAxisIndex: [0, 1], // 显示 0 1 的数据,这个要加,不加的话,悬浮提醒就会出问题          },        ],        series: [          {            name: "小件货物",            type: "line",            xAxisIndex: 0,            yAxisIndex: 0,            hoverAnimation: true, // 悬浮的动画加上            data: this.y1Data, //小件货物          },          {            name: "网点负荷",            type: "line",            xAxisIndex: 0,            yAxisIndex: 1,            hoverAnimation: true, // 悬浮的动画加上            data: this.y2Data, //网点负荷          },          {            name: "大件货物",            type: "line",            xAxisIndex: 1,            yAxisIndex: 2,            hoverAnimation: true, // 悬浮的动画加上            data: this.y3Data, //大件货物          },          {            name: "网点负荷",            type: "line",            xAxisIndex: 1,            yAxisIndex: 3,            hoverAnimation: true, // 悬浮的动画加上            data: this.y2Data, //网点负荷          },        ],      });      // 自适应      window.addEventListener("resize", () => {        this.myChart.resize();      });    },  },};</script><style lang="less" scoped>.eWrap {  width: 100%;  height: 400px;  overflow: hidden;  #echartsDom {    width: 100%;    height: 100%;  }}</style>