Skip to content

Commit

Permalink
fix code style, add chart
Browse files Browse the repository at this point in the history
  • Loading branch information
Justineo committed Dec 29, 2014
1 parent 0153fdd commit c7e838d
Show file tree
Hide file tree
Showing 9 changed files with 804 additions and 12 deletions.
5 changes: 0 additions & 5 deletions .eslintrc

This file was deleted.

7 changes: 7 additions & 0 deletions .fecsrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"eslint": {
"rules": {
"no-else-return": 0
}
}
}
6 changes: 3 additions & 3 deletions src/tpl.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ define(
ToggleButton: './ui',
AuthPanel: './ui',
SearchTree: './ui',
RichBoxGroup: './ui'
RichBoxGroup: './ui',
LineChart: './ui',
PieChart: './ui',
BarChart: './ui'
Expand Down Expand Up @@ -153,8 +153,8 @@ define(
* 加载模板,AMD插件对象暴露的方法
*
* @param {string} resourceId 模板资源id
* @param {function} parentRequire 父级`require`函数
* @param {function} load 加载完成后调用
* @param {Function} parentRequire 父级`require`函数
* @param {Function} load 加载完成后调用
*/
load: function (resourceId, parentRequire, load) {
function addTemplate(text) {
Expand Down
145 changes: 145 additions & 0 deletions src/ui/BarChart.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
/**
* ADM 2.0
* Copyright 2014 Baidu Inc. All rights reserved.
*
* @ignore
* @file 柱状图封装控件
* @author lixiang([email protected])
* @edit by loutongbing([email protected])
*/

define(
function (require) {
var u = require('underscore');
var lib = require('esui/lib');
var helper = require('esui/controlHelper');
var BaseChart = require('./BaseChart');
require('echarts/chart/bar');
/**
* 控件类
*
* @constructor
* @param {Object} options 初始化参数
*/
function BarChart(options) {
BaseChart.apply(this, arguments);
}

lib.inherits(BarChart, BaseChart);

BarChart.prototype.type = 'BarChart';
BarChart.prototype.styleType = 'Chart';

/**
* 获得提示层的title
*/
BarChart.prototype.getTipTitleHtml = function (params, index) {
var fullText = this.ellipsisToFull[index];
// 截断换行
var length = fullText.length;
var begin = 0;
var lines = [];
while (begin < length) {
lines.push(fullText.substr(begin, 50));
begin = Math.min(begin + 50, length);
}
// 取一个数据做抽取就可以
return lines.join('<br>');
};


/**
* 格式化y轴显示数据
* @param {Object} serie y轴数据
* @return {Object} 返回格式化后的y轴显示所需数据对象
*/
BarChart.prototype.formatYSeriesData = function (serie, index) {
return {
name: serie.label,
type: 'bar',
barWidth: 20,
itemStyle: {
normal: {
color: serie.color
}
},
data: serie.data
};
};


/**
* 重新渲染视图
* 仅当生命周期处于RENDER时,该方法才重新渲染
*
* @param {Array=} 变更过的属性的集合
* @override
*/
BarChart.prototype.repaint = helper.createRepaint(
BaseChart.prototype.repaint
);

/**
* 初始化图表数据
*
* @override
*/
BarChart.prototype.initChartOptions = function () {
return {
tooltip: {
trigger: 'axis',
formatter: lib.bind(this.tipFormatter, this)
},
xAxis: [
{
type: 'category',
axisLine: {
show: true,
lineStyle: {
color: '#333',
width: 1,
style: 'solid'
}
}
}
]
};
};


BarChart.prototype.formatXSeries = function (xSeries) {
// 里面包含用来显示的截断文字,也有全文字,设置个映射,以后用
var ellipsisToFull = [];
var formattedXSeries = [];
u.each(xSeries, function (serie, index) {
ellipsisToFull.push(serie.value);
formattedXSeries.push(serie.text);
});
this.ellipsisToFull = ellipsisToFull;
return formattedXSeries;
};

/**
* 创建Y轴数据
*
* @param {Array} ySeries 序列数据
*
* @return {Array} 坐标集合
* @override
*/
BarChart.prototype.buildYAxis = function (ySeries) {
var yAxis = [];
for (var i = 0; i < ySeries.length; i++) {
var serie = ySeries[i];
// 格式化y轴刻度数据
var formattedYAxisData = this.formatYAxisData(serie);
yAxis.push(formattedYAxisData);
}

return yAxis;
};

require('esui').register(BarChart);
return BarChart;
}
);
Loading

0 comments on commit c7e838d

Please sign in to comment.