2024-08-14 15:17:51 +08:00

817 lines
37 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function getReportData(containerId,seriesValue,chartTitle){
//alert(containerId+"<br/>"+seriesValue);
/**
* highcharts数据图表
*
* @param {object} chart 图表的相关参数配置
* @param {object} credits 图表版权信息参数配置
* @param {object} lang 图表语言参数配置
* @param {object} exporting 导出配置
* @param {object} title 标题配置
* @param {object} xAxis X轴配置
* @param {object} yAxis Y轴配置
* @param {object} plotOptions 各类型图表绘制配置
* @param {object} labels 数据图表标签配置
* @param {array} series 数据源配置
*/
chart = new Highcharts.Chart({
/**
* 图表配置
*
* @param {string} renderTo 图表加载的位置
* @param {int} width 图表的宽度
* @param {int} hight 图表的高度
* @param {string} type 图表的默认类型
* @param {string} zoomType 图表的缩放选项x, y, xy
*/
chart: {
// 图表加载的位置
renderTo: containerId,
// 图表宽度
// width: 460,
// 图表高度
//hight: 200,
// 默认图表类型
type: 'line',
// 缩放配置xyxy
zoomType: ''
},
/**
* 版权信息配置,不用修改直接复制
*
* @param {boolean} enabled 是否显示版权信息
* @param {string} href 版权信息所链接到的地址
* @param {string} text 版权信息所显示的文字内容
*/
credits:{
enabled: false,
href: "http://",
text: '问卷调查'
},
/**
* 语言配置,不用修改直接复制
*
* @param {string} exportButtonTitle 导出按钮的标题文字
* @param {string} printButtonTitle 打印按钮的标题文字
*/
lang:{
exportButtonTitle:'导出PDF',
printButtonTitle:'打印报表'
},
/**
* 导出配置,不用修改直接复制
*
* @param {boolean} enabled 是否允许导出
* @param {object} buttons 关于与导出和打印按钮相关的配置对象
* @param {string} filename 导出文件的文件名
* @param {string} type 默认导出文件的格式
*/
exporting:{
// 是否允许导出
enabled:false,
// 按钮配置
buttons:{
// 导出按钮配置
exportButton:{
menuItems: null,
onclick: function() {
this.exportChart();
}
},
// 打印按钮配置
printButton:{
enabled:false
}
},
// 文件名
filename: '报表',
// 导出文件默认类型
type:'application/pdf'
},
/**
* 图表的标题
*
* @param {string} text 图表的标题,如果不需要显示标题,直接设置为空字符串就行
*/
title: {
text: chartTitle
},
/**
* X轴配置
*
* @param {array} categories X轴坐标分类值
* @param {object} labels 坐标标签配置对象
* @param {int} tickInterval 坐标轴的步进值
* @param {object} title 坐标轴标题
*/
xAxis: {
// X轴分类
categories: ['苹果', '桔子', '梨子', '香蕉', '李子'],
// 坐标轴的标签
labels:{
// 标签位置
align: 'center',
// 标签格式化
formatter: function(){
return this.value;
},
// 标签旋转度数
rotation: 20,
// 标签交错显示的行数
staggerLines: 1
},
// X轴的步进值决定隔多少个显示一个
tickInterval: 1,
// 坐标轴标题
title: {
text: '水果分类'
}
},
/**
* y轴配置
*
* @param {object} labels 坐标标签配置对象
* @param {int} tickInterval 坐标轴的步进值
* @param {object} title 坐标轴标题
*/
yAxis: {
// 坐标轴的标签
labels:{
// 标签位置
align: 'right',
// 标签格式化
formatter: function(){
return this.value + '个';
}
},
// y轴的步进值决定隔多少个显示一个
tickInterval: 10,
// 坐标轴标题
title: {
text: '水果个数'
}
},
/**
* 绘图的各选项、参数配置
* @param {object} series 数列,可以配置各种不同类型图表的默认参数
* @param {object} bar 横向柱状图配置参数
* @param {object} column 纵向柱状图配置参数
* @param {object} line 线性图
* @param {object} spline 圆滑曲线图配置参数
* @param {object} pie 饼状图
*/
plotOptions:{
/**
* 数列,对于所有的图表都可以适用的配置参数,属于共用性质。
*/
series: {
// 鼠标样式
cursor: 'pointer',
events:{
// 数据标注不可点击
legendItemClick: false
},
// 当是柱状图时,柱状的宽度
pointWidth: 15
},
/**
* 横向柱状图
*/
bar:{
// 数据点的点击事件
events:{
click: function(event){
//alert('The bar was clicked, and you can add any other functions.');
}
},
// 当值为0时在图表中柱状体的长度设置
minPointLength: 2,
// 当具体的数据点被点击时的事件响应函数。如果不需要事件响应,可以删除。
point:{
events:{
click: function(){
//alert('This point was clicked. You can and any other functions.');
}
}
},
// 是否在图注中显示。
showInLegend: true,
// 是否堆叠默认null数值normal百分比percent
//stacking: 'normal',
// 调整图像顺序关系
zIndex: 1
},
/**
* 纵向柱状图
*/
column:{
// 数据点的点击事件
events:{
click: function(event){
//alert('The bar was clicked, and you can add any other functions.');
}
},
// 当值为0时在图表中柱状体的长度设置
minPointLength: 2,
// 当具体的数据点被点击时的事件响应函数。如果不需要事件响应,可以删除。
point:{
events:{
click: function(){
//alert('This point was clicked. You can and any other functions.');
}
}
},
// 是否在图注中显示。
showInLegend: true,
// 是否堆叠默认null数值normal百分比percent
//stacking: null,
// 调整图像顺序关系
zIndex: 2
},
/**
* 线性图与spline的区别在于点与点之间的连线是直线还是圆滑曲线。
*/
line:{
// 允许线性图上的数据点进行点击
allowPointSelect: true,
// 数据点的点击事件
events:{
click: function(event){
//alert('The bar was clicked, and you can add any other functions.');
}
},
// 当具体的数据点被点击时的事件响应函数。如果不需要事件响应,可以删除。
point:{
events:{
click: function(){
//alert('This point on the line was clicked. You can and any other functions.');
}
}
},
// 是否在图注中显示。
showInLegend: true,
// 调整图像顺序关系
zIndex: 3
},
/**
* 曲线图与spline的区别在于点与点之间的连线是直线还是圆滑曲线。
*/
spline:{
// 允许线性图上的数据点进行点击
allowPointSelect: true,
// 数据点的点击事件
events:{
click: function(event){
//alert('The bar was clicked, and you can add any other functions.');
}
},
// 当具体的数据点被点击时的事件响应函数。如果不需要事件响应,可以删除。
point:{
events:{
click: function(){
//alert('This point on the line was clicked. You can and any other functions.');
}
}
},
// 是否在图注中显示。
showInLegend: true,
// 调整图像顺序关系
zIndex: 3
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
/**
* 饼状图
*/
pie:{
// 是否允许扇区点击
allowPointSelect: true,
// 点击后,滑开的距离
slicedOffset: 5,
// 饼图的中心坐标
center: [444, 80],
// 饼图的大小
size: 170,
// 数据标签
dataLabels: {
// 是否允许标签
enabled: true,
// 标签与图像元素之间的间距
distance: 10,
color: '#000000',
connectorColor: '#000000',
format: '<b>{point.name}</b>: {point.percentage:.1f} %'
},
// 数据点的点击事件
events:{
click: function(event){
//alert('The bar was clicked, and you can add any other functions.');
}
},
// 是否忽略隐藏的项
ignoreHiddenPoint: true,
// 当具体的数据点被点击时的事件响应函数。如果不需要事件响应,可以删除。
point:{
events:{
click: function(){
//alert('This point on the line was clicked. You can and any other functions.');
}
}
},
// 是否在图注中显示。
showInLegend: false,
// 调整图像顺序关系
zIndex: 0
}
},
/**
* 数据图表标签配置
*
* @param {array} items 项目配置
*/
labels: {
items: [{
//html: '问卷回复数',
style: {
left: '260px',
top: '8px',
color: 'black'
}
}]
},
/**
* 数据源配置,本身是一个对象数组
*
* @param {string} type 图表的类型
* @param {string} name 数据序列的名称
* @param {array} data 数据序列,是一个对象数组
*/
series: eval("[" + seriesValue + "]")
/* series: [ {
type: 'pie',
name: '水果总消耗量',
data: [{
name: 'Jane',
y: 13,
color: '#4572A7' // Jane's color
}, {
name: 'John',
y: 33,
color: '#AA4643' // John's color
}, {
name: 'Joe',
y: 19,
color: '#89A54E' // Joe's color
}]
}] */
});
}
function getReportDataByZjt(containerId,categoriesX,categoriesXTitle,seriesValue,chartTitle,yAxisHz,yAxisTitle){
//alert(categoriesX+"-"+categoriesXTitle+"-"+seriesValue);
// alert(categoriesX);
//alert(categoriesXTitle);
// alert(seriesValue);
// return;
/**
* highcharts数据图表
*
* @param {object} chart 图表的相关参数配置
* @param {object} credits 图表版权信息参数配置
* @param {object} lang 图表语言参数配置
* @param {object} exporting 导出配置
* @param {object} title 标题配置
* @param {object} xAxis X轴配置
* @param {object} yAxis Y轴配置
* @param {object} plotOptions 各类型图表绘制配置
* @param {object} labels 数据图表标签配置
* @param {array} series 数据源配置
*/
chart = new Highcharts.Chart({
/**
* 图表配置
*
* @param {string} renderTo 图表加载的位置
* @param {int} width 图表的宽度
* @param {int} hight 图表的高度
* @param {string} type 图表的默认类型
* @param {string} zoomType 图表的缩放选项x, y, xy
*/
chart: {
// 图表加载的位置
renderTo: containerId,
// 默认图表类型
type: 'column',
// 缩放配置xyxy
zoomType: ''
},
/**
* 版权信息配置,不用修改直接复制
*
* @param {boolean} enabled 是否显示版权信息
* @param {string} href 版权信息所链接到的地址
* @param {string} text 版权信息所显示的文字内容
*/
credits:{
enabled: false,
href: "http://",
text: '流程统计'
},
/**
* 语言配置,不用修改直接复制
*
* @param {string} exportButtonTitle 导出按钮的标题文字
* @param {string} printButtonTitle 打印按钮的标题文字
*/
lang:{
exportButtonTitle:'导出PDF',
printButtonTitle:'打印报表'
},
/**
* 导出配置,不用修改直接复制
*
* @param {boolean} enabled 是否允许导出
* @param {object} buttons 关于与导出和打印按钮相关的配置对象
* @param {string} filename 导出文件的文件名
* @param {string} type 默认导出文件的格式
*/
exporting:{
// 是否允许导出
enabled:false,
// 按钮配置
buttons:{
// 导出按钮配置
exportButton:{
menuItems: null,
onclick: function() {
this.exportChart();
}
},
// 打印按钮配置
printButton:{
enabled:false
}
},
// 文件名
filename: '报表',
// 导出文件默认类型
type:'application/pdf'
},
/**
* 图表的标题
*
* @param {string} text 图表的标题,如果不需要显示标题,直接设置为空字符串就行
*/
title: {
text: chartTitle
},
/**
* X轴配置
*
* @param {array} categories X轴坐标分类值
* @param {object} labels 坐标标签配置对象
* @param {int} tickInterval 坐标轴的步进值
* @param {object} title 坐标轴标题
*/
xAxis: {
// X轴分类
categories: eval("[" + categoriesX + "]"),
// 坐标轴的标签
labels:{
// 标签位置
align: 'center',
// 标签格式化
formatter: function(){
return this.value;
},
// 标签旋转度数
rotation: 0,
// 标签交错显示的行数
staggerLines: 1
},
// X轴的步进值决定隔多少个显示一个
tickInterval: 1,
// 坐标轴标题
title: {
text: categoriesXTitle
}
},
/**
* y轴配置
*
* @param {object} labels 坐标标签配置对象
* @param {int} tickInterval 坐标轴的步进值
* @param {object} title 坐标轴标题
*/
yAxis: {
// 坐标轴的标签
labels:{
// 标签位置
align: 'right',
// 标签格式化
formatter: function(){
return this.value +yAxisHz;
}
},
// y轴的步进值决定隔多少个显示一个
tickInterval: 10,
// 坐标轴标题
title: {
text: yAxisTitle
}
},
/**
* 绘图的各选项、参数配置
* @param {object} series 数列,可以配置各种不同类型图表的默认参数
* @param {object} bar 横向柱状图配置参数
* @param {object} column 纵向柱状图配置参数
* @param {object} line 线性图
* @param {object} spline 圆滑曲线图配置参数
* @param {object} pie 饼状图
*/
plotOptions:{
/**
* 数列,对于所有的图表都可以适用的配置参数,属于共用性质。
*/
series: {
// 鼠标样式
cursor: 'pointer',
events:{
// 数据标注不可点击
legendItemClick: false
},
// 当是柱状图时,柱状的宽度
pointWidth: 15,
dataLabels: {
enabled: true,
format: '{point.y:1f}'
}
},
/**
* 纵向柱状图
*/
column:{
// 数据点的点击事件
events:{
click: function(event){
//alert('The bar was clicked, and you can add any other functions.');
}
},
// 当值为0时在图表中柱状体的长度设置
minPointLength: 2,
// 当具体的数据点被点击时的事件响应函数。如果不需要事件响应,可以删除。
point:{
events:{
click: function(){
//alert('This point was clicked. You can and any other functions.');
}
}
},
// 是否在图注中显示。
showInLegend: true,
// 是否堆叠默认null数值normal百分比percent
//stacking: null,
// 调整图像顺序关系
zIndex: 2,
pointPadding: 0.2,
borderWidth: 0
},
/**
* 线性图与spline的区别在于点与点之间的连线是直线还是圆滑曲线。
*/
line:{
// 允许线性图上的数据点进行点击
allowPointSelect: true,
// 数据点的点击事件
events:{
click: function(event){
//alert('The bar was clicked, and you can add any other functions.');
}
},
// 当具体的数据点被点击时的事件响应函数。如果不需要事件响应,可以删除。
point:{
events:{
click: function(){
//alert('This point on the line was clicked. You can and any other functions.');
}
}
},
// 是否在图注中显示。
showInLegend: true,
// 调整图像顺序关系
zIndex: 3
},
/**
* 曲线图与spline的区别在于点与点之间的连线是直线还是圆滑曲线。
*/
spline:{
// 允许线性图上的数据点进行点击
allowPointSelect: true,
// 数据点的点击事件
events:{
click: function(event){
//alert('The bar was clicked, and you can add any other functions.');
}
},
// 当具体的数据点被点击时的事件响应函数。如果不需要事件响应,可以删除。
point:{
events:{
click: function(){
//alert('This point on the line was clicked. You can and any other functions.');
}
}
},
// 是否在图注中显示。
showInLegend: true,
// 调整图像顺序关系
zIndex: 3
},
tooltip: {
// headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
//pointFormat: '<span style="color:{point.color}">'+yAxisTitle+'</span>: <b>{point.y:.2f}%</b> of total<br/>'
},
},
/**
* 数据源配置,本身是一个对象数组
*
* @param {string} type 图表的类型
* @param {string} name 数据序列的名称
* @param {array} data 数据序列,是一个对象数组
*/
series: eval("[" + seriesValue + "]")
});
}
function getReportDataByBar(containerId,headTitle,subHeadTitle,xValue,yValue){
chart = new Highcharts.Chart({
chart: {
// 图表加载的位置
renderTo: containerId,
type: 'bar'
},
title: {
text: headTitle
},
subtitle: {
text: subHeadTitle
},
xAxis: {
categories: eval("[" + xValue + "]"),
title: {
text: '运行个数'
}
},
yAxis: {
min: 0,
title: {
text: '',
align: 'high'
},
labels: {
overflow: 'justify'
}
},
tooltip: {
valueSuffix: ' '
},
plotOptions: {
bar: {
dataLabels: {
enabled: true
}
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -40,
y: 100,
floating: true,
borderWidth: 1,
backgroundColor: '#FFFFFF',
shadow:true
},
credits: {
enabled: false
},
series: eval("[" + yValue + "]")
});
}
function getReportDataByZxt(containerId,headTitle,subHeadTitle,xValue,yValue,text){
chart = new Highcharts.Chart({
chart: {
// 图表加载的位置
renderTo: containerId
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: headTitle,
style:{
"font-weight": "bold",
"font-family": "微软雅黑"
},
x: -20 //center
},
subtitle: {
text: subHeadTitle,
x: -20
},
xAxis: {
categories: eval("[" + xValue + "]"),
},
yAxis: {
title: {
text: text
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
valueSuffix: '个'
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 0
},
series: eval("[" + yValue + "]")
});
}
function getProcessLogByBar(containerId,headTitle,subHeadTitle,xValue,yValue){
chart = new Highcharts.Chart({
chart: {
// 图表加载的位置
renderTo: containerId,
type: 'bar'
},
title: {
text: headTitle
},
subtitle: {
text: subHeadTitle
},
xAxis: {
categories: eval("[" + xValue + "]"),
title: {
text: '运行个数'
}
},
yAxis: {
min: 0,
title: {
text: '',
align: 'high'
},
labels: {
overflow: 'justify'
}
},
tooltip: {
valueSuffix: ' '
},
plotOptions: {
bar: {
dataLabels: {
enabled: true
}
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -40,
y: 100,
floating: true,
borderWidth: 1,
backgroundColor: '#FFFFFF',
shadow:true
},
credits: {
enabled: false
},
series: eval("[" + yValue + "]")
});
}