sleepEvaluation.js 15 KB

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