12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190 |
- var devId = 0;
- var start, end;
- var waterSupplySection, salesWaterSection, intervalDays, leakFlow;
- var lastWaterSupply, lastSalesWater, lastStart, lastEnd, lastIntervalDays;
- var supplySection, deviceName, maoYikaoHe;
- var titleColor;
- var currentPage = 0;
- var totalPage = 0;
- var showHelp = 0;
- function GetCommonEcharsLegendArr(data) {
- var legendArr = new Array();
- var length = data.devDatas.length;
- for (var i = 0; i < length; i++) {
- legendArr.push(data.devDatas[i].devName);
- }
- return legendArr;
- }
- function calculateMA(dayCount, data) {
- var result = [];
- for (var i = 0, len = data.length; i < len; i++) {
- if (i < dayCount) {
- result.push('-');
- continue;
- }
- var sum = 0;
- for (var j = 0; j < dayCount; j++) {
- sum += parseFloat(data[i - j]);
- }
- result.push((sum / dayCount).toFixed(2));
- }
- return result;
- }
- function GetCommonEcharsXAxis(data) {
- var xAxis = {};
- xAxis["type"] = 'time';
- xAxis["min"] = d.start;
- xAxis["max"] = d.end;
- return xAxis;
- }
- function GetSeriesDataArr(data) {
- var dataArr = new Array();
- var length = data.devDatas.length;
- for (var i = 0; i < length; i++) {
- var entity = new Object();
- entity.name = data.devDatas[i].devName;
- entity.type = "line";
- entity.data = new Array();
- var dataLen = d.devDatas[i].devDatas.length;
- for (var j = 0; j < dataLen; j++) {
- var metaData = [data.devDatas[i].devDatas[j].FlowTime, parseFloat(d.devDatas[i].devDatas[j].FlowRate)];
- entity.data.push(metaData);
- }
- dataArr.push(entity);
- }
- }
- //瞬时流量
- function ShowInsAnalysisEcharts(data, echarts) {
- var flowArray = new Array();
- var pressureArr = new Array();
- var timeArray = new Array();
- var maxFlow = 0;
- //var devName = data.devName + "DN" + data.caliber;
- var devName = data.devName;
- deviceName = devName;
- var datas = data.devDatas;
- devId = data.deviceId;
- start = data.startTime;
- end = data.endTime;
- //console.log(arrFlow);
- for (var i = 0; i < datas.length; i++) {
- if (parseFloat(datas[i].FlowRate) > maxFlow) {
- maxFlow = parseFloat(datas[i].FlowRate);
- }
- flowArray.push(datas[i].FlowRate)
- pressureArr.push(datas[i].Pressure);
- timeArray.push(datas[i].FlowTime);
- }
- titleColor = data.devColor;
- maxFlow = Math.ceil(maxFlow * 1.2);
- maxFlow = parseInt(maxFlow, 10);
- echarts.setOption({
- title: {
- text: devName,
- x: 'center',
- align: 'right',
- textStyle: {
- color: data.devColor
- }
- },
- tooltip: {
- trigger: 'axis',
- formatter: function (params) {
- //console.log(params);
- if (params.length > 0) {
- if (params.length == 1) {
- return "时间:" + params[0].name + "<br/>" + params[0].seriesName + ' : ' + params[0].value + '';
- } else if (params.length == 2) {
- return "时间:" + params[0].name + "<br/>" + params[0].seriesName + ' : ' + params[0].value + ' (m³/h)<br/>'
- + params[1].seriesName + ' : ' + params[1].value + ' (Mpa)';
- }
- }
- },
- axisPointer: {
- animation: false
- }
- },
- legend: {
- data: ['瞬时流量', '压力'],
- //data: ['瞬时流量'],
- x: 'left',
- selected: {
- '瞬时流量': true,
- '压力': false
- }
- },
- toolbox: {
- show: true,
- feature: {
- mark: { show: true },
- dataZoom: {
- yAxisIndex: 'none'
- },
- dataView: { readOnly: true },
- magicType: { type: ['line', 'bar'] },
- restore: {},
- saveAsImage: {}
- }
- },
- xAxis: {
- data: timeArray.map(function (str) {
- return str.replace(' ', '\n')
- })
- },
- yAxis: [
- {
- name: '单位:m³/h',
- type: 'value'
- }, {
- name: '单位:Mpa',
- type: 'value'
- }
- ],
- series: [
- {
- name: '瞬时流量',
- type: 'line',
- data: flowArray,
- lineStyle: {
- normal: {
- color: '#2EC7C9'
- }
- },
- markLine: {
- data: [
- { type: 'max', name: '最大值', itemStyle: { normal: { color: '#dc143c' } } },
- { type: 'min', name: '最小值', itemStyle: { normal: { color: '#dc143c' } } },
- { type: 'average', name: '平均值', itemStyle: { normal: { color: '#dc143c' } } },
- ]
- }
- }, {
- name: '压力',
- type: 'line',
- yAxisIndex: 1,
- lineStyle: {
- normal: {
- color: '#f00'
- }
- },
- data: pressureArr
- }
- ]
- }
- )
- maoYikaoHe = data.maoYikaoHe;
- if (maoYikaoHe == '1') {//显示考核表
- $('#one').css('display', 'block');
- $('#three').css('display', 'none');
- } else {//显示贸易表的菜单
- $('#one').css('display', 'none');
- $('#three').css('display', 'block');
- }
- $('#nightAllowFlow').html(data.nightAllowLeakFlow);
- $('#suspectedLeakFlow').html(data.suspectedLeakFlow + " m³/h");
- $('#suspectedLeakFlow1').html(data.suspectedLeakFlow + " m³/h");
- $('.suspectedLeakFlow').html(data.suspectedLeakFlow);
- $('#waterSupply').html(data.waterSupply + " m³");
- $('#waterSupply1').html(data.waterSupply + " m³");
- $('#salesWater').html(data.salesWater + " m³");
- $('#suspectedLeakRate').html(data.suspectedLeakRate + " %");
- $('#suspectedLeakRate1').html(data.suspectedLeakRate + " %");
- $('.suspectedLeakRate').html(data.suspectedLeakRate);
- $('#deviceName').html(devName);
- supplySection = data.startTime + "-" + data.endTime;
- //stringToDate
- //supplySection = formatDate(stringToDate(data.startTime), "yyyy-MM-dd HH") + "-" + formatDate(stringToDate(data.endTime),"yyyy-MM-dd HH");
- var startTime = new Date(data.startTime);
- var endTime = new Date(data.endTime);
- $('#section').html(supplySection);
- $('#section1').html(supplySection);
- $('.section').html(startTime.getFullYear() + '年' + (startTime.getMonth() * 1 + 1) + '月' + startTime.getDate() + '日至' + endTime.getFullYear() + '年' + (endTime.getMonth() * 1 + 1) + '月' + endTime.getDate() + '日' + data.intervalDays + '天');
- $('#devName').html(devName);
- //$('#devName').attr("style", "color:" + data.devColor);
- $('.devName').html(devName);
- //$('.devName').attr("style", "color:" + data.devColor);
- $('#leakRate').html(data.suspectedLeakRate);
- $('#monthHan').html(startTime.getMonth() * 1 + 1);
- //$('#minFlow').val(data.minFlow);
- $('#minFlow').html(data.minFlow);
- $('#minFlow1').val(data.minFlow);
- //$('#continuousFlow').val(parseFloat(data.continuousFlow).toFixed(2));
- $('#continuousFlow').html(parseFloat(data.continuousFlow).toFixed(2));
- $('#continuousFlow1').val(parseFloat(data.continuousFlow).toFixed(2));
- var days = data.intervalDays + "天";
- intervalDays = data.intervalDays;
- leakFlow = data.suspectedLeakFlow;
- $('#intervalDays').html(days);
- $('#intervalDays1').html(days);
- $('.intervalDays').html(intervalDays);
- if (data.color == "True") {
- $('#suspectedLeakRate').css("color", "red");
- $('.suspectedLeakRate').css("color", "red");
- $('#suspectedLeakFlow').css("color", "red");
- } else {
- $('#suspectedLeakRate').css("color", "black");
- $('.suspectedLeakRate').css("color", "black");
- $('#suspectedLeakFlow').css("color", "black");
- }
- waterSupplySection = data.waterSupply;
- salesWaterSection = data.salesWater;
- //console.log(data.sysWaterSupply);
- //console.log(data.sysSalesWater);
- $('#waterSupply').html(waterSupplySection);
- $('#actualWaterSupply').val(data.sysWaterSupply);
- $('#actualWaterSupply1').val(data.sysWaterSupply);
- $('.actualWaterSupply').html(data.sysWaterSupply);
- $('#actualSalesWater').val(data.sysSalesWater);
- $('#actualSalesWater1').val(data.sysSalesWater);
- $('.actualSalesWater').html(data.sysSalesWater);
- if (data.sysSalesWater > 0) {
- $('#maoyi').css('display', 'initial');
- }
- var avgFlow = data.avgFlow;
- //流量计安装口径计算
- var flowMeter = Math.sqrt(((avgFlow * 1.26) * 4 / (2.5 * 3.1416 * 3600))) * 1000;
- $('#flowMeter').html(flowMeter.toFixed(0) + " mm");
- //机械表安装口径计算
- var mechMeter = Math.sqrt(((avgFlow * 1.26) * 4 / (1.5 * 3.1416 * 3600))) * 1000;
- $('#mechanicalMeter').html(mechMeter.toFixed(0) + " mm");
- $('#mechanicalMeter1').html(mechMeter.toFixed(0) + " mm");
- var MeterSize = 0;
- if (mechMeter < 35) {
- MeterSize = 32;
- } else if (mechMeter < 45) {
- MeterSize = 40;
- } else if (mechMeter < 65) {
- MeterSize = 50;
- } else if (mechMeter < 90) {
- MeterSize = 80;
- } else if (mechMeter < 130) {
- MeterSize = 100;
- } else if (mechMeter < 175) {
- MeterSize = 150;
- } else if (mechMeter < 250) {
- MeterSize = 200;
- } else if (mechMeter < 350) {
- MeterSize = 300;
- } else {
- MeterSize = 400;
- }
- $('#mechanicalMeter').html(MeterSize.toFixed(0) + " mm");
- $('#mechanicalMeter1').html(MeterSize.toFixed(0) + " mm");
- $('.mechanicalMeter').html(MeterSize.toFixed(0) + " mm");
- if (data.intervalDays < 30) {
- $('#smartMeter').html(',总表、分表误差计算需要大于一个月的数据');
- } else {
- $('#smartMeter').html('');
- }
- //上期用水
- lastWaterSupply = data.lastSysWaterSupply;
- lastSalesWater = data.lastSysSalesWater;
- lastStart = data.lastStart;
- lastEnd = data.lastEnd;
- lastIntervalDays = data.lastIntervalDays;
- CalApparentLeak();
- //报告
- $('.QuJian').html(supplySection + " " + days);//期间
- $('.leakFactor').html(parseFloat(data.leakFactor).toFixed(2));
- $('.dmaChXCL').html(parseFloat(data.dmaChanXCL).toFixed(2));
- var startDate = formatDate(stringToDate(start), "yyyy-MM-dd");
- $('.startDate').html(startDate);
- }
- //趋势分析
- function ShowDailyChart(datas, echarts) {
- var flowArray = new Array();
- var timeArray = new Array();
- var leakArr = new Array();
- for (var i = 0; i < datas.length; i++) {
- flowArray.push(datas[i].DayNetFlow)
- leakArr.push(datas[i].LeakRate);
- timeArray.push(datas[i].Day);
- }
- var dataMA7 = calculateMA(7, flowArray);
- var dataLeakMA5 = calculateMA(5, leakArr);
- var dataLeakMA7 = calculateMA(7, leakArr);
- echarts.setOption({
- title: {
- text: deviceName,
- x: 'center',
- align: 'right',
- textStyle: {
- color: titleColor
- }
- },
- tooltip: {
- trigger: 'axis',
- formatter: function (params) {
- console.log("this is params" + params);
- var len = params.length;
- var showInfo = "";
- for (var i = 0; i < len; i++) {
- if (i == 0) {
- showInfo += "时间:" + params[0].name + "<br/>";
- }
- showInfo += params[i].seriesName + ":" + params[i].value + "<br/>";
- }
- //return "时间:" + params[0].name + "<br/>" + params[0].value + ' m³';
- return showInfo;
- //+ params[1].seriesName + ' : ' + params[1].value + ' (Mpa)';
- },
- axisPointer: {
- animation: false
- }
- },
- legend: {
- data: ['日累计流量', '趋势曲线', '流量指数', '5日指数', '7日指数'],
- x: 'center',
- top: 25,
- selected: {
- '日累计流量': false,
- '趋势曲线': false,
- '流量指数': true
- }
- },
- toolbox: {
- show: true,
- feature: {
- dataZoom: {
- yAxisIndex: 'none'
- },
- dataView: { readOnly: true },
- magicType: { type: ['line', 'bar'] },
- restore: {},
- saveAsImage: {}
- }
- },
- xAxis: {
- data: timeArray
- },
- yAxis: [
- {
- name: '单位:m³',
- type: 'value'
- }
- ],
- series: [
- {
- name: '日累计流量',
- type: 'bar',
- itemStyle: {
- normal: {
- color: '#E0ECFF',
- barBorderColor: '#E0ECFF',
- }
- },
- data: flowArray
- }, {
- name: '趋势曲线',
- type: 'line',
- data: dataMA7,
- smooth: true,
- showSymbol: false,
- lineStyle: {
- normal: {
- width: 1
- }
- }
- }, {
- name: '流量指数',
- type: 'line',
- data: leakArr,
- smooth: true,
- showSymbol: false,
- lineStyle: {
- normal: {
- width: 1
- }
- }
- }, {
- name: '5日指数',
- type: 'line',
- data: dataLeakMA5,
- smooth: true,
- showSymbol: false,
- lineStyle: {
- normal: {
- width: 1
- }
- }
- }, {
- name: '7日指数',
- type: 'line',
- data: dataLeakMA7,
- smooth: true,
- showSymbol: false,
- lineStyle: {
- normal: {
- width: 1
- }
- }
- }
- ]
- });
- }
- //凌晨流量
- function ShowDaybreakFlow(datas, echarts) {
- var arrFlow = datas;
- var devNames = new Array();
- var dataArr = new Array();
- var timeArray = new Array();
-
- //console.log(arrFlow);
- if (arrFlow != undefined) {
-
- for (var i = 0; i < arrFlow.length; i++) {
- var obj = new Object();
- var tempname = arrFlow[i].devName;
- obj.name = arrFlow[i].devName;
- obj.type = arrFlow[i].lineType;
- devNames.push(arrFlow[i].devName);
- var datas = new Array();
- for (var j = 0; j < arrFlow[i].devData.length; j++) {
- if (i == 0) {
- timeArray.push(arrFlow[i].devData[j].RTime);
- if (i == 0 && j == 6) {
- $('.LCRuKou').html(arrFlow[i].devData[j].Flow);
- }
- }
- datas.push(arrFlow[i].devData[j].Flow);
- }
- obj.data = datas;
- dataArr.push(obj);
- }
- }
-
- flowDataArr =[];
- if (arrFlow != undefined) {
- if (arrFlow.length > 3) {
- var dataLen = arrFlow[0].devData.length;
- for (var i = 0; i < dataLen; i++) {
- var dataMinArr =[];
- for (var j = 0; j < arrFlow.length; j++) {
- var obj = new Object();
- obj.name = arrFlow[j].devName;
- obj.data = arrFlow[j].devData[i].Flow;
- obj.time = arrFlow[j].devData[i].RTime;
- dataMinArr.push(obj);
- }
- var ob = new Object();
- if (dataMinArr.length > 0) {
- var per = dataMinArr[dataMinArr.length - 1].data / dataMinArr[dataMinArr.length - 3].data;
- ob.name = "差率";
- ob.data = (per * 100).toFixed(2) + "%";
- ob.time = "";
- } else {
- ob.name = "差率";
- ob.data = "";
- ob.time = "";
- }
- dataMinArr.push(ob);
- flowDataArr.push(dataMinArr);
- }
- //console.log(flowDataArr);
- }
- }
- if (flowDataArr.length > 0) {
- totalPage = flowDataArr.length;
- currentPage = 0;
- //console.log(flowDataArr);
- if (totalPage >= 10) {
- var lc = flowDataArr[6];
- $('.LCRuKou').html(lc[0].data);
- $('.LCChuKou').html(lc[lc.length -3].data);
- $('.LCCL').html(lc[lc.length -2].data);
- $('.LCRate').html(lc[lc.length -1].data);
- }
- var item = flowDataArr[currentPage];
- fillTable(item);
- } else {
- $('#divMinFlow').hide();
- }
- var app = {
- };
- var minOption = null;
- minOption = {
- title: {
- text: deviceName,
- x: 'center',
- align: 'right',
- textStyle: {
- color: titleColor
- }
- },
- tooltip: {
- trigger: 'axis',
- formatter: function (params) {
- if (params == undefined) {
- return "";
- } else {
- var showInfo = "";
- var size = params.length;
- var per = params[size - 1].value / params[size - 3].value;
- if (size > 0) {
- showInfo = "时间:" +params[0].name + "<br/>";
- }
- //for (var i = 0; i < size; i++) {
- // //console.log(params[i]);
- // showInfo += params[i].seriesName + " " + params[i].value + "<br/>"
- //}
- //console.log(params);
- if (size > 2) {
- showInfo += "入口流量 " + params[size - 3].value + "<br/>";
- showInfo += "出口流量 " +params[size -2].value + "<br/>";
- showInfo += params[size -1].seriesName + " " +params[size -1].value + "<br/>";
- showInfo += "差率 " + (per * 100).toFixed(2) + "%";
- } else {
- showInfo += "瞬时流量 " +params[0].value;
- }
- return showInfo;
- }
- },
- axisPointer: {
- animation: false
- }
- },
- legend: {
- type: 'scroll',
- bottom: 10,
- data: devNames
- },
- toolbox: {
- show: true,
- feature: {
- dataZoom: {
- yAxisIndex: 'none'
- },
- dataView: { readOnly: false
- },
- magicType: { type: ['line', 'bar']
- },
- restore: {
- },
- saveAsImage: {}
- }
- },
- xAxis: {
- data: timeArray
- },
- yAxis: [
- {
- name: '单位:m³/h',
- type: 'value'
- }
- ],
- series: dataArr
- };
- if (minOption && typeof minOption === "object") {
- echarts.setOption(minOption, true);
- }
- }
- function fillTable(item) {
- var obj = item[0];
- var date = obj.time;
- if (date == undefined) {
- date = "";
- }
- $("#minGrid").append("<tr><td>入口流量</td><td>" + obj.data + "</td><td>" + date + "</td></tr>");
- obj = item[item.length - 3];
- date = obj.time;
- if (date == undefined) {
- date = "";
- }
- $("#minGrid").append("<tr><td>出口流量</td><td>" + obj.data + "</td><td>" + date + "</td></tr>");
- obj = item[item.length - 2];
- date = obj.time;
- if (date == undefined) {
- date = "";
- }
- $("#minGrid").append("<tr><td>" + obj.name + "</td><td>" + obj.data + "</td><td>" + date + "</td></tr>");
- obj = item[item.length - 1];
- date = obj.time;
- if (date == undefined) {
- date = "";
- }
- $("#minGrid").append("<tr><td>" + obj.name + "</td><td>" + obj.data + "</td><td>" + date + "</td></tr>");
- for (var i = 1; i < item.length - 4; i++) {
- var ob = item[i];
- var date = ob.time;
- if (date == undefined) {
- date = "";
- }
- $("#minGrid").append("<tr><td>" + ob.name + "</td><td>" + ob.data + "</td><td>" + date + "</td></tr>");
- }
- }
- function pre() {
- if (currentPage == 0) {
- } else {
- if (currentPage - 1 >= 0) {
- currentPage = currentPage - 1;
- var item = flowDataArr[currentPage];
- $("#minGrid tr:not(:first)").remove();
- fillTable(item);
- }
- }
- }
- function next() {
- if (currentPage + 1 < totalPage) {
- currentPage = currentPage + 1;
- var item = flowDataArr[currentPage];
- $("#minGrid tr:not(:first)").remove();
- fillTable(item);
- }
- }
- function ShowFlowKData(kDatas, echarts) {
- var dates = [];
- var data = [];
- var volumes = [];
- var dataMA1 = [];
- var size = kDatas.length;
- for (var i = 0; i < size; i++) {
- var pArr = [];
- //console.log(stringToDate(kDatas[i].开始时间));
- var start = formatDate(stringToDate(kDatas[i].开始时间), 'yy-MM-dd hh') + "时";
- var end = formatDate(stringToDate(kDatas[i].结束时间), 'hh') + "时";
- //console.log(start+"-"+end);
- dates.push(start + "-" + end);
- pArr.push(parseFloat(kDatas[i].最大瞬时));
- pArr.push(parseFloat(kDatas[i].最小瞬时));
- pArr.push(parseFloat(kDatas[i].最小瞬时));
- pArr.push(parseFloat(kDatas[i].最大瞬时));
- data.push(pArr);
- volumes.push('-');
- dataMA1.push(parseFloat(kDatas[i].平均瞬时));
- //volumes.push(parseFloat(datas.bData[i].TotalFlow));
- }
- var dataMA3 = calculateFlowMA(3, dataMA1);
- var dataMA5 = calculateFlowMA(6, dataMA1);
- var dataMA7 = calculateFlowMA(10, dataMA1);
- var colorList = ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622', '#bda29a', '#6e7074', '#546570', '#c4ccd3'];
- var option = {
- animation: false,
- color: colorList,
- title: {
- left: 'center',
- text: deviceName,
- textStyle: {
- color: titleColor
- }
- },
- legend: {
- top: 25,
- data: ['瞬时流量', '2时均线', '6时均线', '12时均线', '日均线'],
- selected: {
- '瞬时流量': true,
- '2时均线': true,
- '6时均线': false,
- '12时均线': false,
- '日均线': false
- }
- },
- toolbox: {
- show: true,
- feature: {
- dataZoom: { show: true },
- restore: { show: true },
- saveAsImage: { show: true },
- brush: {
- type: 'lineX'
- }
- }
- },
- tooltip: {
- triggerOn: 'none',
- transitionDuration: 0,
- confine: true,
- bordeRadius: 4,
- borderWidth: 1,
- borderColor: '#333',
- backgroundColor: 'rgba(255,255,255,0.9)',
- textStyle: {
- fontSize: 12,
- color: '#333'
- },
- position: function (pos, params, el, elRect, size) {
- var obj = {
- top: 60
- };
- obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 5;
- return obj;
- },
- formatter: function (params) {
- //console.log(params);
- //return params[0].name +
- // '<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:#ef232a;"></span>瞬时流量<br/>'
- // + '--最小值:'
- // + params[1].data[3] + '<br/>--最大值:' + params[1].data[4];
- var showInfo = params[0].name;
- for (var i = 0; i < params.length; i++) {
- if (params[i].componentSubType == "candlestick") {
- showInfo += "<br/>" + params[i].marker + params[i].seriesName;
- showInfo += "<br/>最大值:" + params[i].value[1];
- showInfo += "<br/>最小值:" + params[i].value[2];
- } else {
- showInfo += "<br/>" + params[i].marker + params[i].seriesName + params[i].value;
- }
- }
- return showInfo;
- }
- },
- axisPointer: {
- link: [{
- xAxisIndex: [0, 1]
- }]
- },
- xAxis: [{
- type: 'category',
- data: dates,
- boundaryGap: false,
- axisLine: { lineStyle: { color: '#777' } },
- //axisLabel: {
- // formatter: function (value) {
- // return echarts.format.formatTime('MM-dd hh:mm', value);
- // }
- //},
- min: 'dataMin',
- max: 'dataMax',
- axisPointer: {
- type: 'shadow',
- label: { show: false },
- triggerTooltip: true,
- handle: {
- show: true,
- margin: 30,
- color: '#B80C00'
- }
- }
- }],
- yAxis: [{
- scale: true,
- splitNumber: 2,
- axisLine: { lineStyle: { color: '#777' } },
- splitLine: { show: true },
- axisTick: { show: false },
- axisLabel: {
- inside: true,
- formatter: '{value}\n'
- }
- }],
- grid: [{
- left: 20,
- right: 20,
- top: 60,
- height: 120
- }, {
- left: 20,
- right: 20,
- height: 50,
- top: 160
- }],
- series: [{
- type: 'candlestick',
- name: '瞬时流量',
- data: data,
- itemStyle: {
- normal: {
- color: '#ef232a',
- color0: '#14b143',
- borderColor: '#ef232a',
- borderColor0: '#14b143'
- },
- emphasis: {
- color: 'black',
- color0: '#444',
- borderColor: 'black',
- borderColor0: '#444'
- }
- }
- }, {
- name: '2时均线',
- type: 'line',
- data: dataMA1,
- smooth: true,
- showSymbol: false,
- lineStyle: {
- normal: {
- width: 1
- }
- }
- }, {
- name: '6时均线',
- type: 'line',
- data: dataMA3,
- smooth: true,
- showSymbol: false,
- lineStyle: {
- normal: {
- width: 1
- }
- }
- }, {
- name: '12时均线',
- type: 'line',
- data: dataMA5,
- smooth: true,
- showSymbol: false,
- lineStyle: {
- normal: {
- width: 1
- }
- }
- }, {
- name: '日均线',
- type: 'line',
- data: dataMA7,
- smooth: true,
- showSymbol: false,
- lineStyle: {
- normal: {
- width: 1
- }
- }
- }]
- };
- if (option && typeof option === "object") {
- echarts.setOption(option, true);
- }
- }
- function formatDate(date, format) {
- var v = "";
- if (typeof date == "string" || typeof date != "object") {
- return;
- }
- var year = date.getFullYear();
- var month = date.getMonth() + 1;
- var day = date.getDate();
- var hour = date.getHours();
- var minute = date.getMinutes();
- var second = date.getSeconds();
- var weekDay = date.getDay();
- var ms = date.getMilliseconds();
- var weekDayString = "";
- if (weekDay == 1) {
- weekDayString = "星期一";
- } else if (weekDay == 2) {
- weekDayString = "星期二";
- } else if (weekDay == 3) {
- weekDayString = "星期三";
- } else if (weekDay == 4) {
- weekDayString = "星期四";
- } else if (weekDay == 5) {
- weekDayString = "星期五";
- } else if (weekDay == 6) {
- weekDayString = "星期六";
- } else if (weekDay == 7) {
- weekDayString = "星期日";
- }
- v = format;
- //Year
- v = v.replace(/yyyy/g, year);
- v = v.replace(/YYYY/g, year);
- v = v.replace(/yy/g, (year + "").substring(2, 4));
- v = v.replace(/YY/g, (year + "").substring(2, 4));
- //Month
- var monthStr = ("0" + month);
- v = v.replace(/MM/g, monthStr.substring(monthStr.length - 2));
- //Day
- var dayStr = ("0" + day);
- v = v.replace(/dd/g, dayStr.substring(dayStr.length - 2));
- //hour
- var hourStr = ("0" + hour);
- v = v.replace(/HH/g, hourStr.substring(hourStr.length - 2));
- v = v.replace(/hh/g, hourStr.substring(hourStr.length - 2));
- //minute
- var minuteStr = ("0" + minute);
- v = v.replace(/mm/g, minuteStr.substring(minuteStr.length - 2));
- //Millisecond
- v = v.replace(/sss/g, ms);
- v = v.replace(/SSS/g, ms);
- //second
- var secondStr = ("0" + second);
- v = v.replace(/ss/g, secondStr.substring(secondStr.length - 2));
- v = v.replace(/SS/g, secondStr.substring(secondStr.length - 2));
- //weekDay
- v = v.replace(/E/g, weekDayString);
- return v;
- }
- function stringToDate(fDate) {
- //var fullDate = fDate.split("-");
- //return new Date(fullDate[0], fullDate[1]-1, fullDate[2], 0, 0, 0);
- //var s = '2017-04-18 09:16:15';
- fDate = fDate.replace(/-/g, "/");
- return new Date(fDate);
- }
- function calculateFlowMA(dayCount, data) {
- var result = [];
- for (var i = 0, len = data.length; i < len; i++) {
- if (i < dayCount) {
- result.push('-');
- continue;
- }
- var sum = 0;
- for (var j = 0; j < dayCount; j++) {
- sum += data[i - j];
- }
- result.push((sum / dayCount).toFixed(2));
- }
- return result;
- }
- function Analysis() {
- var InsEchartsDom = document.getElementById("InsAnalysisEcharts");
- var InsEcharts = echarts.init(InsEchartsDom, 'macarons');
- $.ajax({
- url: '/AppCurvesAnalysis/GetInstantFlowAnalysis?devId=' + devId + "&start=" + start + "&end=" + end + "&continuous=" + $('#continuousFlow').html() + "&z=" + $('#minFlow').html() + "&salesWater=" + $('#actualSalesWater').val() + "&calcType=1",
- type: 'get',
- dataType: 'json',
- success: function (d) {
- //console.log(d);
- ShowInsAnalysisEcharts(d, InsEcharts);
- }
- });
- }
- function MaoYiAnalysis() {
- var InsEchartsDom = document.getElementById("InsAnalysisEcharts");
- var InsEcharts = echarts.init(InsEchartsDom, 'macarons');
- $.messager.prompt('密码', '请输入密码:', function (r) {
- if (r == "shan") {
- $.ajax({
- url: '/AppCurvesAnalysis/GetInstantFlowAnalysis?devId=' + devId + "&start=" + start + "&end=" + end + "&continuous=" + $('#continuousFlow1').val() + "&calcType=2&salesWater=0",
- type: 'get',
- dataType: 'json',
- success: function (d) {
- //console.log(d);
- ShowChart(d, InsEcharts);
- }
- });
- }
- });
- }
- function CalApparentLeak() {
- var waterSupply = $('#actualWaterSupply').val();
- var salesWater = $('#actualSalesWater').val();
- if (waterSupply == "" || salesWater == "") {
- } else {
- if (salesWater == 0) {
- //$('#NrwFlow').html(waterSupply - salesWater);//产销差水量
- //$('.NrwFlow').html(waterSupply - salesWater);//产销差水量
- //var nrwFlowPer = (waterSupply - salesWater) / waterSupply * 100;
- //$('#NrwFlowPer').html(nrwFlowPer.toFixed(1));
- //$('.NrwFlowPer').html(nrwFlowPer.toFixed(1));
- //管网漏失量
- var leakFlowTotal = leakFlow * 24 * intervalDays;
- $('#LeakFlow').html(leakFlowTotal.toFixed(2));
- $('.LeakFlow').html(leakFlowTotal.toFixed(2));
- $('#LeakFlowPer').html((leakFlowTotal / waterSupply * 100).toFixed(2));
- $('.LeakFlowPer').html((leakFlowTotal / waterSupply * 100).toFixed(2));
- //表观漏失量
- //var apparentLeak = waterSupply - salesWater - leakFlowTotal;
- //$('#apparentLeak').html(apparentLeak.toFixed(3));
- //$('#apparentLeakPer').html((apparentLeak / waterSupply * 100).toFixed(2));
- //考核表误差
- var khError = (((waterSupply - waterSupplySection) / waterSupply) * 100).toFixed(2);
- if (!isFinite(khError)) {
- khError = '--'
- }
- $('#khMeterError').html((waterSupply - waterSupplySection).toFixed(2));
- $('#khMeterError1').html((waterSupply - waterSupplySection).toFixed(2));
- $('#khMeterErrorPer').html(khError);
- if (khError == '--') {
- $('.khMeterErrorPer').html(khError);
- } else {
- if ((khError * 1) < 0) {
- $('.khMeterErrorPer').html('慢' + khError * -1);
- } else {
- $('.khMeterErrorPer').html('快' + khError);
- }
- }
- $('#khMeterErrorPer1').html(" " + khError);
- $('.RuKou').html(waterSupply);//入口流量
- $('.ChuKou').html(salesWater);//出口流量
- $('.ChanXCh').html("--");//产销差水量
- $('.ChanXChL').html("--");//产销差率
- $('.GuanWLS').html(leakFlow);//管网漏水量
- $('.QiJianGuanWLS').html(leakFlowTotal.toFixed(2));//期间管网漏水量
- $('.GuanWLSL').html((leakFlowTotal / waterSupply * 100).toFixed(2));//管网漏水率
- $('.BiaoGLSS').html(waterSupply - waterSupplySection);//表观漏水量
- $('.BiaoGLSL').html(khError);//表观漏失率
- $('.YueLSL').html((leakFlow * 24 * 30.5).toFixed(2));
- /****添加 表误差*** 2018-01-13** START**/
- var checkRemoteError = khError;//考核表误差
- var tradeRemoteError = '--';//贸易表误差
- var statementStr = "%,未超出国家标准±2%。";
- var nonStatementStr = "%,超出国家标准±2%,须进行对水表周期检定或校验。";
- if (checkRemoteError >= -2 && checkRemoteError <= 2) {
- $('.CheckRE').html(checkRemoteError + statementStr);
- } else {
- $('.CheckRE').html(checkRemoteError + nonStatementStr);
- }
- if (tradeRemoteError >= -2 && tradeRemoteError <= 2) {
- $('.TradeRE').html(tradeRemoteError + statementStr);
- } else {
- $('.TradeRE').html(tradeRemoteError + nonStatementStr);
- }
- /****添加 表误差*** 2018-01-13** END**/
- $('.PerMonthLoss').html((leakFlow * 24 * 30.5 * 4.73).toFixed(2));
- } else {
- $('#NrwFlow').html(waterSupply - salesWater);//产销差水量
- $('.NrwFlow').html(waterSupply - salesWater);//产销差水量
- var nrwFlowPer = (waterSupply - salesWater) / waterSupply * 100;
- $('#NrwFlowPer').html(nrwFlowPer.toFixed(2));
- $('.NrwFlowPer').html(nrwFlowPer.toFixed(2));
- //管网漏失量
- var leakFlowTotal = leakFlow * 24 * intervalDays;
- $('#LeakFlow').html(leakFlowTotal.toFixed(2));
- $('.LeakFlow').html(leakFlowTotal.toFixed(2));
- $('#LeakFlowPer').html((leakFlowTotal / waterSupply * 100).toFixed(2));
- $('.LeakFlowPer').html((leakFlowTotal / waterSupply * 100).toFixed(2));
- //表观漏失量
- var apparentLeak = waterSupply - salesWater - leakFlowTotal;
- $('#apparentLeak').html(apparentLeak.toFixed(2));
- $('#apparentLeakPer').html((apparentLeak / waterSupply * 100).toFixed(2));
- $('.biaoGLoss').html(apparentLeak.toFixed(2));
- $('.biaoGLossPer').html((apparentLeak / waterSupply * 100).toFixed(2));
- //考核表误差
- var khError = (((waterSupply - waterSupplySection) / waterSupply) * 100).toFixed(2);
- if (!isFinite(khError)) {
- khError = '--';
- }
- $('#khMeterError').html((waterSupply - waterSupplySection).toFixed(2));
- $('#khMeterErrorPer').html(khError);
- $('#khMeterErrorPer1').html(" " + khError);
- if (khError == '--') {
- $('.khMeterErrorPer').html(khError);
- } else {
- if ((khError * 1) < 0) {
- $('.khMeterErrorPer').html('慢' + khError * -1);
- } else {
- $('.khMeterErrorPer').html('快' + khError);
- }
- }
- //贸易表误差
- var myError = ((salesWater - salesWaterSection) / salesWater * 100).toFixed(2);
- $('#myMeterError').html((salesWater - salesWaterSection).toFixed(2));
- $('#myMeterErrorPer').html(myError);
- $('.RuKou').html(waterSupply);//入口流量
- $('.ChuKou').html(salesWater);//出口流量
- $('.ChanXCh').html(waterSupply - salesWater);//产销差水量
- $('.ChanXChL').html(nrwFlowPer.toFixed(1));//产销差率
- $('.GuanWLS').html(leakFlow);//管网漏水量
- $('.QiJianGuanWLS').html(leakFlowTotal.toFixed(2));//期间管网漏水量
- $('.GuanWLSL').html((leakFlowTotal / waterSupply * 100).toFixed(2));//管网漏水率
- $('.BiaoGLSS').html(waterSupply - waterSupplySection);//表观漏水量
- $('.BiaoGLSL').html(khError);//表观漏失率
- $('.YueLSL').html((leakFlow * 24 * 30.5).toFixed(2));
- /****添加 表误差*** 2018-01-13** START**/
- var checkRemoteError = khError;//考核表误差
- var tradeRemoteError = myError;//贸易表误差
- var statementStr = "%,未超出国家标准±2%。";
- var nonStatementStr = "%,超出国家标准±2%,须进行对水表周期检定或校验。";
- if (checkRemoteError >= -2 && checkRemoteError <= 2) {
- $('.CheckRE').html(checkRemoteError + statementStr);
- } else {
- $('.CheckRE').html(checkRemoteError + nonStatementStr);
- }
- if (tradeRemoteError >= -2 && tradeRemoteError <= 2) {
- $('.TradeRE').html(tradeRemoteError + statementStr);
- } else {
- $('.TradeRE').html(tradeRemoteError + nonStatementStr);
- }
- /****添加 表误差*** 2018-01-13** END**/
- //(leakFlow * 24 * 30.5)
- $('.PerMonthLoss').html((leakFlow * 24 * 30.5 * 4.73).toFixed(2));
- $('.BiaoGuanLoss').html((waterSupply - waterSupplySection).toFixed(2));
- //
- $('.BiaoGuanLossFee').html(((waterSupply - waterSupplySection) * 30.5 * 4.56).toFixed(2));
- $('.TotalLossFee').html(((leakFlow * 24 * 30.5 * 2.63) + ((waterSupply - waterSupplySection) * 30.5 * 4.56)).toFixed(2));
- //TotalLossFee
- }
- }
- $('.lastSection').html(lastStart + "~" + lastEnd + " " + lastIntervalDays);
- $('.LastRuKou').html(lastWaterSupply);
- $('.LastChuKou').html(lastSalesWater);
- $('.LastRiLaiShui').html((lastWaterSupply / lastIntervalDays).toFixed(2));
- //LastChanXCh
- if (lastWaterSupply == "--" || lastSalesWater == "--") {
- $('.LastChanXCh').html("--");
- $('.LastChanXChL').html("--");
- } else {
- if (lastSalesWater == 0) {
- $('.LastChanXCh').html("--");
- $('.LastChanXChL').html("--");
- } else {
- var lastchanxch = (lastWaterSupply - lastSalesWater).toFixed(0);
- var lastchanxchl = "--";
- if (lastWaterSupply != 0) {
- lastchanxchl = ((lastchanxch / lastWaterSupply) * 100).toFixed(2);
- }
- $('.LastChanXCh').html(lastchanxch);
- $('.LastChanXChL').html(lastchanxchl);
- }
- }
- if (maoYikaoHe == '1') {//显示考核表
- $('#dmaReport').css('display', 'block');
- $('#maoyReport').css('display', 'none');
- } else {//显示贸易表的菜单
- $('#dmaReport').css('display', 'none');
- $('#maoyReport').css('display', 'block');
- }
- }
|