congming_huose-apk/subpackage/device/rentiredwai/index.vue

363 lines
12 KiB
Vue
Raw Permalink 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="device-detail">
<!-- 自定义导航栏 -->
<view class="tabback">
<view class="rtjt" @click="btnback"></view>
<view class="name">{{ $i18n.t('deviceDetail') }}</view>
<view style="width: 36rpx;"></view>
</view>
<scroll-view style="height: 90vh;" scroll-y refresher-enabled @refresherrefresh="onRefresh" :refresher-triggered="isRefreshing" refresher-default-style="black">
<!-- 头像和扫码按钮悬浮 -->
<view class="avatar-box">
<image class="avatar" :src="xqobj.productPicture || 'https://api.ccttiot.com/smartmeter/img/static/uZiAQwh3lTliRkGXV3R0'" mode="aspectFill"></image>
<view class="scan-btn" @click="btnrdit">
<image src="https://api.ccttiot.com/smartmeter/img/static/uZiAQwh3lTliRkGXV3R0" mode="aspectFill"></image>
</view>
</view>
<!-- 信息列表卡片人体红外数据点 fx/btn/pir/radar/dist/power/wd/sd/bat -->
<view class="info-card">
<!-- 防拆状态 fx0正常 1被拆 -->
<view class="info-item">
<image class="iconfont info-icon" src="https://api.ccttiot.com/smartmeter/img/static/uo5bYrOx2j9XcB93OgnB" mode="aspectFill"></image>
<view class="info-content">
<view class="info-title">{{ $i18n.t('deviceCover') }}</view>
<view class="info-status-row">
<text class="info-status" :class="(xqobj.iotData && xqobj.iotData.fx && xqobj.iotData.fx.value == 1) ? 'red' : ''">{{ (xqobj.iotData && xqobj.iotData.fx && xqobj.iotData.fx.desc != undefined) ? xqobj.iotData.fx.desc : '--' }}</text>
</view>
</view>
<image v-if="xqobj.iotData && xqobj.iotData.fx && xqobj.iotData.fx.value == 1" style="width: 60rpx;height: 60rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uw31nuDEs8OOlS36kYE3" mode=""></image>
<view class="divider"></view>
</view>
<!-- 普通按钮 btn0按下 1未按下 -->
<view class="info-item">
<image class="iconfont info-icon" src="https://api.ccttiot.com/smartmeter/img/static/ukzZfb8DtiZUiftqgoM9" mode="aspectFill"></image>
<view class="info-content">
<view class="info-title">{{ $i18n.t('buttonStatus') }}</view>
<view class="info-status-row">
<text class="info-status">{{ (xqobj.iotData && xqobj.iotData.btn && xqobj.iotData.btn.desc != undefined) ? xqobj.iotData.btn.desc : '--' }}</text>
</view>
</view>
<view class="divider"></view>
</view>
<!-- 红外感应 pir0没人 1有人 -->
<view class="info-item">
<image class="iconfont info-icon" src="https://api.ccttiot.com/smartmeter/img/static/ukzZfb8DtiZUiftqgoM9" mode="aspectFill"></image>
<view class="info-content">
<view class="info-title">{{ $i18n.t('infraredSensor') }}</view>
<view class="info-status-row">
<text class="info-status" :class="(xqobj.iotData && xqobj.iotData.pir && xqobj.iotData.pir.value == 1) ? 'green' : ''">{{ (xqobj.iotData && xqobj.iotData.pir && xqobj.iotData.pir.desc != undefined) ? xqobj.iotData.pir.desc : '--' }}</text>
</view>
</view>
<view class="divider"></view>
</view>
<!-- 雷达目标状态 radar0无目标 1有目标 -->
<view class="info-item">
<image class="iconfont info-icon" src="https://api.ccttiot.com/smartmeter/img/static/u8HbiP9EXs21YZ5g8iK2" mode="aspectFill"></image>
<view class="info-content">
<view class="info-title">{{ $i18n.t('radarTargetState') }}</view>
<view class="info-status-row">
<text class="info-status">{{ (xqobj.iotData && xqobj.iotData.radar && xqobj.iotData.radar.desc != undefined) ? xqobj.iotData.radar.desc : '--' }}</text>
</view>
</view>
<view class="divider"></view>
</view>
<!-- 雷达距离 dist单位 CM -->
<view class="info-item">
<image class="iconfont info-icon" src="https://api.ccttiot.com/smartmeter/img/static/u8HbiP9EXs21YZ5g8iK2" mode="aspectFill"></image>
<view class="info-content">
<view class="info-title">{{ $i18n.t('radarDistance') }}</view>
<view class="info-status-row">
<text class="info-status">{{ (xqobj.iotData && xqobj.iotData.dist && xqobj.iotData.dist.value != undefined) ? xqobj.iotData.dist.value + ' cm' : '--' }}</text>
</view>
</view>
<view class="divider"></view>
</view>
<!-- 雷达能量 power -->
<view class="info-item">
<image class="iconfont info-icon" src="https://api.ccttiot.com/smartmeter/img/static/uHNVHl1QFKt7swCSxCYO" mode="aspectFill"></image>
<view class="info-content">
<view class="info-title">{{ $i18n.t('radarPower') }}</view>
<view class="info-status-row">
<text class="info-status">{{ (xqobj.iotData && xqobj.iotData.power && xqobj.iotData.power.value != undefined) ? xqobj.iotData.power.value : '--' }}</text>
</view>
</view>
<view class="divider"></view>
</view>
<!-- 环境温度 wd -->
<view class="info-item">
<image class="iconfont info-icon" src="https://api.ccttiot.com/smartmeter/img/static/umkBDcKkMqkd6MvEMyMn" mode="aspectFill"></image>
<view class="info-content">
<view class="info-title">{{ $i18n.t('ambientTemperature') }}</view>
<view class="info-status-row">
<text class="info-status">{{ (xqobj.iotData && xqobj.iotData.wd && xqobj.iotData.wd.value != undefined) ? xqobj.iotData.wd.value : '--' }}</text>
</view>
</view>
<view class="divider"></view>
</view>
<!-- 环境湿度 sd -->
<view class="info-item">
<image class="iconfont info-icon" src="https://api.ccttiot.com/smartmeter/img/static/u6q70tcwtAsIxGf8ZGzB" mode="aspectFill"></image>
<view class="info-content">
<view class="info-title">{{ $i18n.t('humidity') }}%</view>
<view class="info-status-row">
<text class="info-status">{{ (xqobj.iotData && xqobj.iotData.sd && xqobj.iotData.sd.value != undefined) ? xqobj.iotData.sd.value : '--' }}</text>
</view>
</view>
<view class="divider"></view>
</view>
<!-- 电池电压 bat -->
<view class="info-item">
<image class="iconfont info-icon" src="https://api.ccttiot.com/smartmeter/img/static/u3kuDU7QtC5DCwxF7OMn" mode="aspectFill"></image>
<view class="info-content">
<view class="info-title">{{ $i18n.t('batteryVoltage') }}</view>
<view class="info-status-row">
<text class="info-status">{{ (xqobj.iotData && xqobj.iotData.bat && xqobj.iotData.bat.value != undefined) ? xqobj.iotData.bat.value + 'V' : '--' }}</text>
</view>
</view>
<view class="divider"></view>
</view>
</view>
<!-- 底部摘要 -->
<view class="device-summary">
<view>{{xqobj.productName || '--'}}{{$i18n.t('deviceModel')}}</view>
<view>{{ $i18n.t('hardware') }} {{ xqobj.hardwareVersion || '--' }}</view>
<view>{{ $i18n.t('firmware') }} {{ xqobj.firmwareVersion || '--' }}</view>
<view>{{$i18n.t('deviceMac')}}{{xqobj.mac || '--'}}</view>
</view>
</scroll-view>
</view>
</template>
<script>
export default {
data() {
return {
id: '',
xqobj: {},
isRefreshing: false,
}
},
onLoad(option) {
this.id = option.id
this.getxq()
},
methods: {
// 下拉刷新
onRefresh() {
this.isRefreshing = true
setTimeout(()=>{
this.isRefreshing = false
this.getxq()
},1000)
},
// 点击进行设备修改
btnrdit(){
uni.navigateTo({
url:'/subpackage/device/rentiredwai/xq'
})
},
// 进行设备详情请求
getxq(){
this.$http.get(`/bst/device/detail?id=${this.id}`).then(res => {
if(res.code == 200){
this.xqobj = res.data
}
})
},
// 点击返回上一级
btnback(){
uni.navigateBack()
}
}
}
</script>
<style scoped lang="less">
.tabback {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 160rpx;
padding: 0 20rpx;
padding-top: 80rpx;
box-sizing: border-box;
position: fixed;
top: 0;
left: 0;
z-index: 999 !important;
background-color: #fff;
.rtjt {
font-size: 36rpx;
}
}
.device-detail {
padding-top: 150rpx;
background-color: #F3F5F6;
}
.onebox {
width: 750rpx;
height: 288rpx;
background: #FFFFFF;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin-top: 32rpx;
.devicename {
padding: 24rpx 32rpx;
box-sizing: border-box;
border-bottom: 1px solid #D8D8D8;
.xi {
font-size: 28rpx;
color: #7F7F7F;
}
.cu {
font-size: 32rpx;
color: #3D3D3D;
margin-top: 10rpx;
border-bottom: 1px solid #D8D8D8;
padding-bottom: 18rpx;
box-sizing: border-box;
}
}
.room {
padding: 18rpx 32rpx;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 18rpx;
.lt {
.xi {
font-size: 28rpx;
color: #7F7F7F;
}
.cu {
font-size: 32rpx;
color: #3D3D3D;
margin-top: 10rpx;
}
}
.rt {
image {
width: 28rpx;
height: 42rpx;
}
}
}
}
.avatar-box {
position: relative;
display: flex;
justify-content: center;
margin-top: 60rpx;
padding-bottom: 74rpx;
border-bottom: 1rpx solid #f2f2f2;
.avatar {
width: 278rpx;
height: 278rpx;
background: #e0e0e0;
border-radius: 24rpx;
box-shadow: 0 2rpx 8rpx #eee;
}
.scan-btn {
image{
width: 48rpx;
height: 48rpx;
}
position: absolute;
right: 26rpx;
top: -36rpx;
width: 48rpx;
height: 48rpx;
background: #fff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
box-shadow: 0 2rpx 8rpx #eee;
border: 1rpx solid #eee;
}
}
.info-card {
background: #fff;
.info-item {
display: flex;
align-items: flex-start;
padding: 0 24rpx 0 32rpx;
position: relative;
min-height: 80rpx;
image{
width: 50rpx;
height: 50rpx;
margin-top: 30rpx;
}
.info-icon {
font-family: 'iconfont' !important;
font-size: 32rpx;
margin-right: 18rpx;
color: #222;
line-height: 80rpx;
}
.info-content {
flex: 1;
padding: 18rpx 0;
.info-title {
font-size: 28rpx;
color: #333;
font-weight: 500;
}
.info-status-row {
display: flex;
align-items: center;
margin-top: 6rpx;
min-height: 32rpx;
.info-status {
font-size: 26rpx;
color: #666;
&.red {
color: #e74c3c;
}
&.green {
color: #27ae60;
}
}
.signal-bar {
display: flex;
align-items: center;
.signal-block {
width: 62rpx;
height: 6rpx;
margin-right: 6rpx;
border-radius: 2rpx;
background: #e0e0e0;
&.active {
background: #4cd964;
}
}
}
}
}
.divider {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 1rpx;
background: #f2f2f2;
}
}
}
.device-summary {
background: #f7f7f7;
text-align: center;
color: #888;
font-size: 24rpx;
line-height: 1.8;
border-radius: 0 0 20rpx 20rpx;
padding-top: 40rpx;
box-sizing: border-box;
padding-bottom: 30rpx;
}
</style>