| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- 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, '<br/>', 7)
- }
- value = saas.util.BaseUtil.numberFormat(value, 4, true);
- return name + '<br/>' + 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
- }
- ]
- }
- }
- });
|