vue实现答题考试功能(上一题下一题)

1,后端返回数据

 questionList: [
        {
          id: "1",
          name: "one",
          question: "问题1111111?",
          answer: "防弹少年框架的积分换深刻领会是客家话"
        },
        {
          id: "2",
          name: "two",
          question: "问题222222222?",
          answer: "分类开始动画佛丹斯科了解封惹急人都是会计发发多少咯科技和?"
        },
        {
          id: "3",
          name: "three",
          question: "问题333333333?",
          answer: "的数据库和 非打死不回复欧水回复而交话费渡水复渡水附近的时刻?"
        },
        {
          id: "4",
          name: "fore",
          question: "问题4444?",
          answer: "客家话的发生了空间是客家话?"
        }
      ],

2,前端逻辑

只是实现了答题打分功能

<template>
 <div v-for="(item, index) in questionList" :key="index">
      <div v-if="num === index">
        <h4>{{ index + 1 }}{{ item.question }}</h4>
        <p class="mar10">答:{{ item.answer }}</p>
        <br />
        <el-radio-group v-model="allRadio[index]" @change="rideoChange">
          <el-radio-button label="0">0</el-radio-button>
          <el-radio-button label="1">1</el-radio-button>
          <el-radio-button label="2">2</el-radio-button>
          <el-radio-button label="3">3</el-radio-button>
          <el-radio-button label="4">4</el-radio-button>
        </el-radio-group>
        <br />
        <!-- --------------------- -->
        <el-row>
          <el-col :span="3"
            ><el-button class="mar10" @click="prex" :disabled="preDisabled"
              >上一题</el-button
            ></el-col
          >
          <el-col :span="6"
            ><el-button class="mar10" @click="next" :disabled="nextDisabled"
              >下一题</el-button
            ></el-col
          >
          <el-col :span="12"
            ><el-button type="primary" class="mar10" @click="goSubmit"
              >提交打分任务</el-button
            ></el-col
          >
        </el-row>
      </div>
    </div>
  </template>

<script>
export default {
data() {
    return {
    preDisabled: true, //上禁用按钮
      nextDisabled: false, //下禁用按钮
      num: 0, //第几题
      allRadio: [], //每题的选项
      answerList: [], //所有题的答案或分数
    }
  }
  methods: {
	rideoChange(val) {
      console.log(val);
      this.answerList.push(val);
      // console.log(this.allRadio); // ["4", empty, "2"]
      // console.log(this.answerList); // ["4", "2"]
    },
    next() {
      this.preDisabled = false;
      if (this.num < this.questionList.length - 1) {
        this.num += 1;
      }
    },
    prex() {
      if (this.num === 0) {
        this.num = 0;
      } else {
        this.num -= 1;
      }
    },
    goSubmit() {
      this.submitDialog = true;
    },
  },
  watch: {
    //第一题和最后一题禁用按钮
    num(now, old) {
      if (now == this.questionList.length - 1) {
        this.nextDisabled = true;
      } else {
        this.nextDisabled = false;
      }
      if (now < 1) {
        this.preDisabled = true;
      }
    }
  }
}
</script>
  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C+ 安口木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值