JS 封装类

function HighchartsObj(id, type) {

    var that = this;

    this.options = {

        chart : {

            renderTo : id,

            type : type,

            style : {

                cursor : 'pointer'

            },

            events : {

                click : function(e) {

                    // console.log(that.extra);

                    var params = that.extra.split(',');

                    if (null != params && 5 === params.length) {

                        toIndiPage(params[0], params[1], params[2], params[3],

                                params[4]);

                    }

                }

            }

        },

        credits : {

            // 隐藏版权

            enabled : false

        },

        title : {

            // 隐藏标题

            text : null

        },

        legend : {

            // 隐藏图列

            enabled : false

        },

        tooltip : {

            pointFormat : '{series.name}:<b>{point.y}</b>'

        },

        xAxis : {

            labels : {

                // X坐标隐藏

                enabled : false

            },

            categories : []

        },

        yAxis : {

            title : {

                // 隐藏Y轴文本

                text : null

            }

        },

        series : []

    };

    this.highcharts = null;

    this.extra = null;

}

HighchartsObj.prototype = {

    setCategories : function(categories) {

        if (!this.isArrayType(categories)) {

            alert('not array');

            return;

        }

        this.options.xAxis.categories = categories;

    },

    setSeries : function(series) {

        if (!this.isArrayType(series)) {

            alert('not array');

            return;

        }

        var data = [];

        for ( var i = series.length - 1; i >= 0; i--) {

            for ( var j = 0, len = series[i]['data'].length; j < len; j++) {

                var val = series[i]['data'][j];

                if ('' === val || null === val) {

                    val = null;

                } else {

                    val = Number(val);

                }

                data.push(val);

            }

            var minVal = Math.min.apply(null, data);

            var maxVal = Math.max.apply(null, data);



            // console.log(minVal + '==========' + maxVal);

            series[i]['data'] = $.map(data, function(val, key) {

                // console.log(val + '--------' + key);

                if (val === minVal) {

                    return {

                        y : val,

                        marker : {

                            radius : 3

                        }

                    };

                } else if (val === maxVal) {

                    return {

                        y : val,

                        marker : {

                            radius : 5

                        }

                    };

                }

                return val;

            });

        }

        this.options.series = series;

    },

    createObj : function() {

        this.highcharts = new Highcharts.Chart(this.options);

    },

    isArrayType : isType('Array'),

    isNumberType : isType('Number'),

    isStringType : isType('String')

}



// 判断类型

function isType(type) {

    return function(obj) {

        return Object.prototype.toString.call(obj) === '[object ' + type + ']';

    }

}

 

你可能感兴趣的:(js)