天津投入产出系统后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.8 KiB

/**
* echarts数字运算相关
*
* @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。
* @author Kener (@Kener-林峰, kener.linfeng@gmail.com)
*
*/
define(function() {
function _trim(str) {
return str.replace(/^\s+/, '').replace(/\s+$/, '');
}
/**
* 百分比计算
*/
function parsePercent(value, maxValue) {
if (typeof value === 'string') {
if (_trim(value).match(/%$/)) {
return parseFloat(value) / 100 * maxValue;
}
return parseFloat(value);
}
return value;
}
/**
* 获取中心坐标
*/
function parseCenter(zr, center) {
return [
parsePercent(center[0], zr.getWidth()),
parsePercent(center[1], zr.getHeight())
];
}
/**
* 获取自适应半径
*/
function parseRadius(zr, radius) {
// 传数组实现环形图,[内半径,外半径],传单个则默认为外半径为
if (!(radius instanceof Array)) {
radius = [0, radius];
}
var zrSize = Math.min(zr.getWidth(), zr.getHeight()) / 2;
return [
parsePercent(radius[0], zrSize),
parsePercent(radius[1], zrSize)
];
}
/**
* 每三位默认加,格式化
*/
function addCommas(x) {
if (isNaN(x)) {
return '-';
}
x = (x + '').split('.');
return x[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,'$1,')
+ (x.length > 1 ? ('.' + x[1]) : '');
}
return {
parsePercent : parsePercent,
parseCenter : parseCenter,
parseRadius : parseRadius,
addCommas : addCommas
};
});