index.wxml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <!--index.wxml-->
  2. <view class="{{!status_light ? 'wrapper' : 'wrapper-dark' }}" style="width: max-content; height: fit-content; display: block; box-sizing: border-box">
  3. <!-- 天气的面板 -->
  4. <view class="header-wrapper" wx:if="{{!status_fire}}">
  5. <!-- <view class="header-title">
  6. <text>空气质量-{{ airText }}</text>
  7. <text>{{ area }}-{{ city }}</text>
  8. </view>
  9. <view class="header-text">
  10. <text>{{ airValue }}</text>
  11. <text>{{ weather }}</text>
  12. </view> -->
  13. <view class="header-title">
  14. <text>空气质量-{{ airText }}</text>
  15. <text>{{ area }}-{{ city }}</text>
  16. </view>
  17. <view class="header-text">
  18. <text>{{ airValue }}</text>
  19. <text>{{ weather }}</text>
  20. </view>
  21. </view>
  22. <view wx:if="{{isLoading}}" class="loading-container">
  23. <text class="loading-text">数据正在加载,请耐心等待...</text>
  24. </view>
  25. <view class="data-container sliderList">
  26. <!--温度-->
  27. <view class="data-card">
  28. <image class="data-card__icon"src="/static/images/temp.png"/>
  29. <view class="data-card__text">
  30. <view class="data-card__title">
  31. 温度
  32. </view>
  33. <view class="data-card__value">
  34. {{w_temp}}℃
  35. </view>
  36. </view>
  37. </view>
  38. <!--湿度-->
  39. <view class="data-card">
  40. <image class="data-card__icon"src="/static/images/hum.png"/>
  41. <view class="data-card__text">
  42. <view class="data-card__title">
  43. 湿度
  44. </view>
  45. <view class="data-card__value">
  46. {{w_humidity}}%
  47. </view>
  48. </view>
  49. </view>
  50. <!--光照度-->
  51. <!-- <view class="data-card">
  52. <image class="data-card__icon"src="/static/images/light.png"/>
  53. <view class="data-card__text">
  54. <view class="data-card__title">
  55. 光照度
  56. </view>
  57. <view class="data-card__value">
  58. 100 LX
  59. </view>
  60. </view>
  61. </view> -->
  62. <!--客厅灯-->
  63. <!-- <view class="data-card">
  64. <image class="data-card__icon"src="/static/images/led.png"/>
  65. <view class="data-card__text">
  66. <view class="data-card__title">
  67. 客厅灯
  68. </view>
  69. <view class="data-card__value">
  70. <switch checked="{{Led}}" bindchange="onLedChange" color="#3d7ef9"/>
  71. </view>
  72. </view>
  73. </view> -->
  74. <!--报警器-->
  75. <!-- <view class="data-card">
  76. <image class="data-card__icon"src="/static/images/alarm.png"/>
  77. <view class="data-card__text">
  78. <view class="data-card__title">
  79. 报警器
  80. </view>
  81. <view class="data-card__value">
  82. <switch checked="{{Beep}}" bindchange="onBeepChange" color="#3d7ef9"/>
  83. </view>
  84. </view>
  85. </view> -->
  86. <view wx:for="{{listSwitch}}" wx:for-index="index" wx:for-item="item" class="sliderItem">
  87. <view class="data-card">
  88. <image class="data-card__icon" src="{{item.imgSrc}}"/>
  89. <view class="data-card__text">
  90. <view class="data-card__title1">
  91. {{item.friendly_name}}
  92. </view>
  93. <view class="data-card__value">
  94. <switch checked="{{item.state=='on'}}" bindchange="onSelect_All" data-param0='{{index}}' data-param1='/services' data-param2='/{{item.domain}}'
  95. data-param3='{{item.state=="on"?"/turn_off":"/turn_on"}}' data-param4='{{item.state=="on"?"0":"1"}}' data-param5='{{item.entity_id}}'/>
  96. </view>
  97. </view>
  98. </view>
  99. </view>
  100. <view wx:for="{{listCover}}" wx:for-index="index" wx:for-item="item" class="sliderItem">
  101. <view class="data-card">
  102. <image class="data-card__icon" src="{{item.imgSrc}}"/>
  103. <view class="data-card__text">
  104. <view class="data-card__title">
  105. <text class="text-content">{{item.friendly_name}}</text>
  106. </view>
  107. <view class="data-card__value">
  108. <switch checked="{{item.state=='open'}}" bindchange="onSelect_Cover" data-param0='{{index}}' data-param1='/services' data-param2='/{{item.domain}}'
  109. data-param3='{{item.state=="open"?"/open_cover":"/close_cover"}}' data-param4='{{item.state=="open"?"0":"1"}}' data-param5='{{item.entity_id}}'/>
  110. </view>
  111. </view>
  112. </view>
  113. </view>
  114. </view>
  115. <view class="body-wrapper" style="width: 694rpx; height: 800rpx; display: block; box-sizing: border-box">
  116. <view class="body" style="width: 694rpx; height: 800rpx; display: block; box-sizing: border-box; left: 0rpx; top: 0rpx">
  117. <!-- 定时功能弹窗 -->
  118. <!-- 各设备控制弹窗 结束行-->
  119. <view class='test' wx:for="{{listHumidifier}}" wx:for-index="index" wx:for-item="item" class="sliderItem">
  120. <view class="data-media-player">
  121. <view class="center-view">
  122. <text class="gray-text">{{item.friendly_name}}</text>
  123. </view>
  124. <view class="data-container data-card">
  125. <view class="data-card">
  126. <image class="data-card__icon" src="/static/images/hum.png"/>
  127. <view class="data-card__text">
  128. <view class="data-card__title">
  129. 湿度
  130. </view>
  131. <view class="data-card__value">
  132. {{item.humidity}}%
  133. </view>
  134. </view>
  135. </view>
  136. <view class="data-card">
  137. <image class="data-card__icon"src="/static/images/hum.png"/>
  138. <view class="data-card__text">
  139. <view class="data-card__title">
  140. 开关
  141. </view>
  142. <view class="data-card__value">
  143. <switch checked="{{item.state=='on'}}" bindchange="onSelect_All" data-param0='{{index}}' data-param1='/services' data-param2='/{{item.domain}}'
  144. data-param3='{{item.state=="on"?"/turn_off":"/turn_on"}}' data-param4='{{item.state=="on"?"0":"1"}}' data-param5='{{item.entity_id}}'/>
  145. </view>
  146. </view>
  147. </view>
  148. <view class="data-card">
  149. <image class="data-card__icon"src="/static/images/hum.png"/>
  150. <view class="data-card__text">
  151. <view class="data-card__title">
  152. 湿度+
  153. </view>
  154. <view class="data-card__value">
  155. <button class="{{isButtonPressedHumidityUp ? 'round-gradient-button-pressed' : 'round-gradient-button'}} {{isClickedOnHumidifierUp ? 'clicked' : ''}}" bindtap="onHumidifierUp" style="width: 120rpx;height: 70rpx;" data-state='{{item.state}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}' data-min='{{item.min}}' data-max='{{item.max}}' data-humidity='{{item.humidity}}'>增加+</button>
  156. </view>
  157. </view>
  158. </view>
  159. <view class="data-card">
  160. <image class="data-card__icon"src="/static/images/hum.png"/>
  161. <view class="data-card__text">
  162. <view class="data-card__title">
  163. 湿度-
  164. </view>
  165. <view class="data-card__value">
  166. <button class="{{isButtonPressedHumidityDown ? 'round-gradient-button-pressed' : 'round-gradient-button'}} {{isClickedOnHumidifierDown ? 'clicked' : ''}}" bindtap="onHumidifierDown" style="width: 120rpx;height: 60rpx;" data-state='{{item.state}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}' data-min='{{item.min}}' data-max='{{item.max}}' data-humidity='{{item.humidity}}'>减少-</button>
  167. </view>
  168. </view>
  169. </view>
  170. <view style="margin-top: 10rpx;">
  171. </view>
  172. </view>
  173. </view>
  174. </view>
  175. <view class='test sliderItem' wx:for="{{listClimate}}" wx:for-index="index" wx:for-item="item">
  176. <view class="data-media-player">
  177. <view class="center-view">
  178. <text class="gray-text">{{item.friendly_name}}</text>
  179. </view>
  180. <view class="value-display">{{temperatureHumidifyName}}:{{item.temperature}}°C</view>
  181. <view class="button-row">
  182. <button class="{{isButtonPressedClimateUp ? 'round-gradient-button-pressed' : 'round-gradient-button'}} {{isClickedOnClimateAuto ? 'clicked' : ''}}" bindtap="onClimateUp" data-state='{{item.state}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}' data-min='{{item.min}}' data-max='{{item.max}}' data-temperature='{{item.temperature}}' data-fanMode='{{item.fan_mode}}'>增加+</button>
  183. <button class="{{isButtonPressedClimateDown ? 'round-gradient-button-pressed' : 'round-gradient-button'}}" bindtap="onClimateDown" data-state='{{item.state}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}' data-min='{{item.min}}' data-max='{{item.max}}' data-temperature='{{item.temperature}}' data-fanMode='{{item.fan_mode}}'>减少-</button>
  184. </view>
  185. <view class="air-conditioner-controls">
  186. <button class="{{item.state=='auto'?'control-button_1':'control-button'}} {{isClickedOnClimateAuto ? 'clicked' : ''}}" bindtap="onClimateAuto" data-state='{{item.state}}' data-temperature='{{item.temperature}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}'>
  187. <image class="control-icon" />
  188. <text class="control-text">自动</text>
  189. </button>
  190. <button class="{{item.state=='heat'?'control-button_1':'control-button'}}" bindtap="onClimateHeat" data-state='{{item.state}}' data-temperature='{{item.temperature}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}' data-flag='onHeat'>
  191. <image class="control-icon" />
  192. <text class="control-text_zr">制热</text>
  193. </button>
  194. <button class="{{item.state=='cool'?'control-button_1':'control-button'}}" bindtap="onClimateCool" data-state='{{item.state}}' data-temperature='{{item.temperature}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}' data-flag='onCool'>
  195. <image class="control-icon" />
  196. <text class="control-text_zl">制冷</text>
  197. </button>
  198. <button class="{{item.state=='dry'?'control-button_1':'control-button'}}" bindtap="onClimateDehumidify" data-state='{{item.state}}' data-temperature='{{item.temperature}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}' data-flag='onDehumidify'>
  199. <image class="control-icon" />
  200. <text class="control-text_cs">除湿</text>
  201. </button>
  202. <button class="{{item.state=='fan_only'?'control-button_1':'control-button'}}" bindtap="onClimateAirSupply" data-state='{{item.state}}' data-temperature='{{item.temperature}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}' data-flag='onAirSupply'>
  203. <image class="control-icon" />
  204. <text class="control-text_sf">送风</text>
  205. </button>
  206. <button class="{{item.state=='off'?'control-button_1':'control-button'}}" bindtap="onClimateOff" data-state='{{item.state}}' data-temperature='{{item.temperature}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}'>
  207. <image class="control-icon" />
  208. <text class="control-text">关闭</text>
  209. </button>
  210. </view>
  211. </view>
  212. </view>
  213. <view wx:for="{{listMiotMediaPlayer}}" wx:for-index="index" wx:for-item="item" class="sliderItem">
  214. <!-- 一行 -->
  215. <view class="data-media-player" style="{{item.entity_picture}} ">
  216. <view class="center-view">
  217. <text class="gray-text">{{item.friendly_name}}</text>
  218. </view>
  219. <view class="audio-player">
  220. <view class="controls">
  221. <image class="control-button_media prev {{isClickedPrevSong ? 'clicked' : ''}}" src="/static/images/prev.png" bindtap="prevSong" wx:if="{{canPrev}}" data-state='{{item.state}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}'/>
  222. <image class="control-button_media play {{isClickedTogglePlayPause ? 'clicked' : ''}}" src="{{item.state=='playing' ? '/static/images/pause.png' : '/static/images/play.png'}}" bindtap="togglePlayPause" data-state='{{item.state}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}'/>
  223. <image class="control-button_media next {{isClickedNextSong ? 'clicked' : ''}}" src="/static/images/next.png" bindtap="nextSong" wx:if="{{canNext}}" data-state='{{item.state}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}' bindload="imageLoad"/>
  224. </view>
  225. <view class="progress">
  226. <slider class="progress-bar" value="{{item.media_position}}" min="0" max="{{item.media_duration}}" bindchange="sliderChange" data-state='{{item.state}}' data-id="{{item.entity_id}}" data-domain='{{item.domain}}' />
  227. </view>
  228. <view class="info">
  229. <text class="song-title">歌曲名称:{{item.media_title}}</text>
  230. <text class="song-artist">演唱者:{{item.media_artist}}</text>
  231. <!-- <text class="song-artist">歌曲名称:{{item.media_album_name}}</text> -->
  232. </view>
  233. </view>
  234. </view>
  235. <!-- 一行结束 -->
  236. </view>
  237. <!-- 一行结束 -->
  238. </view>
  239. </view>
  240. </view>