示例一:通过ajax请求获取json数据,然后通过 Highcharts 展示出来,部分代码如下:
下面前台HTML代码 :
<
div
id
="divMain"
>
<
div
id
="divContainer"
style
="min-width: 400; width:90%; min-height: 380px; margin: 0 auto"
>
</
div
>
</div>
下面是JS代码:
function query() {
if (!checkBeforeQuery()) {
return
false;
}
var gChart;
var reqUrl = "/Sale/Product";
//
部门编码
var vDeptCode = jddlProductDept.find("option:selected").text();
//
产品编码
var vLineCode = jddlProductLine.find("option:selected").text();
if (vLineCode == "请选择") {
vLineCode = "";
}
//
款式编码
var vStyleCode = jtxtStyle.attr("code");
//
产品编码
var vProductCode = jtxtProduct.attr("code");
//
商品编码
var vSkuId = jtxtSKU.attr("code");
var vQueryDate = jdtQueryBeginDate.val();
var vExecDate = jdtExecBeginDate.val();
$.wmspost({
url: reqUrl,
async:
false,
data: { deptCode: vDeptCode, lineCode: vLineCode, styleCode: vStyleCode,
productCode: vProductCode, skuId: vSkuId,
queryDate: vQueryDate, execDate: vExecDate
},
success:
function (retData) {
fillGrid(retData);
var arrCategory = [];
//
月份
var arrSjxl = [];
//
实际销量
var arrSjcxl = [];
//
实际促销量
$.each(retData,
function (idx, item) {
arrCategory.push(item.PredictedDate.substring(0, item.PredictedDate.lastIndexOf("/")));
arrSjxl.push(item.ActualQty);
arrSjcxl.push(item.PromotionQty);
//
});
//
divContainer 是div的id,该div用来显示图表
var vOption = createChartOption("divContainer", "line", "部门销售统计",
null, "月份", "销量(件)");
//
X轴
$.each(arrCategory,
function (idx, item) {
vOption.xAxis.categories.push(item);
});
//
实际销量
vOption.series.push(createSeries(arrSjcxl, "实际销量", "square"));
//
实际促销量
vOption.series.push(createSeries(arrSjcxl, "实际促销量", "triangle"));
//
创建图表
gChart =
new Highcharts.Chart(vOption);
},
error:
function (xhrObj, textStatus, errObj) {
}
});
}
function createSeries(arrData, seriesName, seriesSymbol) {
var objSeries = {
name: seriesName,
data: [],
marker: {
symbol: seriesSymbol
}
};
$.each(arrData,
function (idx, item) {
objSeries.data.push(item);
});
return objSeries;
}
function createChartOption(pRenderId,chartType,mainTitle,subTitle, xAxisTitle,yAxisTitle) {
var vOption = {
chart: {
renderTo: pRenderId,
type: chartType,
marginRight: 130,
marginBottom: 25
},
title: {
text: mainTitle
},
subtitle: {
text: subTitle
},
xAxis: {
title: {
text: xAxisTitle
},
categories: []
},
yAxis: {
title: {
text: yAxisTitle
},
plotLines: [{
value: 0,
width: 1,
color: "#808080"
}]
},
tooltip: {
crosshairs:
true,
shared:
true
},
legend: {
layout: "vertical",
align: "right",
verticalAlign: "top",
x: -10,
y: 100,
borderWidth: 0,
floating:
true
},
plotOptions: {
series: {
cursor: "pointer",
point: {
events: {
click:
function () {
alert(
this.series.name + "=" +
this.x + "=" +
this.y);
}
}
}
}
},
series: []
};
return vOption;
}