mh_jy_safe_web/src/utils/commonEcharsShow.js

415 lines
10 KiB
JavaScript
Raw Normal View History

2025-08-25 10:08:30 +08:00
/* eslint-disable no-undef */
// import { color } from 'html2canvas/dist/types/css/types/color'; //wyw 这个会影响
import { random, omit } from 'lodash';
import moment from 'moment';
const RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
//饼图展示 wyw (安全检查情况占比)
//legendData, seriesData 数据类型参考方法体
export function ChartPieShow(echarts, divId, title, legendData, seriesData, tooltipFormatter) {
//添加缺省参数案例
if (tooltipFormatter == undefined || tooltipFormatter == null)
tooltipFormatter = '{b} : {c} ({d}%)'
var element = document.getElementById(divId)
if (element != undefined) {
var myChart = echarts.init(element);
var option = {
title: {
text: title,
left: 'center'
},
tooltip: {
trigger: 'item',
formatter: tooltipFormatter
},
legend: {
// orient: 'vertical', // left: 'left',
type: 'scroll',
top: 50,
data: legendData //['综合检查', '例行检查', '巡回检查', '专业检查', '日常巡检']
},
series: [
{
type: 'pie',
radius: '55%',
center: ['50%', '50%'],
data: seriesData,
// [
// { value: 335, name: '直接访问' },
// { value: 310, name: '邮件营销' },
// { value: 234, name: '联盟广告' },
// { value: 135, name: '视频广告' },
// { value: 1548, name: '搜索引擎' }
// ],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
}
}
//柱状图 横向 (班组安全检查完成率分析)
export function ChartBarShow(echarts, divId, title, xAxisData, seriesDataFinish, seriesDataNotFinish, tooltipFormatter) {
var element = document.getElementById(divId)
if (element != undefined) {
var myChart = echarts.init(element);
//添加缺省参数案例
if (tooltipFormatter == undefined || tooltipFormatter == null)
tooltipFormatter = '{b} : {c} '
var option = {
title: {
text: title,
left: 'center'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
top: '30px',
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value'
},
yAxis: {
type: 'category',
data: xAxisData,
},
series: [
{
name: '已完成',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: seriesDataFinish,
},
{
name: '未完成',
type: 'bar',
stack: 'total',
label: {
show: true,
},
emphasis: {
focus: 'series'
},
data: seriesDataNotFinish,
},
]
}
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// var element = document.getElementById(divId)
// if (element != undefined) {
// var myChart = echarts.init(element);
// //添加缺省参数案例
// if (tooltipFormatter == undefined || tooltipFormatter == null)
// tooltipFormatter = '{b} : {c} '
// var option = {
// title: {
// text: title,
// left: 'center'
// },
// tooltip: {
// trigger: 'item',
// formatter: tooltipFormatter
// },
// // legend: {
// // left: 'left',
// // orient: 'vertical',
// // data: ['已完成', '未完成'],
// // bottom: '10'
// // },
// // legend: {
// // // orient: 'vertical', // left: 'left',
// // type: 'scroll',
// // top: 50,
// // data: ['已完成', '未完成']
// // },
// legend: {
// top: '100px',
// data: ['已完成', '未完成'],
// // bottom: '0px'
// },
// /***横向排列***/
// yAxis: [{
// type: 'category',
// data: xAxisData,
// axisLable: {
// interval: 0,
// rotate: 40
// }
// }],
// xAxis: {},
// series: [
// {
// type: 'bar',
// stack: 'total',
// data: seriesDataFinish,// [320, 302, 301, 334, 390, 330, 320]
// label: {
// show: true,
// // formatter:'{c0/(c0+c1)}%'
// }
// },
// {
// type: 'bar',
// stack: 'total',
// data: seriesDataNotFinish,// [120, 132, 101, 134, 90, 230, 210]
// label: {
// show: true,
// }
// },
// ],
// }
// };
// // 使用刚指定的配置项和数据显示图表。
// myChart.setOption(option);
}
// //柱状图 竖向 (年度 安全检查隐患整改统计图)
// export function ChartBarShow_Vertical(echarts, divId, title, xAxisData, seriesDataFinish, seriesDataNotFinish, tooltipFormatter) {
// debugger
// var element = document.getElementById(divId)
// if (element != undefined) {
// var myChart = echarts.init(element);
// var option = {
// tooltip: {
// trigger: 'axis',
// axisPointer: {
// // Use axis to trigger tooltip
// type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
// }
// },
// legend: {},
// grid: {
// left: '3%',
// right: '4%',
// bottom: '3%',
// containLabel: true
// },
// xAxis: {
// type: 'category',
// data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
// },
// yAxis: {
// type: 'value'
// },
// series: [
// {
// name: 'Direct',
// type: 'bar',
// stack: 'total',
// label: {
// show: true
// },
// emphasis: {
// focus: 'series'
// },
// data: [320, 302, 301, 334, 390, 330, 320]
// },
// {
// name: 'Mail Ad',
// type: 'bar',
// stack: 'total',
// label: {
// show: true
// },
// emphasis: {
// focus: 'series'
// },
// data: [120, 132, 101, 134, 90, 230, 210]
// },
// {
// name: 'Affiliate Ad',
// type: 'bar',
// stack: 'total',
// label: {
// show: true
// },
// emphasis: {
// focus: 'series'
// },
// data: [220, 182, 191, 234, 290, 330, 310]
// },
// {
// name: 'Video Ad',
// type: 'bar',
// stack: 'total',
// label: {
// show: true
// },
// emphasis: {
// focus: 'series'
// },
// data: [150, 212, 201, 154, 190, 330, 410]
// }
// ]
// };
// // 使用刚指定的配置项和数据显示图表。
// myChart.setOption(option);
// }
// }
//柱状图 竖向 (年度 安全检查隐患整改统计图)
export function ChartBarShow_Vertical(echarts, divId, data, title) {
var element = document.getElementById(divId)
if (element != undefined && data != null && data.length > 0) {
var myChart = echarts.init(element);
var series = []
var xAxisData = []
var yAxisData1 = []
var yAxisData2 = []
var yAxisData3 = []
data.forEach((item) => {
xAxisData.push(item.YEAR + "-" + item.MONTH)
yAxisData1.push(item.INTTIMECOUNT)
yAxisData2.push(item.OUTTIMECOUNT)
yAxisData3.push(item.NOTFINISHCOUN)
})
var option = {
title: {
text: title,
left: 'center'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
bottom: '0px'
},
grid: {
left: '3%',
right: '4%',
bottom: '10%',
containLabel: true
},
xAxis: {
type: 'category',
data: xAxisData
},
yAxis: {
type: 'value'
},
series: [
{
name: '按期整改',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: yAxisData1
},
{
name: '延期整改',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: yAxisData2
},
{
name: '未完成',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: yAxisData3
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
}
}
//折线图 (年度 安全检查隐患整改率近12个月
export function LineShow(echarts, divId, title, dataXAxis, dataSeries) {
var chartDom = document.getElementById(divId);
if (chartDom != null && chartDom != undefined) {
var myChart = echarts.init(chartDom);
var option;
option = {
title: {
text: title,
left: 'center'
},
label: {
show: true,
position: 'top'
},
xAxis: {
type: 'category',
data: dataXAxis
},
yAxis: {
type: 'value'
},
series: [
{
data: dataSeries,
type: 'line'
}
]
};
option && myChart.setOption(option);
}
}