cbsl-app/pages/homeIndex/skWarn.vue

192 lines
4.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="info_24">
<div class="heart">
<p class="title">
<span class="line"></span><span class="h4">实时汛情</span>
</p>
<div>{{ tm }}</div>
</div>
<div class="chartChange fl">
<div class="tabItem tabLf" :class="{ bgBlue: tabKey === 1 }" @click="tabChange(1)">
<div class="tabNum">131</div>
<div class="tabText">水库</div>
</div>
<!-- <div class="borderLine"></div> -->
<div class="tabItem tabRf" :class="{ bgYellow: tabKey === 2 }" @click="tabChange(2)">
<div class="tabNum">9</div>
<div class="tabText">超汛限</div>
</div>
</div>
<qiun-data-charts type="column" :opts="opts" :chartData="echartsOptios" />
</view>
</template>
<script>
import moment from "moment";
export default {
data() {
return {
tm:null,
tabOptions:['水库', '超汛限水库'],
tabKey:1,
opts:{
update: true,
color: ["#6e93f2","#efa161"],
padding: [15,15,0,5],
enableScroll: false,
legend: {
show:false,
},
xAxis: {
disableGrid: true
},
yAxis: {
showTitle: true,
data: [
{
position: "left",
title: "座",
titleOffsetX: -10, // 向左偏移 10px
titleOffsetY: -5, // 向上偏移 5px
min: 0,
}
]
},
extra: {
column: {
type: "group",
width: 30,
activeBgColor: "#000000",
activeBgOpacity: 0.08
}
}
},
data: [],
loading:false,
tm:null,
};
},
computed: {
echartsOptios() {
let res = {
categories: this.data.map(i=>i.type),
series: [
{
name: "水库",
show: this.tabKey===1?true:false,
data: this.data.map(i=>i.sk)
},
{
name: "超汛限水库",
show: this.tabKey===2?true:false,
data: this.data.map(i=>i.cxx)
}
]
};
return JSON.parse(JSON.stringify(res));
},
},
methods: {
async getData() {
this.loading = true
try {
// const res = await uni.$http.post("/gunshiApp/xfflood/weather/area", { tm });
this.data = [
{ type:'大(1)型',sk:4,cxx:0 },
{ type:'大(2)型',sk:2,cxx:1 },
{ type:'中型',sk:7,cxx:0 },
{ type:'小(1)型',sk:31,cxx:3 },
{ type:'小(2)型',sk:22,cxx:1 },
];
this.loading = false
} catch (e) {
uni.$showMsg();
}
},
tabChange(val) {
this.tabKey = val
},
getDataTime() {
this.tm = moment().format("YYYY-MM-DD HH");
},
},
// 在组件实例被创建后立即调用。此时可以访问到 data 和 methods但模板还未被渲染成 HTML$el 属性不可用。适合做数据初始化
created() {
this.getDataTime();
this.getData()
},
};
</script>
<style lang="scss" scoped>
.info_24 {
padding: 15px;
background-color: #fff;
margin-bottom: 12rpx;
box-shadow: 0px 0px 5px #eee;
}
.heart {
display: flex;
justify-content: space-between;
align-items: center;
}
.fl {
display: flex;
justify-content: center;
align-items: center;
}
.title .line {
border: 2px solid #3380ff;
border-radius: 3rpx;
margin-right: 20rpx;
}
.title .h4 {
font-weight: 400;
font-size: 32rpx;
color: #121b3d;
}
.chartChange {
text-align: center;
margin: 16rpx 0;
}
.tabItem{
width: 200px;
padding: 5px 0;
border: 1px solid #eee;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.tabLf{
border-right: 0;
}
.tabRf{
border-left: 0;
}
.bgBlue{
border: 1px solid #6e93f2;
color: #6e93f2;
}
.bgYellow{
border: 1px solid #efa161;
color: #efa161;
}
.tabNum{
padding: 3px 0;
font-size: 14px;
line-height: 14px;
font-weight: 800;
}
.tabText{
padding: 3px 0;
font-size: 14px;
line-height: 14px;
font-weight: 600;
}
</style>