app.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. // app.js
  2. import api from "./utils/api";
  3. const homeApi_empower = "https://aipush.aidsleep.cn";
  4. App({
  5. onLaunch() {
  6. // 在需要隐藏 tabBar 的页面的脚本中调用
  7. wx.hideTabBar({
  8. animation: false, // 是否需要动画效果,默认为 false
  9. success: function () {
  10. console.log('TabBar 已经被隐藏');
  11. },
  12. fail: function (err) {
  13. console.error('隐藏 TabBar 失败', err);
  14. }
  15. });
  16. this.globalData.SystemInfo = wx.getDeviceInfo()
  17. this.data.system = this.globalData.SystemInfo.platform;
  18. // 登录
  19. wx.login({
  20. success: res => {
  21. // 发送 res.code 到后台换取 openId, sessionKey, unionId
  22. wx.request({
  23. url: `${homeApi_empower}/wxssk`,
  24. method: 'POST',
  25. data: {
  26. code: res.code,
  27. },
  28. success: function (loginRes) {
  29. // 处理服务器返回的结果
  30. // console.log('登录获取结果:', loginRes.data);
  31. if (loginRes.data) {
  32. wx.setStorageSync("openid", loginRes.data.openid);
  33. wx.setStorageSync("token", loginRes.data.token);
  34. wx.setStorageSync("unionid", loginRes.data.unionid);
  35. // 判断扫码控制权限
  36. wx.request({
  37. url: `${homeApi_empower}/wxstatus`,
  38. data: {
  39. unionid: wx.getStorageSync('unionid'),
  40. openid: wx.getStorageSync('openid'),
  41. token: wx.getStorageSync('token'),
  42. },
  43. method: 'POST',
  44. success: function (intervalRes) {
  45. console.log('intervalRes222222=' + JSON.stringify(intervalRes));
  46. console.log('122222222222222')
  47. //empower.js? [sm]:152 intervalRes.data={"st":"success","status":"0"}
  48. if (intervalRes.data && intervalRes.data.st && intervalRes.data.status && intervalRes.data.st == 'success' && intervalRes.data.status == '1') {
  49. wx.setStorageSync('hasHotelAuth', true);
  50. } else {
  51. wx.setStorageSync('hasHotelAuth', false);
  52. }
  53. try {
  54. wx.setStorageSync('hotelEmpower', intervalRes?.data?.hotel);
  55. wx.setStorageSync('roomEmpower', intervalRes?.data?.room);
  56. wx.setStorageSync('hname', intervalRes?.data?.hname);
  57. wx.setStorageSync('rname', intervalRes?.data?.rname);
  58. }catch ( e){
  59. console.log(e)
  60. }
  61. },
  62. fail: function (error) {
  63. }
  64. });
  65. // 判断今日睡眠报告权限
  66. wx.request({
  67. url: 'https://aipush.aidsleep.cn/srpwithrange',
  68. method: 'POST',
  69. data: {
  70. token: "89835e65993fee4a6a6cbbe4c271da51e5521822934e13769e61cadabaed72c3" || wx.getStorageSync('token'),
  71. udi: wx.getStorageSync('unionid'),
  72. pg: 1,
  73. lm: 1
  74. },
  75. success: (res) => {
  76. var loadData = res.data.data;
  77. if ((Array.isArray(loadData) && loadData.length > 0) || (loadData && !Array.isArray(loadData)) ) {
  78. wx.setStorageSync('hasReportAuth', true);
  79. } else {
  80. wx.setStorageSync('hasReportAuth', false);
  81. }
  82. },
  83. fail: () => {
  84. wx.setStorageSync('hasReportAuth', false);
  85. }
  86. });
  87. api.isManager({
  88. params: {},
  89. headers: { unionid: wx.getStorageSync("unionid")},
  90. })
  91. .then(data =>{
  92. if (data.code === 1) {
  93. wx.setStorageSync('isManager', data.data);
  94. }else{
  95. wx.setStorageSync('isManager', null);
  96. }
  97. })
  98. .catch(err => console.error('IsManager Error:', err));
  99. }
  100. }
  101. })
  102. }
  103. })
  104. },
  105. onShow() {
  106. wx.hideTabBar()
  107. },
  108. onHide: function () {
  109. wx.setStorageSync('userName', '');
  110. wx.setStorageSync('isLogin', false);
  111. wx.setStorageSync('deviceList', []);
  112. wx.setStorageSync('doDevices', []);
  113. },
  114. CRC16 :function (data) {//MODBUS_CRC16校验
  115. var len = data.length;
  116. if (len > 0) {
  117. var crc = 0xFFFF;
  118. for (var i = 0; i < len; i++) {
  119. crc = (crc ^ (data[i]));
  120. for (var j = 0; j < 8; j++) {
  121. crc = (crc & 1) != 0 ? ((crc >> 1) ^ 0xA001) : (crc >> 1);
  122. }
  123. }
  124. var hi = ((crc & 0xFF00) >> 8); //高位置
  125. var lo = (crc & 0x00FF); //低位置
  126. return [lo, hi];
  127. }
  128. return [0, 0];
  129. },
  130. ab2hex: function (buffer) {
  131. let hexArr = Array.prototype.map.call(
  132. new Uint8Array(buffer),
  133. function (bit) {
  134. return ('00' + bit.toString(16)).slice(-2)
  135. }
  136. )
  137. return hexArr.join('');
  138. },
  139. buf2hex: function (buffer) {
  140. return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('')
  141. },
  142. buf2string: function (buffer) {
  143. var arr = Array.prototype.map.call(new Uint8Array(buffer), x => x)
  144. var str = ''
  145. for (var i = 0; i < arr.length; i++) {
  146. str += String.fromCharCode(arr[i])
  147. }
  148. return str
  149. },
  150. data: {
  151. service_uuid: "0000FFF0-0000-1000-8000-00805F9B34FB",
  152. characteristic_write_uuid: "0000FFF1-0000-1000-8000-00805F9B34FB",
  153. characteristic_read_uuid: "0000FFF2-0000-1000-8000-00805F9B34FB",
  154. name: "LZ-OTA",
  155. md5Key: "",
  156. system: 'ios',
  157. userName: "",
  158. isLogin: false
  159. },
  160. globalData: {
  161. userInfo: null,
  162. selectedTabIndex: 0
  163. }
  164. })