首页 > 其他分享 >用 Vue2 打造防诈骗问答系统:完整代码与项目实战 Vue2 实现交互式问答页面:单选、多题切换与答案记录 从零构建防诈骗测试页面:Vue2 项目完整案例 Vue2 项目实战:防诈骗场景问答系统开发

用 Vue2 打造防诈骗问答系统:完整代码与项目实战 Vue2 实现交互式问答页面:单选、多题切换与答案记录 从零构建防诈骗测试页面:Vue2 项目完整案例 Vue2 项目实战:防诈骗场景问答系统开发

时间:2024-11-27 12:31:40浏览次数:4  
标签:Vue2 问答 border 诈骗 background font margin options

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以下是 构建一个防诈骗测试页面的完整代码实现,包含单选题功能,并可记录用户选择的答案,所有功能均基于 Vue2 实现:


完整代码

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>防诈骗测试</title>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <style>
    body {
      font-family: Arial, sans-serif;
      background-color: #f3f4f6;
      margin: 0;
      padding: 0;
    }
    .container {
      max-width: 600px;
      margin: 20px auto;
      background: white;
      padding: 20px;
      border-radius: 10px;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }
    .header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 20px;
    }
    .header h2 {
      margin: 0;
      font-size: 1.2rem;
    }
    .header .progress {
      font-size: 0.9rem;
      color: #666;
    }
    .question {
      margin-bottom: 20px;
    }
    .question p {
      font-size: 1rem;
      font-weight: bold;
      margin: 0 0 10px;
    }
    .options {
      list-style: none;
      padding: 0;
    }
    .options li {
      margin-bottom: 10px;
    }
    .options input[type="radio"] {
      display: none;
    }
    .options label {
      display: block;
      background: #f9f9f9;
      padding: 10px;
      border-radius: 5px;
      border: 1px solid #ddd;
      cursor: pointer;
      transition: background 0.2s, border-color 0.2s;
    }
    .options input[type="radio"]:checked + label {
      background: #d1e7dd;
      border-color: #198754;
    }
    .confirm-button {
      display: block;
      width: 100%;
      padding: 10px;
      background: #007bff;
      color: white;
      border: none;
      border-radius: 5px;
      font-size: 1rem;
      cursor: pointer;
      text-align: center;
    }
    .confirm-button:disabled {
      background: #ccc;
      cursor: not-allowed;
    }
  </style>
</head>
<body>
<div id="app">
  <div class="container">
    <!-- Header -->
    <div class="header">
      <h2>防诈骗测试</h2>
      <p class="progress">{{ currentQuestion + 1 }}/{{ questions.length }}</p>
    </div>

    <!-- Question -->
    <div class="question">
      <p>{{ questions[currentQuestion].text }}</p>
    </div>

    <!-- Options -->
    <ul class="options">
      <li v-for="(option, index) in questions[currentQuestion].options" :key="index">
        <input 
          type="radio" 
          :id="'option' + index" 
          :value="option" 
          v-model="selectedAnswer"
        >
        <label :for="'option' + index">{{ option }}</label>
      </li>
    </ul>

    <!-- Confirm Button -->
    <button 
      class="confirm-button" 
      :disabled="!selectedAnswer" 
      @click="confirmAnswer"
    >
      {{ currentQuestion === questions.length - 1 ? '提交' : '确认' }}
    </button>
  </div>
</div>

<script>
new Vue({
  el: '#app',
  data: {
    questions: [
      {
        text: '想找兼职的小刘看到一则网络刷单招聘,对方说,每刷一单,至少有15块钱的收入,每天至少可以赚百元以上。小刘应该怎么做?',
        options: [
          '常见诈骗手段,立即报警',
          '这种赚钱方式真神奇,赶快去申请',
          '点开链接去看看日赚百元秘籍',
          '发现致富之道,并介绍朋友一起做'
        ]
      },
      {
        text: '有人通过社交平台联系你,声称自己是“高富帅”,并以各种理由向你借钱,你应该如何处理?',
        options: [
          '直接报警处理',
          '告诉对方自己没钱',
          '对方看起来不错,可以尝试帮助',
          '拉黑对方并举报账号'
        ]
      },
      {
        text: '接到自称某机构的电话,称你中奖了一部手机,但需要缴纳邮费,你会怎么做?',
        options: [
          '直接挂断电话',
          '支付邮费后拿到手机',
          '尝试与对方核实信息',
          '点击对方发送的链接填写信息'
        ]
      }
    ],
    currentQuestion: 0,
    selectedAnswer: null,
    answers: []
  },
  methods: {
    confirmAnswer() {
      // 记录答案
      this.answers.push(this.selectedAnswer);
      this.selectedAnswer = null;

      // 如果是最后一题,提交答案
      if (this.currentQuestion === this.questions.length - 1) {
        alert('测试完成!您的答案已提交。');
        console.log('用户答案:', this.answers);
      } else {
        // 否则进入下一题
        this.currentQuestion++;
      }
    }
  }
});
</script>
</body>
</html>

