| | |
| | | <!-- 状态栏 --> |
| | | <view class="status-bar"> |
| | | <view class="status-item"> |
| | | <view class="status-indicator {{currentWeatherStation.online ? 'online' : 'offline'}}"></view> |
| | | <text class="status-text">{{currentWeatherStation.online ? '在线' : '离线'}}</text> |
| | | <view class="status-indicator {{currentWeatherStation.onLine === true ? 'online' : 'offline'}}"></view> |
| | | <text class="status-text">{{currentWeatherStation.onLine === true ? '在线' : '离线'}}</text> |
| | | </view> |
| | | <view class="refresh-btn" bind:tap="refreshWeatherData"> |
| | | <image class="refresh-icon" src="/images/refresh.svg" /> |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">空气湿度(%)</text> |
| | | <text class="data-value">{{currentWeatherStation.humidity || '--'}}%</text> |
| | | <text class="data-value">{{currentWeatherStation.humidity !== null && currentWeatherStation.humidity !== undefined ? currentWeatherStation.humidity : '--'}}%</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">空气温度(℃)</text> |
| | | <text class="data-value">{{currentWeatherStation.temperature || '--'}}°C</text> |
| | | <text class="data-value">{{currentWeatherStation.temperature !== null && currentWeatherStation.temperature !== undefined ? currentWeatherStation.temperature : '--'}}°C</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">紫外线(mW/m²)</text> |
| | | <text class="data-value">{{currentWeatherStation.uv || '--'}}</text> |
| | | <text class="data-value">{{currentWeatherStation.uv !== null && currentWeatherStation.uv !== undefined ? currentWeatherStation.uv : '--'}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">光照强度(lm/㎡)</text> |
| | | <text class="data-value">{{currentWeatherStation.light || '--'}} lux</text> |
| | | <text class="data-value">{{currentWeatherStation.light !== null && currentWeatherStation.light !== undefined ? currentWeatherStation.light : '--'}} lux</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">雨量(mm)</text> |
| | | <text class="data-value">{{currentWeatherStation.rainfall || '--'}} mm</text> |
| | | <text class="data-value">{{currentWeatherStation.rainfall !== null && currentWeatherStation.rainfall !== undefined ? currentWeatherStation.rainfall : '--'}} mm</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">风速(m/s)</text> |
| | | <text class="data-value">{{currentWeatherStation.windSpeed || '--'}} m/s</text> |
| | | <text class="data-value">{{currentWeatherStation.windSpeed !== null && currentWeatherStation.windSpeed !== undefined ? currentWeatherStation.windSpeed : '--'}} m/s</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | <text class="data-label">风向</text> |
| | | <view class="wind-direction-display"> |
| | | <!-- <image class="wind-arrow" src="/images/wind-arrow.svg" style="transform: rotate({{currentWeatherStation.windDirectionAngle || 0}}deg)" /> --> |
| | | <text class="data-value">{{currentWeatherStation.windDirection || '--'}}</text> |
| | | <text class="data-value">{{currentWeatherStation.windDirection !== null && currentWeatherStation.windDirection !== undefined ? currentWeatherStation.windDirection : '--'}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | </view> |
| | | </picker> |
| | | </view> |
| | | |
| | | |
| | | <!-- 土壤墒情信息卡片 --> |
| | | <view wx:if="{{currentSoilStation}}" class="weather-info-card"> |
| | | <!-- 状态栏 --> |
| | | <view class="status-bar"> |
| | | <view class="status-item"> |
| | | <view class="status-indicator {{currentSoilStation.online ? 'online' : 'offline'}}"></view> |
| | | <text class="status-text">{{currentSoilStation.online ? '在线' : '离线'}}</text> |
| | | <view class="status-indicator {{currentSoilStation.onLine === true ? 'online' : 'offline'}}"></view> |
| | | <text class="status-text">{{currentSoilStation.onLine === true ? '在线' : '离线'}}</text> |
| | | </view> |
| | | <view class="refresh-btn" bind:tap="refreshSoilData"> |
| | | <image class="refresh-icon" src="/images/refresh.svg" /> |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">土壤湿度1(%)</text> |
| | | <text class="data-value">{{currentSoilStation.soilHumidity1 || '--'}}%</text> |
| | | <text class="data-value">{{currentSoilStation.soilHumidity1 !== null && currentSoilStation.soilHumidity1 !== undefined ? currentSoilStation.soilHumidity1 : '--'}}%</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">土壤温度1(℃)</text> |
| | | <text class="data-value">{{currentSoilStation.soilTemperature1 || '--'}}°C</text> |
| | | <text class="data-value">{{currentSoilStation.soilTemperature1 !== null && currentSoilStation.soilTemperature1 !== undefined ? currentSoilStation.soilTemperature1 : '--'}}°C</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">土壤湿度2(%)</text> |
| | | <text class="data-value">{{currentSoilStation.soilHumidity2 || '--'}}%</text> |
| | | <text class="data-value">{{currentSoilStation.soilHumidity2 !== null && currentSoilStation.soilHumidity2 !== undefined ? currentSoilStation.soilHumidity2 : '--'}}%</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">土壤温度2(℃)</text> |
| | | <text class="data-value">{{currentSoilStation.soilTemperature2 || '--'}}°C</text> |
| | | <text class="data-value">{{currentSoilStation.soilTemperature2 !== null && currentSoilStation.soilTemperature2 !== undefined ? currentSoilStation.soilTemperature2 : '--'}}°C</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">土壤湿度3(%)</text> |
| | | <text class="data-value">{{currentSoilStation.soilHumidity3 || '--'}}%</text> |
| | | <text class="data-value">{{currentSoilStation.soilHumidity3 !== null && currentSoilStation.soilHumidity3 !== undefined ? currentSoilStation.soilHumidity3 : '--'}}%</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">土壤温度3(℃)</text> |
| | | <text class="data-value">{{currentSoilStation.soilTemperature3 || '--'}}°C</text> |
| | | <text class="data-value">{{currentSoilStation.soilTemperature3 !== null && currentSoilStation.soilTemperature3 !== undefined ? currentSoilStation.soilTemperature3 : '--'}}°C</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">土壤湿度4(%)</text> |
| | | <text class="data-value">{{currentSoilStation.soilHumidity4 || '--'}}%</text> |
| | | <text class="data-value">{{currentSoilStation.soilHumidity4 !== null && currentSoilStation.soilHumidity4 !== undefined ? currentSoilStation.soilHumidity4 : '--'}}%</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">土壤温度4(℃)</text> |
| | | <text class="data-value">{{currentSoilStation.soilTemperature4 || '--'}}°C</text> |
| | | <text class="data-value">{{currentSoilStation.soilTemperature4 !== null && currentSoilStation.soilTemperature4 !== undefined ? currentSoilStation.soilTemperature4 : '--'}}°C</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">土壤湿度5(%)</text> |
| | | <text class="data-value">{{currentSoilStation.soilHumidity5 || '--'}}%</text> |
| | | <text class="data-value">{{currentSoilStation.soilHumidity5 !== null && currentSoilStation.soilHumidity5 !== undefined ? currentSoilStation.soilHumidity5 : '--'}}%</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">土壤温度5(℃)</text> |
| | | <text class="data-value">{{currentSoilStation.soilTemperature5 || '--'}}°C</text> |
| | | <text class="data-value">{{currentSoilStation.soilTemperature5 !== null && currentSoilStation.soilTemperature5 !== undefined ? currentSoilStation.soilTemperature5 : '--'}}°C</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | <!-- 状态栏 --> |
| | | <view class="status-bar"> |
| | | <view class="status-item"> |
| | | <view class="status-indicator {{currentFertilizerStation.onLine === 1 ? 'online' : 'offline'}}"></view> |
| | | <text class="status-text">{{currentFertilizerStation.onLine === 1 ? '在线' : '离线'}}</text> |
| | | <view class="status-indicator {{currentFertilizerStation.onLine === true ? 'online' : 'offline'}}"></view> |
| | | <text class="status-text">{{currentFertilizerStation.onLine === true ? '在线' : '离线'}}</text> |
| | | </view> |
| | | <view class="refresh-btn" bind:tap="refreshFertilizerData"> |
| | | <image class="refresh-icon" src="/images/refresh.svg" /> |
| | |
| | | <!-- 搅拌开关 --> |
| | | <view class="switch-item"> |
| | | <text class="switch-label">搅拌</text> |
| | | <switch class="custom-switch" checked="{{currentFertilizerStation.mixingEnabled}}" bindchange="toggleMixing" disabled="{{currentFertilizerStation.onLine !== 1}}" color="#07c160" /> |
| | | <switch class="custom-switch" checked="{{currentFertilizerStation.mixingEnabled}}" bindchange="toggleMixing" disabled="{{currentFertilizerStation.onLine !== true}}" color="#07c160" /> |
| | | </view> |
| | | |
| | | <!-- 注肥开关 --> |
| | | <view class="switch-item"> |
| | | <text class="switch-label">注肥</text> |
| | | <switch class="custom-switch" checked="{{currentFertilizerStation.fertilizingEnabled}}" bindchange="toggleFertilizing" disabled="{{currentFertilizerStation.onLine !== 1}}" color="#07c160" /> |
| | | <switch class="custom-switch" checked="{{currentFertilizerStation.fertilizingEnabled}}" bindchange="toggleFertilizing" disabled="{{currentFertilizerStation.onLine !== true}}" color="#07c160" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">肥料流量(升)</text> |
| | | <text class="data-value">{{currentFertilizerStation.manureFlow || '--'}} L</text> |
| | | <text class="data-value">{{currentFertilizerStation.manureFlow !== null && currentFertilizerStation.manureFlow !== undefined ? currentFertilizerStation.manureFlow : '--'}} L</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">注肥时长(秒)</text> |
| | | <text class="data-value">{{currentFertilizerStation.manureTime || '--'}} s</text> |
| | | <text class="data-value">{{currentFertilizerStation.manureTime !== null && currentFertilizerStation.manureTime !== undefined ? currentFertilizerStation.manureTime : '--'}} s</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">搅拌时长(秒)</text> |
| | | <text class="data-value">{{currentFertilizerStation.stirTime || '--'}} s</text> |
| | | <text class="data-value">{{currentFertilizerStation.stirTime !== null && currentFertilizerStation.stirTime !== undefined ? currentFertilizerStation.stirTime : '--'}} s</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">搅拌设定时间(秒)</text> |
| | | <text class="data-value">{{currentFertilizerStation.stirDuration || '--'}} s</text> |
| | | <text class="data-value">{{currentFertilizerStation.stirDuration !== null && currentFertilizerStation.stirDuration !== undefined ? currentFertilizerStation.stirDuration : '--'}} s</text> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | <view class="data-content"> |
| | | <text class="data-label">注肥设定时间(秒)</text> |
| | | <text class="data-value">{{currentFertilizerStation.injectDuration || '--'}} s</text> |
| | | <text class="data-value">{{currentFertilizerStation.injectDuration !== null && currentFertilizerStation.injectDuration !== undefined ? currentFertilizerStation.injectDuration : '--'}} s</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | <!-- 摄像头名称 --> |
| | | <view class="camera-header"> |
| | | <text class="camera-name">{{item.name}}</text> |
| | | <view class="camera-status {{item.online ? 'online' : 'offline'}}"> |
| | | <text>{{item.online ? '在线' : '离线'}}</text> |
| | | <view class="camera-status {{item.onLine === true ? 'online' : 'offline'}}"> |
| | | <text>{{item.onLine === true ? '在线' : '离线'}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 摄像头视频 --> |
| | | <view class="camera-video-container" style="height: {{deviceSpecificConfig.videoHeight}}rpx;"> |
| | | <view class="camera-video-container" > |
| | | <!-- 加载状态 --> |
| | | <view wx:if="{{item.isLoadingUrl}}" class="video-loading"> |
| | | <view class="loading-spinner"></view> |
| | |
| | | </view> |
| | | |
| | | <!-- 正常播放状态 --> |
| | | <view wx:elif="{{item.online && item.hslUrl}}" class="video-wrapper"> |
| | | <view wx:elif="{{item.onLine && item.hslUrl}}" class="video-wrapper"> |
| | | <!-- 直播播放器组件 --> |
| | | <ezplayer |
| | | id="ezplayer-{{item.id}}" |
| | | accessToken="{{item.accessToken}}" |
| | | url="{{item.hslUrl}}" |
| | | deviceSerial="{{item.deviceSerial}}" |
| | | channelNo="1" |
| | | width="300rpx" |
| | | height="300rpx" |
| | | plugins="talk,voice,capture,ptz,privacy,mirror" |
| | | watermark="大禹" |
| | | autoPlay="{{true}}" |
| | | theme="{{ { showFullScreenBtn: true, showHdBtn: true, showTimeLine: true } }}" |
| | | bind:handleError="handleError" |
| | | bind:onControlEvent="onControlEvent" |
| | | style="width: 100vw; height: 100%; max-width: 100vw; min-width: 100vw; position: absolute; left: 0; right: 0; top: 0; bottom: 0; overflow: hidden; margin: 0; padding: 0; transform: none; border: none; border-radius: 0; box-shadow: none; background: transparent;" |
| | | /> |
| | | <ezplayer class="video-wrapper-ezplayer" id="ezplayer-{{item.id}}" accessToken="{{item.accessToken}}" url="{{item.hslUrl}}" deviceSerial="{{item.deviceSerial}}" channelNo="1" plugins="capture,ptz,mirror" watermark="大禹" autoPlay="{{true}}" theme="{{ { showFullScreenBtn: true, showHdBtn: true, showTimeLine: true } }}" bind:handleError="handleError" bind:onControlEvent="onControlEvent" /> |
| | | </view> |
| | | |
| | | <!-- 离线状态显示 --> |
| | | <view wx:elif="{{!item.online}}" class="video-offline"> |
| | | <view wx:elif="{{!item.onLine}}" class="video-offline"> |
| | | <image class="offline-icon" src="/images/camera.svg" /> |
| | | <text class="offline-text">设备离线</text> |
| | | </view> |
| | |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | |
| | | </view> |
| | | </view> |
| | | |