在stocktools形状选项弹出窗口中寻找自定义

问题描述 投票:0回答:1

我正在使用带有stocktools的highcharts。在stocktools形状中,我想自定义形状选项,特别是填充颜色或线条颜色。我想添加预定义的颜色列表,而不是 rgba 值。 enter image description here

在这里我通过图像表达我的期望。 stocktools 中预定义的颜色自定义列表形状弹出选项。 enter image description here

charts highcharts react-highcharts
1个回答
0
投票

就目前而言,在 Stock 中没有简单的方法可以在不覆盖一堆代码的情况下实现这一目标。有一个小 PoC,您可以在这里查看:https://jsfiddle.net/BlackLabel/5wdyuk8v/

但请记住,它仅适用于纯色(不支持不透明度)。

const types = Highcharts._modules['Extensions/Annotations/NavigationBindingsUtilities.js'].annotationsFieldsTypes;

types.color = types.backgroundColor = types.borderColor = types.stroke = types.fill = 'color';

function getType(key, value) {
  const predefinedType = types[key];
  let fieldType = typeof value;
  if (Highcharts.defined(predefinedType)) {
    fieldType = predefinedType;
  }
  return {
    'string': 'text',
    'number': 'number',
    'boolean': 'checkbox',
    'color': 'color' // fix
  } [fieldType];
};

Highcharts.addEvent(

  Highcharts._modules['Extensions/Annotations/NavigationBindings.js'],
  'showPopup',
  function(e) {
    function traverse(options) {
      for (const [key, option] of Object.entries(options)) {
        if (Highcharts.isObject(option, true)) {
          traverse(option);
        } else if (Highcharts.isArray(option)) {
          if (typeof option[1] === 'undefined') {
            option[1] = getType(key, option[0]);
          }
        }
      }
    }
    traverse(e.options);
  }, {
    order: 0
  }
);
© www.soinside.com 2019 - 2024. All rights reserved.