detail.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. // pages/deviceDetail/detail.js
  2. const {
  3. BtHelper
  4. } = require('../../devices/bt_helper');
  5. const {
  6. deviceVersion
  7. } = require('../../request/deviceListRequest')
  8. import {
  9. EnumCmdEvent,
  10. CmdEvent
  11. } from '../../devices/cmd_key_event';
  12. import EventManager from '../../utils/event_bus'
  13. import route_util from '../../utils/route_util';
  14. Page({
  15. data: {
  16. nvabarData: {
  17. showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
  18. title: '设备详情', //导航栏 中间的标题
  19. },
  20. // 页面数据
  21. device: {},
  22. btHelper: null,
  23. updateData: {},
  24. powerOpen: false,
  25. isShowWallpaper: false,
  26. },
  27. checkOtaVersion(device) {
  28. let _this = this;
  29. device.clientType = "MW-S2"
  30. deviceVersion(device.clientType, device.connectType, device.version ?? "1.0.0").then(res => {
  31. console.log("OTA2:", res);
  32. let updateData = res ?? {};
  33. let hasNewVersion = updateData.isEnforcement === 1 || updateData.isEnforcement === 2;
  34. updateData.hasNewVersion = hasNewVersion;
  35. _this.setData({
  36. updateData: updateData
  37. });
  38. })
  39. },
  40. goToWallpaper: function () {
  41. let newParam = JSON.stringify(this.data.device);
  42. route_util.jumpParam('/pages/piano/wallpaper/wallpaper', newParam)
  43. },
  44. goToOta: function () {
  45. let param = {
  46. "device": this.data.device,
  47. "otaData": this.data.updateData,
  48. }
  49. let newParam = JSON.stringify(param);
  50. // wx.navigateTo({
  51. // url: '/pages/ota/ota' + "?param=" + param
  52. // });
  53. route_util.jumpParam('/pages/ota/ota', newParam)
  54. },
  55. powerTap(e) {
  56. console.log(e)
  57. let btHelper = BtHelper.getInstance();
  58. btHelper.setPauseSleep(!this.data.powerOpen ? 1200 : 0)
  59. this.setData({
  60. powerOpen: !this.data.powerOpen
  61. })
  62. },
  63. questionTap() {
  64. wx.showModal({
  65. title: '省电模式',
  66. content: '开启省电模式,设备无蓝牙连接或内容播放20分钟后进入自动休眠,任意按键可唤醒。',
  67. showCancel: false,
  68. complete: (res) => {
  69. if (res.cancel) {
  70. }
  71. if (res.confirm) {
  72. // setSleepAfterPlayPause
  73. const btHelper = BtHelper.getInstance();
  74. btHelper.setPauseSleep(1200)
  75. }
  76. }
  77. })
  78. },
  79. /**
  80. * 生命周期函数--监听页面加载
  81. */
  82. onLoad: function (options) {
  83. // let device = JSON.parse(options.param);
  84. console.log(getApp().globalData.mDeviceList.length)
  85. let device = JSON.parse(options.param);
  86. // let device = getApp().globalData.mDeviceList[0] ?? JSON.parse(options.param);
  87. if (device.connectType != '1') {
  88. return
  89. }
  90. device.clientType = device.clientType ?? device.ProdModel
  91. console.log("设备详情", device)
  92. let isConnect = device.state === 'online'
  93. if (!isConnect) {
  94. // btHelper
  95. wx.showToast({
  96. title: '设备已经失去连接',
  97. })
  98. return;
  99. }
  100. this.setData({
  101. device: device,
  102. powerOpen: (device.pauseSleep ?? -1) > 0,
  103. isShowWallpaper: device.clientType === 'MW-S2(BLE)'
  104. })
  105. const btHelper = BtHelper.getInstance();
  106. let isShowOta = device.clientType === 'MW-S2(BLE)' || device.clientType === 'MW-S2'
  107. if (isShowOta) {
  108. btHelper.getVersion()
  109. }
  110. btHelper.getPauseSleep()
  111. let _this = this;
  112. EventManager.addNotification(CmdEvent.eventName, function (event) {
  113. let name = event.cmdEvent;
  114. // console.log("详情页:", name, event)
  115. switch (name) {
  116. case EnumCmdEvent.version:
  117. _this.data.device.version = event.version;
  118. console.log("详情页1:", event.version)
  119. _this.checkOtaVersion(_this.data.device);
  120. break;
  121. case EnumCmdEvent.authSleepStatus:
  122. let value = event.pauseSleep;
  123. console.log("详情页2:", value)
  124. _this.setData({
  125. powerOpen: (value ?? -1) > 0
  126. })
  127. break;
  128. }
  129. }, this)
  130. },
  131. onUnload() {
  132. EventManager.removeNotification(CmdEvent.eventName, this)
  133. },
  134. })