Files
SIPAIIS_WMS_JSSW/WebRoot/jsp/data/curveView.jsp
2026-01-16 14:13:44 +08:00

2385 lines
106 KiB
Plaintext
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.

<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@page import="com.sipai.entity.data.DataCurve" %>
<% request.setAttribute("Type_group", DataCurve.Type_group);%>
<% request.setAttribute("Type_sys", DataCurve.Type_sys);%>
<% request.setAttribute("Type_user", DataCurve.Type_user);%>
<style type="text/css">
.W120 .th-inner {
width: 150px !important;
}
</style>
<script type="text/javascript">
let beginTimeStore1 = '';
let endTimeStore1 = '';
//var colors = ['#00c200', '#d14a61', '#675bba','#5793f3','#1BBC9B','#BF55EC','#D91E18'];
let colors = ['#c12e34', '#e6b600', '#0098d9', '#2b821d', '#005eaa', '#339ca8', '#cda819', '#32a487', '#f3a43b', '#60c0dd', '#d7504b', '#c6e579', '#f4e001'];
let color = [
"#2ec7c9",
"#b6a2de",
"#5ab1ef",
"#ffb980",
"#d87a80",
"#8d98b3",
"#e5cf0d",
"#97b552",
"#95706d",
"#dc69aa",
"#07a2a4",
"#9a7fd1",
"#588dd5",
"#f5994e",
"#c05050",
"#59678c",
"#c9ab00",
"#7eb00a",
"#6f5553",
"#c14089"
];
var viewHeight = jQuery(window).height();
$('#chartdiv').css('height', (viewHeight - 160) + 'px');
var unitId = unitId;
let curveType = "1";//单Y轴
if ('${curveType}' != null && '${curveType}' != '') {
curveType = '${curveType}';
}
let curveShowType = "0";//折线图
if ('${curveShowType}' != null && '${curveShowType}' != '') {
curveShowType = '${curveShowType}';
}
let dataAaccuracy = "min";//数据精度
let scatterXData = [];
for (let i = 0; i < 24; i++) {
for (let j = 0; j < 60; j++) {
let nowHourOut = "";
let nowMinOut = "";
if (i < 10) {
nowHourOut = "0" + i;
} else {
nowHourOut = i;
}
if (j < 10) {
nowMinOut = "0" + j;
} else {
nowMinOut = j;
}
scatterXData.push(nowHourOut + ":" + nowMinOut);
}
}
function initDate1() {
var locale = {
"format": 'YYYY-MM-DD HH:mm',
"separator": " ~ ",
"applyLabel": "确定",
"cancelLabel": "取消",
"fromLabel": "起始时间",
"toLabel": "结束时间'",
"customRangeLabel": "自定义",
"weekLabel": "W",
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
"firstDay": 1
};
var oldreservationtime1 = "${param.oldreservationtime1}";
if (oldreservationtime1 != "" && oldreservationtime1.length > 0) {
beginTimeStore1 = oldreservationtime1.substring(0, 16);
endTimeStore1 = oldreservationtime1.substring(19, 36);
$('#reservationtime1').val(oldreservationtime1);
} else {
beginTimeStore1 = moment().subtract(3, 'days').format('YYYY-MM-DD HH:mm');
endTimeStore1 = moment().subtract(0, 'days').format('YYYY-MM-DD HH:mm');
$('#reservationtime1').val(beginTimeStore1 + locale.separator + endTimeStore1);
}
$('#reservationtime1').daterangepicker({
"timePicker": true,
"timePicker24Hour": true,
"linkedCalendars": false,
"autoUpdateInput": false,
"timePickerIncrement": 10,
"locale": locale,
//汉化按钮部分
ranges: {
// '今日': [moment(), moment().subtract(-1, 'days')],
'昨日': [moment().subtract(1, 'days'), moment()],
'最近7日': [moment().subtract(7, 'days'), moment()],
'本月': [moment().startOf('month'), moment().endOf('month')],
'上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
},
startDate: beginTimeStore1,
endDate: endTimeStore1
}, function (start, end, label) {
beginTimeStore1 = start.format(this.locale.format);
endTimeStore1 = end.format(this.locale.format);
if (!this.startDate) {
this.element.val('');
} else {
this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
}
});
};
var mpcodestr = "";
var mpnamestr = "";
// var mpunitstr="";
var unitIdstr = "";
var unitNamestr = "";
var expstr = "";//计算方式,用于系统方案中需要计算的点组
//var idArr =[];
var hmpids = "";
var forcemin = "";
var forcemax = "";
var remarkMpidsContent = "";
var remarkNewMpidsContent = "";
let remarkSdt = "";
let remarkEdt = "";
$(function () {
// curveType = '1';
// curveShowType = '0';
dataAaccuracy = 'min'
if ('${param.firstIn}' != 'true') {
hmpids = "${mpids}";
$('#mpids').val(hmpids);
initDate1();
getMpointJson();
$('#chart').css("display", "block");
$('#noDataDiv').css("display", "none");
} else {
$('#chart').css("display", "none");
$('#noDataDiv').css("display", "block");
$('#noDataDivSvg').css("padding-top", windowghight / 2 - 200 + "px");
}
$(document).click(function (e) {
var divTree = $('#deleteDatadrop'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
});
$(document).click(function (e) {
var divTree = $('#hisDatadrop'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
});
$(document).click(function (e) {
var divTree = $('#hisDataTabledrop'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
});
$(document).click(function (e) {
var divTree = $('#alarmLinedrop'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
});
$(document).click(function (e) {
var divTree = $('#programmedrop'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
});
});
function getMpointJson() {
// if(curveType=='2'&&curveShowType=='2'){
// alert("散点图无法在多表下查看");
// return;
// }
$.post(ext.contextPath + "/data/getMPointJson.do", {checkedIds: hmpids}, function (data) {
var ArrayDatas = eval("(" + data + ")");
// console.log(ArrayDatas);
let yValuePointSelectHtml = "";
let yValueyValueContentHtml = "";
yValuePointSelectHtml += "<select onchange='doYValueChange();' style='height: 27.33px;line-height: 27.33px;padding: 2px;' class='form-control select2' id='yValuePointSelect' name='yValuePointSelect'>";
for (var i = 0; i < ArrayDatas.length; i++) {
mpcodestr += ArrayDatas[i].mpointcode + ",";//测量点code
mpnamestr += ArrayDatas[i].parmname + ",";//测量点名称
// mpunitstr+=ArrayDatas[i].unit+",";//测量点单位
unitIdstr += ArrayDatas[i].bizid + ",";//厂
unitNamestr += ArrayDatas[i].bizname + ",";//厂
expstr += ArrayDatas[i].exp + ",";//计算方式
// forcemin += ArrayDatas[i].forcemin + ",";//y轴最小值
// forcemax += ArrayDatas[i].forcemax + ",";//y轴最大值
yValuePointSelectHtml += "<option value='" + ArrayDatas[i].mpointcode + "' num='" + i + "'>" + ArrayDatas[i].parmname + "</option>";
if (i == 0) {
yValueyValueContentHtml += "<div id='yValueContentShow" + i + "' style='display: block;'>";
} else {
yValueyValueContentHtml += "<div id='yValueContentShow" + i + "' style='display: none;'>";
}
yValueyValueContentHtml += "<div class='ckbox'>";
yValueyValueContentHtml += "<input name='yValueAuto" + i + "' type='checkbox' value='true' checked><label for='yValueAuto" + i + "' style='margin-left:10px;'>自适应</label>";
yValueyValueContentHtml += "</div>";
yValueyValueContentHtml += "<div style='float:left;width: 25%;height:32.33px;padding-top: 5px;line-height: 27.33px;font-weight: bold;'>下限值 </div>";
yValueyValueContentHtml += "<div style='float:left;width: 25%;height:32.33px;padding-top: 5px;'><input id='yValueMin" + i + "' style='width: 100%;' value=''/></div>";
yValueyValueContentHtml += "<div style='float:left;width: 25%;height:32.33px;padding-top: 5px;line-height: 27.33px;text-align:center;font-weight: bold;'>上限值</div>";
yValueyValueContentHtml += "<div style='float:left;width: 25%;height:32.33px;padding-top: 5px;'><input id='yValueMax" + i + "' style='width: 100%;' value=''/></div>";
yValueyValueContentHtml += "</div >";
}
yValuePointSelectHtml += "</select>";
$('#yValuePointSelect').html(yValuePointSelectHtml);
$('#yValueContent').html(yValueyValueContentHtml);
if (curveType == '0' || curveType == '1') {
$('#chart').css('height', '100%');
} else if (curveType == '2') {
$('#chart').css('height', (ArrayDatas.length * 380) + 80 + 'px');
}
getEcharts();
});
}
var mychart = "";
var option = [];
var mpcodedata = [];
var mpnamedata = [];
var unitNames = [];
var singleUnitIdSt = "0";
var scatterOption = [];//散点图
function getEcharts() {
document.getElementById("chart").removeAttribute("_echarts_instance_");
mychart = echarts.init(document.getElementById('chart'));
mychart.showLoading({
text: '数据正在加载...',
textStyle: {fontSize: 30, color: '#444'},
effectOption: {backgroundColor: 'rgba(0, 0, 0, 0)'}
});
var series = [];
var yAxis = [];
var xAxis = [];
var grid = [];
var dataZoom = [];
var legenddata = [];
mpcodedata = (mpcodestr.substring(0, mpcodestr.length - 1)).split(",");
mpnamedata = (mpnamestr.substring(0, mpnamestr.length - 1)).split(",");
var unitIds = [];
unitIds = (unitIdstr.substring(0, unitIdstr.length - 1)).split(",");
//判断是否是单厂数据
var singleUnitId = "0";
if (unitIds.length > 0) {
for (var i = 0; i < unitIds.length; i++) {
if (i == 0) {
singleUnitId = unitIds[i];
singleUnitIdSt = "0";
} else {
if (singleUnitId != unitIds[i]) {
singleUnitIdSt = "1";
break;
}
}
}
}
unitNames = (unitNamestr.substring(0, unitIdstr.length - 1)).split(",");
var expname = [];
expname = (expstr.substring(0, expstr.length - 1)).split(",");
// var forcemins = [];
// forcemins = (forcemin.substring(0, forcemin.length - 1)).split(",");
//
// var forcemaxs = [];
// forcemaxs = (forcemax.substring(0, forcemax.length - 1)).split(",");
remarkMpidsContent = "";
if (mpnamedata.length > 0) {
for (var i = 0; i < mpnamedata.length; i++) {
if (expname[i] != "-") {
legenddata.push(mpnamedata[i]);
} else {
// legenddata.push(mpnamedata[i]+":"+mpcodedata[i]);
if (singleUnitIdSt == "0") {
legenddata.push(mpnamedata[i]);
} else if (singleUnitIdSt == "1") {
legenddata.push(unitNames[i] + ":" + mpnamedata[i]);
}
}
remarkMpidsContent += mpcodedata[i] + ":" + unitIds[i] + ":" + mpnamedata[i] + ","
}
}
let seriesType = 'line';
if (curveShowType == '0') {
seriesType = 'line';
} else if (curveShowType == '1') {
seriesType = 'bar';
} else if (curveShowType == '2') {
seriesType = 'scatter';
}
// if (curveShowType == '0' || curveShowType == '1') {
if (curveType == '0') {//多Y轴
// $('#chart').css('height', '100%');
if (legenddata.length == 2) {
for (var i = 0; i < legenddata.length; i++) {
series.push({
symbol: 'none',
symbolSize: '8',
name: legenddata[i],
// xAxisIndex:i,
yAxisIndex: i,
lineStyle: {
width: 2
},
data: '',
type: seriesType,
markPoint: {
data: ''
},
markLine: {
data: ''
}
})
}
yAxis.push({
type: 'value',
name: false,
position: 'left',//在左侧显示Y轴
offset: 0,//循环显示Y轴位置
axisLine: {
show: true,
lineStyle: {
color: color[0]
}
},
splitLine: {
show: true//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
scale: true//设置成 true 后坐标刻度不会强制包含零刻度。
});
yAxis.push({
type: 'value',
name: false,
position: 'right',//在左侧显示Y轴
offset: 0,//循环显示Y轴位置
axisLine: {
show: true,
lineStyle: {
color: color[1]
}
},
splitLine: {
show: true//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
scale: true//设置成 true 后坐标刻度不会强制包含零刻度。
});
} else {
for (var i = 0; i < legenddata.length; i++) {
series.push({
symbol: 'none',
symbolSize: '8',
name: legenddata[i],
// xAxisIndex:i,
yAxisIndex: i,
lineStyle: {
width: 2
},
data: '',
type: seriesType,
markPoint: {
data: ''
},
markLine: {
data: ''
}
})
yAxis.push({
type: 'value',
name: false,
position: 'left',//在左侧显示Y轴
offset: i * 40,//循环显示Y轴位置
axisLine: {
show: true,
lineStyle: {
color: color[i]
}
},
splitLine: {
show: true//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
scale: true//设置成 true 后坐标刻度不会强制包含零刻度。
});
}
}
xAxis.push({
type: 'time'
});
grid.push({
left: '4%', // 与容器左侧的距离
right: '4%', // 与容器右侧的距离
top: '5%', // 与容器顶部的距离
//bottom: '5%', // 与容器底部的距离
containLabel: true
});
dataZoom.push({
type: 'inside',
start: 0,
end: 100
})
dataZoom.push({
start: 0,
end: 100,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '60%',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
})
} else if (curveType == '1') {//单Y轴
// $('#chart').css('height', '100%');
for (var i = 0; i < legenddata.length; i++) {
series.push({
data: '',
symbol: 'none',
symbolSize: '8',
name: legenddata[i],
type: seriesType,
// xAxisIndex:i,
lineStyle: {
width: 2
},
markPoint: {
data: ''
},
markLine: {
data: ''
}
})
}
xAxis.push({
type: 'time'
});
yAxis.push({
type: 'value',
name: false,
splitLine: {
show: true//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
axisLine: {
show: true
},
scale: true//设置成 true 后坐标刻度不会强制包含零刻度。
});
grid.push({
left: '4%', // 与容器左侧的距离
right: '4%', // 与容器右侧的距离
top: '5%', // 与容器顶部的距离
//bottom: '5%', // 与容器底部的距离
containLabel: true
});
dataZoom.push({
type: 'inside',
start: 0,
end: 100
})
dataZoom.push({
start: 0,
end: 100,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '60%',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
})
} else if (curveType == '2') {//多表
// $('#chart').css('height', (legenddata.length * 380) + 80 + 'px');
for (var i = 0; i < legenddata.length; i++) {
xAxis.push({
type: 'time',
gridIndex: i,
});
yAxis.push({
type: 'value',
name: false,
splitLine: {
show: true//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
axisLine: {
show: true
},
scale: true,//设置成 true 后坐标刻度不会强制包含零刻度。
gridIndex: i
});
series.push({
data: '',
symbol: 'none',
name: legenddata[i],
type: seriesType,
lineStyle: {
width: 2
},
markPoint: {
data: ''
},
markLine: {
data: ''
},
xAxisIndex: i,
yAxisIndex: i
});
let topH = 80 * (i + 1) + i * 300;
grid.push({
height: '300px',
top: topH + 'px'
})
dataZoom.push({
type: 'inside',
// zoomLock: 'true',
start: 0,
end: 100,
xAxisIndex: i,
filterMode: 'filter',
})
dataZoom.push({
type: 'inside',
// zoomLock: 'true',
start: 0,
end: 100,
yAxisIndex: i,
filterMode: 'empty',
})
dataZoom.push({
start: 0,
end: 100,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '60%',
xAxisIndex: i,
height: '25px',
top: topH + 340 + 'px',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
})
dataZoom.push({
start: 0,
end: 100,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '60%',
yAxisIndex: i,
// height: '25px',
top: topH + 'px',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
})
}
}
if (curveShowType == '2') {//散点图
$.post(ext.contextPath + "/data/getScatterData.do", {
mpcode: hmpids,
sdt: beginTimeStore1,
edt: endTimeStore1
}, function (data) {
// console.log(data)
let namearr = mpnamestr.substring(0, mpnamestr.length - 1);
namearr = namearr.split(",");
let scatterseriesData = [];
// for (let i = 0; i < data.length; i++) {
// scatterseriesData.push({
// name: namearr[i],
// type: 'scatter',
// data: data[i].data
// })
// }
let scatterxAxis = [];
let scatteryAxis = [];
let scatterdataZoom = [];
let scattergrid = [];
if (curveType == '0' || curveType == '1') {
scatterxAxis.push({
scale: true,
data: scatterXData,
});
if (curveType == '0') {
for (var i = 0; i < data.length; i++) {
scatteryAxis.push({
type: 'value',
name: false,
position: 'left',//在左侧显示Y轴
offset: i * 40,//循环显示Y轴位置
axisLine: {
show: true,
lineStyle: {
color: color[i]
}
},
splitLine: {
show: true//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
scale: true//设置成 true 后坐标刻度不会强制包含零刻度。
});
scatterseriesData.push({
name: namearr[i],
type: 'scatter',
data: data[i].data,
yAxisIndex: i
})
}
} else {
scatteryAxis.push({
type: 'value',
name: false,
splitLine: {
show: true//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
axisLine: {
show: true
},
scale: true//设置成 true 后坐标刻度不会强制包含零刻度。
});
for (var i = 0; i < data.length; i++) {
scatterseriesData.push({
name: namearr[i],
type: 'scatter',
data: data[i].data,
})
}
}
scattergrid.push({
left: '4%', // 与容器左侧的距离
right: '4%', // 与容器右侧的距离
top: '5%', // 与容器顶部的距离
//bottom: '5%', // 与容器底部的距离
containLabel: true
});
scatterdataZoom.push({
type: 'inside',
start: 0,
end: 100
})
scatterdataZoom.push({
start: 0,
end: 100,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '60%',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
})
} else if (curveType == '2') {//多表
for (var i = 0; i < data.length; i++) {
scatterxAxis.push({
scale: true,
data: scatterXData,
gridIndex: i,
});
scatteryAxis.push({
type: 'value',
name: false,
splitLine: {
show: true//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
axisLine: {
show: true
},
scale: true,//设置成 true 后坐标刻度不会强制包含零刻度。
gridIndex: i
});
scatterseriesData.push({
name: namearr[i],
type: 'scatter',
data: data[i].data,
xAxisIndex: i,
yAxisIndex: i,
})
let topH = 80 * (i + 1) + i * 300;
scattergrid.push({
height: '300px',
top: topH + 'px'
})
scatterdataZoom.push({
type: 'inside',
// zoomLock: 'true',
start: 0,
end: 100,
xAxisIndex: i,
filterMode: 'filter',
})
scatterdataZoom.push({
type: 'inside',
// zoomLock: 'true',
start: 0,
end: 100,
yAxisIndex: i,
filterMode: 'empty',
})
scatterdataZoom.push({
start: 0,
end: 100,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '60%',
xAxisIndex: i,
height: '25px',
top: topH + 340 + 'px',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
})
scatterdataZoom.push({
start: 0,
end: 100,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '60%',
yAxisIndex: i,
// height: '25px',
top: topH + 'px',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
})
}
}
scatterOption = {
color: color,
xAxis: scatterxAxis,
yAxis: scatteryAxis,
legend: {
data: namearr,
left: 'center'
},
grid: scattergrid,
tooltip: {
trigger: 'item'
},
series: scatterseriesData,
dataZoom: dataZoom
}
mychart.setOption(scatterOption, true);
mychart.hideLoading();
}, 'json');
} else {
option = {
color: color,
animation: false,
// tooltip: {
// trigger: 'axis',
// axisPointer: {
// type: 'cross'
// }
// },
legend: {
type: 'scroll',
// right: 50,
data: legenddata,
left: 'center',
padding: [
10, // 上
100, // 右
0, // 下
0, // 左
]
},
grid: grid,
toolbox: {
feature: {
saveAsImage: {show: true},
}
},
xAxis: xAxis,
yAxis: yAxis,
series: series,
tooltip: {
trigger: 'axis',
enterable: true,
// confine:true,
formatter: function (params, ticket, callback) {
var htmlStr = '';
for (var i = 0; i < params.length; i++) {
var param = params[i];
var xName = param.name;//x轴的名称
var seriesName = param.seriesName;//图例名称
// var xvalue = param.value[0];//x轴值
var xvalue = getLocalTime2(param.value[0] / 1000);
var yvalue = param.value[1];//y轴值
var remarkvalue = param.value[2];//备注轴值
var unit = "";//单位
if (param.value[3] != '-') {
unit = param.value[3];
}
var color = param.color;//图例颜色
htmlStr += '<div>';
htmlStr += xvalue + '<br/>';
htmlStr += '<span style="margin-right:5px;display:inline-block;width:10px;height:10px;border-radius:5px;background-color:' + color + ';"></span>';
htmlStr += seriesName + '' + '<span style="font-weight: 600;">' + yvalue + ' ' + unit + '</span>';
if (remarkvalue != "") {
htmlStr += '<br/>' + '备注:' + remarkvalue;
}
htmlStr += '</div>';
}
return htmlStr;
}
},
dataZoom: dataZoom
};
// console.log(option)
mychart.setOption(option, true);
mychart.on('click', function (param) {
// console.log(param);//这里根据param填写你的跳转逻辑
if (param.componentSubType == 'line') {
var time = param.data[0];//获取日期
// console.log(time)
var remarkCnum = $('#remarkCnum').val();
if (remarkCnum == '0') {
remarkSdt = getLocalTime2(time / 1000);
// $('#remarkSdt').val(getLocalTime2(time / 1000));
$('#remarkCnum').val('1');
} else if (remarkCnum == '1') {
remarkEdt = getLocalTime2(time / 1000);
// $('#remarkEdt').val(getLocalTime2(time / 1000));
$('#remarkCnum').val('2');
$.post(ext.contextPath + '/data/remarkView.do', {
sdt: remarkSdt,
edt: remarkEdt,
remarkMpidsContent: remarkNewMpidsContent//remarkMpidsContent
}, function (data) {
$("#subDiv").html(data);
openModal('curveRemarkSubModal');
$('#remarkCnum').val('0');
});
} else {
alert("只可选择两个时间点,请重置选择!");
}
}
});
mychart.on('legendselectchanged', function (obj) {
// console.log(obj)
// console.log(remarkMpidsContent)
var selected = obj.selected;
var legend = obj.name;
var nowselect = "";
// var oldmpidss = ($('#oldremarkMpids').val().substring(0, $('#oldremarkMpids').val().length - 1)).split(",");
remarkNewMpidsContent = remarkMpidsContent.substring(0, remarkMpidsContent.length - 1).split(",");
// console.log(remarkMpidsContent)
for (var key in selected) {
if (selected[key]) {
// var nowmpids=key.split(":");
for (let m = 0; m < remarkNewMpidsContent.length; m++) {
var oldmpids = remarkNewMpidsContent[m].split(":");
var nowmpname = key;
var oldmpname = oldmpids[2];
if (oldmpname == nowmpname) {
nowselect += oldmpids[0] + ":" + oldmpids[1] + ":" + oldmpids[2] + ",";
}
}
}
}
remarkNewMpidsContent = nowselect;
// console.log(remarkNewMpidsContent)
// $('#remarkMpids').val(nowselect);
// $("#remarkLineSelect").empty();
// for (var r = 0; r < oldmpidss.length; r++) {
// var remarkMpsDetails = oldmpidss[r].split(":");
// var rmpname = remarkMpsDetails[2];
// var rmpvalue = remarkMpsDetails[0] + ":" + remarkMpsDetails[1];
// if (nowselect.indexOf(rmpname) >= 0) {
// $("#remarkLineSelect").append("<option value=" + rmpvalue + " selected>" + rmpname + "</option>");
// } else {
// $("#remarkLineSelect").append("<option value=" + rmpvalue + " >" + rmpname + "</option>");
// }
// }
// $('#remarkLineSelect').multipleSelect({
// addTitle: true, //鼠标点悬停在下拉框时是否显示被选中的值
// selectAll: true, //是否显示全部复选框,默认显示
// name: "备注曲线",
// //delimiter: ', ', //多个值直接的间隔符,默认是逗号
// placeholder: "下拉选择" //不选择时下拉框显示的内容
// });
});
mpcodedata.forEach(function (item, index) {
if (item != '') {
appendDataToChart(item, index, unitIds[index], expname[index], mpnamedata[index]);
}
});
}
}
var alarmdata = [];
var visualMap = [];
function appendDataToChart(id, index, unitIds, exp, mpname) {
$.ajax({
type: 'GET',
url: ext.contextPath + "/work/mpoint/getMpointJsonFormpids.do",
async: false,
globle: false,
data: {
unitId: unitIds,
mpids: id,
func: exp,
mpname: mpname,
sdt: beginTimeStore1,
edt: endTimeStore1
// dataAaccuracy: dataAaccuracy
},
dataType: 'json',
error: function () {
return false;
},
success: function (datas) {
var piecesdata = [];
// var datas = eval('(' + data + ')');
// console.log(datas)
if (index == 0) {
mychart.hideLoading();
}
// console.log(datas);
if (datas != '') {
alarmdata.push({
name: mpname,
maxlimit: datas[0].maxlimit,
minlimit: datas[0].minlimit
});
var edatas = datas[0].data;
// console.log(edatas);
//为全局赋值
option.series[index].data = edatas;
if (datas[0].remarkS.length > 0) {
piecesdata.push({
index: index,
remarkS: datas[0].remarkS,
remarkE: datas[0].remarkE
})
}
//后端构造对应数据
mychart.appendData({
seriesIndex: index,
data: edatas
});
// console.log(piecesdata);
for (var r = 0; r < piecesdata.length; r++) {
var pieces = [];
for (var rs = 0; rs < piecesdata[r].remarkS.length; rs++) {
pieces.push({
gt: option.series[piecesdata[r].index].data[piecesdata[r].remarkS[rs]][0],
lte: option.series[piecesdata[r].index].data[piecesdata[r].remarkE[rs] - 1][0],
// gt: piecesdata[r].remarkS[rs] - 1,
// lte: piecesdata[r].remarkE[rs] - 1,
color: 'red'
})
}
visualMap.push({
show: false,
dimension: 0,
seriesIndex: piecesdata[r].index,
pieces: pieces,
outOfRange: {color: color[piecesdata[r].index]}
});
}
option.visualMap = visualMap;
//刷新
mychart.setOption(option, true);
}
}
});
}
function getHistoryList() {
var namearr = mpnamestr.substring(0, mpnamestr.length - 1);
namearr = namearr.split(",");
var length = namearr.length;
var mpoint = [];
var checkobx = {};
checkobx.checkbox = true;
//mpoint.push(checkobx);
var measuredt = {};
measuredt.class = 'W120',
measuredt.field = 'measuredt';
measuredt.title = '时间';
measuredt.align = 'center';
measuredt.valign = 'middle';
measuredt.width = 140;
mpoint.push(measuredt);
for (var i = 0; i < namearr.length; i++) {
var color = colors[i % namearr.length];
var parmvalue = {};
parmvalue.field = 'paramvalue' + i;
parmvalue.title = namearr[i];
parmvalue.align = 'center';
parmvalue.valign = 'middle';
parmvalue.width = (800 - 10) / namearr.length;
var css1 = {};
css1.color = color;
var cellstyle = {};
cellstyle.css = css1;
parmvalue.cellStyle = cellstyle,
mpoint.push(parmvalue);
}
var jsonStr1 = JSON.stringify(mpoint)
$("#datatable").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/work/mpoint/getDiffUnitHistoryList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20, 50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
rowStyle: function (row, index) {
var classes = ['active', 'success', 'info', 'warning', 'danger'];
return {
classes: classes[row / 5]
};
return {};
},
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset / params.limit + 1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
ids: hmpids,
sdt: beginTimeStore1,
edt: endTimeStore1
}
},
sortName: 'measuredt', // 要排序的字段
sortOrder: 'asc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
//viewFun(row.id);
},
columns: mpoint,
onLoadSuccess: function () { //加载成功时执行
adjustBootstrapTableView("datatable");
},
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
}
})
// $(".th-inner").css('background-color','#659be0');
}
function dosearch() {
mpcodestr = "";
mpnamestr = "";
// mpunitstr="";
mychart = "";
option = [];
// $('#remarkMpids').val("");
// $('#oldremarkMpids').val("");
getMpointJson();
$("#datatable").bootstrapTable('refresh');
// $('#remarkShow').text('不显示');
hisDataoption = "";
hisDatamychart = "";
forcemin = "";
forcemax = "";
}
function changeCureType(obj) {
var value = $(obj).val();
curveType = value;
// if (curveType == '0' || curveType == '1') {
// $('#chart').css('height', '100%');
// } else if (curveType == '2') {
// $('#chart').css('height', (mpcodedata.length * 380) + 80 + 'px');
// }
dosearch();
}
function changeCureShowType(obj) {
// console.log(option)
var value = $(obj).val();
curveShowType = value;
if (curveShowType == '0') {
if (option != null) {
for (let i = 0; i < option.series.length; i++) {
option.series[i].type = 'line';
}
mychart.setOption(option, true);
} else {
getMpointJson();
}
} else if (curveShowType == '1') {
mychart.setOption(option, true);
if (option != null) {
for (let i = 0; i < option.series.length; i++) {
option.series[i].type = 'bar';
}
mychart.setOption(option, true);
} else {
getMpointJson();
}
} else if (curveShowType == '2') {
getMpointJson();
}
}
function changeDataAaccuracy(obj) {
var value = $(obj).val();
dataAaccuracy = value;
dosearch();
}
var hisDataoption = [];
var hisDatamychart = "";
function dohisData() {
$('#hisDatadrop').hide();
option = "";
var s = $('#mpids').val().split(",");
s = s.splice(0, (s.length - 1));
let reservationtime2 = $('#reservationtime2').val();
let reservationtime3 = $('#reservationtime3').val();
document.getElementById("chart").removeAttribute("_echarts_instance_");
hisDatamychart = echarts.init(document.getElementById('chart'));
hisDatamychart.showLoading({
text: '数据正在加载...',
textStyle: {fontSize: 30, color: '#444'},
effectOption: {backgroundColor: 'rgba(0, 0, 0, 0)'}
});
let hisBJData = [];
for (let i = 0; i < s.length; i++) {
let s2 = s[i].split(":");
let mpid = s2[0];
let unitIds = s2[1];
$.ajax({
type: 'GET',
url: ext.contextPath + "/work/mpoint/getMpointJsonForHisContrast.do",
async: false,
globle: false,
data: {
unitId: unitIds,
mpid: mpid,
basicsDt: reservationtime2,
hisDt: reservationtime3
},
dataType: 'json',
error: function () {
return false;
},
success: function (datas) {
// console.log(datas);
let data1 = datas[0].data;
let data2 = datas[1].data;
let hisBJDetailData = [];
hisBJDetailData.push({
data1: data1,
data2: data2,
name1: datas[0].name,
name2: datas[1].name
});
hisBJData.push(hisBJDetailData);
}
});
}
if (s.length == 1) {
let data1 = hisBJData[0][0].data1;
let data2 = hisBJData[0][0].data2;
let name1 = hisBJData[0][0].name1;
let name2 = hisBJData[0][0].name2;
if (curveType == '1') {
hisDataoption = {
animation: false,
legend: {
data: [name1, name2],
left: 'center',
padding: [
10, // 上
100, // 右
0, // 下
0, // 左
]
},
grid: {
left: '4%', // 与容器左侧的距离
right: '4%', // 与容器右侧的距离
top: '5%', // 与容器顶部的距离
//bottom: '5%', // 与容器底部的距离
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {show: true},
}
},
xAxis: {
type: 'time'
},
yAxis: {
type: 'value',
name: false,
splitLine: {
show: false//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
scale: true//设置成 true 后坐标刻度不会强制包含零刻度。
},
series: [
{
name: name1,
type: 'line',
symbol: 'none',
markPoint: {
data: ''
},
markLine: {
data: ''
},
data: data1
},
{
name: name2,
type: 'line',
symbol: 'none',
markPoint: {
data: ''
},
markLine: {
data: ''
},
data: data2
}
],
tooltip: {
trigger: 'axis',
formatter: function (params, ticket, callback) {
// console.log(params);
var htmlStr = '';
for (var i = 0; i < params.length; i++) {
var param = params[i];
var seriesName = param.seriesName;//图例名称
var xvalue = param.value[2];//x轴值
var yvalue = param.value[1];//y轴值
var color = param.color;//图例颜色
// var showName = seriesName.split(":");
htmlStr += '<div>';
htmlStr += xvalue + '<br/>';
htmlStr += '<span style="margin-right:5px;display:inline-block;width:10px;height:10px;border-radius:5px;background-color:' + color + ';"></span>';
htmlStr += seriesName + '' + yvalue + '';
htmlStr += '</div>';
}
return htmlStr;
}
// alwaysShowContent:true,
},
dataZoom: [{
type: 'inside',
start: 0,
end: 20
}, {
start: 0,
end: 20,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '60%',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
}]
};
} else {
alert("请将轴类型切位单Y轴");
}
} else {
if (curveType == '2') {
let xAxis = [];
let yAxis = [];
let series = [];
let grid = [];
let dataZoom = [];
let legendNmae = [];
for (let j = 0; j < hisBJData.length; j++) {
let data1 = hisBJData[j][0].data1;
let data2 = hisBJData[j][0].data2;
let name1 = hisBJData[j][0].name1;
let name2 = hisBJData[j][0].name2;
legendNmae.push(name1);
legendNmae.push(name2);
xAxis.push({
type: 'time',
gridIndex: j,
});
yAxis.push({
type: 'value',
name: false,
splitLine: {
show: true//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
axisLine: {
show: true
},
scale: true,//设置成 true 后坐标刻度不会强制包含零刻度。
gridIndex: j
});
series.push({
name: name1,
type: 'line',
symbol: 'none',
data: data1,
xAxisIndex: j,
yAxisIndex: j,
markPoint: {
data: ''
},
markLine: {
data: ''
}
});
series.push({
name: name2,
type: 'line',
symbol: 'none',
data: data2,
xAxisIndex: j,
yAxisIndex: j,
markPoint: {
data: ''
},
markLine: {
data: ''
},
});
let topH = 80 * (j + 1) + j * 300;
grid.push({
height: '300px',
top: topH + 'px'
})
dataZoom.push({
type: 'inside',
zoomLock: 'true',
start: 0,
end: 100,
xAxisIndex: j,
yAxisIndex: j
})
dataZoom.push({
start: 0,
end: 100,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '60%',
xAxisIndex: j,
yAxisIndex: j,
height: '25px',
top: topH + 340 + 'px',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
})
}
hisDataoption = {
animation: false,
legend: {
data: legendNmae,
type: 'scroll',
left: 'center',
padding: [
10, // 上
100, // 右
0, // 下
0, // 左
]
},
grid: grid,
toolbox: {
feature: {
saveAsImage: {show: true},
}
},
xAxis: xAxis,
yAxis: yAxis,
series: series,
tooltip: {
trigger: 'axis',
formatter: function (params, ticket, callback) {
var htmlStr = '';
for (var i = 0; i < params.length; i++) {
var param = params[i];
var seriesName = param.seriesName;//图例名称
var xvalue = param.value[2];//x轴值
var yvalue = param.value[1];//y轴值
var color = param.color;//图例颜色
// var showName = seriesName.split(":");
htmlStr += '<div>';
htmlStr += xvalue + '<br/>';
htmlStr += '<span style="margin-right:5px;display:inline-block;width:10px;height:10px;border-radius:5px;background-color:' + color + ';"></span>';
htmlStr += seriesName + '' + yvalue + '';
htmlStr += '</div>';
}
return htmlStr;
}
// alwaysShowContent:true,
},
dataZoom: dataZoom
};
// console.log(hisDataoption);
} else {
alert("请将轴类型切位多表");
}
}
hisDatamychart.setOption(hisDataoption);
hisDatamychart.hideLoading();
}
function doYearCompare() {
var myDate = new Date;
var year = myDate.getFullYear(); //获取当前年
var mon = myDate.getMonth() + 1; //获取当前月
// var date = myDate.getDate(); //获取当前日
if (parseInt(mon) < 10) {
mon = "0" + mon;
}
var nowdt = year + "-" + mon;
$('#reservationtime2').val(nowdt);
var lastyear = parseInt(year) - 1;
var lastmon = mon;
var lastdt = lastyear + "-" + lastmon;
$('#reservationtime3').val(lastdt);
document.getElementById("yearCompare").style.border = "2px solid #ccc";
document.getElementById("monthCompare").style.border = "0px solid #ccc";
$('#compareText').text("同比:本月数据和去年同月数据对比");
}
function doMonthCompare() {
var myDate = new Date;
var year = myDate.getFullYear(); //获取当前年
var mon = myDate.getMonth() + 1; //获取当前月
// var date = myDate.getDate(); //获取当前日
if (parseInt(mon) < 10) {
mon = "0" + mon;
}
var nowdt = year + "-" + mon;
$('#reservationtime2').val(nowdt);
var lastyear = year;
var lastmon = parseInt(mon) - 1;
if (parseInt(mon) == 1) {
lastyear = parseInt(lastyear) - 1;
lastmon = "12";
}
if (parseInt(lastmon) < 10) {
lastmon = "0" + lastmon;
}
var lastdt = lastyear + "-" + lastmon;
$('#reservationtime3').val(lastdt);
document.getElementById("monthCompare").style.border = "2px solid #ccc";
document.getElementById("yearCompare").style.border = "0px solid #ccc";
$('#compareText').text("环比:本月数据和上月数据对比");
}
function deleteDataContent() {
var deleteDataContent = $('#mpids').val();
// console.log(deleteDataContent)
var deleteDataContents = [];
deleteDataContents = (deleteDataContent.substring(0, deleteDataContent.length - 1)).split(",");
// console.log(deleteDataContents);
var html = "<div style='width:100%;padding:5px;' >";
html += "<div style='float:left;width:100%;padding-bottom:10px;border-bottom:10px solid #f4f4f4;' >";
html += "<div style='width:100%;float:right;'><div class='pull-right' style='width:80px;height:25px;border-radius: 4px;background: #3c8dbc;margin-right: 10px;' ><div style='text-align:center;line-height:25px;font-size:12px;color:#ffffff;font-weight:700;font-family: MicrosoftYaHei, MicrosoftYaHei-Bold;cursor: pointer;' onclick='deleteDataAllContent();'>全部删除</div></div></div>";
html += "</div>";
if (deleteDataContents != null && deleteDataContents != '' && deleteDataContents.length > 0) {
for (var i = 0; i < deleteDataContents.length; i++) {
var showname = "";
if (singleUnitIdSt == "0") {
showname = mpnamedata[i];
} else if (singleUnitIdSt == "1") {
showname = unitNames[i] + ":" + mpnamedata[i];
}
html += "<div style='float:left;width:100%;padding-bottom:10px;padding-top:10px;border-bottom:10px solid #f4f4f4;' >";
html += "<div title='" + showname + "' style='float:left;width:90%;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;'>" + showname + "</div>";
html += "<div style='float:left;width:10%;text-align:center;cursor: pointer;'><a ><i id='" + deleteDataContents[i] + "' class='fa fa-times-circle-o' style='font-size:18px;' onclick='doOneDeleteData(this);'></i></a></div>";
html += "</div>";
}
}
html += "</div>";
$('#deleteDataContent').html(html);
}
function deleteDataAllContent() {
hmpids = "";
mychart = "";
option = [];
$('#mpids').val("");
$("#chart").html("");
$('#deleteDatadrop').hide();
// $('#remarkMpids').val("");
// $('#oldremarkMpids').val("");
for (let i = 0; i < nodeIds.length; i++) {
$('#singleBizDiv').treeview('toggleNodeSelected', [nodeIds[i].nodeId, {silent: true}]);
}
while (nodeIds.length) {
nodeIds.pop();
}
}
function doOneDeleteData(obj) {
var check = $(obj).attr("id") + ",";
var oldmpids = $('#mpids').val();
var newmpids = oldmpids.replace(check, "");
hmpids = newmpids;
$('#mpids').val(newmpids);
//取消左侧数的选中状态
let onlyMpid = $(obj).attr("id").split(":")[0];
for (let i = 0; i < nodeIds.length; i++) {
if (onlyMpid == nodeIds[i].mpid) {
$('#singleBizDiv').treeview('toggleNodeSelected', [nodeIds[i].nodeId, {silent: true}]);
nodeIds.splice(i, 1);
break;
}
}
$('#deleteDatadrop').hide();
if (hmpids == "") {
hmpids = "";
mychart = "";
option = [];
$('#mpids').val("");
$("#chart").html("");
// $('#remarkMpids').val("");
// $('#oldremarkMpids').val("");
} else {
dosearch();
}
}
function doAuxiliaryTools() {
// console.log(alarmdata);
let markPointdata = [];
let avgSt = '0';
let alarmSt = '0';
$('input[name="alarmLineName"]:checked').each(function () {//遍历每一个名字为interest的复选框其中选中的执行函数
if ($(this).val() == '0') {
markPointdata.push({
type: 'max',
name: '最大值'
});
} else if ($(this).val() == '1') {
markPointdata.push({
type: 'min',
name: '最小值'
});
} else if ($(this).val() == '2') {
avgSt = '1';
if (option != null && option != '') {
for (let i = 0; i < option.series.length; i++) {
let markLinedata = [];
markLinedata.push({
type: 'average',
name: '平均值'
});
option.series[i].markLine.data = markLinedata;
}
} else if (hisDataoption != null && hisDataoption != '') {
for (let i = 0; i < hisDataoption.series.length; i++) {
let markLinedata = [];
markLinedata.push({
type: 'average',
name: '平均值'
});
hisDataoption.series[i].markLine.data = markLinedata;
}
}
} else if ($(this).val() == '3') {
alarmSt = '1';
if (option != null && option != '') {
for (let i = 0; i < option.series.length; i++) {
for (let j = 0; j < alarmdata.length; j++) {
if (alarmdata[j].name == option.series[i].name) {
let markLinedata = [];
if (alarmdata[i].maxlimit != '-') {
markLinedata.push({
silent: true, //鼠标悬停事件 true没有false有
lineStyle: { //警戒线的样式 ,虚实 颜色
type: 'solid'
},
name: '上限',
yAxis: alarmdata[i].maxlimit
});
}
if (alarmdata[i].minlimit != '-') {
markLinedata.push({
silent: true, //鼠标悬停事件 true没有false有
lineStyle: { //警戒线的样式 ,虚实 颜色
type: 'solid'
},
name: '下限',
yAxis: alarmdata[i].minlimit
});
}
let nowMarkLineData = [];
nowMarkLineData = option.series[i].markLine.data;
if (nowMarkLineData != '') {
for (let m = 0; m < markLinedata.length; m++) {
nowMarkLineData.push(markLinedata[m]);
}
} else {
nowMarkLineData = markLinedata;
}
option.series[i].markLine.data = nowMarkLineData;
}
}
}
} else if (hisDataoption != null && hisDataoption != '') {
for (var i = 0; i < hisDataoption.series.length; i++) {
for (let j = 0; j < alarmdata.length; j++) {
let name = hisDataoption.series[i].name.split(":");
if (name[0] == '基础月') {
if (name[1] == alarmdata[j].name) {
let markLinedata = [];
if (alarmdata[j].maxlimit != '-') {
markLinedata.push({
silent: true, //鼠标悬停事件 true没有false有
lineStyle: { //警戒线的样式 ,虚实 颜色
type: 'solid'
},
name: '上限',
yAxis: alarmdata[j].maxlimit
});
}
if (alarmdata[j].minlimit != '-') {
markLinedata.push({
silent: true, //鼠标悬停事件 true没有false有
lineStyle: { //警戒线的样式 ,虚实 颜色
type: 'solid'
},
name: '下限',
yAxis: alarmdata[j].minlimit
});
}
let nowMarkLineData = [];
nowMarkLineData = hisDataoption.series[i].markLine.data;
if (nowMarkLineData != '') {
for (let m = 0; m < markLinedata.length; m++) {
nowMarkLineData.push(markLinedata[m]);
}
} else {
nowMarkLineData = markLinedata;
}
hisDataoption.series[i].markLine.data = nowMarkLineData;
}
}
}
}
}
}
});
// console.log(option)
// $('input[name="yValueAuto"]').each(function () {
// let yckst = $(this).context.checked;
// if (yckst) {
// yValueAuto = "true";
//
// } else {
// yValueAuto = "false";
// let min = $('#yValueMin').val();
// let max = $('#yValueMax').val();
// if (min == '' && max == '') {
// alert("必须勾选自适应或者填写最大最小值!");
// return;
// } else {
// if (max <= min) {
// alert("最大值必须小于最小值!");
// return;
// }else {
// // option.yAxis
// }
// }
//
// }
// });
$("#yValuePointSelect option").each(function () {
let num = Number($(this).attr("num"));
let yMin = $('#yValueMin' + num).val();
let yMax = $('#yValueMax' + num).val();
// let yAuto = $('#yValueAuto' + num);
let yckst = true;
$("input[name='yValueAuto" + num + "']").each(function () {
yckst = $(this).context.checked;
});
if (yckst) {
if (curveType == '1') {
if (num == '0') {
if (option != null && option != '') {
delete option.yAxis[0].max;
delete option.yAxis[0].min;
} else if (hisDataoption != null && hisDataoption != '') {
delete hisDataoption.yAxis[0].max;
delete hisDataoption.yAxis[0].min;
}
}
} else {
if (option != null && option != '') {
delete option.yAxis[num].max;
delete option.yAxis[num].min;
} else if (hisDataoption != null && hisDataoption != '') {
delete hisDataoption.yAxis[num].max;
delete hisDataoption.yAxis[num].min;
}
}
} else {
if (yMin == '' && yMax == '') {
alert("所有曲线必须勾选自适应或者填写最大最小值!");
return;
} else {
if ((yMin != '' && yMax != '') && yMax <= yMin) {
alert("所有曲线上限值必须大于下限值!");
return;
} else {
if (curveType == '1') {
if (num == '0') {
if (option != null && option != '') {
if (yMin != '') {
option.yAxis[0].min = Number(yMin);
}
if (yMax != '') {
option.yAxis[0].max = Number(yMax);
}
} else if (hisDataoption != null && hisDataoption != '') {
if (yMin != '') {
hisDataoption.yAxis[0].min = Number(yMin);
}
if (yMax != '') {
hisDataoption.yAxis[0].max = Number(yMax);
}
}
}
} else {
if (option != null && option != '') {
if (yMin != '') {
option.yAxis[num].min = Number(yMin);
}
if (yMax != '') {
option.yAxis[num].max = Number(yMax);
}
} else if (hisDataoption != null && hisDataoption != '') {
if (yMin != '') {
hisDataoption.yAxis[num].min = Number(yMin);
}
if (yMax != '') {
hisDataoption.yAxis[num].max = Number(yMax);
}
}
}
// option.yAxis
}
}
}
}
);
// console.log(option)
if (option != null && option != '') {
for (var i = 0; i < option.series.length; i++) {
if (option.series[i].markLine != null) {
for (let j = 0; j < option.series[i].markLine.data.length; j++) {
if (avgSt == '0') {
if (option.series[i].markLine.data[j] != null) {
if (option.series[i].markLine.data[j].name == '平均值') {
option.series[i].markLine.data.splice(j, 1);
j--;
}
}
}
if (alarmSt == '0') {
if (option.series[i].markLine.data[j] != null) {
if (option.series[i].markLine.data[j].name != '平均值') {
option.series[i].markLine.data.splice(j, 1);
j--;
}
}
}
}
}
option.series[i].markPoint.data = markPointdata;
}
// console.log(option)
mychart.setOption(option, true);
} else if (hisDataoption != null && hisDataoption != '') {
for (var i = 0; i < hisDataoption.series.length; i++) {
if (hisDataoption.series[i].markLine != null) {
for (let j = 0; j < hisDataoption.series[i].markLine.data.length; j++) {
if (avgSt == '0') {
if (hisDataoption.series[i].markLine.data[j] != null) {
if (hisDataoption.series[i].markLine.data[j].name == '平均值') {
hisDataoption.series[i].markLine.data.splice(j, 1);
j--;
}
}
}
if (alarmSt == '0') {
if (hisDataoption.series[i].markLine.data[j] != null) {
if (hisDataoption.series[i].markLine.data[j].name != '平均值') {
hisDataoption.series[i].markLine.data.splice(j, 1);
j--;
}
}
}
}
}
hisDataoption.series[i].markPoint.data = markPointdata;
}
// console.log(hisDataoption);
hisDatamychart.setOption(hisDataoption, true);
}
$('#alarmLinedrop').hide();
}
function tableDownload() {
window.open(ext.contextPath + "/data/downloadExcel.do?sdt=" + beginTimeStore1
+ "&edt=" + endTimeStore1 + "&ids=" + hmpids.replace(/\#/g, "%23"));
}
function doProgrammeAdd() {
var programmename = $('#programmename').val();
var hiddenUnitId = $('#hiddenUnitId').val();
var mpids = $('#mpids').val();
swal({
text: "您确定要添加方案?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function (willDelete) {
if (willDelete) {
if (programmename == '') {
alert("请填写方案名称!");
} else {
$.post(ext.contextPath + "/data/doCurveProgrammeSave.do", {
unitId: hiddenUnitId,
mpids: mpids,
programmename: programmename
}, function (data) {
// console.log(data);
if (data.code == 1) {
$('#programmedrop').hide();
initProgrammeTreeView();
// initProgrammeTreePersonView();
// dosearch();
} else if (data == 0) {
showAlert('d', '添加失败');
} else {
showAlert('d', data);
}
}, 'json');
}
}
});
}
function deleteDatadropShow() {
document.getElementById('deleteDatadrop').style.display = 'block';
document.getElementById('programmedrop').style.display = 'none';
document.getElementById('hisDatadrop').style.display = 'none';
document.getElementById('hisDataTabledrop').style.display = 'none';
document.getElementById('alarmLinedrop').style.display = 'none';
// document.getElementById('remarkdrop').style.display = 'none';
}
function programmedropShow() {
document.getElementById('deleteDatadrop').style.display = 'none';
document.getElementById('programmedrop').style.display = 'block';
document.getElementById('hisDatadrop').style.display = 'none';
document.getElementById('hisDataTabledrop').style.display = 'none';
document.getElementById('alarmLinedrop').style.display = 'none';
// document.getElementById('remarkdrop').style.display = 'none';
}
function hisDatadropShow() {
document.getElementById('deleteDatadrop').style.display = 'none';
document.getElementById('programmedrop').style.display = 'none';
document.getElementById('hisDatadrop').style.display = 'block';
document.getElementById('hisDataTabledrop').style.display = 'none';
document.getElementById('alarmLinedrop').style.display = 'none';
// document.getElementById('remarkdrop').style.display = 'none';
}
function hisDataTabledropShow() {
document.getElementById('deleteDatadrop').style.display = 'none';
document.getElementById('programmedrop').style.display = 'none';
document.getElementById('hisDatadrop').style.display = 'none';
document.getElementById('hisDataTabledrop').style.display = 'block';
document.getElementById('alarmLinedrop').style.display = 'none';
// document.getElementById('remarkdrop').style.display = 'none';
}
function alarmLinedropShow() {
document.getElementById('deleteDatadrop').style.display = 'none';
document.getElementById('programmedrop').style.display = 'none';
document.getElementById('hisDatadrop').style.display = 'none';
document.getElementById('hisDataTabledrop').style.display = 'none';
document.getElementById('alarmLinedrop').style.display = 'block';
// document.getElementById('remarkdrop').style.display = 'none';
}
function remarkdropShow() {
remarkNewMpidsContent = remarkMpidsContent;
var name = $('#showRemarkPoint').val();
if (name == '1') {
$('#showRemarkPoint').val('0');
for (var i = 0; i < option.series.length; i++) {
option.series[i].symbol = 'none';
// option.visualMap = '';
}
} else if (name == '0') {
$('#showRemarkPoint').val('1');
// console.log(piecesdata)
for (var i = 0; i < option.series.length; i++) {
option.series[i].symbol = 'circle';
}
}
// console.log(option);
mychart.setOption(option, true);
// document.getElementById('deleteDatadrop').style.display = 'none';
// document.getElementById('programmedrop').style.display = 'none';
// document.getElementById('hisDatadrop').style.display = 'none';
// document.getElementById('hisDataTabledrop').style.display = 'none';
// document.getElementById('alarmLinedrop').style.display = 'none';0
// document.getElementById('remarkdrop').style.display = 'block';
}
function doYValueChange() {
$("#yValuePointSelect option").each(function () {
let num = $(this).attr("num");
let st = $(this).is(":checked");
if (st) {
$("#yValueContentShow" + num).css("display", "block");
} else {
$("#yValueContentShow" + num).css("display", "none");
}
});
}
</script>
<input id="mpids" name="mpids" type="hidden" style="width: 500px;" value=""/>
<input id="remarkMpids" name="remarkMpids" type="hidden" style="width: 500px;" value=""/>
<input id="oldremarkMpids" name="oldremarkMpids" type="hidden" style="width: 500px;" value=""/>
<input id="remarkCnum" name="remarkCnum" type="hidden" value="0"/>
<div class="box box-solid" id="box-echart" style="height: 100%;">
<div class="box-header with-border">
<h3 class="box-title">曲线绘制</h3>
<div class="box-tools pull-right">
</div>
</div>
<!-- <div class="box-body " style="height: 30px;">
<div id="tipdiv"></div>
</div> -->
<div class="box-body ">
<div class="input-group pull-left input-group-sm">
<input type="text" class="form-control pull-left" id="reservationtime1" style="width:230px;">
<div class="input-group-btn pull-left">
<button type="button" class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i> 查询
</button>
</div>
</div>
<div class="input-group pull-left input-group-sm" style="margin-left: 5px;">
<div class="control-label">
<label class="control-label" style="margin-left: 5px;">曲线类型:</label>
<select id="curveShowType" name="curveShowType" class="select2" style="height: 30px;padding: 0px 10px;"
onchange="changeCureShowType(this);">
<option value="0" <c:if test="${curveShowType==0 }">selected</c:if>>折线图</option>
<option value="1" <c:if test="${curveShowType==1 }">selected</c:if>>柱状图</option>
<option value="2" <c:if test="${curveShowType==2 }">selected</c:if>>散点图</option>
</select>
<label class="control-label" style="margin-left: 5px;">轴类型:</label>
<select id="curveType" name="curveType" class="select2" style="height: 30px;padding: 0px 10px;"
onchange="changeCureType(this);">
<option value="1" <c:if test="${curveType==1 }">selected</c:if>>单Y轴</option>
<option value="0" <c:if test="${curveType==0 }">selected</c:if>>多Y轴</option>
<option value="2" <c:if test="${curveType==2 }">selected</c:if>>多表</option>
</select>
</div>
</div>
<%-- <div class="input-group pull-left input-group-sm" style="margin-left: 5px;width: 140px;">--%>
<%-- <div class="control-label" style="width: 100%;line-height: 30px;">--%>
<%-- <label class="col-sm-5">精度</label>--%>
<%-- <select id="dataAaccuracy" name="dataAaccuracy" class="select2 col-sm-7"--%>
<%-- style="height: 30px;padding: 0px 10px;" onchange="changeDataAaccuracy(this);">--%>
<%-- <option value="min" selected>分钟</option>--%>
<%-- <option value="sec">秒</option>--%>
<%-- </select>--%>
<%-- </div>--%>
<%-- </div>--%>
<!-- <div class="input-group pull-right input-group-sm" style="margin-left: 5px;">
<div style="background-color: #1890FF;width:20pt;height:20pt;border-radius: 2pt;cursor: pointer;" title="清除数据" onclick="deleteData();">
<img src="<%=request.getContextPath()%>/IMG/curve/delete.png" style="width:100%;height:100%;" />
</div>
</div> -->
<div class="input-group pull-right input-group-sm" style="margin-left: 5px;">
<!-- <li class="dropdown" > -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="deleteDatadropShow();">
<div style="background-color: #1890FF;width:20pt;height:20pt;border-radius: 2pt;cursor: pointer;"
title="清除数据" onclick="deleteDataContent();">
<img src="<%=request.getContextPath()%>/IMG/curve/delete.png"
style="width:100%;height:100%;"/>
</div>
</a>
<ul id="deleteDatadrop" class="dropdown-menu" data-stopPropagation="true"
style="width:300px;height:350px;overflow: auto;box-shadow:#d2cdcd 0px 3px 5px 0px;">
<div id="deleteDataContent" style="width:100%;"></div>
</ul>
</div>
<div class="input-group pull-right input-group-sm" style="margin-left: 5px;">
<!-- <li class="dropdown" > -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="programmedropShow();">
<div style="background-color: #1890FF;width:20pt;height:20pt;border-radius: 2pt;cursor: pointer;"
title="添加方案">
<img src="<%=request.getContextPath()%>/IMG/curve/personalProgram.png"
style="width:100%;height:100%;"/>
</div>
</a>
<ul id="programmedrop" class="dropdown-menu" data-stopPropagation="true"
style="width:100px;height:100px;overflow: auto;box-shadow:#d2cdcd 0px 3px 5px 0px;">
<div style="padding-left: 15px;padding-right: 15px;padding-top: 5px;">
<input type="text" class="form-control" id="programmename" name="programmename" placeholder="方案名称">
</div>
<div style="width:100%;float:left;margin-top: 10px;">
<div class="pull-right"
style="width:50px;height:25px;border-radius: 4px;background: #3c8dbc;margin-right: 10px;">
<div style="text-align:center;line-height:25px;font-size:12px;color:#ffffff;font-weight:700;font-family: MicrosoftYaHei, MicrosoftYaHei-Bold;cursor: pointer;"
onclick="doProgrammeAdd();">确认
</div>
</div>
</div>
</ul>
</div>
<div class="input-group pull-right input-group-sm" style="margin-left: 5px;">
<div style="background-color: #1890FF;width:20pt;height:20pt;border-radius: 2pt;cursor: pointer;"
title="数据导出" onclick="tableDownload();">
<img src="<%=request.getContextPath()%>/IMG/curve/tableDownload.png"
style="width:100%;height:100%;"/>
</div>
</div>
<div class="input-group pull-right input-group-sm" style="margin-left: 5px;">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="hisDatadropShow();">
<div style="background-color: #1890FF;width:20pt;height:20pt;border-radius: 2pt;cursor: pointer;"
title="数据对比">
<img src="<%=request.getContextPath()%>/IMG/curve/hisData.png"
style="width:100%;height:100%;"/>
</div>
</a>
<ul id="hisDatadrop" class="dropdown-menu" data-stopPropagation="true"
style="width:600px;height:120px;box-shadow:#d2cdcd 0px 3px 5px 0px;">
<div style="width:100%;float:left;margin-left: 10px;">
<div id="yearCompare" class="pull-left"
style="width:50px;height:25px;border-radius: 4px;background: #3c8dbc;margin-right: 10px;">
<div style="text-align:center;line-height:25px;font-size:12px;color:#ffffff;font-weight:700;font-family: MicrosoftYaHei, MicrosoftYaHei-Bold;cursor: pointer;"
onclick="doYearCompare();">同比
</div>
</div>
<div id="monthCompare" class="pull-left"
style="width:50px;height:25px;border-radius: 4px;background: #3c8dbc;margin-right: 10px;">
<div style="text-align:center;line-height:25px;font-size:12px;color:#ffffff;font-weight:700;font-family: MicrosoftYaHei, MicrosoftYaHei-Bold;cursor: pointer;"
onclick="doMonthCompare();">环比
</div>
</div>
<div id="compareText" class="pull-left"
style="width:300px;height:25px;border-radius: 4px;padding-left: 10px;line-height:25px;"></div>
</div>
<div style="width:100%;float:left;margin-top: 10px;">
<div style="width:50%;float:left;">
<div class="input-group" style="margin-left: 10px;">
<span class="input-group-addon"
style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold">基础月:</span>
<input class="form-control " id="reservationtime2" name="reservationtime2"
style="height:31px;width: 190px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;cursor:pointer;"
/>
</div>
</div>
<div style="width:50%;float:left;">
<div class="input-group" style="margin-left: 10px;">
<span class="input-group-addon"
style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold">对比月:</span>
<input class="form-control " id="reservationtime3" name="reservationtime3"
style="height:31px;width: 190px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;cursor:pointer;"
/>
</div>
</div>
</div>
<div style="width:100%;float:left;margin-top: 10px;">
<div class="pull-right"
style="width:50px;height:25px;border-radius: 4px;background: #3c8dbc;margin-right: 10px;">
<div style="text-align:center;line-height:25px;font-size:12px;color:#ffffff;font-weight:700;font-family: MicrosoftYaHei, MicrosoftYaHei-Bold;cursor: pointer;"
onclick="dohisData();">确认
</div>
</div>
</div>
</ul>
</div>
<div class="input-group pull-right input-group-sm" style="margin-left: 5px;">
<!-- <li class="dropdown" > -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="hisDataTabledropShow();">
<div style="background-color: #1890FF;width:20pt;height:20pt;border-radius: 2pt;cursor: pointer;"
title="表格数据" onclick="getHistoryList();">
<img src="<%=request.getContextPath()%>/IMG/curve/table.png"
style="width:100%;height:100%;"/>
</div>
</a>
<ul id="hisDataTabledrop" class="dropdown-menu" data-stopPropagation="true"
style="width:800px;height:500px;overflow: auto;box-shadow:#d2cdcd 0px 3px 5px 0px;">
<table id="datatable" style="width:100%;"></table>
</ul>
</div>
<div class="input-group pull-right input-group-sm" style="margin-left: 5px;">
<!-- <li class="dropdown" > -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="alarmLinedropShow();">
<div style="background-color: #1890FF;width:20pt;height:20pt;border-radius: 2pt;cursor: pointer;"
title="辅助工具">
<img src="<%=request.getContextPath()%>/IMG/curve/alarmLine.png"
style="width:100%;height:100%;"/>
</div>
</a>
<ul id="alarmLinedrop" class="dropdown-menu" data-stopPropagation="true"
style="width:415px;height:210px;overflow: auto;box-shadow:#d2cdcd 0px 3px 5px 0px;">
<div style="float:left;width: 100px;">
<div style="padding-left: 15px;padding-top: 5px;font-weight: bold;">
限值数据
</div>
<div style="padding-left: 15px;padding-top: 5px;">
<div class="ckbox">
<input name="alarmLineName" type="checkbox" value="0"><label for="alarmLineName"
style="margin-left:10px;">最大值</label>
</div>
</div>
<div style="padding-left: 15px;padding-top: 5px;">
<div class="ckbox">
<input name="alarmLineName" type="checkbox" value="1"><label for="alarmLineName"
style="margin-left:10px;">最小值</label>
</div>
</div>
<div style="padding-left: 15px;padding-top: 5px;">
<div class="ckbox">
<input name="alarmLineName" type="checkbox" value="2"><label for="alarmLineName"
style="margin-left:10px;">平均值</label>
</div>
</div>
<div style="padding-left: 15px;padding-top: 5px;">
<div class="ckbox">
<input name="alarmLineName" type="checkbox" value="3"><label for="alarmLineName"
style="margin-left:10px;">报警限值</label>
</div>
</div>
</div>
<div style="float:left;width: 2px;height:160px;border-left: 2px solid #d2d6de;"></div>
<div style="float:left;width: 300px;">
<div style="padding-left: 15px;padding-top: 5px;font-weight: bold;">
纵轴设置(单Y轴以第一个曲线点为准)
</div>
<div style="height:32.33px;padding-left: 15px;padding-top: 5px;font-weight: bold;">
<div style="float:left;width: 25%;height:32.33px;padding-top: 5px;line-height: 27.33px;font-weight: bold;line-height: 27.33px;">
曲线点
</div>
<div id="yValuePointSelect" style="float:left;width: 75%;height:32.33px;padding-top: 5px;">
</div>
</div>
<div style="padding-left: 15px;padding-top: 10px;">
<div id="yValueContent"></div>
</div>
</div>
<div style="width:100%;float:left;margin-top: 10px;">
<div class="pull-right"
style="width:50px;height:25px;border-radius: 4px;background: #3c8dbc;margin-right: 10px;">
<div style="text-align:center;line-height:25px;font-size:12px;color:#ffffff;font-weight:700;font-family: MicrosoftYaHei, MicrosoftYaHei-Bold;cursor: pointer;"
onclick="doAuxiliaryTools();">确认
</div>
</div>
</div>
</ul>
</div>
<div class="input-group pull-right input-group-sm" style="margin-left: 5px;">
<!-- <li class="dropdown" > -->
<a
<%-- href="#" class="dropdown-toggle" data-toggle="dropdown" --%>
onclick="remarkdropShow();">
<input type="hidden" id="showRemarkPoint" value="0"/>
<div style="background-color: #1890FF;width:20pt;height:20pt;border-radius: 2pt;cursor: pointer;"
title="拐点备注">
<img src="<%=request.getContextPath()%>/IMG/curve/remark.png"
style="width:100%;height:100%;"/>
</div>
</a>
</div>
<br>
<div class="col-sm-12 col-md-12 col-lg-12 col-xl-12"
style="height:100%;padding:0px;overflow-y:auto;overflow-x:hidden;" id="chartdiv">
<%-- <c:if test="${param.firstIn==true}">--%>
<div id="noDataDiv" style="float: left;text-align: center;width: 100%;display: none;">
<div id="noDataDivSvg" style="float: left;text-align: center;width: 100%;">
<svg t="1630287980488" class="icon" viewBox="0 0 1024 1024" p-id="1469" width="200"
height="200">
<path d="M216.6 531h73.8v217.1h-73.8zM345.7 407h73.8v341.1h-73.8zM702.4 357.4h73.8v390.7h-73.8zM585.6 593h73.8v155.1h-73.8zM468.5 295.4h73.8v452.7h-73.8z"
fill="#EAF4FE" p-id="1470"></path>
<path d="M275 760.5h-73.8c-5.1 0-9.2-4.2-9.2-9.3V534.1c0-5.1 4.1-9.3 9.2-9.3H275c2.5 0 4.9 0.9 6.7 2.7 1.8 1.7 2.8 4.1 2.8 6.6v217.1c0 2.5-1 4.9-2.8 6.6-1.8 1.7-4.2 2.7-6.7 2.7z m-64.7-18.6h55.4V543.4h-55.3l-0.1 198.5z m193.9 18.6h-73.8c-5.1 0-9.2-4.2-9.2-9.3V410.1c0-5.1 4.1-9.2 9.2-9.3h73.8c5.1 0 9.2 4.2 9.2 9.3v341.1c0 5.1-4.1 9.2-9.2 9.3z m-64.7-18.6h55.4V419.4h-55.3l-0.1 322.5z m421.4 18.6h-73.8c-5.1 0-9.2-4.2-9.2-9.3V360.4c0-5.1 4.1-9.3 9.2-9.3h73.8c5.1 0 9.2 4.2 9.2 9.3v390.7c0 5.2-4.1 9.3-9.2 9.4z m-64.7-18.6h55.4V370h-55.3l-0.1 371.9z m-52.1 18.6h-73.8c-5.1 0-9.2-4.2-9.2-9.3V596.1c0-5.1 4.1-9.3 9.2-9.3h73.8c5.1 0 9.2 4.2 9.2 9.3v155.1c0 5.1-4.1 9.2-9.2 9.3z m-64.7-18.6h55.4V605.4h-55.3l-0.1 136.5zM527 760.5h-73.6c-5.1 0-9.2-4.2-9.2-9.3V298.4c0-5.1 4.1-9.3 9.2-9.3H527c5.1 0 9.2 4.2 9.2 9.3v452.7c0 5.2-4.1 9.3-9.2 9.4z m-64.7-18.6h55.4V307.7h-55.4v434.2z m506.1-107.5h-30.7c-5.1 0-9.3-4.2-9.3-9.3s4.2-9.3 9.3-9.3h30.7c5.1 0 9.3 4.2 9.3 9.3s-4.2 9.3-9.3 9.3z m0 0"
fill="#5C92E8" p-id="1471"></path>
<path d="M953 650.7c-5.1 0-9.2-4.2-9.2-9.3v-32.3c0-3.3 1.8-6.3 4.6-8 2.9-1.6 6.4-1.6 9.2 0 2.9 1.6 4.6 4.7 4.6 8v32.3c0.1 5.2-4.1 9.3-9.2 9.3zM87.5 441c-8.8 0.1-16.7-5.2-20.1-13.3-3.4-8.1-1.6-17.4 4.6-23.7 6.2-6.2 15.5-8.1 23.6-4.8 8.1 3.3 13.4 11.3 13.4 20 0 12.1-9.6 21.8-21.5 21.8z m0-31c-3.8 0-7.2 2.2-8.6 5.7-1.5 3.5-0.7 7.5 2 10.2 2.7 2.7 6.7 3.5 10.1 2.1 3.5-1.4 5.8-4.8 5.8-8.6-0.2-5.2-4.3-9.3-9.3-9.4z m129.1-198.2h-43c-5.1 0-9.3-4.2-9.3-9.3 0-5.1 4.2-9.3 9.3-9.3h43c5.1 0 9.3 4.2 9.3 9.3 0 5.1-4.2 9.3-9.3 9.3z m0 0"
fill="#5C92E8" p-id="1472"></path>
<path d="M195.1 234.7c-5.1 0-9.2-4.2-9.2-9.3v-45.8c0-3.3 1.8-6.3 4.6-8 2.9-1.6 6.4-1.6 9.2 0 2.9 1.6 4.6 4.7 4.6 8v45.8c0 5.1-4.1 9.3-9.2 9.3z m765.6 54.4c-10.1 0.2-19.3-5.7-23.3-14.9-4-9.3-2-20 5-27.2 7.1-7.2 17.8-9.4 27.1-5.6 9.3 3.8 15.5 12.9 15.5 23 0 13.4-10.8 24.5-24.3 24.7z m0-37.1c-5 0-9.5 3-11.5 7.6-1.9 4.6-0.9 10 2.6 13.5 3.5 3.6 8.9 4.6 13.5 2.7 4.6-1.9 7.7-6.4 7.7-11.4 0-3.3-1.2-6.5-3.5-8.8-2.3-2.4-5.5-3.7-8.8-3.7v0.1z m46.2 508.5h-81.5c-5.1 0-9.3-4.2-9.3-9.3 0-5.1 4.2-9.3 9.3-9.3h81.5c5.1 0 9.3 4.2 9.3 9.3 0 5.1-4.2 9.3-9.3 9.3z m-123.1 0h-38.4c-5.1 0-9.3-4.2-9.3-9.3 0-5.1 4.2-9.3 9.3-9.3h38.4c5.1 0 9.3 4.2 9.3 9.3 0 5.1-4.1 9.3-9.3 9.3z m-78.4 0H172.5c-5.1 0-9.3-4.2-9.3-9.3 0-5.1 4.2-9.3 9.3-9.3h632.9c5.1 0 9.3 4.2 9.3 9.3 0 5.1-4.1 9.3-9.3 9.3z m-660.5 0h-17.5c-5.1 0-9.3-4.2-9.3-9.3 0-5.1 4.2-9.3 9.3-9.3h17.5c5.1 0 9.3 4.2 9.3 9.3-0.1 5.1-4.2 9.3-9.3 9.3z m-60.5 0H22.9c-5.1 0-9.3-4.2-9.3-9.3 0-5.1 4.2-9.3 9.3-9.3h61.5c5.1 0 9.3 4.2 9.3 9.3 0 5.1-4.2 9.3-9.3 9.3z m0 0"
fill="#5C92E8" p-id="1473"></path>
</svg>
</div>
<div style="float: left;text-align: center;width: 100%;font-weight: bold;">请选择测量点或方案!</div>
</div>
<%-- </c:if>--%>
<%-- <c:if test="${param.firstIn!=true}">--%>
<div id="chart" style="height:100%;display: none;overflow: hidden;"></div>
<%-- </c:if>--%>
<!-- <div id="chart1" ></div>
<div id="chart2" ></div> -->
</div>
<!-- <div class="col-sm-12 col-md-12 col-lg-12 col-xl-12" style="" id="tablediv">
<table id="table" style=""></table>
</div> -->
</div>
</div>