sleepReport.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. // pages/sleepReport/sleepReport.js
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. page: 1,
  8. show: false,
  9. minDate: new Date(2024, 4, 1).getTime(),
  10. maxDate: new Date().getTime(),
  11. defaultDate: [new Date().getTime(), new Date().getTime()],
  12. mData: [],
  13. formatter(day) {
  14. const month = day.date.getMonth() + 1;
  15. const date = day.date.getDate();
  16. if (month === 5) {
  17. if (date === 1) {
  18. day.topInfo = '劳动节';
  19. } else if (date === 4) {
  20. day.topInfo = '五四青年节';
  21. } else if (date === 11) {
  22. day.text = '今天';
  23. }
  24. }
  25. if (day.type === 'start') {
  26. day.bottomInfo = '入住';
  27. } else if (day.type === 'end') {
  28. day.bottomInfo = '离店';
  29. }
  30. // else if (day.type === 'start-end') {
  31. // return '入住/离店';
  32. // }
  33. return day;
  34. },
  35. },
  36. onDisplay() {
  37. this.setData({ show: true });
  38. },
  39. onClose() {
  40. this.setData({ show: false });
  41. },
  42. // formatDate(date) {
  43. // date = new Date(date);
  44. // return `${date.getMonth() + 1}/${date.getDate()}`;
  45. // },
  46. formatDate(date) {
  47. if (!date || date == null) {
  48. return "";
  49. }
  50. date = new Date(date);
  51. let year = date.getFullYear();
  52. let month = (date.getMonth() + 1).toString().padStart(2, '0'); // 月份是从0开始的,所以要+1
  53. let day = date.getDate().toString().padStart(2, '0');
  54. return `${year}-${month}-${day}`;
  55. },
  56. onConfirm(event) {
  57. console.log(event.detail);
  58. var dateArr = event.detail || [];
  59. if (!dateArr[1] || dateArr[1] == null) {
  60. console.log("单选");
  61. } else {
  62. console.log("多选");
  63. }
  64. this.setData({
  65. show: false,
  66. page: 1,
  67. startdateStr: this.formatDate(event.detail[0]),
  68. enddateStr: this.formatDate(event.detail[1]),
  69. });
  70. this.getList(this.data.startdateStr, this.data.enddateStr || this.data.startdateStr);
  71. },
  72. /**
  73. * 生命周期函数--监听页面加载
  74. */
  75. onLoad(options) {
  76. },
  77. /**
  78. * 生命周期函数--监听页面初次渲染完成
  79. */
  80. onReady() {
  81. this.getList()
  82. },
  83. toDetails(e) {
  84. console.log(e.currentTarget.dataset.item);
  85. let item = e.currentTarget.dataset.item;
  86. wx.navigateTo({
  87. url: `/subpages/data/data?rpids=${item.rpids}`
  88. })
  89. },
  90. /**
  91. * 生命周期函数--监听页面显示
  92. */
  93. onShow() {
  94. // const app = getApp();
  95. // app.globalData.selectedTabIndex = 2;
  96. // this.getTabBar().setData({
  97. // selected: 2
  98. // })
  99. },
  100. /**
  101. * 生命周期函数--监听页面隐藏
  102. */
  103. onHide() {
  104. },
  105. /**
  106. * 生命周期函数--监听页面卸载
  107. */
  108. onUnload() {
  109. },
  110. /**
  111. * 页面相关事件处理函数--监听用户下拉动作
  112. */
  113. onPullDownRefresh() {
  114. this.setData({
  115. page: 1
  116. })
  117. this.getList();
  118. },
  119. /**
  120. * 页面上拉触底事件的处理函数
  121. */
  122. onReachBottom() {
  123. console.log("上拉加载更多");
  124. var page = this.data.page;
  125. page += 1;
  126. this.setData({
  127. page: page
  128. })
  129. this.getList();
  130. },
  131. checkTime(timeStr) {
  132. let hours = 0;
  133. let minutes = 0;
  134. if (timeStr && timeStr.indexOf("小时") != -1) {
  135. let parts = timeStr.split("小时");
  136. hours = parseInt(parts[0], 10); // 将小时部分转换为整数
  137. }
  138. if (timeStr && timeStr.indexOf("分钟") != -1) {
  139. let parts = timeStr.split("小时");
  140. let minutesStr = parts[1].split("分钟")[0]; // 获取分钟部分的字符串
  141. minutes = parseInt(minutesStr, 10); // 将分钟部分转换为整数
  142. }
  143. // console.log("小时:", hours); // 输出小时
  144. // console.log("分钟:", minutes); // 输出分钟
  145. return {
  146. hours: hours || 0,
  147. minutes: minutes || 0
  148. }
  149. },
  150. checkRScoreValueColor(value) {
  151. var checkList = [{
  152. title: "极好",
  153. titleColor: "#0BC3AA",
  154. startColor: "#0AB1C3",
  155. centerColor: "#0BC3AA",
  156. endColor: "#36E1CA",
  157. }, {
  158. title: "良好",
  159. titleColor: "#9C43FF",
  160. startColor: "#8D25FF",
  161. centerColor: "#A631FF",
  162. endColor: "#FF8FF0",
  163. }, {
  164. title: "较差",
  165. titleColor: "#FF8F4E",
  166. startColor: "#EE8B52",
  167. centerColor: "#FAA472",
  168. endColor: "#FAA472",
  169. }, {
  170. title: "很差",
  171. titleColor: "#FB717B",
  172. startColor: "#FB717B",
  173. centerColor: "#FB717B",
  174. endColor: "#FF98A0",
  175. }];
  176. var color = checkList[0].titleColor;
  177. var rscore_value = value - 0;
  178. if (rscore_value >= 90 && rscore_value <= 100) {
  179. color = checkList[0].titleColor;
  180. } else if (rscore_value >= 75 && rscore_value < 90) {
  181. color = checkList[1].titleColor;
  182. } else if (rscore_value >= 60 && rscore_value < 75) {
  183. color = checkList[2].titleColor;
  184. } else {
  185. color = checkList[3].titleColor;
  186. }
  187. return color;
  188. },
  189. getList(startdateStr, enddateStr) {
  190. const that = this;
  191. wx.request({
  192. url: 'https://aipush.aidsleep.cn/srpwithrange',
  193. method: 'POST',
  194. data: {
  195. startdate: startdateStr,
  196. enddate: enddateStr,
  197. token: "89835e65993fee4a6a6cbbe4c271da51e5521822934e13769e61cadabaed72c3" || wx.getStorageSync('token'),
  198. udi: wx.getStorageSync('unionid') ,
  199. pg: that.data.page,
  200. lm: 20
  201. },
  202. success: (res) => {
  203. var mDataTemp = that.data.mData || [];
  204. var loadData = res.data.data;
  205. if ((loadData && !Array.isArray(loadData))) {
  206. for (const key in loadData) {
  207. if (Object.prototype.hasOwnProperty.call(loadData, key)) {
  208. const element = loadData[key];
  209. let subItems = [];
  210. for (const k in element) {
  211. if (Object.prototype.hasOwnProperty.call(element, k)) {
  212. const subElement = element[k];
  213. for (let i = 0; i < subElement.length; i++) {
  214. var item = subElement[i];
  215. var dateItem = that.checkTime(item.rinbed_duration);
  216. var color = that.checkRScoreValueColor(item.rscore_value);
  217. item.hours = dateItem.hours;
  218. item.minutes = dateItem.minutes;
  219. item.color = color;
  220. }
  221. subItems = subItems.concat(subElement);
  222. }
  223. }
  224. var data = {
  225. dateTitle: key,
  226. subItem: subItems
  227. }
  228. mDataTemp.push(data)
  229. }
  230. }
  231. console.log(mDataTemp);
  232. that.setData({
  233. mData: mDataTemp
  234. })
  235. } else {
  236. }
  237. },
  238. fail: () => {
  239. }
  240. });
  241. },
  242. /**
  243. * 用户点击右上角分享
  244. */
  245. onShareAppMessage() {
  246. }
  247. })