detail.js 3.9 KB

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