<template>
	<!-- <view>伴宠师认证</view> -->
	 <view class="page">
		<view class="box">
			<view class="content bg-fff">
				<view class="group" v-for="(group, gIdx) in list" :key="`group-${gIdx}`">
					<view class="label size-22 level" :style="{borderRadius:'10rpx'}">
						{{ group.title }}
					</view>
					<view >
						<questionCard 
							v-for="(item, qIdx) in group.children" 
							:key="`${gIdx}-question-${qIdx}`"
							:index="qIdx"
							:data="item"
							:type="item.type"
							mode="display"
						></questionCard>
					</view>
				</view>
			</view>
		</view>
		<view class="footer-btn flex-colc">
			<view class="size-22 color-777 tips-rest">
				<!-- todo -->
				剩余考试机会：<text class="highlight">{{ restTimes }}</text>次
			</view>
			<view class="btn" @click="onClick">
				重新考试
			</view>
		</view>
	</view>

</template>

<script setup>
	import { ref } from 'vue'
	import { onShow } from '@dcloudio/uni-app'
	import { getQuestionList, getQuestionOptions, answeBaseByQuestionId, answeTrainByQuestionId } from '@/api/examination'

	import questionCard from '../components/questionCard.vue';
	
	const list = ref([
		{
			title: '选择题',
			children: [],
		},
		{
			title: '主观题',
			children: [],
		},
	])

	const initList = async () => {
		try {
			
			let groups = [
				{ title: '选择题', children: [], },
				{ title: '主观题', children: [], },
			]
			
			let questions = await getQuestionList()

			for (let i = 0; i < questions.length; i++) {
				const { id, title, type } = questions[i]

				let data = { id, title, type }

				if (type === '基本') {
					const options = (await getQuestionOptions({ questionId: id })).map(item => ({ id: item.id, title: item.title}))
					data.options = options
					
					// todo: 替换成批量查询接口
					const { answer, answerId } = await answeBaseByQuestionId({ questionId: id })

					if (answer.isTrue) {
						continue
					}

					data.answer = answer.id
					data.value = answerId
					data.isTrue = answer.isTrue

					groups[0].children.push(data)

				} else {

					// todo: 替换成批量查询接口
					const { answer, remark } = await answeTrainByQuestionId({ questionId: id })

					if (!remark) {
						continue
					}

					data.answer = remark
					data.value = answer

					groups[1].children.push(data)
				}
			}

			list.value = groups.filter(group => group.children.length > 0)
			
			console.log('--list', list.value)
		} catch (err) {
			console.log('--initList--err', err)
		}
	}

	const restTimes = ref()

	onShow(() => {
		// todo: fetch
		restTimes.value = 3

		initList()
	})

	const onClick = () => {
		uni.reLaunch({
			url: "/otherPages/authentication/examination/start"
			// todo: check
			// url: "/otherPages/authentication/list/index"
    })
	}
</script>

<style lang="scss" scoped>
	$bar-height: 163rpx;

	.page {
		padding-bottom: $bar-height;
	}

	.box {
		// background-image: linear-gradient(to bottom, #ffbf60, #f2f2f2);
		padding: 16rpx;

		.step {
			width: 720rpx;
			height: 32rpx;
			border-radius: 32rpx;
			background-color: #D9D9D9;

			.in {
				width: 50%;
				height: 32rpx;
				background-color: #ffbf60;
				border-radius: 32rpx;
			}
		}
	}

	.content {
		border-radius: 20rpx;
		padding: 15rpx 20rpx;

		.label {
			width: 86rpx;
			padding: 5rpx 15rpx;
			color: #fff;
			background-color: #FFBF60;
			justify-content: center;
		}
	}

	.group + .group {
		margin-top: 68rpx;
	}

	.level {
		display: flex;
	}

	.footer-btn {
		height: $bar-height;
	}
	
	.tips {
		&-rest {
			color: #707070;
			font-size: 22rpx;
			margin: 9rpx 0 13rpx 0;
			.highlight {
				color: #FF8DC6;
			}
		}
	}
</style>