let element, layer, laydate;
const bidCode = parent.$("#bidPro").val();
var table;
var alarmTableIns;
var qualityInspectionTableIns;
var historyTableIns;
let thePileFoundationIsMadeIntoHoles = 1906002; //桩基成孔
let groundAcceptance = 1906003; //地面验收
let concretePouring = 1906004; //混凝土浇筑
layui.use(["layer", "element", "table"], function () {
element = layui.element;
layer = layui.layer;
laydate = layui.laydate;
table = layui.table;
document.getElementById("myButton").addEventListener("click", function () {
// window.location.href = "../consQuality/consQualityList.html";
layer.open({
type: 1,
title: "历史记录", //显示标题栏
closeBtn: 1,
area: ["90%", "90%"],
id: "HISTORY_layui", //设定一个id,防止重复弹出
resize: false,
// btn: ['确定'],
btnAlign: "c",
moveType: 0, //拖拽模式,0或者1
skin: "my-skin child-skin ",
content: $("#divDialog"),
success: function (layero) {
initHistory();
$("th").css("color", "#000");
$(".layui-table").css("color", "#000");
},
yes: function (layero, index) {
layer.close("HISTORY_layui");
},
cancel: function () {
// 右上角关闭事件的逻辑
layer.close("HISTORY_layui");
},
end: function () {
$("th").css("color", "#fff");
$(".layui-table").css("color", "#fff");
},
});
});
// $('#ID-laydate-type-datetime').val(getNowDay());
// 响应成功后的拦截器
$.ajaxSetup({
beforeSend: function (xhr, options) {
var originalSuccess = options.success;
options.success = function (data, textStatus, jqXhr) {
data = modifyResponseData(data);
// success(data,textStatus, jqXhr);
originalSuccess.apply(this, arguments);
};
},
});
//下拉选
getConstruction();
getRegion();
//告警列表
AlarmList();
//施工质量列表
ConstructionQualityList();
//检测记录对比
detectionRecord("", "");
//质量检测
qualityInspectionApi();
list = {};
var month = [];
var list1 = [];
var list2 = [];
for (let i = 0; i < list.length; i++) {}
// laydate.render({
// elem: '#ID-laydate-type-datetime',
// value: getNowDay() // 设置默认值为当天
// });
laydate.render({
elem: "#ID-laydate-rangeLinked",
range: ["#ID-laydate-start-date-1", "#ID-laydate-end-date-1"],
rangeLinked: true, // 开启日期范围选择时的区间联动标注模式 --- 2.8+ 新增
});
});
//下拉选
function getConstruction() {
const url = commonUrl + "system/sys/select/getBuildLists"; // 建管单位url
ajaxRequest(
url,
"get",
null,
true,
function () {},
function (result) {
if (result.code === 200) {
let html = "";
if (result.data && result.data.length > 0) {
$.each(result.data, function (index, item) {
html +=
'";
});
}
$("#construction").empty().append(html);
layui.form.render();
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}
},
function (xhr) {
error(xhr);
}
);
}
function getRegion() {
const url = commonUrl + "system/sys/select/getAreaLists"; // 建管单位url
ajaxRequest(
url,
"get",
null,
true,
function () {},
function (result) {
if (result.code === 200) {
let html = "";
if (result.data && result.data.length > 0) {
$.each(result.data, function (index, item) {
html +=
'";
});
}
$("#region").empty().append(html);
layui.form.render();
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}
},
function (xhr) {
error(xhr);
}
);
}
//质量检测
function qualityInspectionApi() {
const url =
commonUrl + "screen/largeScreen/constructionQuality/qualityInspection";
const params = {
roleCode: roleCode,
orgId: orgId,
userId: userId,
bidCode: bidCode,
};
let encryptStr = encryptCBC(JSON.stringify(params));
ajaxRequest(
url,
"POST",
encryptStr,
true,
function () {},
function (result) {
console.log(result);
if (result.code === 200) {
qualityInspection(result.data);
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
} else if (result.code === 401) {
loginout(1);
}
},
function (xhr, status, error) {
error(xhr, status, error);
},
"application/json",
aqEnnable
);
}
function qualityInspection(environmentData) {
// 获取存放设备的父元素
var environmentContainer = document.querySelector(".environment");
// 遍历数据,生成设备元素并添加到页面中
for (var i = 0; i < environmentData.length; i += 3) {
// 创建一个新的 div 作为一组设备信息的容器
var groupElement = document.createElement("div");
groupElement.style.width = "100%";
groupElement.style.height = "50%";
groupElement.className = "layout";
// 将每组四个设备信息添加到容器中
for (var j = i; j < i + 3 && j < environmentData.length; j++) {
var deviceElement = document.createElement("div");
deviceElement.className = "monitor-data layout";
deviceElement.id = environmentData[j].deviceId;
var monitorIconElement = document.createElement("div");
monitorIconElement.className = "monitor-icon";
var pElement = document.createElement("p");
pElement.textContent = environmentData[j].deviceName;
if (environmentData[j].status === "0") {
monitorIconElement.style.backgroundImage = `url('../../img/consQuality/QualityInspection-0.png')`;
} else if (environmentData[j].status === "1") {
monitorIconElement.style.backgroundImage = `url('../../img/consQuality/QualityInspection-2.png')`;
} else if (environmentData[j].status === "2") {
monitorIconElement.style.backgroundImage = `url('../../img/consQuality/QualityInspection-1.png')`;
}
deviceElement.appendChild(monitorIconElement);
deviceElement.appendChild(pElement);
groupElement.appendChild(deviceElement);
// 添加点击事件监听器
deviceElement.addEventListener("click", function (event) {
var clickedDeviceId = event.currentTarget.id;
AlarmList(clickedDeviceId);
ConstructionQualityList(clickedDeviceId);
console.log(clickedDeviceId);
});
}
// 将每组设备信息容器添加到父元素中
environmentContainer.appendChild(groupElement);
}
}
//告警列表
function AlarmList(deviceId) {
const dId = deviceId || "";
const url =
commonUrl +
"screen/largeScreen/constructionQuality/getConstructionAlarm";
alarmTableIns = table.render({
elem: "#alarm",
url: url,
skin: "line",
page: false,
headers: {
decrypt: "decrypt",
Authorization: token,
},
where: {
deviceId: dId,
roleCode: roleCode,
orgId: orgId,
userId: userId,
bidCode: bidCode,
},
cols: [
[
// {field: 'number', width:80,title: '序号', align: 'center', type: 'numbers'},
{ field: "warningContent", align: "center", title: "告警内容" },
{ field: "warnTime", align: "center", title: "告警时间" },
],
],
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 ConstructionQualityList(deviceId) {
const dId = deviceId || "";
const url =
commonUrl +
"screen/largeScreen/constructionQuality/getConstructionQualityList";
qualityInspectionTableIns = table.render({
elem: "#demo",
url: url,
skin: "line",
headers: {
decrypt: "decrypt",
Authorization: token,
},
where: {
deviceId: dId,
roleCode: roleCode,
orgId: orgId,
userId: userId,
bidCode: bidCode,
moduleName: $("#moduleName").val(),
// month: $('#ID-laydate-type-datetime').val(),
},
cols: [
[
{
field: "number",
width: 80,
title: "序号",
align: "center",
type: "numbers",
fixed: "left",
},
// {field: 'areaName', align: 'center', title: '区域名称'},
{ field: "deviceName", align: "center", title: "设备名称" },
{ field: "moduleName", align: "center", title: "施工工艺" },
{ field: "changeVal", align: "center", title: "变化值" },
{ field: "val", align: "center", title: "检测值" },
{ field: "createTime", align: "center", title: "检测时间" },
{ field: "isWarn", align: "center", title: "是否告警" },
],
],
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);
$("[data-field='isWarn']")
.children()
.each(function () {
if ($(this).text() == "0") {
$(this).text("未告警");
} else if ($(this).text() == "1") {
$(this).text("告警");
}
});
},
page: true, //开启分页
loading: true, //数据加载中。。。
limits: [5, 10, 20, 100],
limit: 7,
});
}
//渲染历史记录table
function initHistory() {
const url =
commonUrl + "screen/largeScreen/constructionQuality/getHistoryList";
let times = "";
if ($("#ID-laydate-start-date-1").val() != "") {
times =
$("#ID-laydate-start-date-1").val() +
" - " +
$("#ID-laydate-end-date-1").val();
} else {
times = "";
}
historyTableIns = table.render({
elem: "#tableDialog",
url: url,
// skin: 'line',
page: true,
height: "full-550",
headers: {
decrypt: "decrypt",
Authorization: token,
},
where: {
roleCode: roleCode,
orgId: orgId,
userId: userId,
bidCode: bidCode,
deviceName: $("#deviceName").val(),
times: times,
},
cols: [
[
{ type: "numbers", title: "序号" }, // 添加序号列
// {field: 'areaName', align: 'center', title: '区域名称'},
{ field: "deviceName", align: "center", title: "设备名称" },
{ field: "moduleName", align: "center", title: "施工工艺" },
{ field: "changeVal", align: "center", title: "变化值" },
{ field: "val", align: "center", title: "检测值" },
{ field: "createTime", align: "center", title: "检测时间" },
// {field: 'isWarn', align: 'center', title: '是否告警'},
],
],
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);
$("[data-field='isWarn']")
.children()
.each(function () {
if ($(this).text() == "0") {
$(this).text("未告警");
} else if ($(this).text() == "1") {
$(this).text("告警");
}
});
},
page: true, //开启分页
loading: true, //数据加载中。。。
limits: [5, 10, 20, 100],
limit: 20,
});
}
//检测记录对比
function detectionRecord(button, construction) {
if (button !== "") {
let buttons = document.getElementsByClassName("button-style");
let isSelected = button.style.color === "rgb(81, 170, 209)";
for (let i = 0; i < buttons.length; i++) {
buttons[i].style.border = "";
buttons[i].style.color = "";
}
if (!isSelected) {
button.style.border = "1px solid #51AAD1";
button.style.color = "#51AAD1";
} else {
button.style.border = "";
button.style.color = "";
detectionRecord("", "");
}
}
const params = {
roleCode: roleCode,
orgId: orgId,
userId: userId,
bidCode: bidCode,
construction: construction,
};
console.log(construction);
console.log(construction == "table");
if (construction == "table") {
$(".echarts-div").css("display", "none");
$("#data-table-div").css("display", "block");
getDataTable();
} else {
$(".echarts-div").css("display", "block");
$("#data-table-div").css("display", "none");
getDetectionRecord(params);
}
}
//施工质量列表
function getDataTable() {
const url =
commonUrl + "screen/largeScreen/constructionQuality/getDevDataList";
table.render({
elem: "#data-table",
url: url,
skin: "line",
headers: {
decrypt: "decrypt",
Authorization: token,
},
where: {
roleCode: roleCode,
orgId: orgId,
userId: userId,
bidCode: bidCode,
},
cols: [
[
{
field: "number",
width: 80,
title: "序号",
align: "center",
type: "numbers",
fixed: "left",
},
{ field: "name", align: "center", title: "区域名称" },
{ field: "bidName", align: "center", title: "工程名称" },
{ field: "val", align: "center", title: "本次沉降" },
{ field: "hisVal", align: "center", title: "累计沉降" },
{ field: "createTime", align: "center", title: "检测时间" },
{ field: "jcUser", align: "center", title: "检测人" },
{ field: "jhUser", align: "center", title: "校核人" },
{
field: "devCode",
align: "center",
title: "仪器型号计量编号",
},
],
],
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);
});
},
page: true, //开启分页
loading: true, //数据加载中。。。
limits: [5, 10, 20, 100],
limit: 7,
});
}
//查询echars
function getDetectionRecord(params) {
const url =
commonUrl + "screen/largeScreen/constructionQuality/detectionRecord";
let encryptStr = encryptCBC(JSON.stringify(params));
ajaxRequest(
url,
"POST",
encryptStr,
true,
function () {},
function (result) {
if (result.code === 200) {
let resultData = result.data;
let extractedData = {
months: [],
qualificationNumber: [],
detectionNumbers: [],
};
resultData.forEach((data) => {
extractedData.months.push(data.month);
extractedData.detectionNumbers.push(
parseInt(data.detectionNumber)
);
extractedData.qualificationNumber.push(
parseInt(data.qualificationNumber)
);
});
console.log(extractedData);
detectionRecordEcharts(extractedData);
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
} else if (result.code === 401) {
loginout(1);
}
},
function (xhr) {
// error(xhr)
},
"application/json",
aqEnnable
);
}
//检测记录对比echarts图表
function detectionRecordEcharts(extractedData) {
var myChart = echarts.init(document.getElementById("dome"));
option = {
backgroundColor: "transparent",
legend: {
data: ["检测次数", "合格次数"],
icon: "circle",
right: "3%",
textStyle: {
color: "white",
fontSize: 12,
},
itemWidth: 12, // 设置宽度
itemHeight: 16, // 设置高度
itemGap: 12, // 设置间距
},
grid: {
left: "30",
right: "0",
top: "40",
bottom: "20",
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "item",
crossStyle: {
color: "#999",
},
},
confine: true,
formatter: function (params) {
// console.log(params)
var html = params[0].name + "月";
for (var i = 0; i < params.length; i++) {
html +=
"
" +
params[i].marker +
params[i].seriesName +
":" +
params[i].value;
}
return html;
},
},
xAxis: [
{
type: "category",
name: "月",
data: extractedData.months,
axisPointer: {
type: "shadow",
},
axisLine: {
show: true,
lineStyle: {
color: "#333",
},
},
axisLabel: {
formatter: "{value}月",
show: true,
color: "#eee",
},
axisTick: {
show: false,
},
},
],
yAxis: [
{
type: "value",
splitNumber: 5,
splitLine: {
show: true,
lineStyle: {
color: "#333",
},
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
},
],
series: [
{
name: "检测次数",
type: "bar",
symbol: "bar",
barWidth: 20,
itemStyle: {
normal: {
color: "#51AAD1",
},
},
data: extractedData.detectionNumbers,
},
{
name: "合格次数",
type: "bar",
symbol: "circle",
barWidth: 20,
itemStyle: {
normal: {
color: "#70D6B5",
},
},
data: extractedData.qualificationNumber,
},
],
};
myChart.setOption(option);
}
function getNowDay() {
var time = new Date();
var year = time.getFullYear();
var month =
time.getMonth() + 1 >= 10
? time.getMonth() + 1
: "0" + (time.getMonth() + 1);
var day = time.getDate() >= 10 ? time.getDate() : "0" + time.getDate();
return year + "-" + month + "-" + day;
}
function onDBLClick(deviceType) {
openIframeByParamObj(
"handleData4",
"边坡位移监测信息",
"../../pages/operEnvironment/dialog.html",
"72%",
"95%",
{ deviceType },
1
);
}