<template>

	<view class="content">
		<view class="top-haed">
			<view class="" @click="back()">
				<u-icon name="arrow-left" size="20"></u-icon>
			</view>
			<view class="title_">量表详情页</view>
			<view class=""></view>
		</view>
		<view class="header">
			<image src="../../static/images/banner3.png"></image>
		</view>
		<template v-if="tableAlias == 'table1'">
			<view class="ques-con">
				<view class="music-img" v-if="showImg">
					<image src='@/static/images/yuyin.gif' v-if="showMusic" @click="pauseMusic"></image>
					<image src='@/static/images/pause.jpg' v-else @click="playMusic"></image>
				</view>
				<view class="ques-answer-con">
					<view class="answer" v-for="(item,index) in table.questionInfo" :key="index">
						<view class="answer-option" :id="'question-'+index">{{item.sceneName}}
						</view>
						<view class="answer-text">A. {{item.optionA}}</view>
						<view class="tip">答案： </view>
						<view>
							<radio-group class="assess-list" @change="selectAssess(item.id,$event,
								'optionA',item.listorder)">
								<label class="one-assess" v-for="(data,index) in assessList" :key="index">
									<view>{{data.value}} </view>

									<radio :value="data.score.toString()" style="transform:scale(0.7)"
										:checked="getScoreChecked(item.id,data.score.toString(),'optionA')" />
									<!-- :checked="getScoreChecked(item.id,data.score.toString(),'optionA')" -->

								</label>
							</radio-group>
						</view>
						<view class="answer-text">B. {{item.optionB}}</view>
						<view class="tip">答案： </view>
						<view>
							<radio-group class="assess-list" @change="selectAssess(item.id,$event,
								'optionB',item.listorder)">
								<label class="one-assess" v-for="(data,index) in assessList" :key="index">
									<view>{{data.value}} </view>
									<radio :value="data.score.toString()" style="transform:scale(0.7)"
										:checked="getScoreChecked(item.id,data.score.toString(),'optionB')" />
								</label>
							</radio-group>
						</view>
						<view class="answer-text">C. {{item.optionC}}</view>
						<view class="tip">答案： </view>
						<view>
							<radio-group class="assess-list" @change="selectAssess(item.id,$event,
								'optionC',item.listorder)">
								<label class="one-assess" v-for="(data,index) in assessList" :key="index">
									<view>{{data.value}} </view>

									<radio :value="data.score.toString()" style="transform:scale(0.7)"
										:checked="getScoreChecked(item.id,data.score.toString(),'optionC')" />

								</label>
							</radio-group>
						</view>
						<view class="answer-text">D. {{item.optionD}}</view>
						<view class="tip">答案： </view>
						<view>
							<radio-group class="assess-list" @change="selectAssess(item.id,$event,
								'optionD',item.listorder)">
								<label class="one-assess" v-for="(data,index) in assessList" :key="index">
									<view>{{data.value}} </view>

									<radio :value="data.score.toString()" style="transform:scale(0.7)"
										:checked="getScoreChecked(item.id,data.score.toString(),'optionD')" />

								</label>
							</radio-group>
						</view>
						<view class="tip">请选择以上哪个条目是最符合您的孩子的描述? </view>
						<view>
							<radio-group class="option-con" @change="changeOption(item.id,$event,item.listorder)">
								<label class="option-label" v-for="option,optionIndex in optionList"
									:key="optionIndex">{{option}}
									<radio :value="option" class="one-radio"
										:checked="getOptionChecked(item.id,option)" />
								</label>
							</radio-group>
						</view>

						<u-divider text="分割线" lineColor="#2979ff" textColor="#2979ff" :dot="true"></u-divider>
					</view>
				</view>
				<view class="bottom">
					<view class="btn" @click="submit">提交问卷</view>
				</view>
			</view>
		</template>
		<template v-if="tableAlias == 'table2'">
			<view v-for="(item,index) in table.questionInfo" :key="index"
				v-if="currentQuestionlistorder == item.listorder">
				<u-transition :show="true" mode="fade-right">
					<view class="ques-con" style="margin-top: 20rpx;">
						<view class="music-img" v-if="showImg">
							<image src='@/static/images/yuyin.gif' v-if="showMusic" @click="pauseMusic"></image>
							<image src='@/static/images/pause.jpg' v-else @click="playMusic"></image>
						</view>
						<view class="tip" v-if="index == 0">请仔细阅读以下题目，考虑你有多同意或不同意题目中的表述，选择最适合的答案。 </view>
						<view class="ques-title-con">
							<view class="ques-num">
								<text class="current-num">{{item.listorder}}</text>/
								<text class="all-num">{{table.questionInfo.length}}</text>
							</view>
						</view>
						<view class="ques-title">{{item.sceneName}}</view>
						<view class="ques-answer-con">
							<radio-group class="option-con-table2"
								@change="changeOption(item.id,$event,item.listorder)">
								<label :class="['one-answer',selected(item.id,option.value)]"
									v-for="option,optionIndex in optionListTable2"
									:key="optionIndex">{{option.value +'. ' + option.label}}
									<radio :value="option.value" class="one-radio" style="display: none;" />
								</label>
							</radio-group>
						</view>
					</view>
					<view class="bottom">
						<view class="btn" @click="toNext(item.listorder)"
							v-if="currentQuestionlistorder !== table.questionInfo.length">下一题</view>
						<view class="btn" @click="submit" v-else>提交问卷</view>
					</view>
				</u-transition>
			</view>
		</template>
		<template v-if="tableAlias == 'table3'">
			<view style="margin-top: -40rpx;" v-for="(item,index) in table.questionInfo" :key="index"
				v-if="currentQuestionlistorder == item.listorder">

				<u-transition :show="true" mode="fade-right">
					<view class="ques-con" style="margin-top: 20rpx;">
						<view class="music-img" v-if="showImg">
							<image src='@/static/images/yuyin.gif' v-if="showMusic" @click="pauseMusic"></image>
							<image src='@/static/images/pause.jpg' v-else @click="playMusic"></image>
						</view>
						<view class="tip" v-if="index == 0">请仔细阅读以下题目，考虑你有多同意或不同意题目中的表述，选择最适合的答案。 </view>
						<view class="ques-title-con">
							<view class="ques-num">
								<text class="current-num">{{item.listorder}}</text>/
								<text class="all-num">{{table.questionInfo.length}}</text>
							</view>
						</view>
						<view class="ques-title">{{item.sceneName}}</view>
						<view class="ques-answer-con">
							<radio-group class="option-con-table2"
								@change="changeOption(item.id,$event,item.listorder)">
								<label :class="['one-answer',selected(item.id,option.value)]"
									v-for="option,optionIndex in optionListTable3"
									:key="optionIndex">{{option.value +'. ' + option.label}}
									<radio :value="option.value" class="one-radio" style="display: none;" />
								</label>
							</radio-group>
						</view>
					</view>
					<view class="bottom">
						<view class="btn" @click="toNext(item.listorder)"
							v-if="currentQuestionlistorder !== table.questionInfo.length">下一题</view>
						<view class="btn" @click="submit" v-else>提交问卷</view>
					</view>
				</u-transition>
			</view>
		</template>
		<u-loading-icon text="加载中" textSize="18" :show="loading"></u-loading-icon>
	</view>
