Prechádzať zdrojové kódy

平均用水量, 工作日,非工作日

zhengkaixin 8 mesiacov pred
rodič
commit
bfbdafca22

+ 17 - 0
apis/pagejs/water.js

@@ -146,4 +146,21 @@ import request from '@/apis/utils/request'
  		data: data,
  		url: url
  	})
+ }
+ 
+ export function meterHourConsumption(data) {
+ 	var url='/mobile/waterEnergyManage/meterHourConsumption';
+ 	return request({
+ 		method: 'post',
+ 		data: data,
+ 		url: url
+ 	})
+ }
+ export function meterHourConsumptionDetails(data) {
+ 	var url='/mobile/waterEnergyManage/meterHourConsumptionDetails';
+ 	return request({
+ 		method: 'post',
+ 		data: data,
+ 		url: url
+ 	})
  }

+ 1 - 0
config/.env.dev.js

@@ -4,6 +4,7 @@ const UNI_APP = {
 
 	BASE_URL: 'https://youdian-test.hbjp.com.cn/electric-manager-api/', //test
 	//BASE_URL: 'https://dgj.hbjp.com.cn/electric-manager-api/',
+	BASE_URL: 'https://dgj.jzrccs.com/electric-manager-api/',
 	
 	//BASE_URL:'http://192.168.77.162:8081/electric-manager-api/', //sz
 	

+ 1 - 1
config/.env.prod.js

@@ -2,7 +2,7 @@ const UNI_APP = {
 	ProjectName :"e家能源",
 	//BASE_URL: 'http://36.134.122.108/railroad-server/',
 	BASE_URL: 'https://dgj.hbjp.com.cn/electric-manager-api/',
-	BASE_URL: 'https://youdian.jzrccs.com/electric-manager-api/',
+	BASE_URL: 'https://dgj.jzrccs.com/electric-manager-api/',
 	
 	NODE_ENV :"prod",
 	SIMPLE_RUN:false,

+ 7 - 0
pages.json

@@ -522,6 +522,13 @@
         	{
         		"navigationBarTitleText" : ""
         	}
+        },
+        {
+        	"path" : "pages/platformRevenueStatistics/daypartingStatisticsWater",
+        	"style" : 
+        	{
+        		"navigationBarTitleText" : ""
+        	}
         }
       
        

+ 17 - 6
pages/equipmentDataMonitoring/electronicMonitoringWater.vue

@@ -709,7 +709,7 @@
 					this.hourMap = response.data.hourMap;
 					this.sumQuantity = response.data.consumptionMap.consumption;
 					
-					this.getBarCharts(this.hourMap, interval);
+					this.getBarCharts(this.hourMap, interval,response.data.dayOfWeek);
 
 					if (!interval) {
 						this.startInterval(); // 组件挂载后开始间隔  
@@ -779,7 +779,7 @@
 					})
 				})
 			},
-			getBarCharts(list, interval) {
+			getBarCharts(list, interval,dayOfWeek) {
 				if (!this.myChart) {
 					this.myChart = echarts.init(document.getElementById('barEcharts'), null, {
 						// width: uni.upx2px(700),
@@ -797,7 +797,12 @@
 				for (var i in list) {
 					data1.push(i)
 					data2.push(list[i].consumption)
-					data3.push(list[i].consumptionAverage)
+					if(dayOfWeek){
+						data3.push(list[i].workConsumptionAverage)
+					}else{
+						data3.push(list[i].restConsumptionAverage)
+					}
+					
 					// sumQuantity+=list[i]
 
 				}
@@ -879,17 +884,23 @@
 							show: true,
 							position: 'top',
 							color: '#5C7BD9'
-						}
+						},
+						itemStyle: {  
+									color: '#387aea' // 设置所有柱子的颜色为'#4FE773'  
+								}  
 					},
 					{
-						name: '平均用水量',
+						name: '平均用水量'+(dayOfWeek?'(工作日)':'(非工作日)'),
 						data: data3,
 						type: 'bar',
 						label: {
 							show: true,
 							position: 'top',
 							color: '#5C7BD9'
-						}
+						},
+						itemStyle: {  
+									color: '#8db7f4' // 设置所有柱子的颜色为'#4FE773'  
+								}  
 					}
 					]
 				}

