`

funsionCharts jQuery

阅读更多

<script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.js"></script>

<script type="text/javascript" src="http://libs.baidu.com/underscore/1.3.3/underscore.js"></script>

如果要使用返回funsionCharts 使用的json数据需添加jquery.xml2json.js

/*
 * fusionChart 自动拼接XML
 * autor  
 * Date 2013年12月27日
 */


(function($) {
	$._NH_Chart = function(option) {
		var settings = {
			datas: [], //数据
			chart: "", //
			other: "", //sytle等其他xml配置
			series: [], //图例--默认自动加载
			cate: [], // 描述--默认自动加载
			color: [], //颜色不带#的颜色值
			isSliced: [], //饼图哪个切片分开[0,1......]   //单系列使用
			link: "", //添加click钻取功能
			dataFormat: "xml", //返回的数据格式,xml返回xml,json返回json默认xml
			chartType: "Single", //报表的类型  Single 单系列 Multi 多系列,Point 为散点图
			num: "999", //柱形折线组合图,默认柱形图,当值小于图例数,则显示折线,多系列图中使用
			fn_Color: "", //通过阀值控制颜色   //单系列使用
			setPro: "" //dataset中的样式
		};
		option = option || {};
		options = $.extend(true, settings, option);
		return $._NH_Chart.init(options);
	};
	$.extend($._NH_Chart, {
		init: function(options) {
			var data;
			switch (options.chartType) {
				case "Single":
					data = $._NH_Chart.fitSingleChart(options);
					break;
				case "Multi":
					data = $._NH_Chart.fitMultiChart(options)
					break;
				case "Point":
					data = $._NH_Chart.fitPointChart(options);
					break;
				default:
					break;
			}
			if (options.dataFormat === "json") {
				data = "<xml>" + data + "</xml>";
				data = $.xml2json(data)
			}
			return data;
		},
		fitSingleChart: function(opts) {
			var xml = "<chart " + opts.chart + ">\n";
			_.each(opts.datas, function(item, index) {
				var mapData = _.map(item, function(value, key) {
					return value;
				});
				xml += "<set label='" + mapData[0] + "' value='" + mapData[1] + "'";
				if (_.contains(opts.isSliced, index)) {
					xml += " isSliced='1'";
				}
				if (opts.color.length > 0) {
					xml += " color='" + opts.color[index] + "'"
				}
				if (typeof opts.fn_Color === "function") {
					xml += " color='" + opts.fn_Color(mapData[1]) + "'"
				}
				if (opts.link != "") {
					xml += " link='javascript:" + opts.link + "(\"" + mapData[0] + "\",\"" + mapData[1] + "\")'";
				}
				xml += " />\n";
			});
			xml += opts.other + "</chart>";
			return xml;
		},
		fitMultiChart: function(opts) {
			var xml = "<chart  " + opts.chart + "";
			xml += "legendBorderThickness='0'  legendBorderAlpha='0' legendShadow='0' showLegend='1' legendBgColor='072e4f'";
			xml += "divLineIsDashed='1' divLineThickness='5' formatNumberScale='0' unescapeLinks='0'";
			xml += ">\n";
			var categories = [];
			var seriesNames = [];
			//循环去重
			_.each(opts.datas, function(item) {
				var mapData = _.map(item, function(value, key) {
					return value;
				});
				if (!_.contains(categories, mapData[1])) {
					categories.push(mapData[1]);
				}
				if (!_.contains(seriesNames, mapData[0])) {
					seriesNames.push(mapData[0]);
				}
			});
			//自定义图例和 label
			if ("object" == typeof opts.series && opts.series.length > 0) {
				seriesNames = opts.series;
			}
			if ("object" == typeof opts.cate && opts.cate.length > 0) {
				categories = opts.cate;
			}

			xml += "<categories>\n";
			_.each(categories, function(category) {
				xml += "<category label = '" + category + "' />\n"
			});
			xml += "</categories>\n";

			_.each(seriesNames, function(seriesName, index) {
				if (index < opts.num) {
					xml += "<dataset color='" + opts.color[index] + "' seriesName='" + seriesName + "' showValues='0'>\n";
					_.each(categories, function(category) {
						var flag = 0;
						_.each(opts.datas, function(item) {
							var dataEach = _.map(item, function(value, key) {
								return value;
							});
							if (dataEach[0] == seriesName && dataEach[1] == category) {
								if (options.link != '') {
									xml += "<set value='" + dataEach[2] + "' link='javascript:" + opts.link + "(\"" + dataEach[0] + "\",\"" + dataEach[1] + "\",\"" + dataEach[2] + "\")'  />\n";
								} else {
									xml += "<set value='" + dataEach[2] + "'  />\n";
								}
								flag = 1;
							}
						});
						if (flag == 0) {
							xml += "<set />";
						}
					});
					xml += "</dataset>\n";
				} else {
					xml += "<dataset color='" + opts.color[index] + "' seriesName='" + seriesName + "' showValues='0' renderAs='Line'>\n";
					_.each(categories, function(category) {
						var flag = 0;
						_.each(opts.datas, function(item) {
							var dataEach = _.map(item, function(value, key) {
								return value;
							});
							if (dataEach[0] == seriesName && dataEach[1] == category) {
								xml += "<set value='" + dataEach[2] + "'/>\n";
								flag = 1;
							}
						});
						if (flag == 0) {
							xml += "<set />";
						}
					});
					xml += "</dataset>\n";
				}
			});
			xml += opts.other + "\n</chart>";
			return xml;
		},
		fitPointChart: function(opts) {


		}
	});
})(jQuery);

 暂时完成单系列和多系列的

 

分享到:
评论

相关推荐

    jQuery源码 jQuery源码 jQuery源码

    jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码...

    jquery-3.7.0.min.js(jQuery下载)

    jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)...

    jQuery、jQueryUI及jQueryMobile技巧与示例

    资源名称:jQuery、jQuery UI及jQuery Mobile技巧与示例内容简介:《jQuery、jQuery UI及jQuery Mobile技巧与示例》包括jQuery、jQuery UI、jQuery Mobile以及jQuery插件四部分内容。第一部分介绍jQuery核心库,从...

    jQuery入门jQuery入门

    jQuery入门,jQuery入门,jQuery入门,jQuery入门

    jquery-3.3.1.js和jquery-3.3.1.min.js

    jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-...

    开发工具 jquery-1.11.3.min

    开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-...

    jquery1.7中文手册CHM文档(附jquery1.82chm手册)

    资源名称:jquery1.7 中文手册 CHM文档(附jquery1.82 chm手册)内容简介:因国内jquery中文手册更新太慢了,等了一段时间实在等不下去了,干脆自己动手做一个丰衣足食,时刻更新. 最后感谢Shawphy提供1.4.1版,jehn提供...

    jquery插件库(jquery.treeview插件库)

    jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery....

    jquery精简版jquery-small.js

    jquery 精简版 jquery 精简版 jquery 精简版jquery 精简版 jquery 精简版 jquery 精简版 jquery 精简版

    前端+jQuery+实现烟花特效

    前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+...

    开发工具 jquery.dataTables.min

    开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery....

    jquery文档jquery文档jquery文档

    jquery文档jquery文档jquery文档jquery文档jquery文档jquery文档jquery文档jquery文档jquery文档jquery文档jquery文档jquery文档jquery文档jquery文档

    jquery1.2.3到3.3.1版本都有

    jquery1.2.3到3.3.1版本都有: jquery-1.10.2.min.js jquery-1.11.1.min.js jquery-1.11.3.min.js jquery-1.2.3.min.js jquery-1.3.2.min.js jquery-1.4.2.min.js jquery-1.4.4.min.js jquery-1.5.2.min.js jquery-...

    jQuery1.12.4+jQuery中文手册.rar

    本压缩包内包含以下文件: jquery-1.12.4.js jquery-1.12.4.min.js jQuery1.11.0_20140330.chm jQueryAPI_CHM.CHM

    jquery 插件jquery 插件jquery 插件jquery 插件

    jquery 插件jquery 插件jquery 插件jquery 插件

    JQuery实现异步刷新效果

    jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,jquery,...

    jQuery API 3.3.1 中文手册

    jQuery API 3.3.1 中文手册,jQuery是一个JavaScript框架,自面世以来,以其快速、简洁,能够很轻易地处理HTML文档、控制事件、给页面添加动画和Ajax效果等功能使多很多WEB编程者对其非常热爱,本手册旨在帮助广大...

    Jquery智能提示完整全部版本vsdoc.js

    jquery-1.3.2-vsdoc.js jquery-1.8.3.min.js jquery-1.3.2.min.js jquery-1.4.1-vsdoc.js jquery-1.4.1.min.js jquery-1.4.2-vsdoc.js jquery-1.4.2.min.js jquery-1.4.3-vsdoc.js jquery-1.4.3.min.js ...

    Ext + Jquery Ext + Jquery Ext + Jquery

    Ext + Jquery Ext + Jquery Ext + Jquery Ext + Jquery Ext + Jquery Ext + Jquery Ext + Jquery Ext + Jquery Ext + Jquery Ext + Jquery

    jQuery全能权威指南:jQuery Core+jQuery Plugin+jQuery UI+jQuery Mobile 源码

    、CSS和JavaScript知识的开发者,内容覆盖了jQuery知识体系的全部内容,包括jQuery Core、jQuery Plugin 、jQuery UI、jQuery Mobile以及大量第三方的插件库和2800多个应用jQuery技术的网页参考。

Global site tag (gtag.js) - Google Analytics