</template>

<script>
	// let music = uni.createInnerAudioContext(); //创建播放器对象
	export default {
		data() {
			return {
				deptId: uni.getStorageSync('CodeDeptId') ? uni.getStorageSync('CodeDeptId') : "",
				music: null,
				showImg: false,
				showMusic: true,
				loading: false,
				recordId: null, // 答题记录id
				tableAlias: null, // 量表别名 table1 table2 table3
				selectedChildId: null, // 儿童Id
				table: {}, // 量表内容
				optionList: [ // 量表1选项
					'A', 'B', 'C', 'D'
				],
				assessList: [{ // 量表1选项的程度 赋分
					value: '从不',
					score: 0
				}, {
					value: '极少',
					score: 1
				}, {
					value: '较少',
					score: 2
				}, {
					value: '有时',
					score: 3
				}, {
					value: '经常',
					score: 4
				}, {
					value: '频繁',
					score: 5
				}, {
					value: '总是',
					score: 6
				}],
				optionListTable2: [ //量表2选项
					{
						label: '总是',
						value: 'A'
					},
					{
						label: '经常',
						value: 'B'
					},
					{
						label: '有时',
						value: 'C'
					},
					{
						label: '偶尔',
						value: 'D'
					},
					{
						label: '从不',
						value: 'E'
					},
				],
				optionListTable3: [ //量表2选项
					{
						label: '完全同意',
						value: 'A'
					},
					{
						label: '少许同意',
						value: 'B'
					},
					{
						label: '少许不同意',
						value: 'C'
					},
					{
						label: '完全不同意',
						value: 'D'
					}
				],

				selectedAnswer: [], // 用户问卷回答信息 数组
				currentQuestionlistorder: 1, // 当前问卷题目的序号
				timer: null,
				timeUse: 0
			}
		},
		onLoad(option) {
			if (uni.$u.test.isEmpty(option.selectedChildId) || uni.$u.test.isEmpty(option.alias) || uni.$u.test.isEmpty(
					JSON.parse(uni.getStorageSync(option.alias)))) {
				return uni.switchTab({
					url: '/pages/tabbar/home/Home'
				})
			}
			this.selectedChildId = option.selectedChildId;
			this.tableAlias = option.alias;

			this.table = JSON.parse(uni.getStorageSync(option.alias));
			uni.setNavigationBarTitle({
				title: this.table.tableInfo.tableName + '测试'
			})

			// 量表1 要判断10周岁 加载不同题目
			if (option.alias == 'table1') {
				this.ageHandle();
			}
			// 检查是否有未完成的测试
			this.checkRecord()

			if (this.table.tableInfo.tableBgmusic != null) {
				this.showImg = true;
				this.music = uni.createInnerAudioContext();
				this.music.onPlay(() => {

				});
				this.music.onCanplay(() => {

				});
				this.music.onError((res) => {

				});
				this.playBgMusic(this.table.tableInfo.tableBgmusic);
			} else {
				this.showImg = false;
			}

		},
		onHide() {

			this.music.stop();
		},
		onUnload() {

			this.music.stop();
			if (this.timer) {
				clearTimeout(this.timer);
				this.timer = null;
			}
			this.music.destroy();

		},
		methods: {
			playBgMusic(url) {
				if (url) {

					url = this.baseUrl + url;
					this.music.src = url; //选择播放的音频
					this.music.loop = true;
					this.music.play(); //执行播放
				}
			},
			pauseMusic() {
				this.showMusic = false;
				this.music.stop();
			},
			playMusic() {
				this.showMusic = true;
				this.music.play()
			},

			// 计时
			timeUseStart() {
				this.timer = setInterval(() => {
					this.timeUse = this.timeUse + 1

				}, 1000);

			},
			// 检查当前用户，当前儿童，当前量表 是否有未完成的测试 selectedChildId tableAlias 
			async checkRecord() {
				const res = await this.$myRequest({
					url: '/system/record/listByUserId',
					data: {
						childrenId: this.selectedChildId,
						tableType: this.tableAlias
					}
				})
				try{
					if (!uni.$u.test.isEmpty(res.data.data)) {
						uni.showModal({
							content: '您有一份问卷测评未做完,是否继续？\n 时间：' + res.data.data[0].createTime.replace('T', ' ')
								.replace('.000+08:00', ' '),
							cancelText: '重新测评',
							cancelColor: '#FF0000',
							confirmText: '继续测评',
							success: (resModal) => {
					
								if (resModal.confirm) {
									this.loadUnOverAnswer(res.data.data[0].answer)
									this.recordId = res.data.data[0].recordId
									this.timeUse = res.data.data[0].timeUse
									this.timeUseStart()
					
					
								} else {
									this.delUnOverAnswer(res.data.data[0].recordId)
									this.addRecord()
								}
							}
						})
					} else {
						uni.showLoading()
						this.addRecord()
					}
				}catch(err){
					uni.showLoading()
					this.addRecord()
				}
	
			},
			// 重新测评 删除历史测评记录
			async delUnOverAnswer(recordId) {
				const res = await this.$myRequest({
					url: '/system/record/delUnOverAnswer/' + recordId,
					method: 'DELETE'
				})
			},
			// 增加测评记录
			async addRecord() {
				const res = await this.$myRequest({
					url: '/system/record',
					method: 'POST',
					data: {
						childrenId: this.selectedChildId,
						tableType: this.tableAlias,
						scanDeptId: this.deptId

					}
				})
				this.recordId = res.data.data
				this.timeUseStart()
				uni.hideLoading()
			},

			// 加载历史测评记录
			async loadUnOverAnswer(answer) {
				this.selectedAnswer = JSON.parse(answer); // 已填写的答案列表
				this.currentQuestionlistorder = this.selectedAnswer[this.selectedAnswer.length - 1].listorder + 1;
			},

			// 根据年龄 加载不同的题
			async ageHandle() {
				const resChild = await this.$myRequest({
					url: '/system/children/userChildrenById/' + this.selectedChildId,
				})
				let age = this.getCurrentAgeByBirthDate(resChild.data.data.birthday);
				this.table.questionInfo.splice(this.table.questionInfo.findIndex((item) => {
					return age >= 10 ? item.questionType == 'kid' : item.questionType == 'boy';
				}), 1)
			},
			// 跳转下一题
			toNext(listorder) {
				// 查找该题是否已被选择
				let find = this.selectedAnswer.findIndex((item) => {
					return item.listorder == listorder;
				})
				if (find == -1) {
					return uni.showToast({
						icon: 'error',
						title: '请选择答案'
					})
				}
				this.currentQuestionlistorder++;
			},
			// 选择 选项 ABCD
			changeOption(questionId, e, listorder) {
				let label = "";
				if (this.tableAlias == 'table2') {
					if (e.detail.value == "A") {
						label = "总是"
					} else if (e.detail.value == "B") {
						label = "经常"
					} else if (e.detail.value == "C") {
						label = "有时"
					} else if (e.detail.value == "D") {
						label = "偶尔"
					} else if (e.detail.value == "E") {
						label = "从不"
					}
				} else if (this.tableAlias == 'table3') {
					if (e.detail.value == "A") {
						label = "完全同意"
					} else if (e.detail.value == "B") {
						label = "少许同意"
					} else if (e.detail.value == "C") {
						label = "少许不同意"
					} else if (e.detail.value == "D") {
						label = "完全不同意"
					}
				}
				let oneOption = {
					questionId,
					qustionOption: e.detail.value,
					listorder,
					score: []
				};
				if (label) {
					oneOption.optionLabel = label
				}
				// table2 3 获取分数
				if (this.tableAlias != 'table1') {
					let findScoreRow = this.table.questionInfo.find((item) => {
						return item.id == questionId
					})
					let score = findScoreRow['option' + e.detail.value]
					oneOption.score = score
				}

				let findIndex = this.selectedAnswer.findIndex((item) => {
					return item.questionId == questionId;
				});
				if (findIndex == -1) {
					this.selectedAnswer.push(oneOption);
				} else {
					this.selectedAnswer[findIndex].qustionOption = e.detail.value;
					if (this.tableAlias != 'table1') {
						this.selectedAnswer[findIndex].score = oneOption.score;
						this.selectedAnswer[findIndex].optionLabel = label;
					}
				};

				this.updateRecord(this.selectedAnswer)
			},
			/**
			 * 选择 程度/分 0-6
			 * @param questionId 问题id
			 * @param e 程度分数
			 * @param option 选项 字符串
			 * @param listorder 顺序号
			 */
			selectAssess(questionId, e, option, listorder) {
				let label = "";
				if (e.detail.value == "0") {
					label = "从不"
				} else if (e.detail.value == "1") {
					label = "极少"
				} else if (e.detail.value == "2") {
					label = "较少"
				} else if (e.detail.value == "3") {
					label = "有时"
				} else if (e.detail.value == "4") {
					label = "经常"
				} else if (e.detail.value == "5") {
					label = "频繁"
				} else if (e.detail.value == "6") {
					label = "总是"
				}
				let oneAnswer = {
					questionId,
					score: [{
						option,
						optionScore: e.detail.value,
						optionLabel: label
					}],
					listorder
				};
				// 两次查找 首选判断已选答案中是否有这个题，无 新增，有进入二次判断
				let findQuestionIndex = this.selectedAnswer.findIndex(item => {
					return item.questionId == questionId
				})
				if (findQuestionIndex == -1) {
					this.selectedAnswer.push(oneAnswer)
				} else {
					// 判断这个题的回答中，是否有这个程度，有的话说明是切换，对分数替换；没有的话新增
					let findOptionIndex = this.selectedAnswer[findQuestionIndex].score.findIndex(item => {
						return item.option == option
					})
					if (findOptionIndex == -1) {
						this.selectedAnswer[findQuestionIndex].score.push({
							option,
							optionScore: e.detail.value,
							optionLabel: label
						})
					} else {
						this.selectedAnswer[findQuestionIndex].score[findOptionIndex].optionScore = e.detail.value
						this.selectedAnswer[findQuestionIndex].score[findOptionIndex].optionLabel = label
					}

				}

				this.updateRecord(this.selectedAnswer)
			},
			// 完成测评 提交答案
			submit() {
				this.loading = true;
				if (this.selectedAnswer.length == 0) {
					this.loading = false;
					return uni.showToast({
						icon: 'error',
						title: '请填写问卷'
					})
				}
				if (this.selectedAnswer.length != this.table.questionInfo.length) {
					this.loading = false;
					return uni.showToast({
						icon: 'error',
						title: '尚有问题未做选择'
					})
				}
				// this.selectedAnswer.sort((a, b) => {
				// 	return a.listorder - b.listorder
				// })
				for (let i = 0; i < this.selectedAnswer.length; i++) {
					if (uni.$u.test.isEmpty(this.selectedAnswer[i].qustionOption)) {
						this.loading = false;
						return uni.showToast({
							icon: 'error',
							title: '第' + (i + 1) + '题目，未选择 条目'
						})
					}
				}

				if (this.tableAlias == 'table1') {
					for (let i = 0; i < this.selectedAnswer.length; i++) {
						if (this.selectedAnswer[i].score.length != 4) {
							this.loading = false;
							return uni.showToast({
								icon: 'error',
								title: '第' + (i + 1) + '题目，未选择 答案'
							})
						}
					}
				}
				this.updateRecord(this.selectedAnswer, 1).then(() => {
					uni.redirectTo({
						url: `/tablePackage/pages/testRecord?recordId=${this.recordId}`
					})
					this.loading = false;
				})
			},
			getOptionIndex(questionId, option) {

				let questionRow = this.table.questionInfo.find(item => {
					return item.id == questionId
				})


				let optionIndex = option + 'Index';
				return questionRow[optionIndex]
			},
			// 更新测评记录 isOver==1 结束
			async updateRecord(answer, isOver) {

				// 结束生成 报告指标分布 reportData 总分数 totalScore
				if (isOver == 1) {
					if (this.tableAlias == 'table1') {


						answer.forEach(item => {
							item.score.forEach(s => {
								s.optionIndex = this.getOptionIndex(item.questionId, s.option);
							})
						})




						let groups = {}
						answer.forEach(item => {
							if (item.questionId != 6 && item.questionId != 11) {
								// 过滤掉量表1的 混淆题
								item.score.forEach((s => {

									let value = s['optionIndex'];
									groups[value] = groups[value] || [];
									groups[value].push(s)
								}))
							}
						})

						// 	报告指标分布 reportData
						var reportData = [];
						for (let key in groups) {
							let totalScore = countTotalScore(groups[key]);
							reportData.push({
								optionIndex: key,
								score: totalScore
							})
						}

						function countTotalScore(arr) {
							let total = 0;
							for (let i = 0; i < arr.length; i++) {
								total += parseInt(arr[i].optionScore)
							}
							return total
						}



					} else {
						// 用户答案与指标结合成新数组
						for (let i = 0; i < answer.length; i++) {
							for (let j = 0; j < this.table.questionInfo.length; j++) {
								if (answer[i].questionId == this.table.questionInfo[j].id) {
									let optionIndex = 'option' + answer[i].qustionOption + 'Index';
									answer[i].optionIndex = this.table.questionInfo[j][optionIndex]
								}
							}
						}
						// 对结果按指标分组 并过滤掉混淆题 形成 groups 对象
						let groups = {}
						answer.forEach(item => {
							// 过滤掉量表1的 混淆题
							if (!item['optionIndex'] || item['optionIndex'] == '') {
								return
							}
							let value = item['optionIndex'];
							groups[value] = groups[value] || [];
							groups[value].push(item)
						})
						// 	报告指标分布 reportData 
						var reportData = [];
						for (let key in groups) {
							let totalScore = this.countTotalScore(groups[key]);
							reportData.push({
								optionIndex: key,
								score: totalScore
							})
						}
					}


					// 排序 按指标分数高低
					reportData = this.compareFN(reportData, "score")

					// 总分数 totalScore
					var totalScore = 0;
					for (let i = 0; i < reportData.length; i++) {
						totalScore += reportData[i].score
					}
					// 报告结果 reportResult
					var reportResult = '';

					if (this.tableAlias == 'table1') {

						// 判断无效报告
						// 1、|情景1选项A得分-混淆题选项C得分|+|情景1选项B得分-混淆题选项D得分|+|情景1选项C得分-混淆题选项B得分|+|情景1选项D得分-混淆题选项A得分|>2
						// 2、所有题目选项得分相同，呈现无效报告
						// 3、所有题目选项得分全部>=5，或所有题目选项得分全部<=1，呈现无效报告
						if (Math.abs(parseInt(answer[0].score[0].optionScore) - parseInt(answer[5].score[2]
								.optionScore)) +
							Math.abs(parseInt(answer[0].score[1].optionScore) - parseInt(answer[5].score[3]
								.optionScore)) +
							Math.abs(parseInt(answer[0].score[2].optionScore) - parseInt(answer[5].score[1]
								.optionScore)) +
							Math.abs(parseInt(answer[0].score[3].optionScore) - parseInt(answer[5].score[0]
								.optionScore)) > 24) {
							reportResult = "无效类型"
						} else if (isAllEqual(answer)) {
							reportResult = "无效类型"
						} else if (isAllGe5(answer)) {
							reportResult = "无效类型"
						} else if (isAllLe1(answer)) {
							reportResult = "无效类型"
						} else if (reportData[0].score == reportData[1].score &&
							reportData[0].score == reportData[2].score) {
							reportResult = "无效类型"
						} else {
							reportResult = this.createReportResult(this.tableAlias, reportData, totalScore)
						}

					} else {
						reportResult = this.createReportResult(this.tableAlias, reportData, totalScore)
					}

					function isAllEqual(array) {
						let newArr = [];
						for (let i = 0; i < array.length; i++) {
							for (let j = 0; j < array[i].score.length; j++) {
								newArr.push(array[i].score[j].optionScore)
							}
						}
						if (newArr.length > 0) {
							return !newArr.some(function(value, index) {
								return value !== newArr[0];
							});
						} else {
							return true;
						}
					}



					function isAllGe5(array) {
						let newArr = [];
						for (let i = 0; i < array.length; i++) {
							for (let j = 0; j < array[i].score.length; j++) {
								newArr.push(array[i].score[j].optionScore)
							}
						}
						if (newArr.length > 0) {
							return newArr.every(function(value, index) {
								return parseInt(value) >= 5;
							});
						} else {
							return false;
						}
					}

					function isAllLe1(array) {
						let newArr = [];
						for (let i = 0; i < array.length; i++) {
							for (let j = 0; j < array[i].score.length; j++) {
								newArr.push(array[i].score[j].optionScore)
							}
						}
						if (newArr.length > 0) {
							return newArr.every(function(value, index) {
								return parseInt(value) <= 1;
							});
						} else {
							return false;
						}
					}


				}

				answer = JSON.stringify(answer);
				reportData = reportData ? JSON.stringify(reportData) : '{}';



				const res = await this.$myRequest({
					url: '/system/record',
					method: 'PUT',
					data: {
						recordId: this.recordId,
						answer,
						isOver,
						reportData,
						totalScore,
						reportResult,
						timeUse: this.timeUse
					}
				})
				if (res.data.code == 200) {

				}
			},
			// 分类求和
			countTotalScore(arr) {
				let total = 0;
				for (var i = 0; i < arr.length; i++) {
					total += parseInt(arr[i].score)
				}
				return total
			},
			// 计算指标
			compareFN(arr, property) {
				var i = 0;
				var j = 0;
				let t;
				for (i = 0; i < arr.length; i++) {
					for (j = 0; j < arr.length; j++) {
						if (arr[i][property] > arr[j][property]) {
							t = arr[i];
							arr[i] = arr[j];
							arr[j] = t;
						}
					}
				}
				return arr
			},
			// 量表1 判断结果
			createReportResult(tableAlias, reportData, totalScore) {
				let reportResult = "";

				if (tableAlias == 'table1') {
					// 第一项指标分数最高时，结果就是第一项
					if (reportData[0].score > reportData[1].score) {
						switch (reportData[0].optionIndex) {
							case "主动":
								reportResult = "主动但怪异型";
								break;
							case "冷漠":
								reportResult = "冷漠型";
								break;
							case "被动":
								reportResult = "被动型";
								break;
							case "正常":
								reportResult = "正常型";
								break;
							default:
								break;
						}
					}
					// 第一项指标分数和第二项指标分数相同时，结果就是第一项+第二项组合 !!只有三种组合
					// if (reportData[0].score == reportData[1].score) {
					// 	if ((reportData[0].optionIndex == "主动" && reportData[1].optionIndex == "正常") || (
					// 			reportData[0]
					// 			.optionIndex == "正常" && reportData[1].optionIndex == "主动")) {
					// 		reportResult = "主动但怪异型或正常型"
					// 	}
					// 	if ((reportData[0].optionIndex == "主动" && reportData[1].optionIndex == "被动") || (
					// 			reportData[0]
					// 			.optionIndex == "被动" && reportData[1].optionIndex == "主动")) {
					// 		reportResult = "主动但怪异型或被动型"
					// 	}
					// 	if ((reportData[0].optionIndex == "冷漠" && reportData[1].optionIndex == "被动") || (
					// 			reportData[0]
					// 			.optionIndex == "被动" && reportData[1].optionIndex == "冷漠")) {
					// 		reportResult = "冷漠或被动型"
					// 	}
					// }
					//
					// 第一项指标分数和第二项指标分数相同时，结果就是第一项+第二项组合 !!只有三种组合
					if (reportData[0].score == reportData[1].score) {
						if ((reportData[0].optionIndex == "主动" && reportData[1].optionIndex == "正常") || (
								reportData[0]
								.optionIndex == "正常" && reportData[1].optionIndex == "主动")) {
							reportResult = "主动但怪异型或正常型"
						} else if ((reportData[0].optionIndex == "主动" && reportData[1].optionIndex == "被动") || (
								reportData[0]
								.optionIndex == "被动" && reportData[1].optionIndex == "主动")) {
							reportResult = "主动但怪异型或被动型"
						} else if ((reportData[0].optionIndex == "主动" && reportData[1].optionIndex == "冷漠") || (
								reportData[0]
								.optionIndex == "冷漠" && reportData[1].optionIndex == "主动")) {
							reportResult = "主动但怪异型或冷漠型"
						} else if ((reportData[0].optionIndex == "冷漠" && reportData[1].optionIndex == "被动") || (
								reportData[0]
								.optionIndex == "被动" && reportData[1].optionIndex == "冷漠")) {
							reportResult = "冷漠型或被动型"
						} else if ((reportData[0].optionIndex == "冷漠" && reportData[1].optionIndex == "正常") || (
								reportData[0]
								.optionIndex == "正常" && reportData[1].optionIndex == "冷漠")) {
							reportResult = "冷漠型或正常型"
						} else if ((reportData[0].optionIndex == "被动" && reportData[1].optionIndex == "正常") || (
								reportData[0]
								.optionIndex == "正常" && reportData[1].optionIndex == "被动")) {
							reportResult = "被动型或正常型"
						} else {
							reportResult = "无效类型"
						}
					}
				}
				if (tableAlias == 'table2') {
					reportResult = totalScore > 53 ? `需要警惕` : '正常范围内'
				}

				if (tableAlias == 'table3') {
					reportResult = totalScore > 26 ? `需要警惕` : '正常范围内'
				}

				return reportResult;
			},

			// 生日 to 周岁
			getCurrentAgeByBirthDate(strBirthday) {
				const strBirthdayArr = strBirthday.split("-")
				const birthYear = strBirthdayArr[0]
				const birthMonth = strBirthdayArr[1]
				const birthDay = strBirthdayArr[2]
				const d = new Date()
				const nowYear = d.getFullYear()
				const nowMonth = d.getMonth() + 1
				const nowDay = d.getDate()
				if (nowYear === birthYear) return 0
				const ageDiff = nowYear - birthYear;
				if (ageDiff < 0) return -1
				if (nowMonth !== birthMonth) {
					const monthDiff = nowMonth - birthMonth;
					return monthDiff < 0 ? ageDiff - 1 : ageDiff
				}
				const dayDiff = nowDay - birthDay;
				return dayDiff < 0 ? ageDiff - 1 : ageDiff
			}
		},
		computed: {
			selected() {
				this.selectedAnswer = this.selectedAnswer || [];
				return (questionId, qustionOption) => {
					let findIndex = this.selectedAnswer.findIndex((item) => {
						return item.questionId == questionId && item.qustionOption == qustionOption;
					});
					return findIndex != -1 ? 'selected' : 'sss'
				}
			},
			getOptionChecked() {
				this.selectedAnswer = this.selectedAnswer || [];
				return (questionId, qustionOption) => {
					let qustionOptionIndex = this.selectedAnswer.findIndex((item) => {
						return item.questionId == questionId && item.qustionOption == qustionOption;
					});

					return qustionOptionIndex != -1 ? true : false
				}
			},
			back() {
				uni.navigateBack()
			},
			getScoreChecked() {
				this.selectedAnswer = this.selectedAnswer || [];
				//this.selectedAnswer.score = this.selectedAnswer.score || [];
				return (questionId, score, option) => {

					let questionIndex = this.selectedAnswer.findIndex((item) => {
						return item.questionId == questionId
					});

					if (questionIndex != -1) {

						if (!this.selectedAnswer[questionIndex].score) {
							return false
						}

						let scoreIndex = this.selectedAnswer[questionIndex].score.findIndex((item) => {
							return item.optionScore == score && item.option == option
						});
						return questionIndex != -1 && scoreIndex != -1 ? true : false
					} else {
						return false
					}




				}

			}

		},
	}
