mkm
/
yanzhiAPP
Template
2
0
Fork 0
yanzhiAPP/pages/index1/index.vue

323 lines
6.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="content">
<view style="height: var(--status-bar-height)"></view>
<view class="" style="display: flex;align-items: center;font-size: 33.29rpx;margin-bottom: 20rpx;">
<u--image @tap="backFn" src="/static/img/FH.png" width="50.82rpx" height="50.82rpx" alt=""></u--image>
<text>生态概况</text>
</view>
<view class="head-img">
<view class="">
<u--image src="/static/img/GJ.jpg" width="693.93rpx" height=" 394.28rpx" alt=""></u--image>
</view>
<!-- <u--image :showLoading="true" :src="src" width="80px" height="80px" @click="click"></u--image> -->
<view class="poisition">
<view style="display: flex;">
<u--image src="/static/img/dw.png" style="margin: 0 5rpx;" width="35.05rpx"
height="35.05rpx"></u--image>
分水岭大南山北326米
</view>
</view>
</view>
<view class="bad-info">
<!-- <view class="tit" @tap="test">
异常信息 1
</view>
<view class="bad-info-cont">
<u--image :src="urlFn('badinfo')" style="margin: 0 21rpx;" width="80rpx" height="80rpx"></u--image>
<view class="">
<view class="">
土壤温度过低
</view>
<view class="" style="color: #0095FF;font-size: 22.78rpx;margin-top: 5rpx;">
低于预警值得5%
</view>
</view>
</view> -->
</view>
<view class="data">
<view class="tit">
<view class="data-alanys" @tap="navto">
<!-- <img :src="urlFn('sjfx')" :style="img(191,63,0)" alt=""> -->
<u--image :src="urlFn('sjfx')" style="margin: 0 5rpx;" width="191rpx" height="63rpx"></u--image>
</view>
<view class="">
环境数据
</view>
<view class="tit-b">
<!-- <img :src="urlFn('sj')" :style="img(28.04,28.04,5)" alt=""> -->
<u--image :src="urlFn('sj')" style="margin: 0 5rpx;" width="28.04rpx" height="28.04rpx"></u--image>
<text>刷新时间:{{dateFn()}}</text>
</view>
</view>
<view class="data-cont">
<view class="data-cont-li center" v-for="(item,index) in data " :key="index">
<view style="margin:0 20rpx">
<view class="center">
<!-- <img :src="urlFn('B')" :style="img(38.55,38.55,5)" alt=""> -->
<u--image :src="urlFn(item.icon)" style="margin: 0 5rpx;" width="38.55rpx"
height="38.54rpx"></u--image>
{{item.tit}}
</view>
<view class="b-cls">
<view class="" :style="{color:item.flag?'#0095FF':''}">
<text style=" font-size: 70.09rpx;">
{{baseData[item.cont]}}
</text>{{item.dw}}
</view>
<view class="" style="display: flex;align-items: center;" v-if="item.flag">
<u--image :src="urlFn('D')" style="margin: 0 5rpx;" width="31.54rpx" height="31.54rpx">
</u--image>
<text style="color: #0095FF;">5</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="data">
<view class="tit">
<view class="">
设备状态
</view>
</view>
<view class="data-cont">
<view class="data-cont-li center" v-for="item in data2">
<view style="margin:0 20rpx">
<view class="center">
{{item.cont}}
</view>
<view class="">
<text style="font-size: 70.09rpx;color: #4CC593;">开</text>
<text style="margin-left: 20rpx;font-size: 26.29rpx;">({{item.cont2}})</text>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
companyMine
} from "@/api/test.js"
export default {
data() {
return {
// title: 'Hello'
data: [{
tit: "土壤温度",
icon: 'TRWD',
dw: "℃",
cont: 'soil_temperature',
flag: false,
}, {
tit: "土壤湿度",
icon: 'TRSD',
dw: "%RH",
cont: 'soil_moisture',
}, {
tit: "风向",
icon: 'FX',
cont: 'wind_direction',
}, {
tit: "风速",
icon: 'FS',
dw: "m/s",
cont: 'wind_speed',
}, {
tit: "降雨量",
icon: 'JYL',
dw: "mm",
cont: 'rainfall',
}, {
tit: "光照",
icon: 'GZ',
dw: "Wlux",
cont: 'illumination',
}, {
tit: "二氧化碳",
icon: 'EYHT',
dw: "ppm",
cont: 'carbon_dioxide_content',
},
],
data2: [{
cont: "气象多要素百叶箱",
cont2: "1天/1次",
}, {
cont: "多功能控制器",
cont2: "3个小时/次",
}, ],
baseData: {
}
}
},
onShow() {
companyMine({
id: 1,
flag: 1
}).then(res => {
this.baseData = res.data
// console.log(res)
})
},
onPullDownRefresh() {
setTimeout(() => {
uni.stopPullDownRefresh()
}, 500)
},
methods: {
dateFn() {
var today = new Date();
// 获取年、月、日
var year = today.getFullYear();
var month = today.getMonth() + 1; // 月份从0开始需要加1
var day = today.getDate();
// 构建日期字符串
var dateStr = year + '-' + month + '-' + day;
return dateStr
// 输出日期字符串
},
backFn() {
uni.navigateBack()
},
test() {
companyMine()
},
urlFn(name) {
return `/static/img/${name}.png`
},
img(w, h, m) {
return `width:${w}rpx;height:${h};margin:0 ${m}rpx `
},
navto() {
uni.navigateTo({
url: '/pages/index2/index'
})
}
}
}
</script>
<style lang="scss" scoped>
.content {
padding: 30rpx;
// background-color: grey;
background-image: url("/static/img/bgc.png");
background-size: cover;
}
.head-img {
border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx;
margin: 0 auto;
position: relative;
.poisition {
opacity: 0.7;
position: absolute;
width: 380.26rpx;
height: 71rpx;
background-color: #FFFFFF;
left: 43rpx;
bottom: 36rpx;
border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx;
display: flex;
align-items: center;
font-size: 29.79rpx;
.dw-cls {
margin: 0 5rpx;
}
}
}
.bad-info {
margin: 20rpx 0;
width: 693.93rpx;
.tit {
margin: 20rpx 0;
}
.bad-info-cont {
background-color: white;
display: flex;
// padding: 20rpx;
height: 140.19rpx;
border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx;
align-items: center;
}
}
.data {
.tit {
.tit-b {
color: #B3B3B3;
font-size: 26.29rpx;
display: flex;
align-items: center;
}
}
.data-alanys {
// background-color: blue;
float: right;
color: white;
}
.data-cont {
// margin: 20rpx;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 30rpx;
box-sizing: border-box;
// padding: 70rpx;
.data-cont-li {
border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx;
width: 310.94rpx;
height: 212.03rpx;
background-color: white;
margin-bottom: 20rpx;
}
}
}
.center {
display: flex;
align-items: center;
}
.b-cls {
display: flex;
align-items: flex-end;
width: 250rpx;
justify-content: space-between;
color: #4CC593;
}
</style>