2015-06-17 5 views
0

Можно ли изменить цветовой набор цветовой схемы extjs, изменив значение?Extjs Gauge Change ColorSet по значению

 var gauge = { 
     xtype: 'chart', 
     style: 'background:#fff', 
     animate: true, 
     store: GaugeStore, 
     insetPadding: 25, 
     axes: [{ 
      title: 'Performans (%)', 
      type: 'gauge', 
      position: 'gauge', 
      minimum: 0, 
      maximum: 100, 
      steps: 10, 
      margin: 4 

     }], 
     series: [{ 
      type: 'gauge', 
      field: 'percentagesla', 
      donut: 40, 
      colorSet:['',''], 
      renderer: function (sprite, record, attr, index, store) 
      { 
       var value = record.get("percentagesla"), color; 
       if (value >= 95) { this.colorSet = ['#fff000','ddd']; } 
       else if (value < 85) { this.colorSet = ['#ffcc00', 'ddd']; } 
       else { this.colorSet = ['#ffaa00', 'ddd']; }  
      } 
     }] 

    } 

Функция рендеринга не работает для настройки цветовой гаммы. Как я могу справиться с этой проблемой? Спасибо.

+1

я думаю, что вы должны играть с атрибутом «заполнить», смотрите пример с помощью кухонной мойки ExtJS: http://dev.sencha.com/extjs/5.0.0/examples/ chart-kitchensink/# basic-gauge – Nir

+0

Он меняет цвет всей калибровки, но я хочу изменить цвет только цвет детали, другой цвет стороны должен быть одинаковым. ColorSet ['# aaa', '# ddd'], скоро я хочу изменить #aaa часть :) – Kerem

ответ

1

использование этого

renderer: function (sprite, record, attr, index, store) { 
       if (attr.fill == this.colorSet[1]) return Ext.apply(attr, { fill: attr.fill }); 
       var value = record.get("SLA"), 
        color; 
       if (value >= 95) { 
        color = "#0000ff"; 
       } else if (value < 85) { 
        color = "#00ff00"; 
       } else { 
        color = "#ff0000"; 
       } 
       return Ext.apply(attr, { fill: color }); 
      }