【教案生成平台】实战教程四:开发所见即所得的在线试卷编辑器

简介: 本试卷编辑器基于Vue实现,支持拖拽排序、动态题型组件渲染(单选/简答等),实时A4预览,并通过html2canvas+jsPDF导出高清PDF。数据模型清晰,扩展性强,真正实现所见即所得的高效出卷体验。

AI 驱动的智能备课助手。一键生成标准教案、配套试题及PPT课件大纲。支持手写体试卷排版、自动出题、以及 Word/PDF/PPTX 多格式导出,让教师备课更高效、更轻松。

1. 场景分析

试卷编辑的核心需求是:灵活的题型组合精确的打印排版
核心技术点:

  • 动态组件 (Component :is)
  • 拖拽排序 (可选)
  • HTML 转 PDF (html2canvas + jspdf)

2. 试卷数据模型

试卷由“大题”(Sections)和“小题”(Questions)组成。

const examPaper = ref({
   
  title: "2024年期末考试试卷",
  sections: [
    {
   
      name: "一、单选题",
      scorePerQuestion: 2,
      questions: [
        {
   
          type: "single_choice",
          stem: "Vue的作者是?",
          options: ["尤雨溪", "Facebook", "Google"],
        },
      ],
    },
    // ... 其他题型
  ],
});

3. 组件化题目渲染 (QuestionItem.vue)

为了支持扩展更多题型,我们将题目渲染封装为组件。

<template>
  <div class="question-item">
    <div class="q-stem">
      <span class="q-no">{
  { index + 1 }}.</span>
      <input v-model="question.stem" placeholder="输入题干..." />
    </div>

    <!-- 单选题渲染逻辑 -->
    <div v-if="type === 'single_choice'" class="options-area">
       <div v-for="(opt, i) in question.options" :key="i">
          <input type="radio" disabled />
          <input v-model="question.options[i]" />
       </div>
    </div>

    <!-- 简答题渲染逻辑 -->
    <div v-else-if="type === 'essay'" class="essay-area">
       <div class="blank-lines">______________________</div>
    </div>
  </div>
</template>

4. 试卷排版与预览

编辑器右侧应实时显示“A4纸”效果。
使用 CSS 模拟 A4 纸尺寸:

.preview-page {
   
  width: 210mm;
  min-height: 297mm;
  padding: 20mm;
  background: white;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  margin: 0 auto;
}

5. 导出为高清 PDF

将网页变为 PDF 的难点在于分页截断。为了简化,我们先实现生成长图 PDF。

import html2canvas from "html2canvas";
import jsPDF from "jspdf";

const exportPDF = async () => {
   
  const element = document.getElementById("exam-preview"); // 获取预览 DOM

  // 1. 转为 Canvas
  const canvas = await html2canvas(element, {
    scale: 2 }); // 2倍缩放保证清晰度

  // 2. 转为图片数据
  const imgData = canvas.toDataURL("image/png");

  // 3. 放入 PDF
  const pdf = new jsPDF("p", "mm", "a4");
  const imgWidth = 210;
  const imgHeight = (canvas.height * imgWidth) / canvas.width;

  pdf.addImage(imgData, "PNG", 0, 0, imgWidth, imgHeight);
  pdf.save("exam.pdf");
};

在线体验

演示链接: https://www.ytecn.com/teacher/
git链接: https://github.com/tcshowhand/teacher/

总结

本模块通过 Vue 的数据驱动特性,让复杂的试卷编辑变得像搭积木一样简单。所见即所得的模式消除了传统 Word 排版错乱的烦恼。

