| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- /**
- * 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
- };
- });
|