sleepEvaluation.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515
  1. const baseUrl = "https://fare.somnisix.top/";
  2. const authorization = "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6Ijk5YzI3MjI2LTdkOWQtNDhiOC1hYjlhLWM4YjVjYWZiZGNkNyIsInVzZXJuYW1lIjoiYWRtaW4ifQ.zITQOINFkHs19_1RAgHS4I9YMaVxVq0Dsn3t6r_K7rv3rXvJy0sMtodejIMi_PNa_m4uQYxnU-6k3wC2LZht_Q";
  3. const api = "system/sleepEvaluation";
  4. Page({
  5. data: {
  6. activeIcon: "/subpages/icons/ic_selected_radio.svg",
  7. normalIcon: "/subpages/icons/ic_radio.svg",
  8. activeColor: "color:#0BC3AA;",
  9. normalColor: "color:#666666;",
  10. ageOptions: [
  11. { value: '0', label: '20岁以下' },
  12. { value: '1', label: '20-29岁' },
  13. { value: '2', label: '30-39岁' },
  14. { value: '3', label: '40-49岁' },
  15. { value: '4', label: '50岁以上' },
  16. ],
  17. careerOptions: [
  18. { value: '0', label: '学生' },
  19. { value: '1', label: '上班族' },
  20. { value: '2', label: '自由职业者' },
  21. { value: '3', label: '企业经营者' },
  22. { value: '4', label: '政府、事业等单位人员' },
  23. { value: '5', label: '其他(请注明)' },
  24. ],
  25. noSatisfiedOptions: [
  26. { value: '0', label: '设备操作有困难' },
  27. { value: '1', label: '对睡眠帮助较小' },
  28. { value: '2', label: '都满意' },
  29. { value: '3', label: '其他原因(请详细说明)' },
  30. ],
  31. career: '',
  32. careerInput: '',
  33. stayExperOptions: [
  34. { value: '0', label: '非常好' },
  35. { value: '1', label: '较好' },
  36. { value: '2', label: '一般' },
  37. { value: '3', label: '较差' },
  38. { value: '4', label: '非常差' },
  39. ],
  40. stayExper: '',
  41. comfortOptions: [
  42. { value: '0', label: '非常舒适' },
  43. { value: '1', label: '舒适' },
  44. // ... 其他选项
  45. ],
  46. improvementOptions: [
  47. { value: '0', label: '舒适度' },
  48. { value: '1', label: '功能性' },
  49. // ... 其他选项
  50. ],
  51. //哪些方式来帮助改善睡眠
  52. improvementSleepOptions: [
  53. { value: '0', label: '调整作息时间' },
  54. { value: '1', label: '锻炼' },
  55. { value: '2', label: '使用助眠产品(如香薰、耳塞、眼罩等)' },
  56. { value: '3', label: '冥想或深呼吸' },
  57. { value: '4', label: '寻求医疗帮助' },
  58. { value: '5', label: '不采取措施' },
  59. ],
  60. //哪些方面让您比较满意
  61. satisfiedOptions: [
  62. { value: '0', label: '便捷的设备操作' },
  63. { value: '1', label: '适宜的睡眠环境' },
  64. { value: '2', label: '人性化的睡眠监测' },
  65. { value: '3', label: '体贴的睡眠辅助设施(如助眠视频、音乐等)' },
  66. ],
  67. wayImprovementSleepOptions: [
  68. { value: '0', label: '监测睡眠质量和提供反馈' },
  69. { value: '1', label: '自动调整睡眠环境(如温度、光线)' },
  70. { value: '2', label: '提供个性化的睡眠建议' },
  71. { value: '3', label: '远程医疗咨询或诊断' },
  72. { value: '4', label: '其他[请在此区域内作答]' },
  73. ],
  74. getSleepHealthOptions: [
  75. { value: '0', label: '互联网' },
  76. { value: '1', label: '社交媒体' },
  77. { value: '2', label: '书籍或杂志' },
  78. { value: '3', label: '医疗专业人士' },
  79. { value: '4', label: '朋友或家人' },
  80. { value: '5', label: '其他[请在此区域内作答]' },
  81. ],
  82. influenceSleepOptions: [
  83. { value: '0', label: '工作压力' },
  84. { value: '1', label: '生活压力' },
  85. { value: '2', label: '环境噪音' },
  86. { value: '3', label: '光线过亮' },
  87. { value: '4', label: '身体不适(如疼痛、消化不良等)' },
  88. { value: '5', label: '心理问题(如焦虑、抑郁等)' },
  89. { value: '6', label: '其他(请注明)' },
  90. ],
  91. improvSleepMethodsOptions: [
  92. { value: '0', label: '听轻音乐' },
  93. { value: '1', label: '喝热牛奶' },
  94. { value: '2', label: '进行放松训练(如深呼吸、冥想等)' },
  95. { value: '3', label: '使用助眠药物' },
  96. { value: '4', label: '其他(请注明)' },
  97. ],
  98. gender: '',
  99. sleepEnvironmentComfort: '',
  100. productComfort: '',
  101. improvementAreas: [], // 使用数组来存储多选答案
  102. ImprovementSleep: [],//哪些方式来帮助改善睡眠
  103. improvementSleep: [],
  104. satisfied: [],// 哪些方面让您比较满意
  105. suggestion: '', // 文本输入的建议
  106. thirdPlatformsInput: '',//填写第三方平台
  107. noSatisfied: '',//体验不满意的原因
  108. wayImprovementSleep: '',//哪些方式来帮助改善睡眠
  109. wayImprovementSleepInput: '',//请填写帮助改善睡眠方式文本
  110. getSleepHealth: [],// 从哪里获取关于睡眠健康的信息
  111. getSleepHealthInput: '',//您通常从哪里获取关于睡眠健康的信息文本
  112. influenceSleep: [],//您认为以下哪些因素会影响您的睡眠
  113. influenceSleepInput: '',//您认为以下哪些因素会影响您的睡眠文本
  114. improvSleepMethods: [],//您认为以下哪些因素会影响您的睡眠
  115. improvSleepMethodsInput: '',//您认为以下哪些因素会影响您的睡眠文本
  116. age: '',//您的年龄
  117. noSatisfiedInput: '',//让您对本次睡眠房入住体验不满意的原因是文本
  118. channel: '',//您是通过什么渠道预定到的本酒店睡眠房?
  119. hotel: '',//酒店
  120. room: '',//房间
  121. mInputId:''//自动滚动用的
  122. },
  123. // 处理性别选择
  124. bindGenderChange: function (e) {
  125. this.setData({
  126. gender: e.detail
  127. });
  128. },
  129. // 处理入住体验的选择
  130. bindStayExperOptions: function (e) {
  131. this.setData({
  132. stayExper: e.detail
  133. });
  134. },
  135. // 处理睡眠环境舒适度(温度、湿度)的选择
  136. bindSleepEnvironmentComfort: function (e) {
  137. this.setData({
  138. sleepEnvironmentComfort: e.detail.value
  139. });
  140. },
  141. // 处理睡眠产品舒适度的选择
  142. bindProductComfort: function (e) {
  143. this.setData({
  144. productComfort: e.detail.value
  145. });
  146. },
  147. // 处理改进空间的多选问题
  148. bindImprovementAreas: function (e) {
  149. this.setData({
  150. improvementAreas: e.detail.value
  151. });
  152. },
  153. bindChannelChange: function (e) {
  154. this.setData({
  155. channel: e.detail
  156. });
  157. },
  158. // 改善睡眠
  159. bindImprovementSleep: function (e) {
  160. this.setData({
  161. improvementSleep: e.detail
  162. });
  163. },
  164. // 改善睡眠
  165. bindGetSleepHealth: function (e) {
  166. this.setData({
  167. getSleepHealth: e.detail
  168. });
  169. },
  170. //您认为以下哪些因素会影响您的睡眠
  171. bindInfluenceSleep: function (e) {
  172. this.setData({
  173. influenceSleep: e.detail
  174. });
  175. },
  176. //您通常使用什么方法来改善睡眠质量
  177. bindImprovSleepMethods: function (e) {
  178. this.setData({
  179. improvSleepMethods: e.detail
  180. });
  181. },
  182. // 体验不满意的原因
  183. bindNoSatisfiedChange: function (e) {
  184. this.setData({
  185. noSatisfied: e.detail
  186. });
  187. },
  188. bindCareerChange: function (e) {
  189. this.setData({
  190. career: e.detail
  191. });
  192. },
  193. bindAgeChange: function (e) {
  194. this.setData({
  195. age: e.detail
  196. });
  197. },
  198. // 哪些方面的多选问题
  199. bindSatisfied: function (e) {
  200. console.log(e)
  201. this.setData({
  202. satisfied: e.detail
  203. });
  204. },
  205. // 哪些方式来帮助改善睡眠
  206. bindWayImprovementSleep: function (e) {
  207. this.setData({
  208. wayImprovementSleep: e.detail
  209. });
  210. },
  211. bindNoSatisfiedInput: function (e) {
  212. this.setData({
  213. noSatisfiedInput: e.detail.value
  214. });
  215. },
  216. bindCareerInputInput: function (e) {
  217. this.setData({
  218. careerInput: e.detail.value
  219. });
  220. },
  221. bindGetSleepHealthInput: function (e) {
  222. this.setData({
  223. getSleepHealthInput: e.detail.value
  224. });
  225. },
  226. bindInfluenceSleepInput: function (e) {
  227. this.setData({
  228. influenceSleepInput: e.detail.value
  229. });
  230. },
  231. bindImprovSleepMethodsInput: function (e) {
  232. this.setData({
  233. improvSleepMethodsInput: e.detail.value
  234. });
  235. },
  236. // 方式来帮助改善睡眠文本输入
  237. bindWayImprovementSleepInput: function (e) {
  238. this.setData({
  239. wayImprovementSleepInput: e.detail.value
  240. });
  241. },
  242. bindThirdPlatformsInputInput: function (e) {
  243. this.setData({
  244. thirdPlatformsInput: e.detail.value
  245. });
  246. },
  247. // 职业填写
  248. bindSuggestionInput: function (e) {
  249. this.setData({
  250. suggestion: e.detail.value
  251. });
  252. },
  253. // 提交问卷的函数
  254. submitSurvey: function () {
  255. let surveyData = {
  256. hotel: this.data.hotel,
  257. room: this.data.room,
  258. gender: this.data.gender,
  259. stayExper: this.data.stayExper,
  260. sleepEnvironmentComfort: this.data.sleepEnvironmentComfort,
  261. productComfort: this.data.productComfort,
  262. improvementAreas: this.data.improvementAreas,
  263. satisfied: this.data.satisfied,
  264. suggestion: this.data.suggestion,
  265. career: this.data.career,
  266. careerInput: this.data.careerInput,
  267. thirdPlatformsInput: this.data.thirdPlatformsInput,
  268. noSatisfied: this.data.noSatisfied,
  269. noSatisfiedInput: this.data.noSatisfiedInput,
  270. improvementSleep: this.data.improvementSleep,
  271. wayImprovementSleep: this.data.wayImprovementSleep,
  272. wayImprovementSleepInput: this.data.wayImprovementSleepInput,
  273. getSleepHealth: this.data.getSleepHealth,
  274. bindGetSleepHealthInput: this.data.bindGetSleepHealthInput,
  275. influenceSleep: this.data.influenceSleep,
  276. influenceSleepInput: this.data.influenceSleepInput,
  277. improvSleepMethods: this.data.improvSleepMethods,
  278. improvSleepMethodsInput: this.data.improvSleepMethodsInput,
  279. age: this.data.age,
  280. channel: this.data.channel,
  281. };
  282. let checkList = {
  283. age: this.data.age,
  284. career: this.data.career,
  285. gender: this.data.gender,
  286. channel: this.data.channel,
  287. stayExper: this.data.stayExper,
  288. satisfied: this.data.satisfied,
  289. noSatisfied: this.data.noSatisfied,
  290. improvementSleep: this.data.improvementSleep,
  291. wayImprovementSleep: this.data.wayImprovementSleep,
  292. getSleepHealth: this.data.getSleepHealth,
  293. influenceSleep: this.data.influenceSleep,
  294. improvSleepMethods: this.data.improvSleepMethods,
  295. suggestion: this.data.suggestion,
  296. // sleepEnvironmentComfort: this.data.sleepEnvironmentComfort,
  297. // productComfort: this.data.productComfort,
  298. // improvementAreas: this.data.improvementAreas,
  299. // thirdPlatformsInput: this.data.thirdPlatformsInput,
  300. }
  301. var isFinish = true;
  302. var emptyKey = "";
  303. const that = this;
  304. for (const key in checkList) {
  305. if (checkList.hasOwnProperty(key)) {
  306. const element = checkList[key];
  307. if (!element || (Array.isArray(element) && element.length <= 0)) { // 检查属性值是否为空
  308. // 这里可以添加更复杂的判断,比如仅针对字符串检查是否为空字符串
  309. // if (typeof obj[key] === 'string' && obj[key].trim() === '') {
  310. isFinish = false;
  311. emptyKey = key;
  312. wx.showModal({
  313. title: '无法提交',
  314. content: '您还有部分题目未完成,请检查后重新提交',
  315. showCancel: false,
  316. confirmColor: '#0BC3AA',
  317. confirmText: "好的",
  318. success(res) {
  319. console.log(emptyKey.toString());
  320. that.setData({
  321. mInputId: emptyKey.toString()
  322. })
  323. }
  324. })
  325. return; // 停止循环
  326. }
  327. }
  328. }
  329. if (!isFinish) {
  330. wx.showModal({
  331. title: '无法提交',
  332. content: '您还有部分题目未完成,请检查后重新提交',
  333. showCancel: false,
  334. confirmColor: '#0BC3AA',
  335. confirmText: "好的",
  336. success(res) {
  337. console.log(emptyKey.toString());
  338. }
  339. })
  340. return;
  341. }
  342. // 将surveyData发送到服务器
  343. console.log('提交的问卷数据:', surveyData);
  344. //后边会提交到数据库
  345. // wx.request({
  346. // url: `${aipushApi}/getdatefromsn`, //
  347. // method: 'POST',
  348. // header: {
  349. // 'content-type': 'application/json', // 默认值
  350. // 'Authorization': 'Bearer ' + token // 在头部设置认证信息,例如使用Bearer Token
  351. // },
  352. // data:{
  353. //     "surveyData":surveyData,"token":"token_push"
  354. // },
  355. // success(res) {
  356. // wx.showToast({
  357. // title: '问卷提交成功',
  358. // icon: 'success',
  359. // duration: 2000
  360. // });
  361. // },
  362. // fail: function (error) {
  363. // console.error('error', error);
  364. // } ,
  365. // complete: function (e) {
  366. // }
  367. // });
  368. wx.showToast({
  369. title: '问卷提交成功',
  370. icon: 'success',
  371. duration: 2000,
  372. success() {
  373. setTimeout(() => {
  374. wx.navigateBack()
  375. }, 1500);
  376. }
  377. });
  378. // 清空表单:
  379. // this.setData({
  380. // gender: '',
  381. // careerInput:'',
  382. // stayExper:'',
  383. // sleepEnvironmentComfort: '',
  384. // productComfort: '',
  385. // improvementAreas: [], // 使用数组来存储多选答案
  386. // ImprovementSleep: [],//哪些方式来帮助改善睡眠
  387. // satisfied: [],// 哪些方面让您比较满意
  388. // suggestion: '', // 文本输入的建议
  389. // thirdPlatformsInput: '',//填写第三方平台
  390. // noSatisfied: '',//体验不满意的原因
  391. // wayImprovementSleep: '',//哪些方式来帮助改善睡眠
  392. // wayImprovementSleepInput: '',//请填写帮助改善睡眠方式文本
  393. // getSleepHealth: [],// 从哪里获取关于睡眠健康的信息
  394. // getSleepHealthInput: '',//您通常从哪里获取关于睡眠健康的信息文本
  395. // influenceSleep: [],//您认为以下哪些因素会影响您的睡眠
  396. // influenceSleepInput: '',//您认为以下哪些因素会影响您的睡眠文本
  397. // improvSleepMethods: [],//您认为以下哪些因素会影响您的睡眠
  398. // improvSleepMethodsInput: '',//您认为以下哪些因素会影响您的睡眠文本
  399. // age: '',//您的年龄
  400. // noSatisfiedInput: '',//让您对本次睡眠房入住体验不满意的原因文本
  401. // channel: '',
  402. // });
  403. },
  404. onLoad(option) {
  405. var that = this;
  406. console.log("sleepEvaluation页面");
  407. // wx.clearStorage();
  408. console.log('option.res=' + JSON.stringify(wx.getStorageSync('res')));
  409. if (!wx.getStorageSync('res') || !wx.getStorageSync('res').result) {
  410. wx.showModal({
  411. title: '提示',
  412. content: '请先扫描房间二维码',
  413. showCancel: false
  414. });
  415. setTimeout(function () {
  416. wx.reLaunch({
  417. url: '/pages/scan/scan',
  418. })
  419. }, 2000) // 设置延时时间,单位为毫秒
  420. } else if (wx.getStorageSync('res').result.split('|').length != 2) {
  421. wx.showModal({
  422. title: '提示',
  423. content: '房间二维码不正确,请重新扫码',
  424. showCancel: false
  425. });
  426. setTimeout(function () {
  427. wx.reLaunch({
  428. url: '/pages/scan/scan',
  429. })
  430. }, 2000) // 设置延时时间,单位为毫秒
  431. } else {
  432. // const expiresAt = wx.getStorageSync('scanResultExpiresAt');
  433. // const now = Date.now()
  434. // if (expiresAt || expiresAt < now) {
  435. // // 扫码结果已过期
  436. // wx.showToast({
  437. // title: '扫码结果失效或已过期,请重新扫码',
  438. // icon: 'none'
  439. // });
  440. // // 清除过期的扫码结果
  441. // wx.removeStorageSync('scanResultExpiresAt');
  442. // setTimeout(function() {
  443. // wx.reLaunch({
  444. // url: '/pages/scan/scan',
  445. // })
  446. // }, 2000) // 设置延时时间,单位为毫秒
  447. // }else{
  448. // //续期
  449. // wx.setStorageSync('scanResultExpiresAt', Date.now() + 2 * 60 * 60 * 1000)
  450. // }
  451. let hotelTemp = '';
  452. let roomTemp = '';
  453. hotelTemp = wx.getStorageSync('res').result.split('|')[0];
  454. roomTemp = wx.getStorageSync('res').result.split('|')[1];
  455. this.setData({
  456. hotel: hotelTemp,
  457. room: roomTemp,
  458. });
  459. }
  460. },
  461. /**
  462. * 生命周期函数--监听页面隐藏
  463. */
  464. onHide: function () {
  465. },
  466. /**
  467. * 生命周期函数--监听页面卸载
  468. */
  469. onUnload: function () {
  470. },
  471. });