功能特点

  1. 多选题功能

    • 每道题支持单选,并自动记录用户的选择。
    • 用户必须选择答案后才能点击确认按钮。
  2. 进度显示

    • 页面顶部显示当前题目编号和总题目数,实时更新。
  3. 响应式设计

    • 选项按钮的样式随用户选择动态变化,选中状态下会高亮显示。
  4. 假数据

    • 提供了多道题目和选项内容,内容与实际防诈骗场景相关。
  5. 提交逻辑

    • 用户答完所有题后会弹窗提示,并在控制台打印答案记录。

标签:Vue2,问答,border,诈骗,background,font,margin,options
From: https://blog.csdn.net/sky10100100/article/details/143958167

相关文章

  • 【RAG】基于 RAG 的知识库问答系统设计与实现
    基于RAG的知识库问答系统设计与实现1.系统介绍2.技术与方法3.核心功能代码片段3.1知识库创建3.2知识对话问答3.3知识库清空4.系统运行效果截图4.1文件上传与知识库创建4.2知识库问答4.3文件删除与知识库清空总结项目代码地址:https://github.com/AI-Meet......
  • Vue2教程003:Vue指令之v-bind和v-for
    文章目录2.6v-bind2.7图片轮播案例2.8v-for2.9图书管理案例2.6v-bind作用:动态设置html的标签属性->src、url、title…语法:v-bind:属性名="表达式"动态设置img标签的src属性:<body><divid="app"><imgclass="image"v-bind:src="imgUrl"alt=......
  • 【RAG 项目实战 07】替换 ConversationalRetrievalChain(单轮问答)
    【RAG项目实战07】替换ConversationalRetrievalChain(单轮问答)NLPGithub项目:NLP项目实践:fasterai/nlp-project-practice介绍:该仓库围绕着NLP任务模型的设计、训练、优化、部署和应用,分享大模型算法工程师的日常工作和实战经验AI藏经阁:https://gitee.com/fasterai......
  • vue2 数据导入excel
    1、安装npminstallxlsx 一、前端<el-uploadstyle="display:inline-block"actionaccept=".xlsx,.xls":auto-upload="false":show-file-list="false":on-change="handleUpload"......
  • 超详细!!传统NLP算法结合大模型私有化部署简易知识问答体系工程实践
    作者:京东物流郭卓勋一、业务背景在物流私域体系构建中,形成了多个微信群生态,需要投放自动回复机器人来自动化回复用户问题,希望能够用最小的成本满足基本问答。由于需要从头开始自建全流程算法问答体系,需要面临一下几个问题:1.数据不外流:用户数属于隐私数据,不可以直接调用外部API......
  • BERT的中文问答系统42
    我们将对现有的代码进行扩展,以支持360百科的功能。这包括修改XihuaChatbotGUI类中的相关方法,以及添加一个新的搜索360百科的函数。此外,我们还需要更新历史记录的保存格式,以包含360百科的结果。项目结构codeproject_root/│├──data/│└──train_data.jsonl│......
  • 【Vue2】利用组件递归方式实现目录树组件
    前言    看到最近一些公司前端笔试题,发现他们都很喜欢考察递归。这使我不得不想到在前端开发中,也会遇到的一些需要利用递归思想实现的一些场景,如目录树组件,大多数前端开发经常参与流水型业务,对组件递归的场景用之较少。以下为作者根据实践,分享递归组件实现目录树的设......
  • 【RAG系列】基于代码仓库的RAG问答,为仓库构建知识图谱
    目录前言一、为什么要在代码仓库上构建知识图谱二、如何在代码仓库上构建知识图谱简单的知识图谱更高级的知识图谱总结Reference前言今天介绍的场景是基于代码仓库的RAG问答,RAG有效的关键在于能够根据用户查询检索到相关的文档,这中间涉及到索引构建和文档检索两......
  • Vue2 项目实战:打造一个简易倒计时计时器工具 Vue2 实践教程:如何实现一个工作与休息倒
    效果图Vue2倒计时计时器工具教程在本教程中,我们将一步步实现一个Vue2倒计时计时器工具。这个工具允许用户在工作和休息模式之间切换,并设置倒计时时间。倒计时结束时,系统会发出提醒,提示用户切换工作或休息状态。非常适合初学者练习Vue的数据绑定、计算属性和事件处理......
  • Vue2 - 详细实现安装引入百度地图并查询展示周边交通/教育/医疗/商场/生活/娱乐等POI
    前言Vue3版本,请访问在vue2|nuxt2项目开发中,详解高德地图根据当前定位获取周边附近的商圈,vue2高德地图获取周边商圈并将这些地址位置列出来供用户点击跳转和选择,获取当前位置或指定区域周边的交通出行、学校教育、医院诊所、商场购物、生活娱乐、旅游景点、酒店民宿......