riku
2025-07-03 e895212fa4215c50ce79ce4b448e064caf394776
src/utils/chart/chart-option.js
@@ -15,23 +15,34 @@
}
// 折线图
function factorLineOption(_xAxis, _series, legends) {
function factorLineOption(_xAxis, _series) {
  var fontSize = fGetChartFontSize();
  return {
    animationEasing: 'elasticOut',
    animationDelayUpdate: function (idx) {
      return idx * 5;
    },
    // toolbox: {
    //   bottom: 0,
    //   feature: {
    //     dataZoom: {},
    //     magicType: {
    //       type: ['line', 'bar']
    //     },
    //     restore: {}
    //   }
    // },
    toolbox: {
      // bottom: 0,
      feature: {
        // dataZoom: {},
        // magicType: {
        //   type: ['line', 'bar']
        // },
        // restore: {
        //   title: '刷新'
        // },
        saveAsImage: {
          show: true,
          backgroundColor: '#122b54a9',
          name: '走航监测图',
          title: '保存为图片',
          iconStyle: {
            borderColor: '#fff'
          }
        }
      }
    },
    tooltip: {
      textStyle: {
        fontSize: fontSize
@@ -39,7 +50,7 @@
    },
    legend: {
      type: 'scroll',
      data: legends,
      // data: legends,
      left: 0,
      textStyle: {
        fontSize: fontSize,
@@ -48,6 +59,8 @@
    },
    xAxis: {
      name: '时间',
      nameLocation: 'middle',
      nameGap: 30,
      data: _xAxis,
      axisLabel: {
        textStyle: {
@@ -74,7 +87,16 @@
      }
    },
    yAxis: {
      name: '浓度(μg/m³)',
      name: '浓度(μg/m³)/温度(℃)/速度(m/s)',
      nameLocation: 'middle',
      nameGap: 30,
      // nameTruncate: {
      //   maxWidth: 100,
      //   ellipsis: '...'
      // },
      // nameTextStyle: {
      //   color: 'red'
      // },
      axisLabel: {
        textStyle: {
          fontSize: fontSize
@@ -94,35 +116,128 @@
      },
      minInterval: 1
    },
    series: _series,
    dataZoom: [
      {
        type: 'inside',
        start: 0,
        end: 100
    series: _series
  };
}
// 折线图
function smallLineOption(_xAxis, _series, yMinInterval) {
  var fontSize = fGetChartFontSize();
  return {
    animationEasing: 'elasticOut',
    animationDelayUpdate: function (idx) {
      return idx * 5;
    },
    tooltip: {
      textStyle: {
        fontSize: fontSize
      }
    ]
    },
    grid: {
      left: '12%',
      right: '2%',
      top: '7%',
      bottom: '30%'
    },
    legend: {
      show: false
    },
    xAxis: [
      {
        show: true,
        // name: '时间',
        // type: 'time',
        data: _xAxis,
        axisLabel: {
          textStyle: {
            fontSize: fontSize
          },
          color: '#ffffff',
          textBorderColor: '#fff'
        },
        axisTick: {
          lineStyle: {
            color: 'white'
          },
          intervel: 0,
          inside: false
        },
        nameTextStyle: {
          color: '#ffffff'
        },
        axisLine: {
          lineStyle: {
            color: '#ffffff'
          }
        }
      },
      { show: true }
    ],
    yAxis: [
      {
        // name: '浓度(μg/m³)',
        // type: 'time',
        axisLabel: {
          textStyle: {
            fontSize: fontSize
          }
        },
        axisLine: {
          show: true,
          lineStyle: {
            color: 'white'
          }
        },
        axisTick: {
          show: false,
          lineStyle: {
            color: 'white'
          }
        },
        splitLine: {
          show: false
        },
        minInterval: yMinInterval ? yMinInterval : 1,
        intervel: 1,
        min: function (value) {
          return Math.floor(value.min);
        },
        max: function (value) {
          return Math.ceil(value.max);
        }
      },
      {
        axisLine: {
          show: true,
          lineStyle: {
            color: 'white'
          }
        }
      }
    ],
    series: _series
  };
}
// 仪表盘
function gaugeOption(name, value) {
  var fontSize = fGetChartFontSize();
  // var fontSize = fGetChartFontSize();
  var option = {
    title: {
      text: name,
      textStyle: {
        color: 'white',
        fontSize: fontSize
      },
      left: 'center'
    },
    // title: {
    //   text: name,
    //   textStyle: {
    //     color: 'white',
    //     fontSize: fontSize
    //   },
    //   left: 'center'
    // },
    textStyle: {
      color: '#ffffff',
      fontSize: 10
    },
    tooltip: {
      formatter: '{a} <br/>{b} : {c}%'
      formatter: '{a} : {c}km/h'
    },
    toolbox: {
      // feature: {
@@ -134,12 +249,17 @@
      {
        name: name,
        type: 'gauge',
        title: {
          color: 'white',
          offsetCenter: [0, '50%']
        },
        detail: {
          color: 'white',
          formatter: '{value}',
          formatter: '{value}km/h',
          textStyle: {
            fontSize: fontSize
          }
            fontSize: 18
          },
          offsetCenter: [0, '80%']
        },
        splitLine: {
          lineStyle: {
@@ -156,13 +276,13 @@
          fontSize: 10
        },
        axisLine: {
          lineStyle: {
            color: [
              [0.2, '#2afd2a'],
              [0.8, '#f1e74d'],
              [1, '#c23531']
            ]
          }
          // lineStyle: {
          //   color: [
          //     [0.2, '#2afd2a'],
          //     [0.8, '#f1e74d'],
          //     [1, '#c23531']
          //   ]
          // }
        },
        itemStyle: {
          color: 'white'
@@ -170,7 +290,7 @@
        data: [
          {
            value: value,
            name: ''
            name: '车速'
          }
        ],
        min: 0,
@@ -181,4 +301,4 @@
  return option;
}
export { factorLineOption, gaugeOption };
export { factorLineOption, smallLineOption, gaugeOption };