Files
SIPAIIS_WMS_JSSW/WebRoot/jsp/data/appCurveView.jsp

424 lines
15 KiB
Plaintext
Raw Permalink Normal View History

2026-01-16 14:13:44 +08:00
<%@ 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>