</script>

<style lang="less">
	.top-haed {
		width: 60%;
		margin: 0 auto;
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: 44px;

		.title_ {
			font-weight: bold;
		}

	}

	.content {
		.header {
			width: 60%;
			margin: 0 auto;


			image {
				width: 100%;
				height: 350px;
				margin-bottom: 20px;
			}
		}

		.ques-con {
			text-align: left;
			width: 60%;
			margin: 0 auto;
			margin-top: -20rpx;
			line-height: 40rpx;
			border-radius: 20rpx;
			background-color: rgba(255, 255, 255, 1);
			text-align: center;
			border: 5px solid rgba(40, 123, 206, 1);
			padding: 40rpx;

			image {
				width: 80rpx;
				height: 80rpx;
				float: right;
			}

			.ques-title-con {
				display: flex;
				align-items: center;
			}

			.ques-title {
				font-size: 16px;
				font-weight: bold;
				padding-top: 5px;
				text-align: left;
				margin-top: 10rpx;
				margin-bottom: 10rpx;
			}

			.ques-num {
				margin-right: 10rpx;
				display: flex;
				align-items: center;
			}

			.current-num {
				color: rgba(16, 16, 16, 1);
				font-size: 33rpx;
				text-align: left;
				font-weight: 600;
			}

			.all-num {
				color: rgba(16, 16, 16, 1);
				font-size: 25rpx;
				text-align: left;
			}

			.ques-answer-con {
				.one-answer {
					padding: 20rpx 40rpx;
					margin-top: 20rpx;
					border-radius: 52rpx;
					background-color: rgba(255, 255, 255, 1);
					color: rgba(16, 16, 16, 1);
					font-size: 32rpx;
					text-align: left;
					font-family: Arial;
					border: 2px solid rgba(187, 187, 187, 1);


					&.selected {
						background-color: rgba(40, 123, 206, 1);
						color: #fff;
						border: 2px solid rgba(40, 123, 206, 1);
					}
				}

				.answer {
					text-align: left;

					.answer-option {
						font-weight: bold;
						margin-top: 20rpx;
					}

					.answer-text {
						// font-weight: ;
						margin: 20rpx 0;
					}

					.assess-list {
						display: flex;

						.one-assess {
							display: flex;
							flex-direction: column;
							align-items: center;
							text-align: center;
							width: 100rpx;
							font-size: 24rpx;
							padding: 6rpx;
							border: 1px solid #ddd;
						}

						.one-assess:nth-child(2n) {
							// background-color: #eee;
							border-left: none;
							border-right: none;
						}
					}
				}

				.tip {
					margin: 20rpx 0rpx;
					font-size: 28rpx;
					text-align: left;
				}

				.option-con {
					display: flex;

					align-items: center;
					margin: 20rpx 0;

					.option-label {
						display: flex;
						align-items: center;
						margin-right: 80px;
					}

					.one-radio {
						margin-left: 10rpx;
					}
				}
			}
		}

		.bottom {
			display: flex;
			justify-content: center;
			margin-top: 50rpx;

			.btn {
				width: 700rpx;
				height: 100rpx;
				border-radius: 50rpx;
				background-color: rgba(40, 123, 206, 1);
				color: rgba(255, 255, 255, 1);
				font-size: 14px;
				text-align: center;
				line-height: 100rpx;
				margin-bottom: 50rpx;
			}
		}
	}

	.tip {
		margin: 20rpx 0rpx;
		font-size: 30rpx;
		text-align: left;
	}

	.option-con-table2 {
		display: flex;
		flex-direction: column;
	}

	/deep/ .uni-radio-input {
		margin-right: 0 !important;
	}
	@media (max-width: 700px) {
	.option-label {
		display: flex;
		align-items: center;
		margin-right: 40px !important;
	}
	}
</style>