| 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    };});
 |