static/js/dncp/util/ecData.js
/**
* echarts通用私有数据服务
*
* @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。
* @author Kener (@Kener-林峰, kener.linfeng@gmail.com)
*
*/
define(function() {
/**
* 打包私有数据
*
* @param {shape} shape 修改目标
* @param {Object} series
* @param {number} seriesIndex
* @param {number | Object} data
* @param {number} dataIndex
* @param {*=} special
* @param {*=} special2
*/
function pack(
shape, series, seriesIndex, data, dataIndex, name, special, special2
) {
var value;
if (typeof data != 'undefined') {
value = data.value == null
? data
: data.value;
}
shape._echartsData = {
'_series' : series,
'_seriesIndex' : seriesIndex,
'_data' : data,
'_dataIndex' : dataIndex,
'_name' : name,
'_value' : value,
'_special' : special,
'_special2' : special2
};
return shape._echartsData;
}
/**
* 从私有数据中获取特定项
* @param {shape} shape
* @param {string} key
*/
function get(shape, key) {
var data = shape._echartsData;
if (!key) {
return data;
}
switch (key) {
case 'series' :
case 'seriesIndex' :
case 'data' :
case 'dataIndex' :
case 'name' :
case 'value' :
case 'special' :
case 'special2' :
return data && data['_' + key];
}
return null;
}
/**
* 修改私有数据中获取特定项
* @param {shape} shape
* @param {string} key
* @param {*} value
*/
function set(shape, key, value) {
shape._echartsData = shape._echartsData || {};
switch (key) {
case 'series' : // 当前系列值
case 'seriesIndex' : // 系列数组位置索引
case 'data' : // 当前数据值
case 'dataIndex' : // 数据数组位置索引
case 'name' :
case 'value' :
case 'special' :
case 'special2' :
shape._echartsData['_' + key] = value;
break;
}
}
/**
* 私有数据克隆,把source拷贝到target上
* @param {shape} source 源
* @param {shape} target 目标
*/
function clone(source, target) {
target._echartsData = {
'_series' : source._echartsData._series,
'_seriesIndex' : source._echartsData._seriesIndex,
'_data' : source._echartsData._data,
'_dataIndex' : source._echartsData._dataIndex,
'_name' : source._echartsData._name,
'_value' : source._echartsData._value,
'_special' : source._echartsData._special,
'_special2' : source._echartsData._special2
};
}
return {
pack : pack,
set : set,
get : get,
clone : clone
};
});