This commit is contained in:
fl 2025-07-24 17:14:26 +08:00
commit 10b4328b07
10 changed files with 358 additions and 35 deletions

View File

@ -18,7 +18,7 @@ function initTable(bidCode,name) {
id: 'demo2',
skin: 'line',
page: true,
height: 'full-400',
height: 'full-410',
headers: {
"decrypt": "decrypt",
"Authorization": token
@ -27,24 +27,18 @@ function initTable(bidCode,name) {
bidCode: bidCode,
name:name
},
response: {
statusName: "code",
statusCode: 200,
countName: "count",
dataName: "rows",
},
cols: [[
{ type: 'numbers', title: '序号', width: '10%' }, // 添加序号列
{ field: 'proName', title: '工程名称', align: 'center', width: '10%' },
{ field: 'workLocation', title: '作业地点', align: 'center', width: '10%' },
{ field: 'monitoringPointId', title: '监测点编号', align: 'center', width: '10%' },
{ field: 'name', title: '监测点名称', align: 'center', width: '10%' },
{ field: 'temperature', title: '当前温度', align: 'center', width: '8%' },
{ field: 'humidity', title: '当前湿度', align: 'center', width: '8%' },
{ field: 'windSpeed', title: '当前风速', align: 'center', width: '8%' },
{ field: 'gasValue', title: '当前气体值', align: 'center', width: '8%' },
{ field: 'temperature', title: '当前平均温度', align: 'center', width: '8%' },
{ field: 'humidity', title: '当前平均湿度', align: 'center', width: '8%' },
{ field: 'windSpeed', title: '当前平均风速', align: 'center', width: '8%' },
{ field: 'gasValue', title: '当前平均气体值', align: 'center', width: '10%' },
{
field: 'rateLevel', title: '最高隐患等级', align: 'center', width: '10%',
field: 'rateLevel', title: '最高隐患等级', align: 'center', width: '8%',
templet: function (d) {
let color = '';
if (d.level == "一般隐患") {
@ -161,6 +155,7 @@ function initEchartsOne(data) {
data: dates,
axisLabel: {
color: "#fff", // X轴标签白色
fontSize: 10,
},
axisLine: {
lineStyle: {
@ -260,11 +255,53 @@ function initEchartsOne(data) {
]
};
myChart.setOption(environmentOption, true);
// 添加点击事件监听器
myChart.on('click', function (params) {
if (params.componentType === 'series') {
environmentalReadings()
}
});
window.addEventListener("resize", function () {
myChart.resize();
});
}
function environmentalReadings() {
layer.open({
type: 2,
title: "监测点",
content: "environmentalReadings.html",
area: ["80%", "80%"],
shade: 0.3, // 遮罩透明度
skin: "custom-layer-style", // 自定义皮肤
success: function (layero, index) {
// 修改弹框背景颜色
$(layero).css(
"background",
"rgba(13, 34, 37, 0.9)"
); // 半透明黑色背景
$(layero).find(".layui-layer-title").css({
color: "#fff", // 标题文字颜色
background: "transparent", // 标题背景透明
"border-bottom":
"1px solid rgba(255, 255, 255, 0.2)", // 标题底部边框
});
$(layero).find(".layui-layer-content").css({
background: "transparent", // 内容区域透明
});
$(layero)
.find(".layui-layer-setwin .layui-layer-close")
.css({
color: "#fff", // 文字颜色
"border-color": "#fff", // 边框颜色(如果按钮有边框)
});
},
});
}
function initEchartsTwo(data) {
@ -314,6 +351,51 @@ function initEchartsTwo(data) {
]
}
myChart2.setOption(riskOption, true)
// 添加点击事件监听器
myChart2.on('click', function (params) {
if (params.componentType === 'series') {
hiddenDanger()
}
});
}
function hiddenDanger() {
layer.open({
type: 2,
title: "监测点",
content: "hiddenDanger.html",
area: ["80%", "80%"],
shade: 0.3, // 遮罩透明度
skin: "custom-layer-style", // 自定义皮肤
success: function (layero, index) {
// 修改弹框背景颜色
$(layero).css(
"background",
"rgba(13, 34, 37, 0.9)"
); // 半透明黑色背景
$(layero).find(".layui-layer-title").css({
color: "#fff", // 标题文字颜色
background: "transparent", // 标题背景透明
"border-bottom":
"1px solid rgba(255, 255, 255, 0.2)", // 标题底部边框
});
$(layero).find(".layui-layer-content").css({
background: "transparent", // 内容区域透明
});
$(layero)
.find(".layui-layer-setwin .layui-layer-close")
.css({
color: "#fff", // 文字颜色
"border-color": "#fff", // 边框颜色(如果按钮有边框)
});
// 获取弹出层内容区域的高度
var contentHeight = $(layero).find('.layui-layer-content').height();
// 设置表格的高度
$('#dangerTable').css('height', contentHeight + 'px');
},
});
}
function handlDetails(analysisReason){

View File

@ -0,0 +1,55 @@
let table, layer, form;
let myChart = null, myChart2 = null;
layui.use(['layer', 'table', 'form'], function () {
layer = layui.layer;
table = layui.table;
form = layui.form;
let bidCode = parent.parent.parent.$('#bidPro').val()
initTable(bidCode,"");
});
function initTable(bidCode,name) {
const url = commonUrl + "screen/largeScreen/engineeringSafetyAnalysis/getEnvironmentalList";
table.render({
elem: '#demo2',
url: url,
id: 'demo2',
skin: 'line',
page: true,
headers: {
"decrypt": "decrypt",
"Authorization": token
},
where: {
bidCode: bidCode,
name:name
},
cols: [[
{ type: 'numbers', title: '序号', width: '10%' }, // 添加序号列
{ field: 'id', title: '监测点编号', align: 'center' },
{ field: 'date', title: '环境数据记录日期', align: 'center' },
{ field: 'temperature', title: '当前温度', align: 'center' },
{ field: 'humidity', title: '当前湿度', align: 'center'},
{ field: 'windSpeed', title: '当前风速', align: 'center'},
{ field: 'gasValue', title: '当前气体值', align: 'center'},
]],
initComplete: function () {
// 在表格渲染完成后,重新渲染序号列
var that = this.elem.next();
var tool = that.children('.layui-table-box').children('.layui-table-fixed').children('.layui-table-body').children('.layui-table');
tool.find("tr").each(function (index, item) {
$(this).find('td[data-field="LAY_TABLE_INDEX"]').text(index + 1);
});
},
done: function (res, curr, count, origin) {
// console.log(res);
}
})
}
function query(type) {
let name = $('#name').val();
let bidCode = parent.parent.parent.$('#bidPro').val()
initTable(bidCode,name);
}

View File

@ -0,0 +1,54 @@
let table, layer, form;
let myChart = null, myChart2 = null;
layui.use(['layer', 'table', 'form'], function () {
layer = layui.layer;
table = layui.table;
form = layui.form;
let bidCode = parent.parent.parent.$('#bidPro').val()
initTable(bidCode,"");
});
function initTable(bidCode,name) {
const url = commonUrl + "screen/largeScreen/engineeringSafetyAnalysis/getHazardsList";
table.render({
elem: '#demo2',
url: url,
id: 'demo2',
skin: 'line',
page: true,
// height: 'full-400',
headers: {
"decrypt": "decrypt",
"Authorization": token
},
where: {
bidCode: bidCode,
name:name
},
cols: [[
{ type: 'numbers', title: '序号', width: '10%' }, // 添加序号列
{ field: 'id', title: '隐患编号', align: 'center',},
{ field: 'type', title: '隐患类型', align: 'center', },
{ field: 'level', title: '隐患等级', align: 'center', },
{ field: 'timestamp', title: '隐患发生时间', align: 'center', },
]],
initComplete: function () {
// 在表格渲染完成后,重新渲染序号列
var that = this.elem.next();
var tool = that.children('.layui-table-box').children('.layui-table-fixed').children('.layui-table-body').children('.layui-table');
tool.find("tr").each(function (index, item) {
$(this).find('td[data-field="LAY_TABLE_INDEX"]').text(index + 1);
});
},
done: function (res, curr, count, origin) {
// console.log(res);
}
})
}
function query(type) {
let name = $('#name').val();
let bidCode = parent.parent.parent.$('#bidPro').val()
initTable(bidCode,name);
}

View File

@ -16,7 +16,7 @@ layui.use(["layer", "table", "form"], function () {
};
},
});
initTable(1, parent.$("#bidPro").val());
initTable(1, parent.parent.$("#bidPro").val());
});
/* 切换数据 */
@ -156,10 +156,6 @@ function initTable(type, bidCode) {
return [
{ type: "numbers", title: "序号", width: "10%" }, // 添加序号列
{ field: "projectName", title: "工程名称", align: "center" },
// { field: 'projectNumber', title: '工程编号', align: 'center'},
// { field: 'projectAddress', title: '项目地址', align: 'center'},
// { field: 'contractorName', title: '承包商名称', align: 'center',},
// { field: 'qualityLevel', title: '质量等级', align: 'center'},
{ field: "projectManager", title: "项目经理", align: "center" },
{ field: "team", title: "施工队伍", align: "center" },
{ field: "startTime", title: "开始时间", align: "center" },
@ -206,7 +202,7 @@ layui.use('upload', function () {
// 执行上传
upload.render({
elem: '#uploadBtn', // 绑定元素
url: commonUrl + "screen/largeScreen/dataAnalysis/uploadProQuality",
url: commonUrl + "screen/largeScreen/dataAnalysis/uploadProQualityFile",
accept: 'file', // 允许上传任意文件
exts: 'docx', // 允许的文件类型
size: 1024 * 10, // 限制文件大小,单位 KB10MB
@ -223,9 +219,7 @@ layui.use('upload', function () {
layer.closeAll('loading');
layer.msg('上传成功');
console.log('服务器返回:', res);
// 显示文件名或路径
document.getElementById('fileName').innerText = '已上传文件:' + res.fileName;
parent.location.reload(); // 刷新父页面
},
error: function () {
// 上传失败回调

View File

@ -29,7 +29,7 @@ function setCols(type) {
{
title: "延误因素分析",
align: "center",
templet: (d) => {
templet: (d, index) => {
let text = "";
text +=
'<a id="viewBtn" style="color: #007bff;cursor: pointer;font-size: 16px">查看</a>';
@ -144,8 +144,8 @@ function initTable(type, bidCode) {
$(".layui-table-body table.layui-table tbody tr #viewBtn").on(
"click",
function () {
// 获取当前行的数据
var index = $(this).index();
const index = $(this).closest("tr").data("index");
console.log(index, "index");
var rowData = res.rows[index]; // 获取对应行的数据
// 弹框配置

View File

@ -81,6 +81,10 @@
color: #FFFFFF;
}
.layui-layer-title {
border-bottom: 1px solid #008781;
}
#alarm-container {
overflow-x: auto; /* 或 overflow-y: auto根据需要 */
@ -182,6 +186,7 @@
laydate.render({
elem: '#ID-laydate-range',
range: ['#ID-laydate-start-date', '#ID-laydate-end-date'],
btns: ['confirm'],
value: range.startDate + ' - ' + range.endDate,
done: function (value) {
// value 是选择的字符串,比如 '2025-06-23 - 2025-07-23'
@ -304,6 +309,7 @@
function insetLatest(data) {
const container = document.getElementById('progress-container');
container.innerHTML = ''; // 🔄 清空原有内容
data.map(item => {
const block = document.createElement('div');
block.innerHTML = `

View File

@ -0,0 +1,59 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../../css/font.css">
<link rel="stylesheet" href="../../plugin/layui-v2.9.7/layui/css/layui.css">
<link rel="stylesheet" href="../../css/dataAnalysis/commonStyle.css">
<link rel="stylesheet" href="../../css/shuiYin/shuiYin.css">
<link rel="stylesheet" href="../../css/coreTable.css"/>
<script src="../../js/publics/sm4.js" type="text/javascript"></script>
<script src="../../js/publics/jquery-3.6.0.min.js" type="text/javascript"></script>
<script src="../../js/publics/public.js"></script>
<script src="../../plugin/scroll/jquery.nicescroll.min.js"></script>
<script src="../../js/publics/echarts.js"></script>
<script src="../../plugin/layui-v2.9.7/layui/layui.js"></script>
<script src="../../js/publics/aescbc.js"></script>
<script src="../../js/publics/sm3.js"></script>
<script src="../../api/commonRequest.js"></script>
<script src="../../plugin/watermark.js"></script>
<title>工程安全分析-左边echarts</title>
<style>
.bg-white {
background-color: transparent !important;
color: white;
border: 1px solid #044949;
margin: 3% 1% 1% 1%;
}
</style>
</head>
<body>
<div style="height: 100%;width: 100%;">
<div style="height: 99%;width: 100%; margin-top: 1%">
<div class="basic-search-box layout">
<form class="layui-form basic-form layout" onclick="return false;" onsubmit="return false;">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" style="width: 80px;">监测点编号:</label>
<div class="layui-input-inline">
<input type="text" id="name" class="layui-input" autocomplete="off">
</div>
</div>
<button type="button" class="layui-btn layui-btn-normal" onclick="query(1)">
<i class="layui-icon layui-icon-query"></i>查询
</button>
</div>
</form>
</div>
<div style="height:90%;width: 100%;">
<table id="demo2" lay-filter="demo2" ></table>
</div>
</div>
</div>
</body>
<script src="../../js/pages/newDataAnalysis/environmentalReadings.js" type="text/javascript"></script>
</html>

View File

@ -16,7 +16,7 @@
.card {
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0,0,0,0.2);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
max-width: 600px;
margin: 0 auto;
}
@ -61,40 +61,54 @@
</div>
<div class="info-item">
<div class="info-label">异常类型</div>
<div class="info-value" id="anomalyDesc">设备过载能耗</div>
<div class="info-label">异常描述</div>
<div class="info-value" id="anomalyDesc">加载中...</div>
</div>
<div class="info-item">
<div class="info-label">异常时段</div>
<div class="info-value">13:00 - 14:30</div>
<div class="info-value" id="time-range">13:00 - 14:30</div>
</div>
<div class="info-item">
<div class="info-label">建议措施</div>
<div class="info-value">检查设备运行负荷,适当分配工作任务。</div>
<div class="info-value" id="advice">加载中...</div>
</div>
</div>
<script>
const adviceMap = {
'能耗波动异常': '检查能耗数据波动趋势,确认是否存在非计划性设备启停或外部环境因素干扰。',
'设备过载能耗': '检查设备运行负荷,适当分配工作任务,避免长时间高负荷运行。',
'轻微异常': '持续观察能耗变化,记录趋势并安排定期巡检。',
'能耗异常': '立即核查相关设备运行状态,排查是否存在故障或人为干预因素。'
};
// 从 URL 获取参数
function getQueryParam(param) {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(param);
}
function setParams(data){
function setParams(data) {
let item = JSON.parse(data);
console.log(data);
document.getElementById('device-name').innerText = item.deviceName;
document.getElementById('abnormal-date').innerText = item.statDate;
document.getElementById('anomalyDesc').innerText = item.anomalyDesc;
document.getElementById('time-range').innerText = `${item.lastRecordDate} - ${item.statDate}`;
// 根据异常类型填充建议措施
const advice = adviceMap[item.anomalyDesc] || '建议进一步检查设备状态或联系技术人员。';
document.getElementById('advice').innerText = advice;
}
// 示例调用(正式使用时替换 data 参数)
// setParams(JSON.stringify({
// deviceName: "空调1号",
// statDate: "2025-07-24",
// anomalyDesc: "设备过载能耗"
// }));
</script>
</body>

View File

@ -0,0 +1,59 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../../css/font.css">
<link rel="stylesheet" href="../../plugin/layui-v2.9.7/layui/css/layui.css">
<link rel="stylesheet" href="../../css/dataAnalysis/commonStyle.css">
<link rel="stylesheet" href="../../css/shuiYin/shuiYin.css">
<link rel="stylesheet" href="../../css/coreTable.css"/>
<script src="../../js/publics/sm4.js" type="text/javascript"></script>
<script src="../../js/publics/jquery-3.6.0.min.js" type="text/javascript"></script>
<script src="../../js/publics/public.js"></script>
<script src="../../plugin/scroll/jquery.nicescroll.min.js"></script>
<script src="../../js/publics/echarts.js"></script>
<script src="../../plugin/layui-v2.9.7/layui/layui.js"></script>
<script src="../../js/publics/aescbc.js"></script>
<script src="../../js/publics/sm3.js"></script>
<script src="../../api/commonRequest.js"></script>
<script src="../../plugin/watermark.js"></script>
<title>工程安全分析-左边echarts</title>
<style>
.bg-white {
background-color: transparent !important;
color: white;
border: 1px solid #044949;
margin: 3% 1% 1% 1%;
}
</style>
</head>
<body>
<div style="height: 100%;width: 100%;">
<div style="height: 99%;width: 100%; margin-top: 1%">
<div class="basic-search-box layout" >
<form class="layui-form basic-form layout" onclick="return false;" onsubmit="return false;">
<div class="layui-form-item" >
<div class="layui-inline" >
<label class="layui-form-label" style="width: 80px;">隐患编号:</label>
<div class="layui-input-inline">
<input type="text" id="name" class="layui-input" autocomplete="off">
</div>
</div>
<button type="button" class="layui-btn layui-btn-normal" onclick="query(1)">
<i class="layui-icon layui-icon-query"></i>查询
</button>
</div>
</form>
</div>
<div style="height:90%;width: 100%;">
<table id="demo2" lay-filter="demo2" ></table>
</div>
</div>
</div>
</body>
<script src="../../js/pages/newDataAnalysis/hiddenDanger.js" type="text/javascript"></script>
</html>

View File

@ -33,7 +33,7 @@
<div class="leftBox">
<button class="layui-btn" onclick="upload(1)" id="uploadBtn">上传</button>
<button class="layui-btn" id="uploadBtn">上传</button>
<table id="demo2" lay-filter="test"></table>
</div>