+ 22 - 0
pages/platformRevenueStatistics/daypartingStatisticsWater.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 267 - 21
pages/platformRevenueStatistics/electricityConsumptionAnalysis.vue

@@ -1,6 +1,6 @@
 <template>
 	<view>
-		<u-navbar title="用电量分析" title-color="#101010"></u-navbar>
+		<u-navbar title="能耗分析" title-color="#101010"></u-navbar>
 		<u-select v-model="tabsFrom.show1" mode="mutil-column-auto"
 		 :default-value	="tabsFrom.show1Index" child-name="childList"
 		 :list="mainList" value-name="id" label-name="name"
@@ -11,7 +11,7 @@
 			<!-- 选择电表 -->
 			<view class="unit">
 				<view class="title">
-					选择查询电表
+					选择查询设备
 				</view>
 				<view class="value" @click="tabsFrom.show1=true">
 					<view class="text">
@@ -30,15 +30,22 @@
 					<view class="icon">
 						
 					</view>
-					<view class="text">
+					<view class="text" v-if="meterType==0">
 						各时段平均用电量 (度)
 					</view>
+					<view class="text" v-if="meterType==1">
+						各时段平均用水量 (m³)
+					</view>
 				
 				</view>
-				<view class="tips">
+				<view class="tips"  v-if="meterType==0">
 					<view>{{info.timeSlot}}</view>
 					<view>日平均用电量:{{info.dayKwh}}度</view>
 				</view>
+				<view class="tips"  v-if="meterType==1">
+					<view>{{info.hourStartTime}} 至 {{info.hourEndTime}}</view>
+					<view>日平均用水量:{{info.totalConsumption}}m³</view>
+				</view>
 				<!-- 图表 -->
 				<view class="chart">
 					<view id="barEcharts" style="min-height:440rpx;">
@@ -47,15 +54,21 @@
 				</view>
 				
 				<!-- 备注 -->
-				<view class="remark">
+				<view class="remark" v-if="meterType==0">
 					<p>备注说明:</p>
 					
 					电表设备的各时段平均用电量,采集自设备上一个【不断电状态核准周期】内的每日各时段用电量平均值。以此平均用电量数据基准,作为智能停电节省电费的数据支撑。
 
 				</view>
+				<view class="remark" v-if="meterType==1">
+					<p>备注说明:</p>
+					
+					水表设备的各时段平均用水量,采集自设备上一个【数据核准周期】内的每日各时段用水量平均值。以此平均用水量数据基准,作为智能停水节水的数据支撑。
+
+				</view>
 			</view>
 			<view class="main2" v-show="info&&!info.hourKwhList">
-				<u-divider  :isnone="true"  nonetext="选择电表" style="margin-top: 20rpx;"
+				<u-divider  :isnone="true"  nonetext="选择设备" style="margin-top: 20rpx;"
 				border-color="#CFD2D5">已经到底了</u-divider>
 			</view>
 			<view class="main2" v-show="info&&info.hourKwhList&&info.hourKwhList.length==0">
@@ -94,14 +107,15 @@
 					show1Index: [],
 					show2Index: '',
 					show2: false,
-					show1Text: "选择电表",
+					show1Text: "选择设备",
 					show2Text: "全部时间",
 					selector1: [
 					]
 				},
-				meterType:1,//1电表2水表
+				meterType:0,//0电表1水表
 				myChart: null,
 				companyList:null,
+				
 				meterList:null,
 				waterList:null,
 				mainList:null,
