<!DOCTYPE html>
<html style="height: 100%">

<head>
  <meta charset="utf-8">
</head>

<body style="height: 100%; margin: 0; background-color: transparent">
  <div id="container" style="height: 100%; background-color: transparent"></div>
  
  <script type="text/javascript" src="echarts.min.js"></script>
  <script type="text/javascript">
    var dom = document.getElementById("container");
    var myChart = echarts.init(dom);
    var app = {};
    var option;
    option = {
      backgroundColor: 'transparent',

      series: [
        {
          type: 'gauge',
          axisLine: {
            lineStyle: {
              width: 15,
              color: [
                [0.3, '#67e0e3'],
                [0.7, '#37a2da'],
                [1, '#fd666d']
              ]
            }
          },
          min: 0,
      max: 3,
          pointer: {
            itemStyle: {
              color: 'auto'
            }
          },
          axisTick: {//轴刻度
            distance: -15,
            length: 8,
            lineStyle: {
              color: '#fff',
              width: 2
            }
          },
          splitLine: {
            distance: -15,
            length: 15,
            lineStyle: {
              color: '#fff',
              width: 2
            }
          },
          axisLabel: {
            color: 'auto',
            distance: 20,
            fontSize: 12
          },
          detail: {//pue显示
            valueAnimation: true,
            formatter: 'PUE= {value}',
            color: 'green',
            fontSize: 20
          },
          data: [
            {
              value: 0.00,
              min: 0.00,
              max: 3.00
            }
          ]
        }
      ]
    };

    oaJsApi.dpConnect('System1:PUE5.PUE:_online.._value', true,
      {
        success: function (data) {
          var value = data.value[0];
          //var pueShow =   newF.toFixed(2); 
          //var pueShow = formatFloat(newF, n = 2,'floor');
          //console.log(newF);
          //console.log(pueShow);

          myChart.setOption({
            series: [
              {
                detail:{
                      formatter: function (value) {
                            return  "PUE="+value.toFixed(2);
                      }
                    },
                data: [
                  {
                    value:value,
                  }
                ]

              }
            ]
          });

        }
      });


    if (option && typeof option === 'object') {
      myChart.setOption(option);
    }
    //自建方法 ceil 向上取   floor 向下区
    function formatFloat(num, n = 1, flag) {
    var f = parseFloat(num);
    if (isNaN(f)) {
        return false;
    }
    if (flag === 'ceil') {
        f = Math.ceil(num * Math.pow(10, n)) / Math.pow(10, n); // n 幂
    } else if (flag === 'floor') {
        f = Math.floor(num * Math.pow(10, n)) / Math.pow(10, n); // n 幂
    } else {
        f = Math.round(num * Math.pow(10, n)) / Math.pow(10, n); // n 幂
    }
    var s = f.toString();
    var rs = s.indexOf('.');
    //判定如果是整数,增加小数点再补0
    if (rs < 0) {
        rs = s.length;
        s += '.';
    }
    while (s.length <= rs + n) {
        s += '0';
    }
    return s;
    }

  </script>
  <script>

  </script>

</body>

</html>

先处理传入的value值,

data: [
                  {
                    value:value,
                  }
      ]

然后利用函数给formatter发送数据,return数据可以是string类型

detail:{
                      formatter: function (value) {
                            return  "PUE="+value.toFixed(2);
                      }
         },

前端针对pue数据进行显示 formatter: '{value}'

detail: {//pue显示
            valueAnimation: true,
            formatter: '{value}',
            color: 'green',
            fontSize: 20
          },
最后修改:2024 年 11 月 04 日
如果觉得我的文章对你有用,请随意赞赏