2024-04-01 17:57:48 +08:00
|
|
|
|
const baseUrl = 'http://10.40.92.33:18080/zhgd'
|
|
|
|
|
|
|
|
|
|
|
|
var loader = {
|
|
|
|
|
|
get: function (url, data = null, scb) {
|
|
|
|
|
|
let reqData = {
|
|
|
|
|
|
params: null
|
|
|
|
|
|
}
|
|
|
|
|
|
if (data) {
|
|
|
|
|
|
let convertData = []
|
|
|
|
|
|
Object.keys(data).forEach(item => {
|
|
|
|
|
|
convertData.push(`${item}=${data[item]}`)
|
|
|
|
|
|
})
|
|
|
|
|
|
reqData.params = encryptCBC(convertData.join('&'))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
|
url: baseUrl + url,
|
|
|
|
|
|
type: 'get',
|
|
|
|
|
|
headers: {
|
|
|
|
|
|
"authorization": sessionStorage.getItem("zhgd_token")
|
|
|
|
|
|
},
|
|
|
|
|
|
data: reqData.params ? reqData : '',
|
|
|
|
|
|
success: scb,
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
let element, layer, table;
|
2024-03-18 17:42:52 +08:00
|
|
|
|
layui.use(['layer', 'element', 'table'], function () {
|
2024-03-18 14:10:43 +08:00
|
|
|
|
element = layui.element;
|
|
|
|
|
|
layer = layui.layer;
|
2024-04-01 17:57:48 +08:00
|
|
|
|
table = layui.table;
|
2024-03-18 17:42:52 +08:00
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
// 工程统计
|
|
|
|
|
|
initEngineeringStatistic()
|
2024-03-18 14:10:43 +08:00
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
// 施工质量排名
|
|
|
|
|
|
initQualityRanking()
|
2024-03-18 14:10:43 +08:00
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
// 环境监控
|
|
|
|
|
|
initEnvironmentAnalysis()
|
2024-03-18 14:10:43 +08:00
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
// 设备状态
|
2024-03-18 14:10:43 +08:00
|
|
|
|
initDeviceStatus()
|
|
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
// 安徽省地图
|
|
|
|
|
|
initMainMap()
|
|
|
|
|
|
initRiskData()
|
|
|
|
|
|
|
|
|
|
|
|
// 工程安全隐患分析
|
|
|
|
|
|
initSafetyAnalysis()
|
|
|
|
|
|
|
|
|
|
|
|
// 工人效率分析
|
2024-03-18 14:10:43 +08:00
|
|
|
|
initEfficiencyAnalysis()
|
|
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
// 资源利用及能源使用
|
2024-03-18 14:10:43 +08:00
|
|
|
|
initResourceRate()
|
2024-04-01 17:57:48 +08:00
|
|
|
|
|
|
|
|
|
|
// 告警提醒
|
|
|
|
|
|
initAlarmReminder()
|
2024-03-18 14:10:43 +08:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
$('#indexIframe').attr('src', './views/main.html');
|
|
|
|
|
|
|
|
|
|
|
|
let mainMapPointList = [], mapPointList = [], weatherList = [], showWeatherList = [];
|
|
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
// $.getJSON('../config/risk.json', function (data) {
|
|
|
|
|
|
// // console.log(data)
|
|
|
|
|
|
// mainMapPointList = data
|
|
|
|
|
|
// })
|
2024-03-18 14:10:43 +08:00
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
let fontSize = '14', fontFamily = 'Alibaba PuHuiTi R', fontColor = '#fff';
|
|
|
|
|
|
const tooltip = {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
trigger: 'axis',
|
|
|
|
|
|
axisPointer: {
|
|
|
|
|
|
type: 'shadow'
|
|
|
|
|
|
},
|
|
|
|
|
|
backgroundColor: 'rgba(75, 79, 82, 0.80)', //设置背景颜色
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontFamily: fontFamily
|
|
|
|
|
|
},
|
|
|
|
|
|
borderColor: "rgba(255,255,255, .5)",
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 左侧
|
|
|
|
|
|
*/
|
|
|
|
|
|
// 工程统计
|
|
|
|
|
|
function initEngineeringStatistic() {
|
|
|
|
|
|
const url = '/screen/largeScreen/scIndex/proStatusStatistics'
|
|
|
|
|
|
loader.get(url, null, function (res) {
|
|
|
|
|
|
const {djNum, zjNum, allNum, tcNum, tgNum} = res.data
|
|
|
|
|
|
$('#engineering-statistic-item-1').text(djNum)
|
|
|
|
|
|
$('#engineering-statistic-item-2').text(zjNum)
|
|
|
|
|
|
$('#engineering-statistic-item-3').text(allNum)
|
|
|
|
|
|
$('#engineering-statistic-item-4').text(tcNum)
|
|
|
|
|
|
$('#engineering-statistic-item-5').text(tgNum)
|
|
|
|
|
|
})
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
// 施工质量排名
|
|
|
|
|
|
function initQualityRanking() {
|
|
|
|
|
|
const url = '/screen/largeScreen/scIndex/constrQuality'
|
|
|
|
|
|
loader.get(url, null, function (res) {
|
|
|
|
|
|
res.data.forEach((item, index) => {
|
|
|
|
|
|
const {bidName, teamName, teamLeader, score} = item
|
|
|
|
|
|
var newRow = `<li>
|
|
|
|
|
|
<div>${index + 1}</div>
|
|
|
|
|
|
<div title="${bidName}">${bidName}</div>
|
|
|
|
|
|
<div title="${teamName}">${teamName}</div>
|
|
|
|
|
|
<div title="${teamLeader}">${teamLeader}</div>
|
|
|
|
|
|
<div title="${score}">${score}</div>
|
|
|
|
|
|
</li>`;
|
|
|
|
|
|
$("#quality-ranking-table").append(newRow);
|
|
|
|
|
|
})
|
|
|
|
|
|
if (res.data.length) {
|
|
|
|
|
|
$('.quality-ranking__empty').hide()
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|
2024-04-01 17:57:48 +08:00
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 环境分析
|
|
|
|
|
|
function initEnvironmentAnalysis() {
|
|
|
|
|
|
const url = '/screen/largeScreen/scIndex/environmentDetection'
|
|
|
|
|
|
loader.get(url, null, function (res) {
|
|
|
|
|
|
const data = res.data[0]
|
|
|
|
|
|
if (!data) { return }
|
|
|
|
|
|
const {aqiNormalNum, aqiErrorNum, dbNormalNum, dbErrorNum, hcNormalNum, hcErrorNum} = data
|
|
|
|
|
|
$('#environment-analysis-1').find('div:first').find('p:first span').text(aqiNormalNum)
|
|
|
|
|
|
$('#environment-analysis-1').find('div:first').find('p:last span').text(aqiErrorNum)
|
|
|
|
|
|
$('#environment-analysis-2').find('div:first').find('p:first span').text(dbNormalNum)
|
|
|
|
|
|
$('#environment-analysis-2').find('div:first').find('p:last span').text(dbErrorNum)
|
|
|
|
|
|
$('#environment-analysis-3').find('div:first').find('p:first span').text(hcNormalNum)
|
|
|
|
|
|
$('#environment-analysis-3').find('div:first').find('p:last span').text(hcErrorNum)
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 设备状态
|
|
|
|
|
|
function initDeviceStatus() {
|
|
|
|
|
|
|
|
|
|
|
|
let xLabel = []
|
|
|
|
|
|
let data1 = []
|
|
|
|
|
|
let data2 = []
|
|
|
|
|
|
let data3 = []
|
|
|
|
|
|
|
|
|
|
|
|
const url = '/screen/largeScreen/scIndex/deviceStatus'
|
|
|
|
|
|
loader.get(url, null, function (res) {
|
2024-04-02 09:16:50 +08:00
|
|
|
|
|
|
|
|
|
|
const {allTotalNum, onlineTotalNum, offTotalNum, valueList} = res.data;
|
|
|
|
|
|
$('#device-status__total').text(allTotalNum)
|
|
|
|
|
|
$('#device-status__online').text(onlineTotalNum)
|
|
|
|
|
|
$('#device-status__offline').text(offTotalNum)
|
|
|
|
|
|
|
|
|
|
|
|
valueList.forEach(item => {
|
2024-04-01 17:57:48 +08:00
|
|
|
|
const {proName, totalNum, onlineNum, offLineNum} = item
|
|
|
|
|
|
xLabel.push(proName)
|
|
|
|
|
|
data1.push(totalNum)
|
|
|
|
|
|
data2.push(onlineNum)
|
|
|
|
|
|
data3.push(offLineNum)
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
let option = {
|
|
|
|
|
|
tooltip,
|
|
|
|
|
|
dataZoom: [{
|
|
|
|
|
|
type: "slider",
|
|
|
|
|
|
realtime: true,
|
|
|
|
|
|
startValue: 0,
|
|
|
|
|
|
endValue: 100,
|
|
|
|
|
|
height: 3,
|
|
|
|
|
|
fillerColor: "#08A0A3", // 滚动条颜色
|
|
|
|
|
|
borderColor: "#08A0A3",
|
|
|
|
|
|
handleSize: 0, // 两边手柄尺寸
|
|
|
|
|
|
showDetail: false, // 拖拽时是否展示滚动条两侧的文字
|
|
|
|
|
|
top: "90%",
|
|
|
|
|
|
left: '2%',
|
|
|
|
|
|
right: '3%',
|
|
|
|
|
|
moveHandleStyle: {
|
|
|
|
|
|
color: "#08A0A3",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: "inside", // 支持内部鼠标滚动平移
|
|
|
|
|
|
startValue: 0,
|
|
|
|
|
|
endValue: 100,
|
|
|
|
|
|
zoomOnMouseWheel: false, // 关闭滚轮缩放
|
|
|
|
|
|
moveOnMouseWheel: true, // 开启滚轮平移
|
|
|
|
|
|
moveOnMouseMove: true, // 鼠标移动能触发数据窗口平移
|
|
|
|
|
|
}],
|
|
|
|
|
|
grid: {
|
|
|
|
|
|
top: '20%',
|
|
|
|
|
|
left: '8%',
|
|
|
|
|
|
right: '3%',
|
|
|
|
|
|
bottom: '25%',
|
|
|
|
|
|
},
|
|
|
|
|
|
legend: {
|
|
|
|
|
|
data: ['总数', '在线', '不在线'],
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
top: '0%',
|
|
|
|
|
|
right: '2%',
|
|
|
|
|
|
icon: 'circle',
|
|
|
|
|
|
itemWidth: 10,
|
|
|
|
|
|
itemHeight: 10,
|
|
|
|
|
|
itemGap: 20,
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: '#fff',
|
|
|
|
|
|
fontSize: 14,
|
|
|
|
|
|
padding: [0, 8, 0, 8]
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
xAxis: [
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'category',
|
|
|
|
|
|
boundaryGap: true,
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#5A6E71',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
//坐标轴刻度标签的相关设置
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontSize: fontSize,
|
|
|
|
|
|
fontFamily: fontFamily
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#233653',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
data: xLabel,
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
yAxis: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "",
|
|
|
|
|
|
nameTextStyle: {
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontSize: fontSize,
|
|
|
|
|
|
padding: [0, 60, 0, 0],
|
|
|
|
|
|
fontFamily: fontFamily
|
|
|
|
|
|
},
|
|
|
|
|
|
type: 'value',
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#25393B',
|
|
|
|
|
|
type: 'dashed'
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#008de7',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontSize: fontSize,
|
|
|
|
|
|
fontFamily: fontFamily
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: '总数',
|
|
|
|
|
|
type: 'line',
|
|
|
|
|
|
symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
|
|
|
|
|
|
showSymbol: false,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
width: 2,
|
|
|
|
|
|
color: '#59E1FF', // 线条颜色
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
valueFormatter: function (value) {
|
|
|
|
|
|
return value;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
color: '#59E1FF',//拐点颜色
|
|
|
|
|
|
label: {
|
|
|
|
|
|
show: true, //开启显示
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontFamily: fontFamily,
|
|
|
|
|
|
position: 'top', //在上方显示
|
|
|
|
|
|
formatter: function (res) {
|
|
|
|
|
|
if (res.value) {
|
|
|
|
|
|
return res.value
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return 0
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
symbolSize: 8, //设定实心点的大小
|
|
|
|
|
|
areaStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
//线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
|
|
|
|
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
|
|
|
|
{
|
|
|
|
|
|
offset: 0,
|
|
|
|
|
|
color: '#1ED6FF30',
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
offset: 0.6,
|
|
|
|
|
|
color: '#1ED6FF20',
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
offset: 1,
|
|
|
|
|
|
color: '#1ED6FF10',
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
false
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
data: data1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
name: '在线',
|
|
|
|
|
|
type: 'bar',
|
|
|
|
|
|
barWidth: 20,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: '#59FFB9',
|
|
|
|
|
|
},
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
valueFormatter: function (value) {
|
|
|
|
|
|
return value;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
data: data2
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
name: '不在线',
|
|
|
|
|
|
type: 'bar',
|
|
|
|
|
|
barWidth: 20,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: '#D299FF',
|
|
|
|
|
|
},
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
valueFormatter: function (value) {
|
|
|
|
|
|
return value;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
data: data3
|
|
|
|
|
|
},
|
|
|
|
|
|
]
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
let deviceAnalysis = echarts.init(document.getElementById('device-status-chart'));
|
|
|
|
|
|
deviceAnalysis.setOption(option, true);
|
|
|
|
|
|
window.addEventListener("resize", function () {
|
|
|
|
|
|
deviceAnalysis.resize();
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
option && deviceAnalysis.setOption(option);
|
|
|
|
|
|
})
|
|
|
|
|
|
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 中间
|
|
|
|
|
|
*/
|
2024-03-18 14:10:43 +08:00
|
|
|
|
// 安徽省地图
|
|
|
|
|
|
function initMainMap(dataMap = []) {
|
|
|
|
|
|
let uploadedDataURL = "../config/anhui.json";
|
|
|
|
|
|
let myChart = echarts.init(document.getElementById('echarts-map'));
|
|
|
|
|
|
|
|
|
|
|
|
let convertData = function (data) {
|
2024-04-01 17:57:48 +08:00
|
|
|
|
let res = [];
|
|
|
|
|
|
for (let i = 0; i < data.length; i++) {
|
|
|
|
|
|
let geoCoord = [parseFloat(data[i].lon), parseFloat(data[i].lat), parseFloat(data[i].riskLevel)];
|
|
|
|
|
|
if (geoCoord) {
|
|
|
|
|
|
res.push({
|
|
|
|
|
|
proName: data[i].proName,
|
|
|
|
|
|
riskLeve: data[i].riskLevel,
|
|
|
|
|
|
workContent: data[i].workContent,
|
|
|
|
|
|
workManage: data[i].workManage,
|
|
|
|
|
|
value: geoCoord
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return res
|
2024-03-18 14:10:43 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
$.getJSON(uploadedDataURL, function (geoJson) {
|
|
|
|
|
|
echarts.registerMap('anhui', geoJson);
|
|
|
|
|
|
myChart.hideLoading();
|
|
|
|
|
|
let max = 480,
|
|
|
|
|
|
min = 1.15;
|
|
|
|
|
|
|
|
|
|
|
|
let option = {
|
|
|
|
|
|
silent: false,
|
|
|
|
|
|
backgroundColor: 'transparent',
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
fontSize: 16,
|
|
|
|
|
|
fontWeight: 'bold',
|
|
|
|
|
|
color: 'red'
|
|
|
|
|
|
},
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
trigger: 'item',
|
|
|
|
|
|
enterable: true,
|
|
|
|
|
|
position: function (pos, params, dom, rect, size) {
|
|
|
|
|
|
if ($(dom).children($('p')).length === 0) $(dom).css('display', 'none')
|
|
|
|
|
|
pos = [pos[0], pos[1] + 10];
|
|
|
|
|
|
return pos;
|
|
|
|
|
|
},
|
2024-04-01 17:57:48 +08:00
|
|
|
|
backgroundColor: 'rgba(28,18,14,0.63)', //设置背景颜色
|
2024-03-18 14:10:43 +08:00
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: '#fff'
|
|
|
|
|
|
},
|
2024-04-01 17:57:48 +08:00
|
|
|
|
formatter (res) {
|
|
|
|
|
|
const dom = '<div>'+ `工作内容:${res.data.workContent}` + '</div>'
|
|
|
|
|
|
return dom
|
|
|
|
|
|
},
|
2024-03-18 14:10:43 +08:00
|
|
|
|
extraCssText: "max-width:300px;height:auto;word-break:break-all;white-space:pre-wrap;",
|
|
|
|
|
|
},
|
|
|
|
|
|
geo: [
|
|
|
|
|
|
{
|
|
|
|
|
|
map: 'anhui',
|
|
|
|
|
|
zlevel: 5,
|
|
|
|
|
|
label: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: '#fff',
|
|
|
|
|
|
fontFamily: 'Alibaba PuHuiTi R'
|
|
|
|
|
|
},
|
|
|
|
|
|
rotate: -20,
|
|
|
|
|
|
},
|
|
|
|
|
|
emphasis: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
aspectScale: 0.8, //长宽比
|
|
|
|
|
|
roam: false,
|
|
|
|
|
|
scaleLimit: {
|
|
|
|
|
|
max: max,
|
|
|
|
|
|
min: min
|
|
|
|
|
|
},
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
areaColor: 'rgba(121,255,255,0.5)',
|
|
|
|
|
|
borderColor: '#7ad4ff',
|
|
|
|
|
|
borderWidth: 1,
|
|
|
|
|
|
shadowColor: 'rgba(53,109,187,0.6)',
|
|
|
|
|
|
shadowBlur: 100,
|
2024-04-01 17:57:48 +08:00
|
|
|
|
shadowOffsetX: '-20px',
|
2024-03-18 14:10:43 +08:00
|
|
|
|
shadowOffsetY: '100px',
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
emphasis: {
|
|
|
|
|
|
areaColor: 'rgba(121,255,255,0.5)',
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
show: true
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// {
|
|
|
|
|
|
// map: 'anhui',
|
|
|
|
|
|
// top: '12%',
|
|
|
|
|
|
// zlevel: 4,
|
|
|
|
|
|
// aspectScale: 0.8, //长宽比
|
|
|
|
|
|
// silent: true, // 禁止这一层级选中
|
|
|
|
|
|
// roam: false,
|
|
|
|
|
|
// itemStyle: {
|
|
|
|
|
|
// areaColor: 'rgba(121,255,255,0.3)',
|
|
|
|
|
|
// color: 'rgba(121,255,255,0.3)', // 背景
|
|
|
|
|
|
// borderWidth: '1', // 边框宽度
|
|
|
|
|
|
// borderColor: 'rgba(121,255,255,0.3)', // 边框颜色
|
|
|
|
|
|
// },
|
|
|
|
|
|
// scaleLimit: {
|
|
|
|
|
|
// max: max,
|
|
|
|
|
|
// min: min
|
|
|
|
|
|
// },
|
|
|
|
|
|
// tooltip: {
|
|
|
|
|
|
// show: false
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// },
|
|
|
|
|
|
],
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
2024-04-01 17:57:48 +08:00
|
|
|
|
name: '作业内容',
|
2024-03-18 14:10:43 +08:00
|
|
|
|
type: 'scatter',
|
|
|
|
|
|
coordinateSystem: 'geo',
|
|
|
|
|
|
animation: false,
|
|
|
|
|
|
symbolSize: 20,
|
|
|
|
|
|
symbol: function (val) {
|
|
|
|
|
|
switch (val[2]) {
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
return 'image://../image/二级.png';
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
return 'image://../image/三级.png';
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 4:
|
|
|
|
|
|
return 'image://../image/四级.png';
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 5:
|
|
|
|
|
|
return 'image://../image/五级.png';
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
label: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: '#fff',
|
|
|
|
|
|
fontSize: 15,
|
|
|
|
|
|
opacity: 1
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
zlevel: 6,
|
|
|
|
|
|
z: 6,
|
|
|
|
|
|
data: convertData(dataMap)
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
myChart.clear();
|
|
|
|
|
|
myChart.setOption(option, true);
|
|
|
|
|
|
});
|
|
|
|
|
|
window.addEventListener("resize", function () {
|
|
|
|
|
|
myChart.resize();
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 地图等级选中
|
|
|
|
|
|
$(".check-risk").click(function (e) {
|
|
|
|
|
|
let checkedName = $(this).find('p').eq(0).attr("checkedName");
|
|
|
|
|
|
let isCheck = $(this).attr("isCheck");
|
|
|
|
|
|
|
|
|
|
|
|
if (checkedName === '' && isCheck === '1') {
|
|
|
|
|
|
$('.check-risk').each(function () {
|
|
|
|
|
|
if ($(this).attr("isCheck") === '1') {
|
|
|
|
|
|
$(this).attr("isCheck", '0')
|
|
|
|
|
|
let checkedValue = $(this).find('p').eq(0).attr("checkedName");
|
|
|
|
|
|
$(this).find('img').eq(0).attr("src", setRiskIcon(isCheck))
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
} else if (checkedName === '' && isCheck === '0') {
|
|
|
|
|
|
$('.check-risk').each(function () {
|
|
|
|
|
|
if ($(this).attr("isCheck") === '0') {
|
|
|
|
|
|
$(this).attr("isCheck", '1')
|
|
|
|
|
|
let checkedValue = $(this).find('p').eq(0).attr("checkedName");
|
|
|
|
|
|
$(this).find('img').eq(0).attr("src", setRiskIcon(isCheck))
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
} else if (checkedName !== '' && isCheck === '1') {
|
|
|
|
|
|
$(this).attr("isCheck", '0')
|
|
|
|
|
|
$(this).find('img').eq(0).attr("src", setRiskIcon(isCheck))
|
|
|
|
|
|
} else if (checkedName !== '' && isCheck === '0') {
|
|
|
|
|
|
$(this).attr("isCheck", '1')
|
|
|
|
|
|
$(this).find('img').eq(0).attr("src", setRiskIcon(isCheck))
|
|
|
|
|
|
}
|
2024-04-01 17:57:48 +08:00
|
|
|
|
|
|
|
|
|
|
mapSearch();
|
|
|
|
|
|
initMainMap(mapPointList)
|
2024-03-18 14:10:43 +08:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// 设置风险等级选中样式
|
|
|
|
|
|
function setRiskIcon(value) {
|
2024-04-01 17:57:48 +08:00
|
|
|
|
return value === '1' ? '../image/未选择.png' : '../image/选择.png';
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function mapSearch() {
|
|
|
|
|
|
let selRiskList = [];
|
|
|
|
|
|
mapPointList.splice(0, mapPointList.length);
|
|
|
|
|
|
$('.check-risk').each(function () {
|
|
|
|
|
|
if ($(this).attr("isCheck") === '1') {
|
|
|
|
|
|
if ($(this).find('p').eq(0).attr("checkedName")) {
|
|
|
|
|
|
selRiskList.push($(this).find('p').eq(0).attr("checkedName"))
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
if (selRiskList.length) {
|
|
|
|
|
|
$.each(selRiskList, function (index, item) {
|
|
|
|
|
|
let dataList = mainMapPointList.filter(item2 => {
|
2024-04-01 17:57:48 +08:00
|
|
|
|
return item2.riskLevel === item
|
2024-03-18 14:10:43 +08:00
|
|
|
|
})
|
|
|
|
|
|
$.each(dataList, function (index3, item3) {
|
|
|
|
|
|
mapPointList.push(item3)
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
function initRiskData() {
|
|
|
|
|
|
const url = '/screen/largeScreen/scIndex/riskStatistics'
|
|
|
|
|
|
loader.get(url, null, function (res) {
|
|
|
|
|
|
const data = res.data
|
|
|
|
|
|
mainMapPointList = data
|
|
|
|
|
|
mapSearch();
|
|
|
|
|
|
initMainMap(mapPointList)
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 右侧
|
|
|
|
|
|
*/
|
|
|
|
|
|
// 工程安全隐患分析
|
|
|
|
|
|
function initSafetyAnalysis() {
|
|
|
|
|
|
|
|
|
|
|
|
const url = '/screen/largeScreen/scIndex/potentialSafetyHazard'
|
|
|
|
|
|
loader.get(url, null, function (res) {
|
|
|
|
|
|
let xLabel = []
|
|
|
|
|
|
let dataValue = []
|
|
|
|
|
|
let dataValue1 = []
|
|
|
|
|
|
res.data.forEach(item => {
|
|
|
|
|
|
const {orgName, planNum, dangerNum} = item
|
|
|
|
|
|
xLabel.push(orgName)
|
|
|
|
|
|
dataValue.push(planNum)
|
|
|
|
|
|
dataValue1.push(dangerNum)
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let option = {
|
|
|
|
|
|
backgroundColor: 'transparent',
|
|
|
|
|
|
tooltip,
|
|
|
|
|
|
dataZoom: [{
|
|
|
|
|
|
type: "slider",
|
|
|
|
|
|
realtime: true,
|
|
|
|
|
|
startValue: 0,
|
|
|
|
|
|
endValue: 4,
|
|
|
|
|
|
height: 3,
|
|
|
|
|
|
fillerColor: "#08A0A3", // 滚动条颜色
|
|
|
|
|
|
borderColor: "#08A0A3",
|
|
|
|
|
|
handleSize: 0, // 两边手柄尺寸
|
|
|
|
|
|
showDetail: false, // 拖拽时是否展示滚动条两侧的文字
|
|
|
|
|
|
top: "90%",
|
|
|
|
|
|
left: '2%',
|
|
|
|
|
|
right: '3%',
|
|
|
|
|
|
moveHandleStyle: {
|
|
|
|
|
|
color: "#08A0A3",
|
2024-03-18 14:10:43 +08:00
|
|
|
|
},
|
2024-04-01 17:57:48 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: "inside", // 支持内部鼠标滚动平移
|
|
|
|
|
|
startValue: 0,
|
|
|
|
|
|
endValue: 4,
|
|
|
|
|
|
zoomOnMouseWheel: false, // 关闭滚轮缩放
|
|
|
|
|
|
moveOnMouseWheel: true, // 开启滚轮平移
|
|
|
|
|
|
moveOnMouseMove: true, // 鼠标移动能触发数据窗口平移
|
|
|
|
|
|
}],
|
|
|
|
|
|
legend: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
top: '15%',
|
|
|
|
|
|
right: '2%',
|
|
|
|
|
|
itemWidth: 20, // 图例标记的图形宽度。
|
|
|
|
|
|
// itemGap: 20, // 图例每项之间的间隔。
|
|
|
|
|
|
itemHeight: 10, // 图例标记的图形高度。
|
|
|
|
|
|
textStyle: {
|
2024-03-18 14:10:43 +08:00
|
|
|
|
color: '#fff',
|
2024-04-01 17:57:48 +08:00
|
|
|
|
fontSize: 14,
|
|
|
|
|
|
padding: [0, 8, 0, 8]
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-04-01 17:57:48 +08:00
|
|
|
|
grid: {
|
|
|
|
|
|
top: '25%',
|
|
|
|
|
|
left: '8%',
|
|
|
|
|
|
right: '3%',
|
|
|
|
|
|
bottom: '20%',
|
2024-03-18 14:10:43 +08:00
|
|
|
|
},
|
2024-04-01 17:57:48 +08:00
|
|
|
|
xAxis: [
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'category',
|
|
|
|
|
|
boundaryGap: true,
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#5A6E71',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
//坐标轴刻度标签的相关设置
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontSize: fontSize,
|
|
|
|
|
|
fontFamily: fontFamily
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#233653',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
data: xLabel,
|
2024-03-18 14:10:43 +08:00
|
|
|
|
},
|
2024-04-01 17:57:48 +08:00
|
|
|
|
],
|
|
|
|
|
|
yAxis: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "",
|
|
|
|
|
|
nameTextStyle: {
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontSize: fontSize,
|
|
|
|
|
|
padding: [0, 60, 0, 0],
|
|
|
|
|
|
fontFamily: fontFamily
|
|
|
|
|
|
},
|
|
|
|
|
|
// minInterval: 1,
|
|
|
|
|
|
type: 'value',
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#25393B',
|
|
|
|
|
|
type: 'dashed'
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#008de7',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontSize: fontSize,
|
|
|
|
|
|
fontFamily: fontFamily
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: '周计划数',
|
|
|
|
|
|
type: 'line',
|
|
|
|
|
|
symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
|
|
|
|
|
|
showSymbol: false,
|
|
|
|
|
|
smooth: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
width: 3,
|
|
|
|
|
|
color: '#1ED6FF', // 线条颜色
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
color: '#1ED6FF',//拐点颜色
|
|
|
|
|
|
label: {
|
|
|
|
|
|
show: true, //开启显示
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontFamily: fontFamily,
|
|
|
|
|
|
position: 'top', //在上方显示
|
|
|
|
|
|
formatter: function (res) {
|
|
|
|
|
|
if (res.value) {
|
|
|
|
|
|
return res.value
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return 0
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
symbolSize: 8, //设定实心点的大小
|
|
|
|
|
|
areaStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
//线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
|
|
|
|
|
|
color: new echarts.graphic.LinearGradient(
|
|
|
|
|
|
0,
|
|
|
|
|
|
0,
|
|
|
|
|
|
0,
|
|
|
|
|
|
1,
|
|
|
|
|
|
[
|
|
|
|
|
|
{
|
|
|
|
|
|
offset: 0,
|
|
|
|
|
|
color: '#1ED6FF30',
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
offset: 0.6,
|
|
|
|
|
|
color: '#1ED6FF20',
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
offset: 1,
|
|
|
|
|
|
color: '#1ED6FF10',
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
false
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
data: dataValue,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
name: '隐患数',
|
|
|
|
|
|
type: 'line',
|
|
|
|
|
|
symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
|
|
|
|
|
|
showSymbol: false,
|
|
|
|
|
|
smooth: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
width: 3,
|
|
|
|
|
|
color: '#FE533C', // 线条颜色
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
color: '#FE533C',//拐点颜色
|
|
|
|
|
|
// borderColor: '#fff600',//拐点边框颜色
|
|
|
|
|
|
// borderWidth: 13//拐点边框大小
|
|
|
|
|
|
label: {
|
|
|
|
|
|
show: true, //开启显示
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontFamily: fontFamily,
|
|
|
|
|
|
position: 'top', //在上方显示
|
|
|
|
|
|
formatter: function (res) {
|
|
|
|
|
|
if (res.value) {
|
|
|
|
|
|
return res.value
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return 0
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
2024-03-18 14:10:43 +08:00
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
},
|
|
|
|
|
|
symbolSize: 8, //设定实心点的大小
|
|
|
|
|
|
areaStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
//线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
|
|
|
|
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
|
|
|
|
{
|
|
|
|
|
|
offset: 0,
|
|
|
|
|
|
color: '#FE533C30',
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
offset: 0.6,
|
|
|
|
|
|
color: '#FE533C20',
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
offset: 1,
|
|
|
|
|
|
color: '#ffba0010',
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
false
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
data: dataValue1,
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
let safetyAnalysis = echarts.init(document.getElementById('safety-analysis'));
|
|
|
|
|
|
safetyAnalysis.setOption(option, true);
|
|
|
|
|
|
window.addEventListener("resize", function () {
|
|
|
|
|
|
safetyAnalysis.resize();
|
|
|
|
|
|
});
|
|
|
|
|
|
})
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 工人效率分析
|
|
|
|
|
|
function initEfficiencyAnalysis() {
|
2024-04-01 17:57:48 +08:00
|
|
|
|
let xLabel = []
|
|
|
|
|
|
let data = []
|
|
|
|
|
|
|
|
|
|
|
|
const url = '/screen/largeScreen/scIndex/efficiencyAnalysis'
|
|
|
|
|
|
loader.get(url, null, function (res) {
|
|
|
|
|
|
res.data.forEach(item => {
|
|
|
|
|
|
const {proName, value} = item
|
|
|
|
|
|
xLabel.push(proName)
|
|
|
|
|
|
data.push(value)
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
let option = {
|
|
|
|
|
|
tooltip,
|
|
|
|
|
|
dataZoom: [{
|
|
|
|
|
|
type: "slider",
|
|
|
|
|
|
realtime: true,
|
|
|
|
|
|
startValue: 0,
|
|
|
|
|
|
endValue: 100,
|
|
|
|
|
|
height: 3,
|
|
|
|
|
|
fillerColor: "#08A0A3", // 滚动条颜色
|
|
|
|
|
|
borderColor: "#08A0A3",
|
|
|
|
|
|
handleSize: 0, // 两边手柄尺寸
|
|
|
|
|
|
showDetail: false, // 拖拽时是否展示滚动条两侧的文字
|
|
|
|
|
|
top: "90%",
|
|
|
|
|
|
left: '2%',
|
|
|
|
|
|
right: '3%',
|
|
|
|
|
|
moveHandleStyle: {
|
|
|
|
|
|
color: "#08A0A3",
|
2024-03-18 14:10:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
},
|
2024-04-01 17:57:48 +08:00
|
|
|
|
{
|
|
|
|
|
|
type: "inside", // 支持内部鼠标滚动平移
|
|
|
|
|
|
startValue: 0,
|
|
|
|
|
|
endValue: 100,
|
|
|
|
|
|
zoomOnMouseWheel: false, // 关闭滚轮缩放
|
|
|
|
|
|
moveOnMouseWheel: true, // 开启滚轮平移
|
|
|
|
|
|
moveOnMouseMove: true, // 鼠标移动能触发数据窗口平移
|
|
|
|
|
|
}],
|
|
|
|
|
|
grid: {
|
|
|
|
|
|
top: '25%',
|
|
|
|
|
|
left: '8%',
|
|
|
|
|
|
right: '3%',
|
|
|
|
|
|
bottom: '25%',
|
2024-03-18 14:10:43 +08:00
|
|
|
|
},
|
2024-04-01 17:57:48 +08:00
|
|
|
|
legend: {
|
|
|
|
|
|
data: ['进度'],
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
top: '15%',
|
|
|
|
|
|
right: '2%',
|
|
|
|
|
|
icon: 'circle',
|
|
|
|
|
|
itemWidth: 10,
|
|
|
|
|
|
itemHeight: 10,
|
|
|
|
|
|
itemGap: 20,
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: '#fff',
|
|
|
|
|
|
fontSize: 14,
|
|
|
|
|
|
padding: [0, 8, 0, 8]
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
xAxis: [
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'category',
|
|
|
|
|
|
boundaryGap: true,
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#5A6E71',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
//坐标轴刻度标签的相关设置
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontSize: fontSize,
|
|
|
|
|
|
fontFamily: fontFamily
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#233653',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
data: xLabel,
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
yAxis: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "",
|
|
|
|
|
|
nameTextStyle: {
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontSize: fontSize,
|
|
|
|
|
|
padding: [0, 60, 0, 0],
|
|
|
|
|
|
fontFamily: fontFamily
|
|
|
|
|
|
},
|
|
|
|
|
|
type: 'value',
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#25393B',
|
|
|
|
|
|
type: 'dashed'
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: '#008de7',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: fontColor,
|
|
|
|
|
|
fontSize: fontSize,
|
|
|
|
|
|
fontFamily: fontFamily
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: '进度',
|
|
|
|
|
|
type: 'bar',
|
|
|
|
|
|
barWidth: 20,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: '#59E1FF',
|
|
|
|
|
|
},
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
valueFormatter: function (value) {
|
|
|
|
|
|
return value;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
data: data
|
2024-03-18 14:10:43 +08:00
|
|
|
|
},
|
2024-04-01 17:57:48 +08:00
|
|
|
|
]
|
|
|
|
|
|
};
|
2024-03-18 14:10:43 +08:00
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
let deviceAnalysis = echarts.init(document.getElementById('efficiency-analysis'));
|
|
|
|
|
|
deviceAnalysis.setOption(option, true);
|
|
|
|
|
|
window.addEventListener("resize", function () {
|
|
|
|
|
|
deviceAnalysis.resize();
|
|
|
|
|
|
});
|
2024-03-18 14:10:43 +08:00
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
option && deviceAnalysis.setOption(option);
|
|
|
|
|
|
})
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 资源利用
|
|
|
|
|
|
function initResourceRate() {
|
2024-04-01 17:57:48 +08:00
|
|
|
|
const url = '/screen/largeScreen/scIndex/resourceUse'
|
|
|
|
|
|
let element = document.getElementsByClassName('resource-rate-item')
|
|
|
|
|
|
const config = [
|
|
|
|
|
|
{
|
|
|
|
|
|
dataTitle: '人员利用率',
|
|
|
|
|
|
dataNum: 50,
|
|
|
|
|
|
dataNumColor: 'rgba(251,221,45,0.8)',
|
|
|
|
|
|
dashboardBgc: 'rgba(254,249,209,0.2)',
|
|
|
|
|
|
dashboardColor: 'rgba(251,221,45,0.8)'
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
dataTitle: '设备使用率',
|
|
|
|
|
|
dataNum: 25,
|
|
|
|
|
|
dataNumColor: 'rgba(1,194,255,0.8)',
|
|
|
|
|
|
dashboardBgc: 'rgba(45,153,139,0.2)',
|
|
|
|
|
|
dashboardColor: 'rgba(1,194,255,0.8)'
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
dataTitle: '能源使用率',
|
|
|
|
|
|
dataNum: 15,
|
|
|
|
|
|
dataNumColor: 'rgba(1,255,193,0.8)',
|
|
|
|
|
|
dashboardBgc: 'rgba(45,153,139,0.2)',
|
|
|
|
|
|
dashboardColor: 'rgba(1,255,193,0.8)'
|
|
|
|
|
|
},
|
|
|
|
|
|
]
|
|
|
|
|
|
loader.get(url, null, function (res) {
|
|
|
|
|
|
const {personnelRate, deviceRate, energyValue} = res.data
|
|
|
|
|
|
config[0].dataNum = personnelRate
|
|
|
|
|
|
config[1].dataNum = deviceRate
|
|
|
|
|
|
config[2].dataNum = energyValue
|
|
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < element.length; i++) {
|
|
|
|
|
|
let option = getResourceChartOption(config[i])
|
|
|
|
|
|
let resourceRate = echarts.init(element[i]);
|
|
|
|
|
|
resourceRate.setOption(option, true);
|
|
|
|
|
|
window.addEventListener("resize", function () {
|
|
|
|
|
|
resourceRate.resize();
|
|
|
|
|
|
});
|
|
|
|
|
|
option && resourceRate.setOption(option);
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
function getResourceChartOption(config) {
|
|
|
|
|
|
const {dataTitle, dataNum, dataNumColor, dashboardBgc, dashboardColor} = config
|
2024-03-18 14:10:43 +08:00
|
|
|
|
let option = {
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'gauge',
|
|
|
|
|
|
startAngle: 180,
|
|
|
|
|
|
endAngle: 0,
|
|
|
|
|
|
min: 0,
|
|
|
|
|
|
max: 100,
|
|
|
|
|
|
splitNumber: 10,
|
2024-03-18 17:42:52 +08:00
|
|
|
|
radius: '80%', // 仪表盘大小
|
|
|
|
|
|
center: ['50%', '75%'],
|
2024-04-01 17:57:48 +08:00
|
|
|
|
colorBy: 'value',
|
2024-03-18 14:10:43 +08:00
|
|
|
|
itemStyle: {
|
2024-04-01 17:57:48 +08:00
|
|
|
|
color: dashboardColor,
|
|
|
|
|
|
shadowColor: dashboardBgc,
|
2024-03-18 14:10:43 +08:00
|
|
|
|
shadowBlur: 10,
|
|
|
|
|
|
shadowOffsetX: 2,
|
|
|
|
|
|
shadowOffsetY: 2,
|
|
|
|
|
|
},
|
|
|
|
|
|
progress: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
roundCap: false,
|
|
|
|
|
|
width: 10
|
|
|
|
|
|
},
|
|
|
|
|
|
pointer: {
|
|
|
|
|
|
show: false
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
lineStyle: {
|
2024-04-01 17:57:48 +08:00
|
|
|
|
width: 10,
|
|
|
|
|
|
color: [[1, dashboardBgc]]
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
title: {
|
2024-03-18 17:42:52 +08:00
|
|
|
|
show: true,
|
2024-04-01 17:57:48 +08:00
|
|
|
|
color: '#fff',
|
|
|
|
|
|
fontSize: 14
|
2024-03-18 14:10:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
detail: {
|
|
|
|
|
|
borderColor: '#999',
|
|
|
|
|
|
borderWidth: 0,
|
|
|
|
|
|
width: '60%',
|
|
|
|
|
|
lineHeight: 40,
|
|
|
|
|
|
height: 40,
|
|
|
|
|
|
borderRadius: 0,
|
|
|
|
|
|
offsetCenter: [0, '-25%'],
|
|
|
|
|
|
valueAnimation: true,
|
|
|
|
|
|
formatter: function (value) {
|
2024-04-01 17:57:48 +08:00
|
|
|
|
return '{value|' + value + '}{unit|%}';
|
2024-03-18 14:10:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
rich: {
|
|
|
|
|
|
value: {
|
|
|
|
|
|
fontSize: 20,
|
2024-04-01 17:57:48 +08:00
|
|
|
|
color: dataNumColor
|
2024-03-18 14:10:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
unit: {
|
2024-03-18 17:42:52 +08:00
|
|
|
|
fontSize: 15,
|
2024-04-01 17:57:48 +08:00
|
|
|
|
color: dataNumColor,
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
2024-04-01 17:57:48 +08:00
|
|
|
|
value: dataNum,
|
|
|
|
|
|
name: dataTitle,
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
};
|
2024-04-01 17:57:48 +08:00
|
|
|
|
return option
|
|
|
|
|
|
}
|
2024-03-18 14:10:43 +08:00
|
|
|
|
|
2024-04-01 17:57:48 +08:00
|
|
|
|
// 告警提醒
|
|
|
|
|
|
function initAlarmReminder() {
|
|
|
|
|
|
const url = '/screen/largeScreen/scIndex/alarmReminder'
|
|
|
|
|
|
loader.get(url, null, function (res) {
|
|
|
|
|
|
res.data.forEach((item, index) => {
|
|
|
|
|
|
const {proName, warningContent} = item
|
|
|
|
|
|
var newRow = `<li>
|
|
|
|
|
|
<div title="${proName}">${proName}</div>
|
|
|
|
|
|
<div title="${warningContent}">${warningContent}</div>
|
|
|
|
|
|
</li>`;
|
|
|
|
|
|
$("#alarm-reminder-table").append(newRow);
|
|
|
|
|
|
})
|
|
|
|
|
|
if (res.data.length) {
|
|
|
|
|
|
$('.alarm-reminder__empty').hide()
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
2024-03-18 14:10:43 +08:00
|
|
|
|
}
|