@@ -125,6 +139,28 @@
 				
 			},
 			callback2(){
+				
+				var companyList=JSON.parse(JSON.stringify(this.companyList))
+				companyList.forEach((item)=>{
+					item.childList.forEach((info)=>{
+						info.childList=[]
+					})
+				})
+				
+				
+				
+				this.waterList.forEach((meter)=>{
+					
+					companyList.forEach((item)=>{
+						item.childList.forEach((info)=>{
+							if(meter.parkId==info.id){
+								info.childList.push(meter)
+							}
+						})
+					})
+				})
+				
+				
 				this.mainList=[
 					{
 						id:"1",name:"电表",i:0,childList:[
@@ -133,14 +169,18 @@
 					},
 					{
 						id:"2",name:"水表",i:1,childList:[
-							//...this.companyList
+							...companyList
 						]
 					}
 				];
+				
+				
+				
 			},
 			callback(){
 				if(this.companyList&&this.meterList){
 					uni.hideLoading();
+					
 				}
 				if(this.companyList.length&&this.meterList.length){
 					
@@ -160,8 +200,8 @@
 						})
 					})
 					
-					this.mainList=this.companyList
-					
+					this.mainList=[...this.companyList]
+					this.getHaveMeterListWater()
 				}
 				
 			},
@@ -171,7 +211,7 @@
 					//uni.hideLoading();
 					var list = response.data.companyInfoList;
 					this.companyList=list
-					
+					 
 					this.callback()
 				}).catch(error => {
 					uni.showToast({
@@ -180,6 +220,43 @@
 					})
 				})
 			},