相关文章
|
22天前
|
人工智能 JSON 数据可视化
【教案生成平台】实战教程三:打造智能 PPT 生成器 (AI + PptxGenJS)
一款基于 Vue 3 + Vite 的智能教学工具,利用 AI 自动生成结构化 PPT 数据,结合可视化编辑与本地持久化,实现高效备课。支持 JSON 模板解析、动态渲染导出(pptxgenjs)与草稿自动保存,大幅提升教师工作效率。在线体验:ytecn.com/teacher
208 16
|
20天前
|
存储 人工智能 应用服务中间件
【教案生成平台】实战教程五:系统优化与工程化实践
本教程系列将AI助手从Demo升级为可用产品:打造悬浮式全局聊天组件、可视化设置中心、本地存储优化(localforage)、路由懒加载及Nginx SPA部署方案,助力构建高性能教师辅助平台。
112 13
|
17天前
|
数据采集 人工智能 JSON
拒绝“复读机”!几个关键点带你拆解大模型的简单逻辑
AI技术博主深度解析大模型微调:用LoRA等高效方法,将通用大模型“岗前培训”为行业专属助手。涵盖13个核心概念(硬件、目标、设置、内存)、零基础实操步骤及避坑指南,助你低成本打造专业AI。
82 13
|
21天前
|
机器学习/深度学习 人工智能 JSON
大模型微调实战:从原理到落地的完整指南
本文系统讲解大模型微调的原理与实战,涵盖LoRA等高效方法,手把手教你用少量数据定制专属模型,结合数据准备、训练策略与效果评估,助力开发者低成本实现AI应用落地。
|
20天前
|
人工智能 资源调度 自然语言处理
AI agent指挥官 重塑智能体协作的新时代蓝图
随着 2026 年 AI 技术进入深度协作阶段,AI agent 指挥官成为连接智能体(AI Agents)执行层与业务价值层的核心枢纽。本文深入分析智能体协作的发展背景、技术栈演进、核心组件与架构模式,提出一种全新的 “协作智能体架构” 框架,以流程化、可执行的方式解释指挥官如何统筹规划、管理智能体、多模型服务与资源调度,从而实现高效、可控、可审计的智能体系统。
177 1
|
18天前
|
存储 安全 API
2026年阿里云企业用户选配云服务器实用步骤教程
对企业用户来说,选配阿里云服务器和个人用户完全不同——核心不是“选便宜的”,而是“选适配的”,既要支撑业务稳定运行、满足合规要求,又要避免资源浪费、控制长期成本。很多企业初次选配时,要么盲目追求高配置导致资金浪费,要么只看价格选低配,后期业务卡顿、扩容麻烦,甚至踩合规红线。
133 12
|
12天前
|
人工智能 弹性计算 自然语言处理
从Clawdbot、Moltbot到OpenClaw,快速部署Clawdbot傻瓜式教程,跟着教程一步步走~
OpenClaw(原Clawdbot/Moltbot)是开源AI自动化平台,支持自然语言指令执行邮件处理、日程管理、文档生成等任务。阿里云提供一键部署:选2核2G轻量服务器+OpenClaw镜像,配百炼API Key,放行18789端口,5分钟即可拥有7×24小时在线AI员工。(239字)
260 21
|
1月前
|
人工智能 测试技术 开发者
AI Coding后端开发实战:解锁AI辅助编程新范式
本文系统阐述了AI时代开发者如何高效协作AI Coding工具,强调破除认知误区、构建个人上下文管理体系,并精准判断AI输出质量。通过实战流程与案例,助力开发者实现从编码到架构思维的跃迁,成为人机协同的“超级开发者”。
1658 106
|
24天前
|
弹性计算 开发者
2026年阿里云服务器最低价格是多少?2核2G、2核4G、4核8G等配置活动价和券后价格参考
2026年阿里云推出多款低价云服务器,轻量服务器2核2G38元1年,经济型e实例2核2G99元1年,u1实例2核4G199元1年,u2a实例4核8G云服务器最低898.20元一年。除特价云服务器和新用户选u2a实例之外,经济型e和九代云服务器均支持叠加使用优惠券,因此最低价格为叠加使用优惠券之后的价格。
228 8
|
8天前
|
存储 人工智能 自然语言处理
大模型应用:从问题到答案:LlamaIndex RAG系统工作流程详解.15
本文深入解析LlamaIndex核心概念与实战:Document(文档封装)、Node(语义切分)、Index(向量检索)、Query Engine(端到端问答)、Retriever(精准检索)及Response Synthesis(智能合成),配套本地Qwen+MiniLM代码示例,助力RAG快速落地。(238字)
137 22

热门文章

最新文章