ProfitDetail.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. Ext.define('saas.view.home.charts.ProfitDetail', {
  2. extend: 'saas.view.core.chart.ChartBase',
  3. xtype: 'profit-detail',
  4. id: 'profit_detail',
  5. title: '毛利润分析(万元)',
  6. initComponent: function () {
  7. var me = this;
  8. Ext.apply(me, {
  9. items: [{
  10. xtype: 'echartsbase',
  11. bind: {
  12. store: '{profit_detail}',
  13. },
  14. createOption: me.createOption
  15. }]
  16. });
  17. me.callParent(arguments);
  18. },
  19. createOption: function (store) {
  20. var fields = [],
  21. data = [];
  22. store.each(function (d) {
  23. var d = d.data;
  24. fields.push(d.x);
  25. data.push(d.y);
  26. });
  27. return {
  28. color: [
  29. '#34BAF6'
  30. ],
  31. grid: {
  32. left: 0,
  33. right: 0,
  34. top: 10,
  35. bottom: 0,
  36. borderColor: '#E5EAEF',
  37. containLabel: true
  38. },
  39. tooltip: {
  40. trigger: 'axis',
  41. formatter: function (params, ticket, callback) {
  42. var name = '',
  43. series = [];
  44. for(var x = 0; x < params.length; x++) {
  45. var p = params[x],
  46. marker = p.marker,
  47. seriesName = p.seriesName,
  48. name = p.name,
  49. value = p.value;
  50. value = saas.util.BaseUtil.numberFormat(value, 4, true);
  51. series.push(marker + value);
  52. }
  53. if(name.length > 9) {
  54. name = Ext.String.insert(name, '<br/>', 7)
  55. }
  56. return name + ': ' + '<br/>' + series.join('<br/>');
  57. }
  58. },
  59. xAxis: {
  60. type: 'category',
  61. axisLine: {
  62. lineStyle: {
  63. color: '#E5EAEF',
  64. }
  65. },
  66. axisLabel: {
  67. color: '#485465',
  68. interval: 0,
  69. formatter: function (value, index) {
  70. var cWidth = Ext.getCmp('profit_detail').items.items[0].echarts.getWidth() * 0.9,
  71. dataCount = fields.length,
  72. maxLength = Math.ceil((cWidth / dataCount) / 20);
  73. return value.length > maxLength ? value.substring(0, maxLength) + '...' : value;
  74. },
  75. },
  76. data: fields,
  77. },
  78. yAxis: {
  79. type: 'value',
  80. axisLine: {
  81. lineStyle: {
  82. color: '#E5EAEF',
  83. }
  84. },
  85. splitLine: {
  86. lineStyle: {
  87. color: ['#E5EAEF']
  88. }
  89. },
  90. axisLabel: {
  91. color: '#485465'
  92. }
  93. },
  94. series: [{
  95. type: 'bar',
  96. barWidth: 25,
  97. data: data,
  98. }]
  99. };
  100. }
  101. });