2024-10-10 17:03:59 +08:00
|
|
|
|
<template>
|
|
|
|
|
<view class="page">
|
|
|
|
|
<u-navbar is-back="false" title="历史走势" :border-bottom="false" :background="bgc" title-color='#000'
|
|
|
|
|
title-size='36' :title-bold='true' height='45' id="navbar">
|
|
|
|
|
</u-navbar>
|
|
|
|
|
<view class="echarts_box">
|
|
|
|
|
<view class="echarts_top">
|
|
|
|
|
<view class="top_left">
|
|
|
|
|
重量
|
|
|
|
|
<image style="width: 28rpx;height: 33rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uk7CvwzeU0ukxvS9cBtD" mode=""></image>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="top_cont">
|
|
|
|
|
最近30日
|
|
|
|
|
</view>
|
|
|
|
|
<view class="top_right">
|
|
|
|
|
<view style="width: 1rpx;">
|
|
|
|
|
</view>
|
|
|
|
|
<view class="txt">
|
|
|
|
|
<!-- 历史走势<view class="iconfont icon-xiangyou1"></view> -->
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="echarts">
|
|
|
|
|
<uni-ec-canvas class="uni-ec-canvas" id="uni-ec-canvas" ref="canvas3" canvas-id="uni-ec-canvas"
|
|
|
|
|
:ec="ec">
|
|
|
|
|
</uni-ec-canvas>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="echarts_box">
|
|
|
|
|
<view class="echarts_top">
|
|
|
|
|
<view class="top_left">
|
|
|
|
|
进出量
|
|
|
|
|
<image style="width: 33rpx;height: 33rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uhsU6Y1K35jxA4aRauzy" mode=""></image>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="top_cont">
|
|
|
|
|
最近30日
|
|
|
|
|
</view>
|
|
|
|
|
<view class="top_right">
|
|
|
|
|
<view style="width: 1rpx;">
|
|
|
|
|
</view>
|
|
|
|
|
<view class="txt">
|
|
|
|
|
<!-- 历史走势<view class="iconfont icon-xiangyou1"></view> -->
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="echarts">
|
|
|
|
|
<uni-ec-canvas class="uni-ec-canvas" id="uni-ec-canvas" ref="canvas4" canvas-id="uni-ec-canvas"
|
|
|
|
|
:ec="ec">
|
|
|
|
|
</uni-ec-canvas>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
<script>
|
|
|
|
|
import uniEcCanvas from '@/components/uni-ec-canvas/uni-ec-canvas.vue'
|
|
|
|
|
import * as echarts from '@/components/uni-ec-canvas/echarts'
|
|
|
|
|
let chart = null
|
|
|
|
|
export default {
|
|
|
|
|
components: {
|
|
|
|
|
uniEcCanvas
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
bgc: {
|
|
|
|
|
backgroundColor: " #F4FAF8",
|
|
|
|
|
},
|
|
|
|
|
ec: {
|
|
|
|
|
lazyLoad: true
|
|
|
|
|
},
|
|
|
|
|
chartday: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
|
|
|
|
|
chartData: [120, 200, 150, 80, 70, 110, 130],
|
|
|
|
|
chartData1: [],
|
|
|
|
|
chartData2: [],
|
|
|
|
|
chartData3: [],
|
|
|
|
|
chartData4: [],
|
|
|
|
|
chartData5: [],
|
|
|
|
|
chartData6: [],
|
|
|
|
|
chartData7: [],
|
|
|
|
|
chartData8: [],
|
|
|
|
|
yeartime: {
|
|
|
|
|
year: '',
|
|
|
|
|
month: '',
|
|
|
|
|
day: ''
|
|
|
|
|
},
|
|
|
|
|
yeartimes: {
|
|
|
|
|
year: '',
|
|
|
|
|
month: '',
|
|
|
|
|
day: ''
|
|
|
|
|
},
|
|
|
|
|
num:'',
|
|
|
|
|
beehiveId:'',
|
|
|
|
|
modelTags:[],
|
|
|
|
|
|
|
|
|
|
height:false,
|
|
|
|
|
io:false,
|
|
|
|
|
xnwd:false,
|
|
|
|
|
xnsd:false,
|
|
|
|
|
sypl:false,
|
|
|
|
|
eyht:false,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onLoad(option) {
|
|
|
|
|
this.beehiveId = option.beehiveId
|
|
|
|
|
},
|
|
|
|
|
onShow() {
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
this.$refs.canvas3.init(this.initChart3)
|
|
|
|
|
this.$refs.canvas4.init(this.initChart4)
|
|
|
|
|
}, 1000)
|
|
|
|
|
let now = new Date();
|
|
|
|
|
let previousDay = new Date(now)
|
|
|
|
|
this.yeartime.year = now.getFullYear()
|
|
|
|
|
this.yeartime.month = String(previousDay.getMonth() + 1).padStart(2, '0')
|
|
|
|
|
this.yeartime.day = String(now.getDate()).padStart(2, '0')
|
|
|
|
|
previousDay.setDate(now.getDate() - 30)
|
|
|
|
|
this.yeartimes.year = previousDay.getFullYear()
|
|
|
|
|
this.yeartimes.month = String(previousDay.getMonth() + 1).padStart(2, '0')
|
|
|
|
|
this.yeartimes.day = String(previousDay.getDate()).padStart(2, '0')
|
|
|
|
|
this.getchartData3()
|
|
|
|
|
this.getchartData4()
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
// 重量图表
|
|
|
|
|
getchartData3() {
|
|
|
|
|
let time = this.yeartime.year + '-' + this.yeartime.month + '-' + this.yeartime.day
|
|
|
|
|
let times = this.yeartimes.year + '-' + this.yeartimes.month + '-' + this.yeartimes.day
|
|
|
|
|
this.$u.get(`/farmer/report/weightDay?dateRange=${times},${time}&apiaryId=${this.beehiveId}`).then(
|
|
|
|
|
res => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
this.chartData3 = res.data.map(item => item.value)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// 进出量图表
|
|
|
|
|
getchartData4() {
|
|
|
|
|
let time = this.yeartime.year + '-' + this.yeartime.month + '-' + this.yeartime.day
|
|
|
|
|
let times = this.yeartimes.year + '-' + this.yeartimes.month + '-' + this.yeartimes.day
|
|
|
|
|
this.$u.get(`/farmer/report/ioCount?dateRange=${times},${time}&apiaryId=${this.beehiveId}`).then(res => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
this.chartData4 = res.data.map(item => item.value)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-11-18 18:01:16 +08:00
|
|
|
|
//重量图表
|
2024-10-10 17:03:59 +08:00
|
|
|
|
initChart3(canvas, width, height, canvasDpr) {
|
|
|
|
|
let that = this
|
|
|
|
|
const option = {
|
|
|
|
|
grid: {
|
|
|
|
|
left: '4%',
|
|
|
|
|
right: '4%',
|
|
|
|
|
bottom: '3%',
|
|
|
|
|
top: '4%',
|
|
|
|
|
containLabel: true
|
|
|
|
|
},
|
|
|
|
|
xAxis: {
|
|
|
|
|
show: true,
|
|
|
|
|
type: 'category',
|
|
|
|
|
boundaryGap: false,
|
|
|
|
|
axisLine: {
|
|
|
|
|
show: false // 隐藏X轴线
|
|
|
|
|
},
|
|
|
|
|
axisTick: {
|
|
|
|
|
show: false // 隐藏X轴刻度
|
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: false // 隐藏X轴标签
|
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: true,
|
|
|
|
|
color: '#ccc',
|
|
|
|
|
fontSize: 11,
|
|
|
|
|
rotate: 0,
|
|
|
|
|
},
|
|
|
|
|
splitLine: {
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
// data: that.chartday,
|
|
|
|
|
},
|
|
|
|
|
yAxis: {
|
|
|
|
|
show: true,
|
|
|
|
|
axisLine: {
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
axisTick: {
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: true,
|
|
|
|
|
color: '#ccc',
|
|
|
|
|
fontSize: 11,
|
|
|
|
|
formatter: function(value) {
|
|
|
|
|
// 保留两位小数,没有小数时显示00
|
|
|
|
|
return (value / 1000).toFixed(1) + 'Kg'
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
splitLine: {
|
|
|
|
|
show: true, // 显示X轴网格线
|
|
|
|
|
lineStyle: {
|
|
|
|
|
type: 'dashed', // 设置网格线为虚线
|
|
|
|
|
color: '#ccc', // 可以设置虚线的颜色
|
|
|
|
|
width: 1 // 可以设置虚线的宽度
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
visualMap: {
|
|
|
|
|
type: 'piecewise',
|
|
|
|
|
show: false,
|
|
|
|
|
dimension: 0,
|
|
|
|
|
seriesIndex: 0,
|
|
|
|
|
pieces: [{
|
|
|
|
|
gt: 1,
|
|
|
|
|
lt: 3,
|
|
|
|
|
color: 'RGBA(255, 241, 201, 1)',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
gt: 5,
|
|
|
|
|
lt: 7,
|
|
|
|
|
color: 'RGBA(255, 241, 201, 1)',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
series: [{
|
|
|
|
|
type: 'line',
|
|
|
|
|
smooth: 0.6,
|
|
|
|
|
symbol: 'none',
|
|
|
|
|
lineStyle: {
|
|
|
|
|
color: '#FFE28C',
|
2024-12-03 17:35:37 +08:00
|
|
|
|
width: 1,
|
2024-10-10 17:03:59 +08:00
|
|
|
|
},
|
|
|
|
|
areaStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
|
|
|
|
|
offset: 0,
|
|
|
|
|
color: '#FFF1C9'
|
|
|
|
|
}, ]),
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
data: that.chartData3,
|
|
|
|
|
}],
|
2025-02-21 13:45:15 +08:00
|
|
|
|
}
|
2024-10-10 17:03:59 +08:00
|
|
|
|
chart = echarts.init(canvas, null, {
|
|
|
|
|
width: width,
|
|
|
|
|
height: height,
|
|
|
|
|
devicePixelRatio: canvasDpr
|
|
|
|
|
})
|
|
|
|
|
option.series[0].data = that.chartData3
|
|
|
|
|
canvas.setChart(chart)
|
|
|
|
|
chart.setOption(option)
|
|
|
|
|
return chart
|
|
|
|
|
},
|
2024-11-18 18:01:16 +08:00
|
|
|
|
// 进出量图表
|
2024-10-10 17:03:59 +08:00
|
|
|
|
initChart4(canvas, width, height, canvasDpr) {
|
|
|
|
|
let that = this
|
|
|
|
|
const option = {
|
|
|
|
|
grid: {
|
|
|
|
|
left: '4%',
|
|
|
|
|
right: '4%',
|
|
|
|
|
bottom: '3%',
|
|
|
|
|
top: '4%',
|
|
|
|
|
containLabel: true
|
|
|
|
|
},
|
|
|
|
|
xAxis: {
|
|
|
|
|
show: true,
|
|
|
|
|
type: 'category',
|
|
|
|
|
boundaryGap: false,
|
|
|
|
|
axisLine: {
|
|
|
|
|
show: false // 隐藏X轴线
|
|
|
|
|
},
|
|
|
|
|
axisTick: {
|
|
|
|
|
show: false // 隐藏X轴刻度
|
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: false // 隐藏X轴标签
|
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: true,
|
|
|
|
|
color: '#ccc',
|
|
|
|
|
fontSize: 11,
|
|
|
|
|
rotate: 0,
|
|
|
|
|
},
|
|
|
|
|
splitLine: {
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
// data: that.chartday,
|
|
|
|
|
},
|
|
|
|
|
yAxis: {
|
|
|
|
|
show: true,
|
|
|
|
|
axisLine: {
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
axisTick: {
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: true,
|
|
|
|
|
color: '#ccc',
|
|
|
|
|
fontSize: 11,
|
|
|
|
|
formatter: function(value) {
|
|
|
|
|
// 保留两位小数,没有小数时显示00
|
|
|
|
|
return Math.ceil(value) + '只'
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
splitLine: {
|
|
|
|
|
show: true, // 显示X轴网格线
|
|
|
|
|
lineStyle: {
|
|
|
|
|
type: 'dashed', // 设置网格线为虚线
|
|
|
|
|
color: '#ccc', // 可以设置虚线的颜色
|
|
|
|
|
width: 1 // 可以设置虚线的宽度
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
visualMap: {
|
|
|
|
|
type: 'piecewise',
|
|
|
|
|
show: false,
|
|
|
|
|
dimension: 0,
|
|
|
|
|
seriesIndex: 0,
|
|
|
|
|
pieces: [{
|
|
|
|
|
gt: 1,
|
|
|
|
|
lt: 3,
|
|
|
|
|
color: 'RGBA(255, 241, 201, 1)',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
gt: 5,
|
|
|
|
|
lt: 7,
|
|
|
|
|
color: 'RGBA(255, 241, 201, 1)',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
series: [{
|
|
|
|
|
type: 'line',
|
|
|
|
|
smooth: 0.6,
|
|
|
|
|
symbol: 'none',
|
|
|
|
|
lineStyle: {
|
|
|
|
|
color: '#FFE28C',
|
2024-12-03 17:35:37 +08:00
|
|
|
|
width: 1,
|
2024-10-10 17:03:59 +08:00
|
|
|
|
},
|
|
|
|
|
areaStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
|
|
|
|
|
offset: 0,
|
|
|
|
|
color: '#FFF1C9'
|
|
|
|
|
}, ]),
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
data: that.chartData4,
|
|
|
|
|
}],
|
2025-02-21 13:45:15 +08:00
|
|
|
|
}
|
2024-10-10 17:03:59 +08:00
|
|
|
|
chart = echarts.init(canvas, null, {
|
|
|
|
|
width: width,
|
|
|
|
|
height: height,
|
|
|
|
|
devicePixelRatio: canvasDpr
|
|
|
|
|
})
|
|
|
|
|
option.series[0].data = that.chartData4
|
|
|
|
|
canvas.setChart(chart)
|
|
|
|
|
chart.setOption(option)
|
|
|
|
|
return chart
|
2025-02-21 13:45:15 +08:00
|
|
|
|
},
|
2024-10-10 17:03:59 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
page {
|
|
|
|
|
background-color: #FAFDFD;
|
|
|
|
|
}
|
|
|
|
|
.input-placeholder{
|
|
|
|
|
color: red;
|
|
|
|
|
}
|
|
|
|
|
.page {
|
|
|
|
|
width: 750rpx;
|
|
|
|
|
padding: 38rpx;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
.echarts_box {
|
|
|
|
|
margin-top: 26rpx;
|
|
|
|
|
padding: 18rpx 36rpx;
|
|
|
|
|
width: 674rpx;
|
|
|
|
|
background: #FFFFFF;
|
|
|
|
|
box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0, 0, 0, 0.15);
|
|
|
|
|
border-radius: 28rpx 28rpx 28rpx 28rpx;
|
|
|
|
|
.echarts {
|
|
|
|
|
margin-top: 24rpx;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 330rpx;
|
|
|
|
|
}
|
|
|
|
|
.echarts_top {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
.top_left {
|
|
|
|
|
width: 38.33%;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
|
color: #3D3D3D;
|
|
|
|
|
padding-left: 24rpx;
|
|
|
|
|
image {
|
|
|
|
|
margin-left: 10rpx;
|
|
|
|
|
width: 25.03rpx;
|
|
|
|
|
height: 34rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.top_cont {
|
|
|
|
|
width: 33.33%;
|
|
|
|
|
text-align: center;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
|
color: #3D3D3D;
|
|
|
|
|
}
|
|
|
|
|
.top_right {
|
|
|
|
|
width: 33.33%;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
.txt {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-wrap: nowrap;
|
|
|
|
|
margin-left: auto;
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
font-size: 32rpx;
|
|
|
|
|
color: #4D4D4D;
|
|
|
|
|
.icon-xiangyou1 {
|
|
|
|
|
margin-top: 4rpx;
|
|
|
|
|
margin-left: 8rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|