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

424 lines
15 KiB
Plaintext
Raw Permalink 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"%>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- 引入daterangepicker-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js" charset="utf-8"></script>
<style type="text/css">
.W120 .th-inner {
width:150px !important;
}
</style>
<script type="text/javascript">
var sdt = '';
var edt = '';
function initDate1() {
//定义locale汉化插件
sdt = moment().subtract(7, 'days').format('YYYY-MM-DD HH:mm');
// edt = moment().subtract(0, 'days').format('YYYY-MM-DD HH:mm');
var locale = {
"format": 'YYYY-MM-DD HH:mm',
"applyLabel": "确定",
"cancelLabel": "取消",
"weekLabel": "W",
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
"firstDay": 1
};
$('#sdt').daterangepicker({
"timePicker": true,
"timePicker24Hour": true,
"linkedCalendars": false,
"singleDatePicker":true,
"autoUpdateInput": false,
"timePickerIncrement": 10,
"locale": locale
}, function(start) {
sdt = start.format(this.locale.format);
if(!this.startDate){
this.element.val('');
}else{
this.element.val(this.startDate.format(this.locale.format));
}
});
$('#sdt').val(sdt);
};
function initDate2() {
//定义locale汉化插件
edt = moment().subtract(0, 'days').format('YYYY-MM-DD HH:mm');
var locale = {
"format": 'YYYY-MM-DD HH:mm',
"applyLabel": "确定",
"cancelLabel": "取消",
"weekLabel": "W",
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
"firstDay": 1
};
$('#edt').daterangepicker({
"timePicker": true,
"timePicker24Hour": true,
"linkedCalendars": false,
"singleDatePicker":true,
"autoUpdateInput": false,
"timePickerIncrement": 10,
"locale": locale
}, function(start) {
edt = start.format(this.locale.format);
if(!this.startDate){
this.element.val('');
}else{
this.element.val(this.startDate.format(this.locale.format));
}
});
$('#edt').val(edt);
};
var mpids="";
var showWidth="";
$(function() {
initDate1();
initDate2();
showWidth=$(window).width();
mpids="${param.mpids}";
getMpointJson();
})
var mpcodestr="";
var mpnamestr="";
var mpunitstr="";
var unitIdstr="";
var expstr="";
function getMpointJson(){
$.post(ext.contextPath +"/data/getMPointJson.do",{checkedIds:mpids},function(data){
var ArrayDatas = eval("(" + data + ")");
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+",";//厂
expstr+=ArrayDatas[i].exp+",";//计算方式
}
getEcharts();
getHistoryList();
});
}
var mychart="";
var option=[];
var color=[
"#2ec7c9",
"#b6a2de",
"#5ab1ef",
"#ffb980",
"#d87a80",
"#8d98b3",
"#e5cf0d",
"#97b552",
"#95706d",
"#dc69aa",
"#07a2a4",
"#9a7fd1",
"#588dd5",
"#f5994e",
"#c05050",
"#59678c",
"#c9ab00",
"#7eb00a",
"#6f5553",
"#c14089"
];
function getEcharts(){
var series=[];
var yAxis=[];
var legenddata=[];
var mpcodedata=[];
mpcodedata=(mpcodestr.substring(0,mpcodestr.length-1)).split(",");
var mpnamedata=[]
mpnamedata=(mpnamestr.substring(0,mpnamestr.length-1)).split(",");
var unitIdname=[];
unitIdname=(unitIdstr.substring(0,unitIdstr.length-1)).split(",");
var expname=[];
expname=(expstr.substring(0,expstr.length-1)).split(",");
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]);
}
}
}
for(var i=0;i<legenddata.length;i++){
series.push({
data:'',
symbol:'none',
name:legenddata[i],
type:'line',
lineStyle:{
width:2
},
markPoint:{
data:''
},
markLine:{
data:''
}
})
}
yAxis.push({
type : 'value',
name : false,
splitLine: {
show: false//是否显示分隔线。默认数值轴显示,类目轴不显示。
},
scale:true//设置成 true 后坐标刻度不会强制包含零刻度。
});
mychart=echarts.init(document.getElementById('chart'));
option = {
color:color,
animation:false,
// tooltip: {
// trigger: 'axis',
// axisPointer: {
// type: 'cross'
// }
// },
legend: {
type:'scroll',
// right: 50,
data: legenddata,
left: 'center',
padding: [
5, // 上
100, // 右
0, // 下
0, // 左
]
},
grid:{
left: '4%', // 与容器左侧的距离
right: '4%', // 与容器右侧的距离
top: '5%', // 与容器顶部的距离
//bottom: '5%', // 与容器底部的距离
containLabel:true
},
xAxis: {
type: 'time'
},
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];
// console.log(param);
var xName = param.name;//x轴的名称
var seriesName = param.seriesName;//图例名称
var xvalue = param.value[0];//x轴值
var yvalue = param.value[1];//y轴值
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+':'+ 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
}
}]
};
// console.log(option);
mychart.setOption(option,true);
mpcodedata.forEach(function (item, index) {
if(item!=''){
appendDataToChart(item,index,unitIdname[index],expname[index],mpnamedata[index]);
}
});
}
var alarmdata=[];
function appendDataToChart(id,index,unitIdname,exp,mpname){
$.post(ext.contextPath +"/work/mpoint/getMpointJsonFormpids.do",{unitId:unitIdname,mpids:id,func:exp,mpname:mpname,sdt:sdt,edt:edt},function(data){
var datas=eval('(' + data + ')');
// console.log(datas);
alarmdata.push({
maxlimit:datas[0].maxlimit,
minlimit:datas[0].minlimit
});
var edatas=datas[0].data;
//为全局赋值
option.series[index].data=edatas;
// console.log(option.series[index]);
//后端构造对应数据
mychart.appendData({
seriesIndex:index,
data:edatas
});
//刷新
mychart.resize();
});
}
var tablecolors = ['#c12e34', '#e6b600', '#0098d9','#2b821d','#005eaa', '#339ca8', '#cda819','#32a487','#f3a43b','#60c0dd','#d7504b','#c6e579','#f4e001'];
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=tablecolors[i%namearr.length];
var parmvalue={};
parmvalue.field = 'paramvalue'+i;
parmvalue.title=namearr[i];
parmvalue.align='center';
parmvalue.valign='middle';
// parmvalue.width=(showWidth-170)/namearr.length;
var css1 = {};
css1.color = color;
var cellstyle = {};
cellstyle.css=css1;
parmvalue.cellStyle=cellstyle,
mpoint.push(parmvalue);
}
$("#table").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', // 设置为服务器端分页
cardView:false,
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
ids : mpids,
sdt: sdt,
edt: edt
}
},
sortName: 'measuredt', // 要排序的字段
sortOrder: 'asc', // 排序规则
columns: mpoint,
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
docardView();
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
}
function dosearch(){
mpcodestr="";
mpnamestr="";
mpunitstr="";
getMpointJson();
$("#table").bootstrapTable('refresh');
}
function docardView(){
$('#table').bootstrapTable('toggleView');
}
</script>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<input id="mpids" name="mpids" type="hidden" style="width: 500px;" value=""/>
<div class="box box-solid" id="box-echart" >
<div class="box-header with-border">
<h3 class="box-title">曲线绘制</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-default" style="height:30px;line-height: 30px;padding: 0px;padding-left: 5px;padding-right: 5px;" onclick="dosearch();" ><i class="fa fa-search"></i> 查询</button>
<!-- <button type="button" class="btn btn-default" style="height:30px;line-height: 30px;padding: 0px;padding-left: 5px;padding-right: 5px;" onclick="dochange();" ><i class="fa fa-search"></i> 切换</button> -->
</div>
</div>
<div class="box-body ">
<div style="height:30px;width:100%;" >
<div style="float:left;width: 100%;height: 30px;margin-bottom: 5px;">
<div style="float:left;padding-right:5px;font-weight: 600;line-height: 30px;width: 40%;text-align: right;">
起始时间
</div>
<div style="float:left;padding-left:5px;width: 150px;">
<input class="form-control date-picker" id="sdt" name="sdt" autocomplete="off" type="text" placeholder="点击选择" style="background-color:#FFFFFF;height: 30px;border-radius: 8px;" value="${param.sdt}"/>
</div>
</div>
<div style="float:left;width: 100%;height: 30px;">
<div style="float:left;padding-right:5px;font-weight: 600;line-height: 30px;width: 40%;text-align: right;">
结束时间
</div>
<div style="float:left;padding-left:5px;width: 150px;">
<input class="form-control date-picker" id="edt" name="edt" autocomplete="off" type="text" placeholder="点击选择" style="background-color:#FFFFFF;height: 30px;border-radius: 8px;" value="${param.edt}"/>
</div>
</div>
</div>
<br>
<div id="ctablehartDiv" style="padding:0px;overflow:hidden;height:350px;width:100%;" >
<div id="chart" style="height: 100%;width:100%;"></div>
</div>
<div id="tableDiv" style="padding-top:10px;height:430px;width:100%;" >
<table id="table" ></table>
</div>
</div>
</div>
</body>