jmix1 chart组件bug

additionalFields 获取到的值如果为补0的值(1.00000)对其设置precision不生效,但如果使用[[value]]生效,如果值为(1.23456)都生效

你好,欢迎加入社区!

这个问题能给个可以重现的代码或小项目吗?

image
image
image
image

主要代码在此处现在balloonText里面的值如果为additionalFields 获取到且为补0的值,precision不生效

这个是 AmCharts 的问题,需要通过 balloonFunction 解决,例如:

<chart:graphs>
  <chart:graph id="g1"
               bullet="ROUND"
               bulletColor="WHITE"
               bulletSize="5"
               hideBulletsCount="50"
               lineThickness="2"
               useLineColorForBulletBorder="true"
               valueField="price"
               precision="2"
               balloonText="&lt;span style='font-size:18px;color:blue;'&gt;[[price]]&lt;/span&gt;">
      <chart:balloon adjustBorderColor="false"
                     color="WHITE"
                     drop="true"/>
      <chart:balloonFunction>
          <![CDATA[
              function(item, graph) {

                  var result = graph.balloonText;

                  var price = AmCharts.formatNumber(item.dataContext['price'], {
                  precision: graph.precision,
                  decimalSeparator: '.',
                  thousandsSeparator: ','
                  }, 2);

                  return result.replace('[[price]]',price);
              }
          ]]>
      </chart:balloonFunction>
  </chart:graph>
</chart:graphs>

这里对 price 的格式化调用了 amcharts 的 formatNumber:

image

你也可以自己用其他 JS 函数实现,例如 toFixed()


效果:
image

1 个赞