Ext.define('saas.view.home.charts.MonthSale', { extend: 'saas.view.core.chart.ChartBase', xtype: 'month-sale', id: 'month_sale', bind: { title: '本月销售额(万元):{month_sale_amount}' }, initComponent: function() { var me = this; Ext.apply(me, { items: [{ xtype: 'polar', width: '100%', height: '100%', bind: { store: '{month_sale}', }, colors: [ '#1EC09F', '#27A7FF', '#4E84F5', '#FDC200', '#76DDFB', '#FE7D6B', ], interactions: ['rotate', 'itemhighlight'], innerPadding: 2, legend: { type: 'dom', docked: 'right', width: 120, padding: 0, bodyPadding: 0, border: 0, // liveDrag: true, cls: 'x-pie-legend' }, style: { lineWidth: 0, stroke: "#789" }, series: [{ type: 'pie', angleField: 'y', donut: 55, label: { field: 'z', display: 'inside', renderer: me.onLabelRender, color: '#fff', font: '12px Microsoft YaHei' }, style: { // lineWidth: 0, // strokeStyle: 'transparent', // fillStyle: 'transparent', // fillOpacity: 0 }, // label: { // field: 'x', // renderer: me.onLabelRender // }, highlight: false, tooltip: { trackMouse: true, renderer: me.onSeriesTooltipRender } }] }], }); me.callParent(arguments); }, onLabelRender: function(text, sprite, config, rendererData, index) { var homeModel = Ext.getCmp('home').getViewModel(); var monthSaleAmount = homeModel.get('month_sale_amount'); var store = rendererData.store; var data = store.getAt(index); var v = data.get('y'); return Ext.util.Format.number((v/monthSaleAmount)*100, '0.00') + '%'; }, onSeriesTooltipRender: function (tooltip, record, item) { tooltip.setHtml(record.get('x') + ': ' + Ext.util.Format.number(record.get('y'), '0,000.00')); } });