农产品信息智能推荐平台(14)
可视化大屏(6)
降雨气温对比。
对于这一部分,想到的是在降雨和气温方面进行两年的对比,得到其变化率。
效果如图:
以降雨为例,代码如下:
<template>
<div id="centerRight1">
<div class="bg-color-black">
<div class="d-flex pt-2 pl-2">
<span style="color:#5cd9e8">
<icon name="chart-line"></icon>
</span>
<div class="d-flex">
<span class="fs-xl text mx-2">降雨变化率</span>
</div>
</div>
<div class="d-flex jc-center body-box" v-if="jiazai">
<dv-scroll-board :config="config" style="width:4rem;height:4.28rem" />
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
jiazai:false,
city:[],
shuju1:[],
shuju2:[],
zengliang:[],
option2:[],
option3:[],
options:[],
config: {
header: ["城市", "总降雨量", "变化率"],
data: [],
rowNum: 7, //表格行数
headerHeight: 35,
headerBGC: "#0f1325", //表头
oddRowBGC: "#0f1325", //奇数行
evenRowBGC: "#171c33", //偶数行
index: true,
columnWidth: [60],
align: ["center"]
}
};
},
components: {},
created() {
this.$axios.get("/citycrop/city").then(res => {
console.log(res)
this.city = res.data.city
for (let i = 0, len = this.city.length; i < len; i++) {
var name = 'city'
var all = 'year'
var obj1 = {}
obj1[name] = this.city[i]
obj1[all] = 2019
console.log(obj1)
this.option2.push(
obj1
)
}
for (let i = 0, len = this.option2.length; i < len; i++) {
this.$axios.post("/cityclimate/rain", this.option2[i]).then(res4 => {
// this.options = res4.data.rain
var rain = res4.data.rain
var all_rain = 0
for (let j = 0, len = rain.length; j < len; j++) {
all_rain = all_rain + rain[j]
}
this.shuju1.push(all_rain)
})
}
for (let i = 0, len = this.city.length; i < len; i++){
var name2 = 'city'
var all2 = 'year'
var obj2 = {}
obj2[name2] = this.city[i]
obj2[all2] = 2018
console.log(obj2)
this.option3.push(
obj2
)
}
for (let i = 0, len = this.option3.length; i < len; i++) {
this.$axios.post("/cityclimate/rain", this.option3[i]).then(res2 => {
var rain = res2.data.rain
var all_rain = 0
for (let j = 0, len = rain.length; j < len; j++) {
all_rain = all_rain + rain[j]
}
this.shuju2.push(all_rain)
})
}
})
},
mounted() {
var that=this
setTimeout(function(){that.getdata()},15000)
},
methods: {
getdata(){
for (let j = 0, len = this.shuju1.length; j < len; j++){
if(this.shuju1[j]>this.shuju2[j]) {
this.zengliang.push("<span class='colorGrass'>↑"+((this.shuju2[j]-this.shuju1[j])/this.shuju2[j]).toString().slice(0,3)+"%</span>")}
else {
this.zengliang.push("<span class='colorRed'>↓"+((this.shuju2[j]-this.shuju1[j])/this.shuju2[j]).toString().slice(0,3)+"%</span>")}
}
for (let i = 0, len = this.shuju1.length; i < len; i++){
this.options=[]
this.options.push(this.city[i],this.shuju1[i].toString().slice(0,5),this.zengliang[i])
this.config.data.push(this.options)
}
var that=this
setTimeout(function (){that.jiazai=true},5000)
}
}
};
</script>
<style lang="scss">
#centerRight1 {
padding: 0.2rem;
height: 5.125rem;
min-width: 3.75rem;
border-radius: 0.0625rem;
.bg-color-black {
height: 4.8125rem;
border-radius: 0.125rem;
}
.text {
color: #c3cbde;
}
.body-box {
border-radius: 0.125rem;
overflow: hidden;
}
}
</style>