sleepQualityIndexAssessment.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833
  1. // miniprogram/pages/testSAS/testSAS.js
  2. // const db = wx.cloud.database()
  3. const baseUrl = "https://fare.somnisix.top/";
  4. const authorization = "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6Ijk5YzI3MjI2LTdkOWQtNDhiOC1hYjlhLWM4YjVjYWZiZGNkNyIsInVzZXJuYW1lIjoiYWRtaW4ifQ.zITQOINFkHs19_1RAgHS4I9YMaVxVq0Dsn3t6r_K7rv3rXvJy0sMtodejIMi_PNa_m4uQYxnU-6k3wC2LZht_Q";
  5. const api = "system/questionInvest";
  6. const qnaire = require("./data.js")
  7. var ans = new Array(24)
  8. var ansJson = []
  9. const homeApi = "https://fare.somnisix.top";
  10. const homeApiTest = "http://localhost:8080";
  11. const token = "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6Ijk5YzI3MjI2LTdkOWQtNDhiOC1hYjlhLWM4YjVjYWZiZGNkNyIsInVzZXJuYW1lIjoiYWRtaW4ifQ.zITQOINFkHs19_1RAgHS4I9YMaVxVq0Dsn3t6r_K7rv3rXvJy0sMtodejIMi_PNa_m4uQYxnU-6k3wC2LZht_Q";
  12. Page({
  13. data: {
  14. qnaire: [],
  15. activeIcon: "/subpages/icons/ic_selected_radio.svg",
  16. normalIcon: "/subpages/icons/ic_radio.svg",
  17. activeColor: "color:#0BC3AA;",
  18. normalColor: "color:#666666;",
  19. showDateDialog: false,
  20. currentDate: "",
  21. currentDateItem: null,
  22. answerJson: [],
  23. columns: [[], []],
  24. BMI: null,
  25. mInputScrollId:null,
  26. weight: 0,
  27. height: 0,
  28. promptTextMessageFlag: false,//结果弹窗
  29. isPrivacyAgreed: false, // 隐私条款是否勾选
  30. privacyDetailShow: false,// 隐私条款弹出页是否显示
  31. changeValue: '',//
  32. comScore: 0,
  33. comScoreStatus: '',
  34. comScoreIndex: 0,
  35. comScoreDesc: "如果你在这一级别内,那么你的睡眠质量可就亮起红灯了。你必须警惕,因为你的睡眠质量确实比较糟糕,健康状况明显受损。饮食起居会受到一定影响,甚至部分工作你都开始感觉吃力。",
  36. ratingResultsList: [{
  37. title: "非常好",
  38. icon: "/subpages/icons/ic_triangle_down_1.svg",
  39. color: "#70B3FE"
  40. }, {
  41. title: "良好",
  42. icon: "/subpages/icons/ic_triangle_down_2.svg",
  43. color: "#68D89E"
  44. }, {
  45. title: "一般",
  46. icon: "/subpages/icons/ic_triangle_down_3.svg",
  47. color: "#FFA95A"
  48. }, {
  49. title: "差",
  50. icon: "/subpages/icons/ic_triangle_down_4.svg",
  51. color: "#FC726E"
  52. }],
  53. formatter(type, value) {
  54. if (type === 'hour') {
  55. return `${value}时`;
  56. }
  57. if (type === 'minute') {
  58. return `${value}分`;
  59. }
  60. return value;
  61. },
  62. hotel: '',//酒店
  63. room: '',//房间
  64. intervalId1: null,
  65. intervalId2: null,//解除授权
  66. oldJsonList: null,
  67. },
  68. onOpenDateDialog(event) {
  69. const item = event.currentTarget.dataset.item;
  70. const value = item.value || "";
  71. this.setData({ currentDateItem: item, currentDate: value, showDateDialog: true });
  72. },
  73. onCloseDateDialog() {
  74. this.setData({ showDateDialog: false, currentDateItem: null });
  75. },
  76. onCloseResultsDialog() {
  77. this.setData({ promptTextMessageFlag: false });
  78. },
  79. onDateInput(event) {
  80. const item = this.data.currentDateItem;
  81. if (!item) {
  82. return
  83. }
  84. let oldJsonList = this.data.qnaire;
  85. for (let i = 0; i < oldJsonList.length; i++) {
  86. const element = oldJsonList[i];
  87. if (element.num == item.num) {
  88. element['value'] = event.detail;
  89. break;
  90. }
  91. }
  92. this.setData({
  93. qnaire: oldJsonList
  94. });
  95. this.onCloseDateDialog()
  96. },
  97. onChangeInput(event) {
  98. const item = event.currentTarget.dataset.item
  99. // console.log(item);
  100. let oldJsonList = this.data.qnaire;
  101. for (let i = 0; i < oldJsonList.length; i++) {
  102. const element = oldJsonList[i];
  103. if (element.num == item.num) {
  104. element['questionValue'] = event.detail.value;
  105. break;
  106. }
  107. }
  108. this.setData({
  109. qnaire: oldJsonList
  110. });
  111. },
  112. onChangeFocus(event) {
  113. const item = event.currentTarget.dataset.item
  114. const that = this;
  115. setTimeout(() => {
  116. that.setData({
  117. mInputScrollId: "item" + item.num
  118. });
  119. }, 200);
  120. },
  121. onChangePrivacy(event) {
  122. const check = event.detail;
  123. this.setData({
  124. checkedPrivacy: check
  125. });
  126. },
  127. onChangeRadio(event) {
  128. const item = event.currentTarget.dataset.item
  129. // console.log(item);
  130. let oldJsonList = this.data.qnaire;
  131. for (let i = 0; i < oldJsonList.length; i++) {
  132. const element = oldJsonList[i];
  133. if (element.num == item.num) {
  134. element['value'] = event.detail;
  135. break;
  136. }
  137. }
  138. this.setData({
  139. qnaire: oldJsonList
  140. });
  141. },
  142. handleTouchMove: function () {
  143. return false; // 阻止手动滑动
  144. },
  145. hideModal: function () {
  146. this.setData({
  147. privacyDetailShow: false
  148. });
  149. },
  150. showPrivacyDetail: function () {
  151. this.setData({
  152. privacyDetailShow: true
  153. });
  154. // 这里可以添加代码来显示隐私条款弹出页,比如使用 wx.showModal 或自定义组件
  155. },
  156. hidePrivacyPolicy() {
  157. this.setData({
  158. privacyDetailShow: false
  159. });
  160. },
  161. handleInputChange: function (e) {
  162. this.setData({
  163. height: e.detail.value
  164. });
  165. if (this.data.id == 1) {
  166. this.setData({
  167. weight: e.detail.value
  168. });
  169. }
  170. if (this.data.id == 3) {
  171. this.setData({
  172. weight: e.detail.value
  173. });
  174. if (this.data.weight >= 0 || this.data.height >= 0) {
  175. var bmi = this.data.weight / (this.data.height * this.data.height);
  176. this.setData({
  177. BMI: bmi
  178. });
  179. }
  180. }
  181. },
  182. radioChange: function (e) {
  183. console.log(e.detail.value)
  184. this.setData({
  185. changeValue: e.detail.value
  186. });
  187. },
  188. calculateTotalHours: function (hoursInput, minutesInput) {
  189. // 获取小时和分钟的值,如果为空或不是数字,则设置为0
  190. let hours = parseFloat(hoursInput.value) || 0;
  191. let minutes = parseFloat(minutesInput.value) || 0;
  192. // 将分钟转换为小时的小数部分
  193. // let minutesInHours = minutes / 60;
  194. // 计算总时间(小时)
  195. // let totalHours = hours + minutesInHours;
  196. // 显示结果
  197. // document.getElementById('result').textContent = `总时间: ${totalHours.toFixed(2)} 小时`;
  198. // return totalHours.toFixed(2);
  199. return hours * 60 + minutes;
  200. },
  201. formSubmit: function () {
  202. if (!this.data.checkedPrivacy) {
  203. wx.showToast({
  204. icon: "none",
  205. title: "请先阅读并同意《舒眠调查问卷隐私条款》"
  206. })
  207. return;
  208. }
  209. var finish = true;
  210. var _this = this;
  211. let oldJsonList = _this.data.qnaire;
  212. var mInputScrollId = null;
  213. for (let i = 0; i < oldJsonList.length; i++) {
  214. const element = oldJsonList[i];
  215. if (!element.value) {
  216. finish = false;
  217. console.log("未完成的:", element.num);
  218. mInputScrollId = "item" + element.num;
  219. wx.showModal({
  220. title: '无法提交',
  221. content: '您还有部分题目未完成,请检查后重新提交',
  222. showCancel: false,
  223. confirmColor: '#0BC3AA',
  224. confirmText: "好的",
  225. success(res) {
  226. _this.setData({
  227. mInputScrollId: mInputScrollId
  228. })
  229. }
  230. })
  231. return;
  232. } else {
  233. // if (element.type == "radio&input" && !element.questionValue) {
  234. // finish = false;
  235. // }
  236. }
  237. }
  238. console.log('oldJsonList=='+JSON.stringify(oldJsonList));
  239. if (finish == false) {
  240. wx.showModal({
  241. title: '无法提交',
  242. content: '您还有部分题目未完成,请检查后重新提交',
  243. showCancel: false,
  244. confirmColor: '#0BC3AA',
  245. confirmText: "好的",
  246. success(res) {
  247. _this.setData({
  248. mInputScrollId: mInputScrollId
  249. })
  250. }
  251. })
  252. } else {
  253. wx.showLoading({
  254. title: '加载中',
  255. })
  256. this.setData({
  257. oldJsonList: oldJsonList,
  258. });
  259. setTimeout(function () {
  260. wx.hideLoading({
  261. success(res) {
  262. _this.submitDB();
  263. }
  264. })
  265. }, 2000)
  266. }
  267. },
  268. answer2db: function () {
  269. // db.collection('SAS').add({
  270. // data: {
  271. // answer: this.data.answer
  272. // },
  273. // success (res) {
  274. // console.log(res._id);
  275. // },
  276. // fail (res) {
  277. // wx.showToast({
  278. // icon: 'none',
  279. // title: '新增记录失败'
  280. // })
  281. // console.error('[数据库] [新增记录] 失败:', err)
  282. // }
  283. // })
  284. const answerJson = this.data.oldJsonList;
  285. console.log('answerJson=' + JSON.stringify(answerJson))
  286. let totalAllTemp = 0;
  287. let value1 = answerJson[0].value;
  288. let value2 = answerJson[1].value;
  289. let value3 = answerJson[2].value;
  290. let value4 = answerJson[3].value;
  291. let value5a = answerJson[4].value;
  292. let value5b = answerJson[5].value;
  293. let value5c = answerJson[6].value;
  294. let value5d = answerJson[7].value;
  295. let value5e = answerJson[8].value;
  296. let value5f = answerJson[9].value;
  297. let value5g = answerJson[10].value;
  298. let value5h = answerJson[11].value;
  299. let value5i = answerJson[12].value;
  300. let value5j = answerJson[13].value;
  301. let value5jDes = '';//这个值没有算
  302. let value6 = answerJson[14].value;
  303. let value7 = answerJson[15].value;
  304. let value8 = answerJson[16].value;
  305. let value9 = answerJson[17].value;
  306. let value10 = answerJson[18].value;
  307. let value11 = answerJson[19].value;
  308. let value12 = answerJson[20].value;
  309. let value13 = answerJson[21].value;
  310. let value14 = answerJson[22].value;
  311. let value15 = answerJson[23].value;
  312. let value15Des = '';//这个值没有算
  313. //计算规则 https://mp.weixin.qq.com/s/QyTzuPoNErMjc2KcA1M61g
  314. let comA = 0;//条目6
  315. let comB = 0;
  316. let comB1 = 0;
  317. let comC = 0;
  318. let comD = 0;
  319. let comE = 0;
  320. let comF = 0;
  321. let comG = 0;
  322. comA = this.resultABCD(value6);
  323. comB1 = this.resultABCD(value2) + this.resultABCD(value5a);
  324. console.log("comB1=" + comB1);
  325. if (comB1 == 0) {
  326. comB = 0;
  327. } else if (comB1 >= 1 && comB1 <= 2) {
  328. comB = 1;
  329. } else if (comB1 >= 3 && comB1 <= 4) {
  330. comB = 2;
  331. } else if (comB1 >= 5 && comB1 <= 6) {
  332. comB = 3;
  333. }
  334. let value41 = parseInt((value4.split(':')[0]), 10) || 0;
  335. let value42 = parseInt((value4.split(':')[1]), 10) || 0;
  336. let value43 = value41 * 60 + value42
  337. console.log("value43=" + value43);
  338. if (value43 > 420) {
  339. comC = 0;
  340. } else if (value43 >= 360 && value43 <= 420) {
  341. comC = 1;
  342. } else if (value43 >= 300 && value43 < 360) {
  343. comC = 2;
  344. } else if (value43 < 300) {
  345. comC = 3;
  346. }
  347. let datediff = this.calculateTimeDifference(value1, value3);
  348. console.log("datediff=" + datediff);
  349. let sleepRate = datediff ? ((value43 / datediff) * 100) : 0;
  350. console.log("sleepRate=" + sleepRate);
  351. if (sleepRate >= 85) {
  352. comD = 0;
  353. } else if (sleepRate >= 75 && sleepRate <= 84) {
  354. comD = 1;
  355. } else if (sleepRate >= 65 && sleepRate < 74) {
  356. comD = 2;
  357. } else if (sleepRate < 65) {
  358. comD = 3;
  359. }
  360. let value5All = this.resultABCD(value5b)
  361. + this.resultABCD(value5c)
  362. + this.resultABCD(value5d)
  363. + this.resultABCD(value5e)
  364. + this.resultABCD(value5f)
  365. + this.resultABCD(value5g)
  366. + this.resultABCD(value5h)
  367. + this.resultABCD(value5i)
  368. + this.resultABCD(value5j);
  369. console.log("value5All=" + value5All);
  370. if (value5All == 0) {
  371. comE = 0;
  372. } else if (value5All >= 1 && value5All <= 9) {
  373. comE = 1;
  374. } else if (value5All >= 10 && value5All <= 18) {
  375. comE = 2;
  376. } else if (value5All >= 19 && value5All <= 27) {
  377. comE = 3;
  378. }
  379. comF = this.resultABCD(value7);
  380. console.log("comF=" + comF);
  381. let valueGAll = this.resultABCD(value8) + this.resultABCD(value9);
  382. console.log("valueGAll=" + valueGAll);
  383. if (valueGAll == 0) {
  384. comG = 0;
  385. } else if (valueGAll >= 1 && valueGAll <= 2) {
  386. comG = 1;
  387. } else if (valueGAll >= 3 && valueGAll <= 4) {
  388. comG = 2;
  389. } else if (valueGAll >= 5 && valueGAll <= 6) {
  390. comG = 3;
  391. }
  392. console.log('comA=' + comA);
  393. console.log('comB=' + comB);
  394. console.log('comC=' + comC);
  395. console.log('comD=' + comD);
  396. console.log('comE=' + comE);
  397. console.log('comF=' + comF);
  398. console.log('comG=' + comG);
  399. let comAll = comA + comB + comC + comD + comE + comF + comG;
  400. let comScoreIndex = 0;
  401. let _comScoreStatus = "";
  402. let _comScoreDesc = "";
  403. if (comAll >= 0 && comAll <= 5) {
  404. _comScoreStatus = "非常好";
  405. } else if (comAll >= 6 && comAll <= 10) {
  406. _comScoreStatus = "较好";
  407. comScoreIndex = 1;
  408. } else if (comAll >= 11 && comAll <= 15) {
  409. _comScoreStatus = "良好";
  410. comScoreIndex = 2;
  411. } else if (comAll >= 16 && comAll <= 21) {
  412. _comScoreStatus = "差";
  413. comScoreIndex = 3;
  414. }
  415. if (this.judgmentScoreRange(comAll,0,3)) {
  416. _comScoreDesc = "你目前的睡眠质量非常高,而且健康状况良好,这一切应该继续保持下去。"
  417. } else if (this.judgmentScoreRange(comAll, 4, 8)) {
  418. _comScoreDesc = "你的睡眠质量平平,健康状况也受到影响, 如果再不引起你对睡眠质量的足够重视, 那么你的睡眠质量很可能会迅速下降,向下一级别发展。"
  419. } else if (this.judgmentScoreRange(comAll, 9, 16)) {
  420. _comScoreDesc = "如果你在这一级别内,那么你的睡眠质量可 就亮起红灯了。你必须警惕,因为你的睡眠质量确实比较糟糕,健康状况明显受损。饮食起居会受到一定影响,甚至部分工作你都开始感觉吃力。"
  421. } else {
  422. _comScoreDesc = "天啊!你的睡眠质量已经到了令人发指的地 步—长期睡眠不足导致了你的健康状况严重恶化,这就是你工作力不从心,情绪起伏不定的原因。"
  423. }
  424. console.log('comAll=' + comAll + ',comScoreStatus=' + _comScoreStatus);
  425. this.setData({
  426. comScore: comAll,
  427. comScoreStatus: _comScoreStatus,
  428. comScoreIndex,
  429. comScoreDesc: _comScoreDesc,
  430. promptTextMessageFlag: true,
  431. })
  432. var that = this;
  433. const { nickName } = wx.getStorageSync('userInfo_em');
  434. const unionid = wx.getStorageSync('unionid');
  435. console.log('nickName=='+nickName);
  436. console.log('unionid=='+unionid);
  437. let surveyData = {
  438. hotel: this.data.hotel,
  439. room: this.data.room,
  440. userId: nickName,
  441. id2: unionid,
  442. value1: value1,
  443. value2: value2,
  444. value3: value3,
  445. value4: value4,
  446. value5a: value5a,
  447. value5b: value5b,
  448. value5c: value5c,
  449. value5d: value5d,
  450. value5e: value5e,
  451. value5f: value5f,
  452. value5g: value5g,
  453. value5h: value5h,
  454. value5i: value5i,
  455. value5j: value5j,
  456. value5jDes: value5jDes,
  457. value6: value6,
  458. value7: value7,
  459. value8: value8,
  460. value9: value9,
  461. value10: value10,
  462. value11: value11,
  463. value12: value12,
  464. value13: value13,
  465. value14: value14,
  466. value15: value15,
  467. value15Des: value15Des,
  468. value16: comAll,//备用16(评分)
  469. value17: _comScoreStatus,//备用17(评分说明)
  470. value18: _comScoreDesc,
  471. value18:comA + ',' + comB + ',' + comC + ',' + comD + ',' + comE + ',' + comF + ',' + comG //备用18(comA、comB、comC、comD、comE、comF、comG)
  472. };
  473. // 将surveyData发送到服务器
  474. console.log('提交的问卷数据:', surveyData);
  475. //提交到数据库
  476. wx.request({
  477. url: `${homeApi}/system/questionInvest`, //
  478. method: 'POST',
  479. header: {
  480. 'content-type': 'application/json', // 默认值
  481. 'Authorization': 'Bearer ' + token // 在头部设置认证信息,例如使用Bearer Token
  482. },
  483. data:surveyData,
  484. success(res) {
  485. console.log('res==='+JSON.stringify(res));
  486. console.log('res.code==='+res.data.code);
  487. if(res && res.data && res.data.code == 200){
  488. wx.showToast({
  489. title: '问卷提交成功',
  490. icon: 'success',
  491. duration: 2000
  492. });
  493. if (that.data.intervalId1) {
  494. clearInterval(that.data.intervalId1);
  495. that.data.intervalId1 = null;
  496. }
  497. }
  498. },
  499. fail: function (error) {
  500. console.error('error', error);
  501. } ,
  502. complete: function (e) {
  503. }
  504. });
  505. },
  506. judgmentScoreRange(scoreValue, startScore, endScore) {
  507. return scoreValue >= startScore && scoreValue <= endScore;
  508. },
  509. resultABCD: function (a) {
  510. if (a == 'a') {
  511. return 0;
  512. } else if (a == 'b') {
  513. return 1;
  514. } else if (a == 'c') {
  515. return 2;
  516. } else if (a == 'd') {
  517. return 3;
  518. }
  519. },
  520. sleepState: function (a, b) {
  521. console.log('a=' + a + ',b=' + b);
  522. if (a == 'A') {
  523. if (b >= 1 && b <= 9) {
  524. return '不足';
  525. } else if (b >= 10 && b <= 12) {
  526. return '适中';
  527. } else if (b >= 13) {
  528. return '过长';
  529. } else {
  530. return '未知';
  531. }
  532. } else if (a == 'B') {
  533. if (b >= 1 && b <= 9) {
  534. return '不足';
  535. } else if (b >= 10 && b <= 12) {
  536. return '适中';
  537. } else if (b >= 13) {
  538. return '过长';
  539. } else {
  540. return '未知';
  541. }
  542. } else if (a == 'C') {
  543. if (b >= 1 && b <= 9) {
  544. return '不足';
  545. } else if (b >= 10 && b <= 12) {
  546. return '适中';
  547. } else if (b >= 13) {
  548. return '过长';
  549. } else {
  550. return '未知';
  551. }
  552. } else if (a == 'D') {
  553. if (b >= 1 && b <= 9) {
  554. return '不足';
  555. } else if (b >= 10 && b <= 12) {
  556. return '适中';
  557. } else if (b >= 13) {
  558. return '过长';
  559. } else {
  560. return '未知';
  561. }
  562. } else {
  563. return '未知';
  564. }
  565. },
  566. // 将时间字符串转换为分钟数
  567. timeStringToMinutes: function (timeStr) {
  568. var parts = timeStr.split(":");
  569. return parseInt(parts[0], 10) * 60 + parseInt(parts[1], 10);
  570. },
  571. // 将分钟数转换回时间字符串格式 HH:mm
  572. minutesToTimeString: function (minutes) {
  573. var hours = Math.floor(minutes / 60);
  574. var mins = minutes % 60;
  575. var minsStr = mins < 10 ? "0" + mins : mins.toString();
  576. return hours.toString() + ":" + minsStr;
  577. },
  578. // 计算时间差(分钟)
  579. calculateTimeDifference: function (sleepTimeStr, wakeUpTimeStr) {
  580. // 将时间字符串转换为分钟
  581. var sleepTimeMinutes = this.timeStringToMinutes(sleepTimeStr);
  582. var wakeUpTimeMinutes = this.timeStringToMinutes("24:00") + this.timeStringToMinutes(wakeUpTimeStr); // 加上第二天的0点到起床时间的分钟数
  583. // 计算时间差
  584. var diffInMinutes = wakeUpTimeMinutes - sleepTimeMinutes;
  585. // 将分钟数转换回时间字符串格式 HH:mm
  586. var diffInHours = Math.floor(diffInMinutes / 60);
  587. var diffInMins = diffInMinutes % 60;
  588. // 返回时间差字符串
  589. console.log("diffInMinutes==" + diffInMinutes)
  590. return diffInMinutes;
  591. },
  592. // startInterval: function () {
  593. // var that = this;
  594. // if (!that.data.intervalId1) {
  595. // that.data.intervalId1 = setInterval(() => {
  596. // that.answer2db();
  597. // }, 1000);
  598. // }
  599. // },
  600. // clearInterval: function () {
  601. // var that = this;
  602. // if (that.data.intervalId1) {
  603. // clearInterval(that.data.intervalId1);
  604. // that.data.intervalId1 = null;
  605. // }
  606. // },
  607. submitDB: function () {
  608. var that = this;
  609. if (!that.data.intervalId1) {
  610. that.data.intervalId1 = setInterval(() => {
  611. that.answer2db();
  612. }, 1000);
  613. }
  614. },
  615. /**
  616. * 生命周期函数--监听页面加载
  617. */
  618. onLoad: function (options) {
  619. let oldJsonList = qnaire.qnaire
  620. oldJsonList.forEach(element => {
  621. let mapArray = [];
  622. if (element.type == "radio" || element.type == "radio&input") {
  623. for (let key in element.option) {
  624. mapArray.push({ key: key, value: element.option[key] });
  625. }
  626. element['options'] = mapArray;
  627. }
  628. });
  629. // console.log(oldJsonList);
  630. let columns = [[], []];
  631. for (let i = 0; i < 24; i++) {
  632. if (i < 10) {
  633. columns[0].push("0" + i);
  634. } else {
  635. columns[0].push("" + i);
  636. }
  637. }
  638. for (let i = 0; i < 60; i++) {
  639. if (i < 10) {
  640. columns[1].push("0" + i);
  641. } else {
  642. columns[1].push("" + i);
  643. }
  644. }
  645. console.log(columns);
  646. this.setData({
  647. privacyDetailShow: false,
  648. qnaire: oldJsonList,
  649. columns
  650. });
  651. console.log('option.res=' + JSON.stringify(wx.getStorageSync('res')));
  652. if (!wx.getStorageSync('res') || !wx.getStorageSync('res').result) {
  653. wx.showModal({
  654. title: '提示',
  655. content: '请先扫描房间二维码',
  656. showCancel: false
  657. });
  658. setTimeout(function () {
  659. wx.reLaunch({
  660. url: '/pages/scan/scan',
  661. })
  662. }, 2000) // 设置延时时间,单位为毫秒
  663. } else if (wx.getStorageSync('res').result.split('|').length != 2) {
  664. wx.showModal({
  665. title: '提示',
  666. content: '房间二维码不正确,请重新扫码',
  667. showCancel: false
  668. });
  669. setTimeout(function () {
  670. wx.reLaunch({
  671. url: '/pages/scan/scan',
  672. })
  673. }, 2000) // 设置延时时间,单位为毫秒
  674. } else {
  675. // const expiresAt = wx.getStorageSync('scanResultExpiresAt');
  676. // const now = Date.now()
  677. // if (expiresAt || expiresAt < now) {
  678. // // 扫码结果已过期
  679. // wx.showToast({
  680. // title: '扫码结果失效或已过期,请重新扫码',
  681. // icon: 'none'
  682. // });
  683. // // 清除过期的扫码结果
  684. // wx.removeStorageSync('scanResultExpiresAt');
  685. // setTimeout(function() {
  686. // wx.reLaunch({
  687. // url: '/pages/scan/scan',
  688. // })
  689. // }, 2000) // 设置延时时间,单位为毫秒
  690. // }else{
  691. // //续期
  692. // wx.setStorageSync('scanResultExpiresAt', Date.now() + 2 * 60 * 60 * 1000)
  693. // }
  694. let hotelTemp = '';
  695. let roomTemp = '';
  696. hotelTemp = wx.getStorageSync('res').result.split('|')[0];
  697. roomTemp = wx.getStorageSync('res').result.split('|')[1];
  698. this.setData({
  699. hotel: hotelTemp,
  700. room: roomTemp,
  701. });
  702. }
  703. },
  704. /**
  705. * 生命周期函数--监听页面初次渲染完成
  706. */
  707. onReady: function () {
  708. },
  709. /**
  710. * 生命周期函数--监听页面显示
  711. */
  712. onShow: function (options) {
  713. // var that = this;
  714. // if (!that.data.intervalId2) {
  715. // that.data.intervalId2 = setInterval(() => {
  716. // // 这里执行你的代码
  717. // console.log('sleepQualityIndexAssessment页面:'+Date.now());
  718. // }, 10000);
  719. // }
  720. },
  721. /**
  722. * 生命周期函数--监听页面隐藏
  723. */
  724. onHide: function () {
  725. var that = this;
  726. if (that.data.intervalId1) {
  727. clearInterval(that.data.intervalId1);
  728. that.data.intervalId1 = null;
  729. }
  730. // if (that.data.intervalId2) {
  731. // clearInterval(that.data.intervalId2);
  732. // that.data.intervalId2 = null;
  733. // }
  734. },
  735. /**
  736. * 生命周期函数--监听页面卸载
  737. */
  738. onUnload: function () {
  739. var that = this;
  740. if (that.data.intervalId1) {
  741. clearInterval(that.data.intervalId1);
  742. that.data.intervalId1 = null;
  743. }
  744. // if (that.data.intervalId2) {
  745. // clearInterval(that.data.intervalId2);
  746. // that.data.intervalId2 = null;
  747. // }
  748. },
  749. /**
  750. * 页面相关事件处理函数--监听用户下拉动作
  751. */
  752. onPullDownRefresh: function () {
  753. },
  754. /**
  755. * 页面上拉触底事件的处理函数
  756. */
  757. onReachBottom: function () {
  758. },
  759. /**
  760. * 用户点击右上角分享
  761. */
  762. onShareAppMessage: function () {
  763. }
  764. })