Quellcode durchsuchen

修改调查问卷

hanchong vor 1 Jahr
Ursprung
Commit
e1a3ded607
4 geänderte Dateien mit 476 neuen und 395 gelöschten Zeilen
  1. 194 237
      pages/testSAS/sas.js
  2. 238 146
      pages/testSAS/testSAS.js
  3. 16 10
      pages/testSAS/testSAS.wxml
  4. 28 2
      pages/testSAS/testSAS.wxss

+ 194 - 237
pages/testSAS/sas.js

@@ -1,349 +1,306 @@
 const qnaire = [
 	{
 	  "num": 0,
-	  "question": "1.年龄",
-		"type": "radio",
+	  "question": "1.过去1个月通常上床睡觉的时间是?(请按24h制填写)",
+	  "question_1": "",
+	  "BMI": "",
+	  "type": "input",
 	  "option": {
-	    "a": "1-12周岁",
-	    "b": "13-25周岁",
-	    "c": "25-59周岁",
-	    "d": "60周岁以上",
-		// "e": "70周岁及以上",
-		  // "f": "30-49周岁",
-		  // "g": "50-59周岁",
-		  // "h": "60周岁-69周岁",
-		  // "i": "70周岁-79周岁",
-		  // "j": "80周岁及以上",
+	    "a": "上床睡觉的时间是",
+	    "b": "点",
+		"c": "分",
 	  }
 	},
   {
 	"num": 1,
-    "question": "2.性别",
+    "question": "2.过去1个月你每晚通常要多长时间(min)才能入睡?",
 	"type": "radio",
     "option": {
-      "a": "",
-      "b": "",
-      "c": "",
-      "d": ""
+      "a": "<15min",
+      "b": "16-30min",
+      "c": "31-60min",
+      "d": ">60min"
     }
   },
   {
 	"num": 2,
-    "question": "3.身高",
-  	"question_1": "",
-  	"type": "input",
+    "question": "3.过去1个月每天早上通常什么时候起床?(请按24h制填写)",
+    "question_1": "",
+    "BMI": "",
+    "type": "input",
     "option": {
-      "a": "身高",
-      "b": "厘米",
+      "a": "起床时间",
+      "b": "点",
+      "c": "分",
     }
   },
   
   {
-	  "num": 3,
-    "question": "4.体重",
-  	"question_1": "",
-	"BMI": "",
-  	"type": "input",
+	"num": 3,
+    "question": "4.过去1个月你每天实际睡眠的时间有多少?(请按24h制填写)",
+    "question_1": "",
+    "BMI": "",
+    "type": "input",
     "option": {
-      "a": "体重",
-      "b": "KG(千克)",
+      "a": "每晚实际睡眠时间",
+      "b": "小时",
+      "c": "分钟",
     }
   },
-  // {
-  //   "question": "宗教信仰",
-  // 	"question_1": "",
-  // 	"BMI": "",
-  // 	"type": "input",
-  //   "option": {
-  //     "a": "宗教信仰",
-  //     "b": "",
-  //   }
-  // },
+
   {
-	"num": 4,
-    "question": "5.您目前的职业?",
-  	"question_1": "",
-  	"type": "radio",
+  	"num": 4,
+    "question": "5.过去1个月你是否因为以下问题而经常睡眠不好?",
+    "question_1": "A.不能在30min内入睡",
+    "type": "radio",
     "option": {
-      "a": "脑力劳动者",
-      "b": "体力劳动者",
-      "c": "没有稳定职业"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
   {
 	"num": 5,
-    "question": "6.	近1个月,晚上上床睡觉",
-	"question_1": "",
-	"type": "input",
+    "question": "5.过去1个月你是否因为以下问题而经常睡眠不好?",
+    "question_1": "B.在晚上睡眠中醒来或早醒",
+    "type": "radio",
     "option": {
-      "a": "6.近1个月,晚上上床睡觉通常是",
-      "b": "点钟",
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
   {
 	"num": 6,
-    "question": "7.	近1个月,从上床到入睡",
-	"question_1": "",
-	"type": "input",
+    "question": "5.过去1个月你是否因为以下问题而经常睡眠不好?",
+    "question_1": "C.晚上有无起床上洗手间",
+    "type": "radio",
     "option": {
-      "a": "7.近1个月,从上床到入睡通常需要",
-      "b": "分钟",
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
   {
 	"num": 7,
-    "question": "8.	近1个月,早上通常起床时间",
-	"question_1": "",
-	"type": "input",
+    "question": "5.过去1个月你是否因为以下问题而经常睡眠不好?",
+    "question_1": "D.不舒服的呼吸",
+    "type": "radio",
     "option": {
-      "a": "8.近1个月,早上通常起床时间",
-      "b": "点钟",
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
   {
 	"num": 8,
-    "question": "9.	近1个月,每夜通常实际睡眠时间",
-	"question_1": "",
-	"type": "input",
+    "question": "5.过去1个月你是否因为以下问题而经常睡眠不好?",
+    "question_1": "E.大声咳嗽或打鼾",
+    "type": "radio",
     "option": {
-      "a": "9.近1个月,每夜通常实际睡眠时间",
-      "b": "小时",
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
   {
-	"num": 9,
-    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-	"question_1": "a.入睡困难(30分钟内不能入睡)",
-	"type": "radio",
+  	"num": 9,
+    "question": "5.过去1个月你是否因为以下问题而经常睡眠不好?",
+    "question_1": "F.感到寒冷",
+    "type": "radio",
     "option": {
-      "a": "",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
   {
-	"num": 10,
-    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-	"question_1": "b.夜间易醒或早醒",
-	"type": "radio",
+  	"num": 10,
+    "question": "5.过去1个月你是否因为以下问题而经常睡眠不好?",
+    "question_1": "G.感到太热",
+    "type": "radio",
     "option": {
-      "a": "",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
   {
-	"num": 11,
-    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-	"question_1": "c.夜间去厕所",
-	"type": "radio",
+  	"num": 11,
+    "question": "5.过去1个月你是否因为以下问题而经常睡眠不好?",
+    "question_1": "H.做噩梦",
+    "type": "radio",
     "option": {
-      "a": "",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
   {
-	"num": 12,
-    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-	"question_1": "d.呼吸不畅",
-	"type": "radio",
+  	"num": 12,
+    "question": "5.过去1个月你是否因为以下问题而经常睡眠不好?",
+    "question_1": "I.出现疼痛",
+    "type": "radio",
     "option": {
-      "a": "",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
+  
   {
-	"num": 13,
-    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-	"question_1": "e.大声咳嗽或鼾声高 ",
-	"type": "radio",
+  	"num": 13,
+    "question": "5.过去1个月你是否因为以下问题而经常睡眠不好?",
+    "question_1": "J.其他影响睡眠的事情:",
+    "type": "radio",
     "option": {
-      "a": "",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
+  
+  
   {
 	"num": 14,
-    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-	"question_1": "f.感觉冷",
+    "question": "6.你对过去1个月睡眠质量评分",
+	"question_1": "",
 	"type": "radio",
     "option": {
-      "a": "",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
+      "a": "非常好",
+      "b": "尚好",
+      "c": "不好",
+      "d": "非常差"
     }
   },
+  
+  
   {
-	"num": 15,
-    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-	"question_1": "g.感觉热",
-	"type": "radio",
+  	"num": 15,
+    "question": "7.近1个月你用催眠药物的情况",
+    "question_1": "",
+    "type": "radio",
     "option": {
-      "a": "",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
+  
   {
-	"num": 16,
-    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-	"question_1": "h.做噩梦",
-	"type": "radio",
+  	"num": 16,
+    "question": "8.过去1个月你在开车、吃饭或参加社会活动时难以保持清醒状态?",
+    "question_1": "",
+    "type": "radio",
     "option": {
-      "a": "",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
+  
   {
-	"num": 17,
-    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-	"question_1": "i.疼痛不适",
-	"type": "radio",
+  	"num": 17,
+    "question": "9.过去1个月你在积极完成事情上有无困难?",
+    "question_1": "",
+    "type": "radio",
     "option": {
-      "a": "",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
+      "a": "没有困难",
+      "b": "有一点困难",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
+  
   {
   	"num": 18,
-    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-  	"question_1": "j.其他",
-  	"type": "radio",
+    "question": "10.你是与人同睡一床(睡觉同伴,包括配偶等)或有室友?",
+    "question_1": "",
+    "type": "radio",
     "option": {
-      "a": "无",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
-    }
-  },
- //  {
-	// "num": 18,
- //    "question": "10.近一个月,您有没有因下列情况而影响睡眠,请从下列四项中选一项",
-	// "question_1": "j.其他",
-	// "type": "input",
- //    "option": {
- //      "a": "影响睡眠的事情(请写明)",
- //    }
- //  },
-  {
-	"num": 19,
-    "question": "11.近1个月您的睡眠质量",
-	"question_1": "",
-	"type": "radio",
-    "option": {
-      "a": "很好",
-      "b": "较好",
-      "c": "较差",
-      "d": "很差"
-    }
-  },
-  {
-	"num": 20,
-    "question": "12.近1个月您是否经常使用催眠药物才能入睡",
-	"question_1": "",
-	"type": "radio",
-    "option": {
-      "a": "无",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
-    }
-  },
-  {
-	"num": 21,
-    "question": "13.近l个月您是否常感到困倦",
-	"question_1": "",
-	"type": "radio",
-    "option": {
-      "a": "无",
-      "b": "不足l次/周",
-      "c": "1—2次/周",
-      "d": "3次或以上/周"
+      "a": "没有与人同睡一床或有室友",
+      "b": "同伴或室友在另外房间",
+      "c": "同伴在同一房间但不睡同床",
+      "d": "同伴在同一床上"
     }
   },
+  
   {
-	"num": 22,
-    "question": "14.近1个月您做事的是否精力不足",
-	"question_1": "",
-	"type": "radio",
+  	"num": 19,
+    "question": "11.在你睡觉时,有无打鼾声",
+    "question_1": "",
+    "type": "radio",
     "option": {
-      "a": "没有",
-      "b": "偶尔有",
-      "c": "有时有",
-      "d": "经常有"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
+  
   {
-	"num": 23,
-    "question": "15.客观环境",
-  	"question_1": "1.选择串联类型",
-  	"type": "radio",
+  	"num": 20,
+    "question": "12.在你睡觉时,呼吸之间有没有长时间停顿",
+    "question_1": "",
+    "type": "radio",
     "option": {
-      "a": "早睡早起型",
-      "b": "早睡晚起型",
-      "c": "晚睡早起型",
-      "d": "晚睡晚起型"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
+  
   {
-	"num": 24,
-    "question": "15.客观环境",
-  	"question_1": "2.选择卧具类型",
-  	"type": "radio",
+  	"num": 21,
+    "question": "13.在你睡觉时,你的腿有无抽动或者有痉挛",
+    "question_1": "",
+    "type": "radio",
     "option": {
-      "a": "普通",
-      "b": "中档",
-      "c": "高档"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
+  
   {
-	"num": 25,
-    "question": "15.客观环境",
-  	"question_1": "3.我的卧室的隔音效果",
-  	"type": "radio",
+  	"num": 22,
+    "question": "14.在你睡觉时是否出现不能辨认方向或混乱状态",
+    "question_1": "",
+    "type": "radio",
     "option": {
-      "a": "好",
-      "b": "一般",
-      "c": "不好"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   },
+  
   {
-	"num": 26,
-    "question": "15.客观环境",
-  	"question_1": "4.我睡眠的周边环境安全等级",
-  	"type": "radio",
+  	"num": 23,
+    "question": "15.在你睡觉时你有无其他睡不安宁的情况",
+    "question_1": "若有,请描述",
+    "type": "radio",
     "option": {
-      "a": "高",
-      "b": "中",
-      "c": "低"
+      "a": "过去1个月没有",
+      "b": "每周平均不足1个晚上",
+      "c": "每周平均1-2个晚上",
+      "d": "每周平均3个或更多晚上"
     }
   }
- //  ,
- //  {
- //    "question": "20. 我作恶梦",
-	// "question_1": "",
-	// "type": "radio",
- //    "option": {
- //      "a": "没有或很少时间",
- //      "b": "小部分时间",
- //      "c": "相当多时间",
- //      "d": "绝大部分或全部时间"
- //    }
- //  }
 ]
 
 module.exports = {

+ 238 - 146
pages/testSAS/testSAS.js

@@ -1,7 +1,7 @@
 // miniprogram/pages/testSAS/testSAS.js
 // const db = wx.cloud.database()
 const qnaire = require("./sas.js")
-var ans = new Array(27)
+var ans = new Array(24)
 var ansJson = []
 Page({
   data: {
@@ -20,7 +20,9 @@ Page({
 	checkboxes: [  
 	      { name: 'checkbox1', checked: false },   
 	    ],
-	changeValue:''//
+	changeValue:'',//
+	comScore: 0,
+	comScoreStatus: '',
   },
   // drawCircle: function() {  
   //     // 创建 canvas 上下文  
@@ -117,8 +119,21 @@ Page({
 	  changeValue: e.detail.value
 	}); 
   },
-
-  nextq: function () {
+bindInput1: function(e) {  
+    // 你可以通过 e.detail.value 获取到输入框的值  
+    // 使用 this.setData() 方法更新数据  
+    this.setData({  
+      input1Value: e.detail.value  
+    })
+}, 
+bindInput2: function(e) {  
+	// 你可以通过 e.detail.value 获取到输入框的值  
+	// 使用 this.setData() 方法更新数据  
+	this.setData({  
+	  input2Value: e.detail.value  
+	})
+},
+  nextq: function (e) {
 	if (!this.data.checkboxes[0].checked) {
 		 wx.showToast({  
 		 title: '请勾选隐私条款',  
@@ -126,7 +141,21 @@ Page({
 		 });  
 		 return;  
 	} 
-    if (this.data.id < 26) {
+	console.log('input1Value=='+this.data.input1Value);
+	console.log('input2Value=='+this.data.input2Value);
+	// let input1 = e.detail.value.input1;
+	// let input2 = e.detail.value.input2;
+	let input1 = this.data.input1Value;
+	let input2 = this.data.input2Value;
+	if(!input1 || !input2){
+		wx.showToast({
+		title: '输入框不能为空',  
+		icon: 'none'  
+		});  
+		return;
+	}
+	
+    if (this.data.id < 23) {
       this.setData({
         id: this.data.id + 1,
       })
@@ -148,11 +177,52 @@ Page({
     }
   },
 
+	calculateTotalHours: function (hoursInput,minutesInput) {
+  
+        // 获取小时和分钟的值,如果为空或不是数字,则设置为0  
+        let hours = parseFloat(hoursInput.value) || 0;  
+        let minutes = parseFloat(minutesInput.value) || 0;  
+  
+        // 将分钟转换为小时的小数部分  
+        // let minutesInHours = minutes / 60;  
+  
+        // 计算总时间(小时)  
+        // let totalHours = hours + minutesInHours;  
+  
+        // 显示结果  
+        // document.getElementById('result').textContent = `总时间: ${totalHours.toFixed(2)} 小时`;  
+		// return totalHours.toFixed(2);
+		return hours*60 + minutes;
+    },
   submit: function (e) {
 	if (!this.data.checkboxes[0].checked) {
 	  	return;  
 	} 
-    var a = e.detail.value.answer?e.detail.value.answer:e.detail.value.input;
+	// let input1 = e.detail.value.input1;
+	// let input2 = e.detail.value.input2;
+	let input1 = this.data.input1Value;
+	let input2 = this.data.input2Value;
+	if(!input1 || !input2){
+		wx.showToast({
+		title: '输入框不能为空',  
+		icon: 'none'  
+		});  
+		return;
+	}
+	if(!(input1>=0 && input1<=24) || !(input2>=0 && input2<=60)){
+		wx.showToast({
+		title: '输入框时间填写错误',  
+		icon: 'none'  
+		});  
+		return;
+	}
+    var a = "";
+	let _id = e.currentTarget.dataset.id;
+	if(e.detail.value.answer){
+		a = e.detail.value.answer;
+	}else{
+		a = input1+":"+input2
+	}
     var id = this.data.id-1;
 	var obj = {};
 	obj.type = e.detail.value.answer?'answer':'input'
@@ -174,7 +244,7 @@ Page({
 	}
 	
 	var a = this.data.changeValue;
-	var id = 26;
+	var id = 23;
 	var obj = {};
 	obj.type = 'answer'
 	obj.value = a
@@ -188,7 +258,7 @@ Page({
     var finish;
     var i = 0;
     var _this = this;
-    while(i<27) {
+    while(i<24) {
       if(ans[i]=="") {
         finish='false';
         break;
@@ -246,162 +316,153 @@ Page({
     // })
 	console.log('answerJson='+JSON.stringify(answerJson))
 	let totalAllTemp = 0;
-	let value20 = answerJson[19].value;
-	let total20 = 0//因子1
-	if(total20 == 'A'){
-		total20 += 0;
-	}else if(total20 == 'B'){
-		total20 += 1;
-	}else if(total20 == 'C'){
-		total20 += 2;
-	}else if(total20 == 'D'){
-		total20 += 3;
-	}
+	let value1 = answerJson[0].value;
+	let value2 = answerJson[1].value;
+	let value3 = answerJson[2].value;
+	let value4 = answerJson[3].value;
+	let value5a = answerJson[4].value;
+	let value5b = answerJson[5].value;
+	let value5c = answerJson[6].value;
+	let value5d = answerJson[7].value;
+	let value5e = answerJson[8].value;
+	let value5f = answerJson[9].value;
+	let value5g = answerJson[10].value;
+	let value5h = answerJson[11].value;
+	let value5i = answerJson[12].value;
+	let value5j = answerJson[13].value;
+	let value6 = answerJson[14].value;
+	let value7 = answerJson[15].value;
+	let value8 = answerJson[16].value;
+	let value9 = answerJson[17].value;
+	let value10 = answerJson[18].value;
+	let value11 = answerJson[19].value;
+	let value12 = answerJson[20].value;
+	let value13 = answerJson[21].value;
+	let value14 = answerJson[22].value;
+	let value15 = answerJson[23].value;
 	
-	let total7 = 0//近1个月,从上床到入睡通常需要___________分钟
-	let value7 = answerJson[6].value;
-	if(value7<15){
-		total7 += 0;
-	}else if(value7>16 && value7<=30){
-		total7 += 1;
-	}else if(value7>31 && value7<=60){
-		total7 += 2;
-	}else if(value7>60){
-		total7 += 3;
+	//计算规则  https://mp.weixin.qq.com/s/QyTzuPoNErMjc2KcA1M61g
+	let comA = 0;//条目6
+	let comB = 0;
+	let comB1 = 0;
+	let comC = 0;
+	let comD = 0;
+	let comE = 0;
+	let comF = 0;
+	let comG = 0;
+	
+	comA = this.resultABCD(value6);
+	comB1 = this.resultABCD(value2) + this.resultABCD(value5a);
+	console.log("comB1="+comB1);
+	if(comB1 == 0){
+		comB = 0;
+	}else if(comB1>=1 && comB1<=2){
+		comB = 1;
+	} else if(comB1>=3 && comB1<=4){
+		comB = 2;
+	} else if(comB1>=5 && comB1<=6){
+		comB = 3;
 	}
-	let value10 = answerJson[9].value;
-	let total10 = 0//入睡困难(30分钟内不能入睡)
-	if(value10 == 'A'){
-		total10 += 0;
-	}else if(value10 == 'B'){
-		total10 += 1;
-	}else if(value10 == 'C'){
-		total10 += 2;
-	}else if(value10 == 'D'){
-		total10 += 3;
+	let value41 = Number(value4.split(':')[0]) || 0;
+	let value42 = Number(value4.split(':')[1]) || 0;
+	let value43 = value41*60 + value42
+	console.log("value43="+value43);
+	if(value43 > 420){
+		comC = 0;
+	}else if(value43>=360 && value43<=420){
+		comC = 1;
+	} else if(value43>=300 && value43<360){
+		comC = 2;
+	} else if(value43<300){
+		comC = 3;
 	}
 	
-	let value9 = answerJson[8].value;//近1个月,每夜通常实际睡眠时间___________小时(不等于卧床时间)
-	let total91 = total7 + total10
 	
-	let total9_1 = 0//因子2
-	if(total91 == 0){
-		total9_1 += 0;
-	}else if(total91 == 1 || total91 == 2){
-		total9_1 += 1;
-	}else if(total91 == 3 || total91 == 4){
-		total9_1 += 2;
-	}else if(total91 == 5 || total91 == 6){
-		total9_1 += 3;
-	}
-	let total9 = 0 
-	let total9_3 = 0//因子3
-	if(value9 > 7){
-		total9_3 += 0;
-	}else if(value9 > 6 || value9 <= 7){
-		total9_3 += 1;
-	}else if(value9 > 5 || value9 <= 6){
-		total9_3 += 2;
-	}else if(value9 < 5){
-		total9_3 += 3;
+	let datediff = this.calculateTimeDifference(value1,value3);
+	console.log("datediff="+datediff);
+	let sleepRate = datediff?((value43/datediff)*100):0;
+	console.log("sleepRate="+sleepRate);
+	if(sleepRate >= 85){
+		comD = 0;
+	}else if(sleepRate>=75 && sleepRate<=84){
+		comD = 1;
+	} else if(sleepRate>=65 && sleepRate<74){
+		comD = 2;
+	} else if(sleepRate<65){
+		comD = 3;
 	}
 	
-	let value8 = answerJson[7].value;//起床时间
-	let value6 = answerJson[5].value;//入睡时间
+	let value5All = this.resultABCD(value5b)
+					+ this.resultABCD(value5c) 
+					+ this.resultABCD(value5d) 
+					+ this.resultABCD(value5e) 
+					+ this.resultABCD(value5f)
+					+ this.resultABCD(value5g)
+					+ this.resultABCD(value5h)
+					+ this.resultABCD(value5i)
+					+ this.resultABCD(value5j);
+	console.log("value5All="+value5All);
+	if(value5All == 0){
+		comE = 0;
+	}else if(value5All>=1 && value5All<=9){
+		comE = 1;
+	} else if(value5All>=10 && value5All<=18){
+		comE = 2;
+	} else if(value5All>=19 && value5All<=27){
+		comE = 3;
+	}
 	
-	let percentage = ((24-(value6-value8))==0)?0:((value9/(24-(value6-value8)))*100);
-	percentage = percentage.toFixed(2);
-	let percentage9 = 0;//因子4
-	if(percentage>=85){
-		percentage9 += 0;
-	}else if(percentage>=75 && percentage<=84){
-		percentage9 += 1;
-	}else if(percentage>=65 && percentage<=74){
-		percentage9 += 2;
-	}else if(percentage<65){
-		percentage9 += 3;
+	comF = this.resultABCD(value7);
+	console.log("comF="+comF);
+	let valueGAll = this.resultABCD(value8) + this.resultABCD(value9);
+	console.log("valueGAll="+valueGAll);
+	if(valueGAll == 0){
+		comG = 0;
+	}else if(valueGAll>=1 && valueGAll<=2){
+		comG = 1;
+	} else if(valueGAll>=3 && valueGAll<=4){
+		comG = 2;
+	} else if(valueGAll>=5 && valueGAll<=6){
+		comG = 3;
 	}
 	
-	let value11 = this.resultABCD(answerJson[10].value);//5b
-	let value12 = this.resultABCD(answerJson[11].value);//5c
-	let value13 = this.resultABCD(answerJson[12].value);//5d
-	let value14 = this.resultABCD(answerJson[13].value);//5e
-	let value15 = this.resultABCD(answerJson[14].value);//5f
-	let value16 = this.resultABCD(answerJson[15].value);//5g
-	let value17 = this.resultABCD(answerJson[16].value);//5h
-	let value18 = this.resultABCD(answerJson[17].value);//5i
-	let value19 = this.resultABCD(answerJson[18].value);//5i
+	console.log('comA='+comA);
+	console.log('comB='+comB);
+	console.log('comC='+comC);
+	console.log('comD='+comD);
+	console.log('comE='+comE);
+	console.log('comF='+comF);
+	console.log('comG='+comG);
 	
-	let value_b_i = value11+value12+value13+value14+value15
-					+value16+value17+value18+value19
-    let total_b_i = 0;//因子5
-	if(value_b_i<1){
-		total_b_i += 0;
-	}else if(value_b_i>=1 && value_b_i<=9){
-		total_b_i += 1;
-	}else if(value_b_i>=10 && value_b_i<=18){
-		total_b_i += 2;
-	}else if(value_b_i>=19 && value_b_i<=27){
-		total_b_i += 3;
+	let comAll = comA + comB + comC + comD + comE + comF + comG;
+	let _comScoreStatus = "";
+	if(comAll >= 0 && comAll<=5){
+		_comScoreStatus = "很好";
+	}else if(comAll>=6 && comAll<=10){
+		_comScoreStatus = "较好";
+	} else if(comAll>=11 && comAll<=15){
+		_comScoreStatus = "一般";
+	} else if(comAll>=16 && comAll<=21){
+		_comScoreStatus = "差";
 	}
 	
-	totalAllTemp = total20 + total9_1 + total9_3 + percentage9 + total_b_i
-	let percentAll = 0
-	if(totalAllTemp<=5){
-		percentAll = '90'
-	}else if(totalAllTemp>5 && totalAllTemp<=10){
-		percentAll = '75'
-	}else if(totalAllTemp>10 && totalAllTemp<=15){
-		percentAll = '50'
-	}else if(totalAllTemp>15 && totalAllTemp<=20){
-		percentAll = '25'
-	}else{
-		percentAll = '未知'
-	}
-	let promptTextMessageTemp = [];
-	let sleepState = this.sleepState(answerJson[0].value,answerJson[8].value);
-	promptTextMessageTemp.push('在全人群中,您的个人情况决定了睡眠基础条件的分是('+totalAllTemp+')分,您已经超过了全国('+percentAll+')%的人群;(纯正态分布,5分,25%;10分,50%;15分75%;20分,位于前20%)');
-	promptTextMessageTemp.push('您需要改进的睡眠问题主要集中在');
-	promptTextMessageTemp.push('1.睡眠时长:您每天的睡眠时间'+sleepState);
-	promptTextMessageTemp.push('2.不良因素:您的生理健康或生活习惯存在改进的空间,为了获得健康睡眠建议您(立刻进行改进//发挥优势,改进不足//继续保持良好的生活习惯)');
-	let text10 = '';
-	if(value10=='D'){
-		text10 += '入睡困难//'
-	}
-	if(sleepState == '不足'){
-		text10 += '深度睡眠不足//'
-	}
-	if(percentage9 == 3){
-		text10 += '睡眠效率不高'
-	}
-    promptTextMessageTemp.push('3.睡眠质量:您存在('+text10+')的问题,这会导致睡眠质量较低或身心难以得到放松的问题,这会是我们共同努力的方向。');
-    let value25 = answerJson[25].value;
-	let value26 = answerJson[26].value;
-	let text26 = '';
-	if(!value25||!value26){
-		text26 += '';
-	}else if(value25=='C'||value26=='C'){
-		text26 += '较差';
-	}else if(value25=='A'||value26=='A'){
-		text26 += '较好';
-	}else{
-		text26 += '适中';
-	}
-	promptTextMessageTemp.push('4.睡眠环境(对应:客观环境):您的睡眠环境总体来看,('+text26+')具有安全、安静和舒适的睡眠环境可以让您的睡眠质量得到显著的改善。');
-    promptTextMessageTemp.push('5.改善意愿:您对改善自己睡眠质量的意愿(充分)。任何的改变都意味着要对以往你熟悉的环境,已经能够接受的不适进行改变甚至颠覆,不知道您愿不愿意为改善自己睡眠多一点付出,承受一点便或者痛苦呢?');
-    this.setData({
-      promptTextMessage: promptTextMessageTemp,
-	  totalAll: totalAllTemp,
+	let promptTextMessageTemp = []
+	promptTextMessageTemp.push('sucess');
+	console.log('comAll='+comAll+',comScoreStatus='+_comScoreStatus);
+	this.setData({
+      comScore: comAll,
+	  comScoreStatus: _comScoreStatus,
+	  promptTextMessage: promptTextMessageTemp,
     })
   },
   resultABCD:function(a){
-	  if(a = 'A'){
+	  if(a == 'A'){
 		  return 0;
-	  }else if(a = 'B'){
+	  }else if(a == 'B'){
 		  return 1;
-	  } else if(a = 'C'){
+	  } else if(a == 'C'){
 		  return 2;
-	  } else if(a = 'D'){
+	  } else if(a == 'D'){
 		  return 3;
 	  }
   },
@@ -450,12 +511,43 @@ Page({
 	 }else{
 	 	return '未知';
 	 }
+ },
+ // 将时间字符串转换为分钟数  
+ timeStringToMinutes:function(timeStr) {  
+   var parts = timeStr.split(":");  
+   return parseInt(parts[0], 10) * 60 + parseInt(parts[1], 10);  
+ },
+   
+ // 将分钟数转换回时间字符串格式 HH:mm  
+ minutesToTimeString:function(minutes) {  
+   var hours = Math.floor(minutes / 60);  
+   var mins = minutes % 60;  
+   var minsStr = mins < 10 ? "0" + mins : mins.toString();  
+   return hours.toString() + ":" + minsStr;  
+ },
+   
+ // 计算时间差(分钟)  
+ calculateTimeDifference:function(sleepTimeStr, wakeUpTimeStr) {  
+   // 将时间字符串转换为分钟  
+   var sleepTimeMinutes = this.timeStringToMinutes(sleepTimeStr);  
+   var wakeUpTimeMinutes = this.timeStringToMinutes("24:00") + this.timeStringToMinutes(wakeUpTimeStr); // 加上第二天的0点到起床时间的分钟数  
+   
+   // 计算时间差  
+   var diffInMinutes = wakeUpTimeMinutes - sleepTimeMinutes;  
+   
+   // 将分钟数转换回时间字符串格式 HH:mm  
+   var diffInHours = Math.floor(diffInMinutes / 60);  
+   var diffInMins = diffInMinutes % 60;  
+   
+   // 返回时间差字符串  
+   console.log("diffInMinutes=="+diffInMinutes)
+   return diffInMinutes;  
  },
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
-    for(var i=0; i<27; i++) {
+    for(var i=0; i<24; i++) {
       ans[i] = "";
     }
 	this.setData({

+ 16 - 10
pages/testSAS/testSAS.wxml

@@ -53,7 +53,7 @@
           <form bindsubmit='submit'>
             <view class='naire' wx:if="{{item.type == 'radio'}}">
               <view class='question'>{{item.question}}</view>
-	      <view class='question_1' wx:if="{{item.question_1 != ''}}">{{item.question_1}}  <input name='input' wx:if="{{id==18}}" style="border: none;border-bottom: 1px solid #000000;" class="input-underline" placeholder=""/>  </view>
+	      <view class='question_1' wx:if="{{item.question_1 != ''}}">{{item.question_1}}  <input name='input' wx:if="{{id==13 || id==23}}" style="border: none;border-bottom: 1px solid #000000;" class="input-underline" placeholder=""/>  </view>
               <!--view class='border' /-->
               <radio-group class="radio-group-1" name='answer' bindchange='radioChange'>
                 <label class='radio'><radio value="A" color='#fcbe39'  wx:if="{{item.option.a != '' && item.option.a != null}}"/>{{item.option.a}}</label>
@@ -72,15 +72,17 @@
 				<view class='question'>{{item.question}}</view>
 			    <view class="sleep-time-container">  
 			      <text>{{item.option.a}}</text>  
-			      <input name='input' style="border: none;border-bottom: 1px solid #000000;width:30rpx;" class="input-underline" placeholder="" bindinput="handleInputChange" value="{{inputValue}}"  data-id="{{id}}"/>  
+			      <input name='input1' type="number" style="border: none;border-bottom: 1px solid #000000;width:30rpx;" class="input-underline" placeholder=""  value="{{inputValue}}"  data-id="{{id}}" bindinput="bindInput1"/>  
 			      <text wx:if="{{item.option.b != '' && item.option.b != null}}">{{item.option.b}}</text>  
+				  <input name='input2' type="number" style="border: none;border-bottom: 1px solid #000000;width:30rpx;" class="input-underline" placeholder=""  value="{{inputValue}}"  data-id="{{id}}" bindinput="bindInput2"/>
+				  <text wx:if="{{item.option.c != '' && item.option.c != null}}">{{item.option.c}}</text>  
 			    </view>
-				<view class='question_2' wx:if="{{id==3 && BMI != null}}">体重:{{item.BMI}}</view>
+				<!-- <view class='question_2' wx:if="{{id==3 && BMI != null}}">体重:{{item.BMI}}</view> -->
 			</view>
             <view class='button-group'>
               <button class='button' hover-class='none' bindtap='lastq' disabled='{{id==0}}'>上一题</button>
-              <button wx:if="{{id<26}}" class='button' hover-class='none' form-type='submit' bindtap='nextq'>下一题</button>
-              <button wx:else class='button' hover-class='none' form-type='submit' bindtap='formSubmit'>提交</button>
+              <button wx:if="{{id<23}}" class='button' hover-class='none' form-type='submit' bindtap='nextq' data-id="{{id}}">下一题</button>
+              <button wx:else class='button' hover-class='none' form-type='submit' bindtap='formSubmit' data-id="{{id}}">提交</button>
             </view>
           </form> 
         </swiper-item>
@@ -88,20 +90,24 @@
     </swiper>
 	<!-- <view class='button-group'>
 	  <button class='button' hover-class='none' bindtap='lastq' disabled='{{id==0}}'>上一题</button>
-	  <button wx:if="{{id<26}}" class='button' hover-class='none' form-type='submit' bindtap='nextq'>下一题</button>
+	  <button wx:if="{{id<23}}" class='button' hover-class='none' form-type='submit' bindtap='nextq'>下一题</button>
 	  <button wx:else class='button' hover-class='none' form-type='submit' bindtap='formSubmit'>提交</button>
 	</view> -->
 	<view class='id'>{{id+1}}/{{qnaire.length}}</view>
 
 	<view class="prompt" wx:if="{{promptTextMessage != null && promptTextMessage.length > 0}}">
-		<view class='idR'>答题结果分析</view>
-		<block wx:for="{{promptTextMessage}}">
+		<view class='idR'>睡眠情况统计</view>
+		<!-- <block wx:for="{{promptTextMessage}}">
 			<view><text class="small-red-text">{{item}}</text></view>
-		</block>
+		</block> -->
+		<view class="large-text-container">  
+		    <text class="large-text">睡眠得分:{{comScore}}分</text>
+		    <text class="large-text">睡眠质量:{{comScoreStatus}}</text>
+		  </view>
 	  </view>
 	  <view class='prompt' wx:else>
 		  <!-- <view class='idR'>温馨提示</view> -->
-		  <view><text class="small-red-text_ts">温馨提示:问卷提交后,会根据提您提交的答案,给出相应的分析指导。</text></view>
+		  <view><text class="small-red-text_ts">温馨提示:问卷提交后,会根据提您提交的答案,给出相应的睡眠质量得分。</text></view>
 	  </view>
 	  
 	   

+ 28 - 2
pages/testSAS/testSAS.wxss

@@ -20,14 +20,14 @@ page {
   height: 450rpx;
 }
 .question {
-  font-size: 36rpx;
+  font-size: 32rpx;
   font-weight: bold;
   margin-top: 40rpx;
   margin-left: 32rpx;
 }
 .question_1 {
   display: flex; 
-  font-size: 30rpx;
+  font-size: 28rpx;
   font-weight: 500;
   margin-top: 20rpx;
   margin-left: 32rpx;
@@ -359,4 +359,30 @@ checkbox {
   /* margin-bottom: 5rpx; */
   height: 100rpx;
   width: 50%;
+}
+
+.large-text-container {  
+  display: flex;  
+  flex-direction: column;  
+  align-items: center; 
+  justify-content: center; 
+  text-align: center; 
+  margin-top: 20rpx; 
+}  
+  
+.large-text {  
+  font-size: 25px; 
+  margin-bottom: 10rpx;  
+  font-weight: 600;
+  color: #FFCC00;
+}  
+
+.large-text-1 {  
+  font-size: 25px;   
+  margin-bottom: 10rpx;   
+} 
+  
+/* 最后一行文字不需要 margin-bottom */  
+.large-text:last-child {  
+  margin-bottom: 0;  
 }