<template>
	<view>
		<!-- <u-navbar :title="navTitle" @rightClick="rightClick" :autoBack="true">
		</u-navbar> -->
		<j-navbar>{{navTitle}}</j-navbar>
		<Question ref="question" :tabsList="tabsList" :isShowAll="isShowAll" :subject="subject" :navTitle="navTitle"
			@changeTab="changeTab"></Question>
	</view>
</template>

<script>
	import {
		mapState,
		mapActions
	} from 'pinia' //引入映射函数
	import useQuestionStore from '@/jtools/store/question' //引入store
	import useUserStore from '@/jtools/store/user'
	import Question from './components/Question.vue';
	import {
		queryQuestion
	} from '@/jtools/api/question';
	import storage from '@/jtools/storage';
	export default {
		components: {
			Question
		},
		data() {
			return {
				isShowAll: true,
				needVip: false,
				subject: 1,
				navTitle: '',
				tabsList: [{
					label: "答题",
					value: 0
				}, {
					label: "背题",
					value: 1
				}],
				questionArr: []
			}
		},
		async onLoad(op) {
			if (op.needVip) {
				this.needVip = op.needVip
			}
			if(op.subject){
				this.subject=op.subject
			}
			if (op && op.navTitle) {
				this.navTitle = op.navTitle
				const param = {}
				if (this.navTitle === '顺序答题') {
					if(this.subject=='1'){
						this.questionArr = [...this.orderQuestion_subject1]
					}else if(this.subject=='4'){
						this.questionArr = [...this.orderQuestion_subject4]
					}	
					this.$refs.question.getQuestionList(JSON.stringify(this.questionArr))
				} else {
					if (this.navTitle === '错题本') {
						param.questionIdList = storage.get(`wrongList_subject${this.subject}`) || []
					} else if (this.navTitle === '收藏夹') {
						param.questionIdList = storage.get(`collectList_subject${this.subject}`) || []
					}
					if (op.questionList) {
						param.questionIdList = JSON.parse(op.questionList)
					}
					if (op.chapter) {
						param.chapter = op.chapter
					}
					if (op.examKey) {
						param.examKey = op.examKey
					}
					if(op.isError&&op.isError=='1'){
						param.isError=Number(op.isError)
					}
					if(op.isNew&&op.isNew=='1'){
						param.isNew=Number(op.isNew)
					}
					if(op.type){
						param.type=op.type
					}
					if(op.isImage){
						param.isImage=op.isImage
					}
					if(op.isVip){
						param.isVip=op.isVip
					}
					param.subject=this.subject
					param.carTypeId=storage.get('carType') || '1001'
					queryQuestion(param).then(async (res) => {
						if (res.code == '0000') {
							this.questionArr = res.data
							if (this.needVip === 'true') {
								if (this.token) {
									await this.searchUserVip()
									const res = this.vipOnList.some(item => item.subjects == this.subject)
									if (!res) {
										this.questionArr = this.questionArr.slice(0, 3)
										this.isShowAll = false
									}
								} else {
									uni.redirectTo({
										url: '/pages/login/login'
									});
								}
							}
							this.$refs.question.getQuestionList(JSON.stringify(this.questionArr))
						}
					})
				}
			}
		},
		computed: {
			...mapState(useQuestionStore, ["orderQuestion_subject1","orderQuestion_subject4"]), //映射函数，取出tagslist
			...mapState(useUserStore, ["vipOnList", "token"])
		},
		methods: {
			...mapActions(useUserStore, ['searchUserVip']),
			changeTab(val) {
				if (val == 1) {
					let list = JSON.parse(JSON.stringify(this.questionArr))
					list = list.map(item => {
						return {
							...item,
							clickAnswer: item.trueAnswer
						}
					})
					this.$refs.question.isShowBest(true)
					this.$refs.question.getQuestionList(JSON.stringify(list))
				} else {
					this.$refs.question.isShowBest(false)
					this.$refs.question.getQuestionList()
				}
			},
			rightClick() {
				console.log('返回');
			},
		}
	}
</script>

<style scoped>

</style>