+			getInfo2(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API_water.meterHourConsumption({
+					meterId:this.meterId
+				}).then((response) => {
+					uni.hideLoading();
+					this.info=response.data
+					
+					this.info.hourKwhList=[]
+					for(var i in this.info.hourMap){
+						this.info.hourKwhList.push({
+							hour:i,
+							obj:this.info.hourMap[i]
+						})
+					}
+					if(this.myChart){
+						this.myChart.clear();
+					}
+					
+					if(this.info&&this.info.hourKwhList&&this.info.hourKwhList.length){
+						this.$nextTick(()=>{
+							
+							this.getBarChartsWater()
+						})
+						
+					}
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
 			getInfo(){
 				uni.showLoading({
 					title: "加载中",
@@ -208,6 +285,131 @@
 					})
 				})
 			},
+			getBarChartsWater() {
+				if (!this.myChart) {
+					this.myChart = echarts.init(document.getElementById('barEcharts'), null, {
+						// width: uni.upx2px(700),
+						height: uni.upx2px(480)
+					});
+				}
+				var data1 = [];
+				var data2 = [];
+				var data3 = [];
+				var data4 = [];
+				var list=this.info.hourKwhList;
+				
+				for (var i in list) {
+					var obj=list[i]
+					data1.push(obj.hour+'时')
+					data2.push(obj.obj.consumptionAverage)
+					data3.push(obj.obj.workConsumptionAverage)
+					data4.push(obj.obj.restConsumptionAverage)
+					// sumQuantity+=list[i]
+				
+				}
+				
+				
+				
+				var option = {
+					tooltip: {
+						trigger: 'axis',
+						axisPointer: {
+							type: 'shadow'
+						},
+				
+					},
+					legend: {
+					  
+					  },
+					grid: {
+						top: 40,
+						left: 5,
+						right: 10,
+						bottom: 20,
+						containLabel: true
+					},
+					xAxis: {
+						type: 'category',
+						data: data1,
+						axisLabel:  {
+							rotate: 40,
+							interval: 0,
+							textStyle: {
+								color: "#333"
+							}
+						},
+				
+					},
+					yAxis: {
+						type: 'value',
+				
+					},
+					series: [{
+						name: '全部',
+						data: data2,
+						type: 'bar',
+						 barGap:"0%",
+						label: {
+							show: true,
+							position: 'top',
+							color: '#5C7BD9'
+						},
+						 itemStyle: {  
+						 			color: '#387aea' // 设置所有柱子的颜色为'#4FE773'  
+						 		} 
+					},
+					{
+						label: {
+							show: true,
+							position: 'top',
+							color: '#5C7BD9'
+						},
+						name: '工作日',
+						data: data3,
+						type: 'bar',
+						itemStyle: {  
+									color: '#8db7f4' // 设置所有柱子的颜色为'#4FE773'  
+								} 
+					},
+					{
+						label: {
+							show: true,
+							position: 'top',
+							color: '#5C7BD9'
+						},
+						name: '非工作日',
+						data: data4,
+						type: 'bar',
+						itemStyle: {  
+									color: '#6a9df1' // 设置所有柱子的颜色为'#4FE773'  
+								} 
+					}
+					]
+				}
+				console.log(option)
+				this.myChart.setOption(option);
+				// 监听点击事件
+				this.myChart.off('click',this.clickbar);
+				
+				// 监听点击事件  
+				this.myChart.on('click',this.clickbar);
+				
+				
+			},
+			clickbar(params) {
+			    if (this.meterType==1&&params.seriesType === 'bar') {  
+			        // 这里是点击柱状图时的回调函数  
+			        // params 包含了被点击的柱子的所有信息  
+			        console.log(params); // 打印被点击的柱子的信息  
+			          
+			        // 你可以在这里添加你想要执行的逻辑,比如跳转到另一个页面,显示弹窗等  
+			        console.log('你点击了柱子:' + params.name + ',值为:' + params.value); 
+					uni.navigateTo({
+						url:"/pages/platformRevenueStatistics/daypartingStatisticsWater?value="+params.value
+					})
+					 
+			    }  
+			},
 			getBarCharts() {
 				if (!this.myChart) {
 					this.myChart = echarts.init(document.getElementById('barEcharts'), null, {
@@ -277,23 +479,66 @@
 			},
 			selector1confirm(e) {
 				console.log(e)
+				
 				 var index = [e[0].i,e[1].i,e[2].i]
-				 
+				 var eObj={}
 				 if(this.waterList&&this.waterList.length){
 					 index = [e[0].i,e[1].i,e[2].i,e[3].i]
-					 this.tabsFrom.show1Text =e[3].label
-					 this.meterId = e[3].value
+					 
+					 
+					 eObj=e[3]
 					 this.meterType = e[0].i
 				 }else{
-					 this.tabsFrom.show1Text =e[2].label
-					 this.meterId = e[2].value
+					 eObj=e[2]
+					
 				 }
-				 this.tabsFrom.show1Index = index
-				
-				if(this.meterType==1){
-					 this.getInfo()
+				if(eObj.value){
+					this.tabsFrom.show1Text =eObj.label
+					  this.meterId  = eObj.value
+					 
+					 this.tabsFrom.show1Index = index
+					
+					if(this.meterType==0){
+						 this.getInfo()
+					}else{
+						 this.getInfo2()
+					}
+				}else{
+					uni.showToast({
+						title: "未选择设备",
+						icon: "none"
+					})
 				}
 				
+				
+			},
+			getHaveMeterListWater(){
+				var data = {
+				
+					queryForm:"property",
+					
+				};
+				API_water.haveMeterList(data).then((response) => {
+					
+					//var MeterList=response.data.switchRecordList.data
+					//this.meterList = response.data.remoteReadingMeterList;
+					var meterList = response.data.waterMeterList;
+					meterList=meterList.sort((item1,item2)=>{
+						if(item1.sortNo==item2.sortNo){
+							return item1.level>item2.level?1:-1
+						}
+						return item1.sortNo>item2.sortNo?1:-1
+						
+					})
+					this.waterList=meterList
+					this.callback2()
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
 			},
 			getHaveMeterList(){
 				
@@ -315,6 +560,7 @@
 						
 					})
 					this.meterList=meterList
+					
 					this.callback()
 					
 				}).catch(error => {