| | |
| | | <script setup> |
| | | import{ onLoad } from '@dcloudio/uni-app' |
| | | import{ ref,onMounted } from 'vue' |
| | | import{ getFacilityApi,closeFacilityApi,openFacilityApi } from '../../api/index.js' |
| | | const facilityList = ref([]) |
| | | const facilityControl = ref({ |
| | | saleOpen:false, |
| | | productionOpen:false, |
| | | temperatureOpen:false, |
| | | totalOpen:false, |
| | | }) |
| | | let facilityCode |
| | | let facilityOnLine |
| | | async function getFalicityDetail(){ |
| | | await getFacilityApi(facilityId).then((res) =>{ |
| | | if(res.code == 200){ |
| | | facilityCode = res.data.facilityCode |
| | | facilityOnLine = res.data.onLineState |
| | | facilityList.value = [] |
| | | facilityList.value.push({name:'设备编号:',value:res.data.facilityCode}) |
| | | facilityList.value.push({name:'设备名称:',value:res.data.facilityName}) |
| | | facilityList.value.push({name:'在线状态:',value:res.data.onLineState == 1 ? '在线' : (res.data.onLineState == 0 ? '离线' : '')}) |
| | | facilityList.value.push({name:'设备供应商:',value:res.data.supplier}) |
| | | facilityList.value.push({name:'安装日期:',value:res.data.installDate}) |
| | | |
| | | facilityControl.value.saleOpen = res.data.saleOpen == 1 ? true : false |
| | | facilityControl.value.productionOpen = res.data.productionOpen == 1 ? true : false |
| | | facilityControl.value.temperatureOpen = res.data.temperatureOpen == 1 ? true : false |
| | | } |
| | | }) |
| | | } |
| | | function navTo(){ |
| | | uni.navigateTo({ |
| | | url:`/pagesAdmin/adminPlatform/params?id=${facilityId}` |
| | | }) |
| | | } |
| | | //设备开关操作相关 |
| | | //操作类型(售水开关:01开 02关,制水开关:03开 04关,温控开关:05开 06关,设备开关机:07开 08关-设备开关机代表设备完全开关机,相当于售水、制水、温控全开或全关) |
| | | async function handelControl(status,name){ |
| | | if(facilityOnLine == 0){ |
| | | uni.showToast({ |
| | | title:'离线,无法操作', |
| | | icon:'none' |
| | | }) |
| | | return |
| | | } |
| | | let textInfo |
| | | if(name == 'totalOnOff'){ |
| | | textInfo = status === false ? '确认关闭设备全部状态?':'确认开启设备全部状态?' |
| | | }else{ |
| | | textInfo = status === true ? '确认关闭状态?':'确认开启状态?' |
| | | } |
| | | |
| | | uni.showModal({ |
| | | title:'提示', |
| | | content:textInfo, |
| | | success:(res) =>{ |
| | | if(res.confirm){ |
| | | |
| | | async function handelOpen(setStatus){ |
| | | await openFacilityApi({data:setStatus,sn:facilityCode}).then((res) =>{ |
| | | if(res.code == 200){ |
| | | setTimeout(async() => { |
| | | await getFalicityDetail() |
| | | }, 4000); |
| | | uni.showToast({ |
| | | title:'成功!三秒刷新' |
| | | }) |
| | | }else{ |
| | | uni.showToast({ |
| | | title:'操作失败!', |
| | | icon:'none' |
| | | |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | async function handelClose(setStatus){ |
| | | await closeFacilityApi({data:setStatus,sn:facilityCode}).then((res) =>{ |
| | | if(res.code == 200){ |
| | | setTimeout(async() => { |
| | | await getFalicityDetail() |
| | | }, 4000); |
| | | uni.showToast({ |
| | | title:'成功!三秒刷新' |
| | | }) |
| | | }else{ |
| | | uni.showToast({ |
| | | title:'操作失败!', |
| | | icon:'none' |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | switch(name){ |
| | | case 'saleOpen': |
| | | status == true ? handelClose('02') : handelOpen('01'); |
| | | break; |
| | | case 'productionOpen': |
| | | status == true ? handelClose('04') : handelOpen('03'); |
| | | break; |
| | | case 'temperatureOpen': |
| | | status == true ? handelClose('06') : handelOpen('05'); |
| | | break; |
| | | case 'totalOnOff': |
| | | status == true ? handelOpen('07') : handelClose('08'); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | let facilityId |
| | | onLoad(async(option) =>{ |
| | | console.log(14,option) |
| | | facilityId = option.id |
| | | await getFalicityDetail(option.id) |
| | | }) |
| | | |
| | | </script> |
| | | <template> |
| | | <view> |
| | | <navbar title='设备详情'></navbar> |
| | | 设备详情 |
| | | <view class="container"> |
| | | <navbar title = '设备详情'></navbar> |
| | | <view class="content"> |
| | | <view class="detail-box"> |
| | | <view class="title">设备详情</view> |
| | | <view class="detail"> |
| | | <view class="info"> |
| | | <view class="item" v-for="(item,index) in facilityList" :key="index"> |
| | | <view class="item-text">{{item.name}} </view> |
| | | <view class="item-value">{{item.value}}</view> |
| | | </view> |
| | | <view @click="navTo" class="info-params"><view class="params">设备参数设置</view></view> |
| | | </view> |
| | | <view class="control"> |
| | | <view class="switch-item"> |
| | | <text class="switch-text">售水开关</text> |
| | | <view class="switch-icon" @click="handelControl(facilityControl.saleOpen,'saleOpen')"> |
| | | <image class="icon-on-off" v-if="facilityControl.saleOpen" src="../../static/images/maintain/switch-on.png"></image> |
| | | <image class="icon-on-off" v-else src="../../static/images/maintain/switch-off.png"></image> |
| | | </view> |
| | | </view> |
| | | <view class="switch-item"> |
| | | <text class="switch-text">制水开关</text> |
| | | <view class="switch-icon" @click="handelControl(facilityControl.productionOpen,'productionOpen')"> |
| | | <image class="icon-on-off" v-if="facilityControl.productionOpen" src="../../static/images/maintain/switch-on.png"></image> |
| | | <image class="icon-on-off" v-else src="../../static/images/maintain/switch-off.png"></image> |
| | | </view> |
| | | </view> |
| | | <view class="switch-item"> |
| | | <text class="switch-text">温控开关</text> |
| | | <view class="switch-icon" @click="handelControl(facilityControl.temperatureOpen,'temperatureOpen')"> |
| | | <image class="icon-on-off" v-if="facilityControl.temperatureOpen" src="../../static/images/maintain/switch-on.png"></image> |
| | | <image class="icon-on-off" v-else src="../../static/images/maintain/switch-off.png"></image> |
| | | </view> |
| | | </view> |
| | | <view class="switch-item"> |
| | | <text class="switch-text">总开开关</text> |
| | | <view class="total-control"> |
| | | <view class="control-btn" @click="handelControl(true,'totalOnOff')">总开</view> |
| | | <view class="control-btn" @click="handelControl(false,'totalOnOff')">总关</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | .container{ |
| | | width:100%; |
| | | box-sizing: border-box; |
| | | .content{ |
| | | height:calc(100vh - 176rpx); |
| | | background: linear-gradient(to bottom,#8BC1FC 0%,#D2F2FE 30%,#D2F2FE 100%); |
| | | padding:60rpx 40rpx 100rpx; |
| | | box-sizing: border-box; |
| | | .detail-box{ |
| | | width:100%; |
| | | height:1100rpx; |
| | | background:rgba(255,255,255,0.7); |
| | | border-radius:5rpx; |
| | | padding:40rpx; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | .title{ |
| | | color: #575858; |
| | | } |
| | | .detail{ |
| | | width:100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | .info{ |
| | | width:100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .info-params{ |
| | | width:100%; |
| | | display: flex; |
| | | .params{ |
| | | margin-top:30rpx; |
| | | color: #4571c3; |
| | | width:220rpx; |
| | | height:60rpx; |
| | | border-radius:15rpx; |
| | | // border:solid 1rpx #678cc3; |
| | | box-shadow:0 0 6rpx 1rpx rgba(143, 182, 255, 0.3) inset; |
| | | text-align: center; |
| | | line-height:60rpx; |
| | | font-size:30rpx; |
| | | background:rgba(126, 171, 255, 0.2); |
| | | } |
| | | } |
| | | .item{ |
| | | width:100%; |
| | | display: flex; |
| | | flex-wrap: nowrap; |
| | | margin-top:30rpx; |
| | | border-bottom:solid 1rpx #dbe7e8; |
| | | padding-bottom:10rpx; |
| | | .item-text{ |
| | | color: #575858; |
| | | } |
| | | .item-value{ |
| | | color: #4571c3; |
| | | } |
| | | } |
| | | } |
| | | .control{ |
| | | height:400rpx; |
| | | width:100%; |
| | | display: flex; |
| | | flex-direction:column; |
| | | justify-content:space-evenly; |
| | | align-items: flex-start; |
| | | margin-top:20rpx; |
| | | .switch-item{ |
| | | width:100%; |
| | | border-bottom:solid 1rpx #dbe7e8; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | .switch-text{ |
| | | color: #697fb3; |
| | | font-weight:600; |
| | | } |
| | | .switch-icon{ |
| | | .icon-on-off{ |
| | | width:80rpx; |
| | | height:80rpx; |
| | | } |
| | | } |
| | | .total-control{ |
| | | height: 80rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | .control-btn{ |
| | | width:110rpx; |
| | | height:50rpx; |
| | | background: #409eff; |
| | | border-radius:10rpx; |
| | | text-align: center; |
| | | line-height: 50rpx; |
| | | margin-left:20rpx; |
| | | color:#fff; |
| | | font-size:30rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |