Files
2025-07-05 17:29:10 +08:00

307 lines
7.8 KiB
Vue

<template>
<view class="container">
<view class="top-container">
<image class="bg-img" :src="apiHost+'/miniapp/static/mybg.png'"></image>
<view class="mybox">
<view class="box">
<view class="item">
<view style="color:#4652C0;font-weight:bold;">闸门调控次数</view>
<view style="color:#4652C0;font-weight:bold;font-size:50rpx">{{total_gate_count}}</view>
<hr color="#E5E5E5" size="1px"/>
<view style="color:#000;font-size:20rpx">
<text>本月 {{current_gate_count}}</text>
<text style="display:inline-block;margin-left:30rpx">总计 {{total_gate_count}}</text>
</view>
</view>
<view class="item">
<view style="color:#4652C0;font-weight:bold;">水泵调控次数</view>
<view style="color:#4652C0;font-weight:bold;font-size:50rpx">{{total_pump_count}}</view>
<hr color="#E5E5E5" size="1px"/>
<view style="color:#000;font-size:20rpx">
<text>本月 {{current_pump_count}}</text>
<text style="display:inline-block;margin-left:30rpx">总计 {{total_pump_count}}</text>
</view>
</view>
</view>
</view>
</view>
<view class="content">
<tui-card class="mycard">
<qiun-title-bar title="闸门调控统计"/>
<view class="tui-flex-box">
<tui-tag margin="20rpx 20rpx 0 0" padding="12rpx" :type="colorM1" @click="timeRange('m1')"></tui-tag>
<tui-tag margin="20rpx 20rpx 0 0" padding="12rpx" :type="colorD1" @click="timeRange('d1')"></tui-tag>
</view>
<view class="charts-box">
<qiun-data-charts type="column" :chartData="chartsDataColumn" :echartsH5="true" :opts="opts" :echartsApp="true"/>
</view>
</tui-card>
<tui-card class="mycard">
<qiun-title-bar title="水泵调控次数统计"/>
<view class="tui-flex-box">
<tui-tag margin="20rpx 20rpx 0 0" padding="12rpx" :type="colorM2" @click="timeRange('m2')"></tui-tag>
<tui-tag margin="20rpx 20rpx 0 0" padding="12rpx" :type="colorD2" @click="timeRange('d2')"></tui-tag>
</view>
<view class="charts-box">
<qiun-data-charts type="demotype" :eopts="{seriesTemplate:{areaStyle:{opacity:0.2}}}" :chartData="chartsDataLine" :echartsH5="true" :echartsApp="true"/>
</view>
</tui-card>
</view>
</view>
</template>
<script>
import myapp from '@/common/js/myapp.js'
export default {
data() {
return {
apiHost: myapp.apiHost,
total_gate_count: '',
current_gate_count: '',
total_pump_count: '',
current_pump_count: '',
chartsDataColumn:{},
chartsDataLine:{},
colorM1: 'blue',
colorD1: 'btn-gray',
colorM2: 'blue',
colorD2: 'btn-gray',
opts: {
legend:{
show: false
},
extra: {
column:{
width: 10
}
}
}
}
},
onShow: function() {
// 验证登录信息是否过期
let user = myapp.checkLogin()
// 将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容
uni.setStorageSync('lastPagePath', '/packagePage/pages/overview/overview')
let that = this;
// 获取总览内容中闸门总次数以及本月闸门次数
myapp.request('/?c=overview&a=getOverviewGateActionInfo',function(res) {
that.total_gate_count = res.data.data.total_gate_count
that.current_gate_count = res.data.data.current_gate_count
},{token:user.token})
// 获取总览内容中水泵总次数以及本月水泵次数
myapp.request('/?c=overview&a=getOverviewPumpActionInfo',function(res) {
that.total_pump_count = res.data.data.total_pump_count
that.current_pump_count = res.data.data.current_pump_count
},{token:user.token})
setTimeout(() => {
let that = this;
// 闸门调控统计
myapp.request('/?c=overview&a=getOverviewGateLine',function(res) {
that.chartsDataColumn = {
"legend": {
"show":false
},
"categories": res.data.data.time,
"series": [{
"name": "调控次数",
"data": res.data.data.count,
"color": "#70A3FC"
}]
}
},{token:user.token,type:'month'})
// 水泵调控统计
myapp.request('/?c=overview&a=getOverviewPumpLine',function(res) {
that.chartsDataLine = {
"categories": res.data.data.time,
"series": [{
"name": "次数",
"data": res.data.data.count,
"color": "#5087EC"
}]
}
},{token:user.token,type:'month'})
}, 1000)
},
methods: {
timeRange: function(tagType) {
// 验证登录信息是否过期
let user = myapp.checkLogin()
let that = this;
switch (tagType) {
case 'm1':
this.colorM1 = 'blue'
this.colorD1 = 'btn-gray'
// 闸门调控统计
myapp.request('/?c=overview&a=getOverviewGateLine',function(res) {
that.chartsDataColumn = {
"legend": {
"show":false
},
"categories": res.data.data.time,
"series": [{
"name": "调控次数",
"data": res.data.data.count,
"color": "#70A3FC"
}]
}
},{token:user.token,type:'month'})
break;
case 'd1':
this.colorM1 = 'btn-gray'
this.colorD1 = 'blue'
// 闸门调控统计
myapp.request('/?c=overview&a=getOverviewGateLine',function(res) {
that.chartsDataColumn = {
"legend": {
"show":false
},
"categories": res.data.data.time,
"series": [{
"name": "调控次数",
"data": res.data.data.count,
"color": "#70A3FC"
}]
}
},{token:user.token,type:'year'})
break;
case 'm2':
this.colorM2 = 'blue'
this.colorD2 = 'btn-gray'
myapp.request('/?c=overview&a=getOverviewPumpLine',function(res) {
that.chartsDataLine = {
"categories": res.data.data.time,
"series": [{
"name": "次数",
"data": res.data.data.count,
"color": "#5087EC"
}]
}
},{token:user.token,type:'month'})
break;
case 'd2':
this.colorM2 = 'btn-gray'
this.colorD2 = 'blue'
myapp.request('/?c=overview&a=getOverviewPumpLine',function(res) {
that.chartsDataLine = {
"categories": res.data.data.time,
"series": [{
"name": "次数",
"data": res.data.data.count,
"color": "#5087EC"
}]
}
},{token:user.token,type:'year'})
break;
}
}
}
}
</script>
<style>
@import '../../../static/style/thorui.css';
page {
background-color: #F5F6FA;
}
.mybox {
display: flex;
flex-direction: column;
justify-content: center;
position: relative;
z-index: 2;
margin-top: 30rpx;
margin-bottom:20rpx;
margin-left:28rpx;
margin-right:28rpx;
background-color:transparent;
}
.mycard {
margin-bottom: 40rpx;
}
.container {
position: relative;
padding-bottom: 100rpx;
}
.top-container {
height: 320rpx;
position: relative;
display: flex;
flex-direction: column;
}
.bg-img {
position: absolute;
width: 100%;
height: 460rpx;
}
.content {
padding-top: 150rpx;
display: flex;
flex-direction: column;
flex: 1;
position:absolute;
top:90rpx;
width:100%
}
.charts-box {
width: 100%;
height: 200px;
background-color: #FFF;
}
.box {
display: flex;
display: -webkit-flex;
justify-content: space-between;
flex-direction: row;
flex-wrap: wrap;
box-sizing: border-box;
border:none;
}
.item {
width: 48%;
padding: 20rpx 0rpx 20rpx 30rpx;
box-sizing: border-box;
border-radius: 8rpx;
color: #fff;
margin-bottom: 30rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
font-size: 30rpx;
margin:0;
background-color:#FFF;
}
.mybtn {
padding:0;
width:10px;
}
.tui-flex-box {
width: 100%;
display: flex;
flex-wrap: wrap;
flex-direction: row-reverse;
justify-content: flex-start;
align-items: flex-start;
margin-bottom: 26rpx;
position: relative;
top:-80rpx;
}
</style>