柒零 1 рік тому
батько
коміт
7da218d410

+ 146 - 14
subpages/sleepEvaluation/sleepEvaluation.js

@@ -107,8 +107,8 @@ Page({
 		satisfied: [],// 哪些方面让您比较满意
 		suggestion: '', // 文本输入的建议
 		thirdPlatformsInput: '',//填写第三方平台
-		noSatisfied: '',//体验不满意的原因
-		wayImprovementSleep: '',//哪些方式来帮助改善睡眠
+		noSatisfied: [],//体验不满意的原因
+		wayImprovementSleep: [],//哪些方式来帮助改善睡眠
 		wayImprovementSleepInput: '',//请填写帮助改善睡眠方式文本
 		getSleepHealth: [],// 从哪里获取关于睡眠健康的信息
 		getSleepHealthInput: '',//您通常从哪里获取关于睡眠健康的信息文本
@@ -121,7 +121,7 @@ Page({
 		channel: '',//您是通过什么渠道预定到的本酒店睡眠房?
 		hotel: '',//酒店
 		room: '',//房间
-		mInputId:''//自动滚动用的
+		mInputId: ''//自动滚动用的
 	},
 
 	// 处理性别选择  
@@ -271,6 +271,65 @@ Page({
 			suggestion: e.detail.value
 		});
 	},
+	checkBoxInputValue(e) {
+		var valueList = e.currentTarget.dataset.list || [];
+		var value = e.currentTarget.dataset.name;
+		var type = e.currentTarget.dataset.type;
+		const that = this;
+		setTimeout(() => {
+			if (type == "wayImprovementSleep") {
+				var tempList = that.data.wayImprovementSleep
+				if (!tempList || (Array.isArray(tempList) && (!tempList.length || !tempList.includes(value)))) {
+					valueList[valueList.length ] = value
+					that.setData({
+						wayImprovementSleep: valueList
+					})
+
+				}
+			} else if (type == "getSleepHealth") {
+				var tempList = that.data.getSleepHealth
+				if (!tempList || (Array.isArray(tempList) && (!tempList.length || !tempList.includes(value)))) {
+					valueList[valueList.length] = value
+					that.setData({
+						getSleepHealth: valueList
+					})
+
+				}
+			} else if (type == "influenceSleep") {
+				var tempList = that.data.influenceSleep
+				if (!tempList || (Array.isArray(tempList) && (!tempList.length || !tempList.includes(value)))) {
+					valueList[valueList.length] = value
+					that.setData({
+						influenceSleep: valueList
+					})
+
+				}
+			} else if (type == "improvSleepMethods") {
+				var tempList = that.data.improvSleepMethods
+				if (!tempList || (Array.isArray(tempList) && (!tempList.length || !tempList.includes(value)))) {
+					valueList[valueList.length] = value
+					that.setData({
+						improvSleepMethods: valueList
+					})
+
+				}
+			}
+		}, 150);
+
+
+		// careerInput: this.data.careerInput,
+		// 	thirdPlatformsInput: this.data.thirdPlatformsInput,
+		// 		noSatisfied: this.data.noSatisfied,
+		// 			noSatisfiedInput: this.data.noSatisfiedInput,
+		// wayImprovementSleep: this.data.wayImprovementSleep,
+		// 	wayImprovementSleepInput: this.data.wayImprovementSleepInput,
+		// getSleepHealth: this.data.getSleepHealth,
+		// 	getSleepHealthInput: this.data.getSleepHealthInput,
+		// influenceSleep: this.data.influenceSleep,
+		// 	influenceSleepInput: this.data.influenceSleepInput,
+		// 		improvSleepMethods: this.data.improvSleepMethods,
+		// 			improvSleepMethodsInput: this.data.improvSleepMethodsInput,
+	},
 	// 提交问卷的函数  
 	submitSurvey: function () {
 
@@ -285,19 +344,19 @@ Page({
 			satisfied: this.data.satisfied,
 			suggestion: this.data.suggestion,
 			career: this.data.career,
-			careerInput: this.data.careerInput,
-			thirdPlatformsInput: this.data.thirdPlatformsInput,
+			careerInput: this.data.careerInput,//1
+			thirdPlatformsInput: this.data.thirdPlatformsInput,//2
 			noSatisfied: this.data.noSatisfied,
-			noSatisfiedInput: this.data.noSatisfiedInput,
+			noSatisfiedInput: this.data.noSatisfiedInput,//3
 			improvementSleep: this.data.improvementSleep,
 			wayImprovementSleep: this.data.wayImprovementSleep,
-			wayImprovementSleepInput: this.data.wayImprovementSleepInput,
+			wayImprovementSleepInput: this.data.wayImprovementSleepInput,//4
 			getSleepHealth: this.data.getSleepHealth,
-			bindGetSleepHealthInput: this.data.bindGetSleepHealthInput,
+			getSleepHealthInput: this.data.getSleepHealthInput,//5
 			influenceSleep: this.data.influenceSleep,
-			influenceSleepInput: this.data.influenceSleepInput,
+			influenceSleepInput: this.data.influenceSleepInput,//6
 			improvSleepMethods: this.data.improvSleepMethods,
-			improvSleepMethodsInput: this.data.improvSleepMethodsInput,
+			improvSleepMethodsInput: this.data.improvSleepMethodsInput,//7
 			age: this.data.age,
 			channel: this.data.channel,
 		};
@@ -321,10 +380,54 @@ Page({
 			// productComfort: this.data.productComfort,
 			// improvementAreas: this.data.improvementAreas,
 			// thirdPlatformsInput: this.data.thirdPlatformsInput,
-
-
 		}
 
+		let checkInputList = [
+			{
+				name:"career",
+				type: "radio",
+				checkList: this.data.career,
+				checkValue: "5",
+				checkInput: this.data.careerInput
+			}, {
+				name: "channel",
+				type: "radio",
+				checkList: this.data.channel,
+				checkValue: "2",
+				checkInput: this.data.thirdPlatformsInput
+			}, {
+				name: "noSatisfied",
+				type: "radio",
+				checkList: this.data.noSatisfied,
+				checkValue: "3",
+				checkInput: this.data.noSatisfiedInput
+			}, {
+				name: "wayImprovementSleep",
+				type: "checkbox",
+				checkList: this.data.wayImprovementSleep,
+				checkValue: "4",
+				checkInput: this.data.wayImprovementSleepInput
+			}, {
+				name: "getSleepHealth",
+				type: "checkbox",
+				checkList: this.data.getSleepHealth,
+				checkValue: "5",
+				checkInput: this.data.getSleepHealthInput
+			}, {
+				name: "influenceSleep",
+				type: "checkbox",
+				checkList: this.data.influenceSleep,
+				checkValue: "6",
+				checkInput: this.data.influenceSleepInput
+			}, {
+				name: "improvSleepMethods",
+				type: "checkbox",
+				checkList: this.data.improvSleepMethods,
+				checkValue: "4",
+				checkInput: this.data.improvSleepMethodsInput
+			}
+		]
+
 		var isFinish = true;
 		var emptyKey = "";
 
@@ -348,7 +451,7 @@ Page({
 							console.log(emptyKey.toString());
 							that.setData({
 								mInputId: emptyKey.toString()
-							}) 
+							})
 
 						}
 					})
@@ -357,6 +460,32 @@ Page({
 			}
 		}
 
+		for (let i = 0; i < checkInputList.length; i++) {
+			const element = checkInputList[i];
+			if ((element.type == 'checkbox' && Array.isArray(element.checkList) && element.checkList.includes(element.checkValue) && !element.checkInput) || (element.type == 'radio' && element.checkList == element.checkValue  && !element.checkInput) ) { // 检查属性值是否为空  
+				// 这里可以添加更复杂的判断,比如仅针对字符串检查是否为空字符串  
+				// if (typeof obj[key] === 'string' && obj[key].trim() === '') {  
+				isFinish = false;
+				emptyKey = element.name;
+				wx.showModal({
+					title: '无法提交',
+					content: '您还有部分题目未完成,请检查后重新提交',
+					showCancel: false,
+					confirmColor: '#0BC3AA',
+					confirmText: "好的",
+					success(res) {
+						console.log(emptyKey.toString());
+						that.setData({
+							mInputId: emptyKey.toString()
+						})
+
+					}
+				})
+				return; // 停止循环  
+			}
+			
+		}
+
 		if (!isFinish) {
 			wx.showModal({
 				title: '无法提交',
@@ -366,7 +495,10 @@ Page({
 				confirmText: "好的",
 				success(res) {
 					console.log(emptyKey.toString());
-					
+					that.setData({
+						mInputId: emptyKey.toString()
+					})
+
 				}
 			})
 			return;

+ 18 - 10
subpages/sleepEvaluation/sleepEvaluation.wxml

@@ -40,10 +40,11 @@
               <text class="radio-title"
                 style="{{ career === item.value ? activeColor : normalColor }}">{{item.label}}</text>
             </view>
+            <input wx:if="{{index == careerOptions.length - 1}}" type="text" placeholder="请填写您的职业"
+              bindinput="bindCareerInputInput" />
           </van-radio>
         </van-radio-group>
 
-        <input type="text" placeholder="请填写您的职业" bindinput="bindCareerInputInput" />
       </view>
       <view class="section" id="gender">
         <text>3.您的性别:</text>
@@ -94,9 +95,9 @@
               <text class="radio-title"
                 style="{{ channel === '2' ? activeColor : normalColor }}">第三方平台(如携程、去哪儿网、飞猪、同程等)</text>
             </view>
+            <input type="text" placeholder="请填写第三方平台" bindinput="bindThirdPlatformsInputInput" />
           </van-radio>
         </van-radio-group>
-        <input type="text" placeholder="请填写第三方平台" bindinput="bindThirdPlatformsInputInput" />
       </view>
       <view class='title_1'>二、用户体验</view>
       <!-- 睡眠环境评价 -->
@@ -143,10 +144,11 @@
               <text class="radio-title"
                 style="{{ noSatisfied === item.value ? activeColor : normalColor }}">{{item.label}}</text>
             </view>
+            <input wx:if="{{index == noSatisfiedOptions.length - 1}}" type="text" placeholder="请填写体验不满意的原因"
+              bindinput="bindNoSatisfiedInput" />
           </van-radio>
         </van-radio-group>
 
-        <input type="text" placeholder="请填写体验不满意的原因" bindinput="bindNoSatisfiedInput" />
       </view>
 
       <view class="section" id="improvementSleep">
@@ -168,7 +170,7 @@
       <view class="section" id="wayImprovementSleep">
         <text>9、您倾向于下面哪些方式来帮助改善睡眠?(多选)</text>
 
-
+        <!-- -->
         <van-checkbox-group value="{{ wayImprovementSleep }}" bind:change="bindWayImprovementSleep">
           <van-checkbox wx:for="{{wayImprovementSleepOptions}}" wx:key="index" shape="square" checked-color="#0ABCA4"
             name="{{item.value}}" custom-class="custom-radio-class" use-icon-slot>
@@ -178,9 +180,11 @@
               <text class="radio-title"
                 style="{{  jstools.includes(wayImprovementSleep,item.value) ? activeColor : normalColor }}">{{item.label}}</text>
             </view>
+            <input wx:if="{{index == wayImprovementSleepOptions.length - 1}}" type="text" placeholder="请填写帮助改善睡眠方式"
+              bindinput="bindWayImprovementSleepInput" data-type="wayImprovementSleep"
+              data-list="{{wayImprovementSleep}}" data-name="{{item.value}}" bindtap="checkBoxInputValue" />
           </van-checkbox>
         </van-checkbox-group>
-        <input type="text" placeholder="请填写帮助改善睡眠方式" bindinput="bindWayImprovementSleepInput" />
       </view>
 
 
@@ -195,9 +199,11 @@
               <text class="radio-title"
                 style="{{  jstools.includes(getSleepHealth,item.value) ? activeColor : normalColor }}">{{item.label}}</text>
             </view>
+            <input wx:if="{{index == getSleepHealthOptions.length - 1}}" type="text" placeholder="请填写从哪里获取关于睡眠健康的信息"
+              bindinput="bindGetSleepHealthInput" data-type="getSleepHealth" data-list="{{getSleepHealth}}"
+              data-name="{{item.value}}" bindtap="checkBoxInputValue" />
           </van-checkbox>
         </van-checkbox-group>
-        <input type="text" placeholder="请填写从哪里获取关于睡眠健康的信息" bindinput="bindGetSleepHealthInput" />
 
       </view>
       <view class='title_1'>三、影响睡眠的因素</view>
@@ -214,10 +220,11 @@
               <text class="radio-title"
                 style="{{  jstools.includes(influenceSleep,item.value) ? activeColor : normalColor }}">{{item.label}}</text>
             </view>
+            <input wx:if="{{index == influenceSleepOptions.length - 1}}" type="text" placeholder="请填写影响您的睡眠因素"
+              bindinput="bindInfluenceSleepInput" data-type="influenceSleep" data-list="{{influenceSleep}}"
+              data-name="{{item.value}}" bindtap="checkBoxInputValue" />
           </van-checkbox>
         </van-checkbox-group>
-
-        <input type="text" placeholder="请填写影响您的睡眠因素" bindinput="bindInfluenceSleepInput" />
       </view>
 
       <view class="section" id="improvSleepMethods">
@@ -231,11 +238,12 @@
               <text class="radio-title"
                 style="{{  jstools.includes(improvSleepMethods,item.value) ? activeColor : normalColor }}">{{item.label}}</text>
             </view>
+            <input wx:if="{{index == improvSleepMethodsOptions.length - 1}}" type="text" placeholder="请填写改善睡眠质量方法"
+              bindinput="bindImprovSleepMethodsInput" data-type="improvSleepMethods" data-list="{{improvSleepMethods}}"
+              data-name="{{item.value}}" bindtap="checkBoxInputValue" />
           </van-checkbox>
         </van-checkbox-group>
 
-        <input type="text" placeholder="请填写改善睡眠质量方法" bindinput="bindImprovSleepMethodsInput" />
-
       </view>
       <view class='title_1'>四、其他意见和建议</view>
       <!-- 文本输入问题示例 -->