Ext.define('saas.view.home.charts.MonthSale', { extend: 'saas.view.core.chart.ChartBase', xtype: 'month-sale', id: 'month_sale', title: '本月销售额(万元):0', // 设置默认标题占好默认高度,使容器内的组件可以正确获得展示高度 bind: { title: '本月销售额(万元):{month_sale_amount}' }, initComponent: function() { var me = this; Ext.apply(me, { items: [{ xtype: 'echartsbase', bind: { store: '{month_sale}', }, isEmpty: me.isEmpty, createOption: me.createOption }] }); me.callParent(arguments); }, isEmpty: function(store) { var index = store.findBy(function(s) { return s.get('y') > 0; }); var flag = index == -1; return flag; }, createOption: function(store) { var fields = [], data = []; store.each(function(d) { var d = d.data; if(d.y > 0) { fields.push(d.x); data.push({ value: d.y, name: d.x }); } }); return { color: [ '#1EC09F', '#27A7FF', '#4E84F5', '#FDC200', '#76DDFB', '#FE7D6B', ], tooltip: { trigger: 'item', formatter: function (params, ticket, callback) { var name = params.name, value = params.value, marker = params.marker, percent = params.percent; if(name.length > 7) { name = Ext.String.insert(name, '
', 7) } value = saas.util.BaseUtil.numberFormat(value, 4, true); return name + '
' + marker + value+ ' (' + percent + '%)'; } }, legend: { orient: 'vertical', left: '70%', width: '30%', icon: 'circle', data: fields, itemWidth: 9, itemHeight: 9, formatter: function (name) { var cWidth = Ext.getCmp('month_sale').items.items[0].echarts.getWidth() * 0.3, dataCount = fields.length, maxLength = Math.ceil((cWidth / dataCount) / 20); return name.length > maxLength ? name.substring(0, maxLength) + '...' : name; }, }, series: [ { type:'pie', radius: ['48%', '88%'], center: ['35%', '50%'], label: { normal: { show: false, }, emphasis: { show: false, textStyle: { fontSize: '30', fontWeight: 'bold' } } }, labelLine: { normal: { show: false } }, data: data } ] } } });