需求:

1、判断当前试题是否做过,做过才可切换至下一题,反之加提示

2、按题序往下做,已做过的题可切换查看历史记录,反之加提示

一、参考el-tabs参数 before-leave 方法进行拦截校验

 二、创建view页面

此处question数组试题列表数据省略......

<el-tabs v-model="qidValue" :before-leave="beforeLeave">
  <el-tab-pane v-for="(quest,queIndex) of question" :key="queIndex" :label="queIndex+1+''">
    <div class="quest_list">
      <!-- 试题内容 -->
    </div>
  </el-tab-pane>
</el-tabs>
<script>
export default {
  data () {
    return {
      // 题号按钮切换文字
      qidValue: '0',
      // 习题列表
      question: []
    }
  },
  methods: {
    // tabs切换拦截
    beforeLeave (newIndex, oldIndex) {
      if (newIndex === '0') { // 初始值拦截 true拦截 false切换
        return true
      }
      if (Number(newIndex) - Number(oldIndex) === 1 && this.question[oldIndex].isSubmit) { // 当前提交了的题变成旧的题
        return true
      }
      if (this.question[newIndex].isSubmit) {
        return true
      } else {
        this.$message.info('请先完成上一题再切换至下一题')
        return false
      }
    }
  }
}
</script>

       希望我的愚见能够帮助你哦~,若有不足之处,还望指出,你们有更好的解决方法,欢迎大家在评论区下方留言支持,大家一起相互学习参考呀~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