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

简介: 本试卷编辑器基于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 排版错乱的烦恼。

相关文章
|
16天前
|
人工智能 JSON 数据可视化
【教案生成平台】实战教程三:打造智能 PPT 生成器 (AI + PptxGenJS)
一款基于 Vue 3 + Vite 的智能教学工具,利用 AI 自动生成结构化 PPT 数据,结合可视化编辑与本地持久化,实现高效备课。支持 JSON 模板解析、动态渲染导出(pptxgenjs)与草稿自动保存,大幅提升教师工作效率。在线体验:ytecn.com/teacher
194 16
|
14天前
|
存储 人工智能 应用服务中间件
【教案生成平台】实战教程五:系统优化与工程化实践
本教程系列将AI助手从Demo升级为可用产品:打造悬浮式全局聊天组件、可视化设置中心、本地存储优化(localforage)、路由懒加载及Nginx SPA部署方案,助力构建高性能教师辅助平台。
105 13
|
11天前
|
数据采集 人工智能 JSON
拒绝“复读机”!几个关键点带你拆解大模型的简单逻辑
AI技术博主深度解析大模型微调:用LoRA等高效方法,将通用大模型“岗前培训”为行业专属助手。涵盖13个核心概念(硬件、目标、设置、内存)、零基础实操步骤及避坑指南,助你低成本打造专业AI。
71 13
|
16天前
|
机器学习/深度学习 人工智能 JSON
大模型微调实战:从原理到落地的完整指南
本文系统讲解大模型微调的原理与实战,涵盖LoRA等高效方法,手把手教你用少量数据定制专属模型,结合数据准备、训练策略与效果评估,助力开发者低成本实现AI应用落地。
|
29天前
|
存储 缓存 调度
阿里云Tair KVCache仿真分析:高精度的计算和缓存模拟设计与实现
在大模型推理迈向“智能体时代”的今天,KVCache 已从性能优化手段升级为系统级基础设施,“显存内缓存”模式在长上下文、多轮交互等场景下难以为继,而“以存代算”的多级 KVCache 架构虽突破了容量瓶颈,却引入了一个由模型结构、硬件平台、推理引擎与缓存策略等因素交织而成的高维配置空间。如何在满足 SLO(如延迟、吞吐等服务等级目标)的前提下,找到“时延–吞吐–成本”的最优平衡点,成为规模化部署的核心挑战。
460 38
阿里云Tair KVCache仿真分析:高精度的计算和缓存模拟设计与实现
|
4天前
|
机器学习/深度学习 数据采集 算法
Scikit-learn 入门指南
scikit-learn 是 Python 最主流的机器学习库,提供统一、简洁的 API,覆盖数据预处理、模型训练到评估部署全流程。专注传统算法,轻量高效,无缝集成 NumPy/Pandas,是教学、原型开发与生产部署的首选工具。(239字)
123 15
|
15天前
|
人工智能 资源调度 自然语言处理
AI agent指挥官 重塑智能体协作的新时代蓝图
随着 2026 年 AI 技术进入深度协作阶段,AI agent 指挥官成为连接智能体(AI Agents)执行层与业务价值层的核心枢纽。本文深入分析智能体协作的发展背景、技术栈演进、核心组件与架构模式,提出一种全新的 “协作智能体架构” 框架,以流程化、可执行的方式解释指挥官如何统筹规划、管理智能体、多模型服务与资源调度,从而实现高效、可控、可审计的智能体系统。
157 1
|
29天前
|
存储 弹性计算 人工智能
阿里云服务器租用费用价格表(2026年最新)一年、1个月和1小时收费
2026年阿里云服务器最新价格出炉,涵盖轻量应用服务器、ECS、GPU服务器等多种类型。38元/年起秒杀轻量服务器,99元/年畅享2核2G配置,按月、按小时灵活计费,支持个人开发、企业建站及AI计算全场景需求,高性价比优选。
1076 12
|
29天前
|
人工智能 测试技术 开发者
AI Coding后端开发实战:解锁AI辅助编程新范式
本文系统阐述了AI时代开发者如何高效协作AI Coding工具,强调破除认知误区、构建个人上下文管理体系,并精准判断AI输出质量。通过实战流程与案例,助力开发者实现从编码到架构思维的跃迁,成为人机协同的“超级开发者”。
1584 106
|
6天前
|
人工智能 弹性计算 自然语言处理
从Clawdbot、Moltbot到OpenClaw,快速部署Clawdbot傻瓜式教程,跟着教程一步步走~
OpenClaw(原Clawdbot/Moltbot)是开源AI自动化平台,支持自然语言指令执行邮件处理、日程管理、文档生成等任务。阿里云提供一键部署:选2核2G轻量服务器+OpenClaw镜像,配百炼API Key,放行18789端口,5分钟即可拥有7×24小时在线AI员工。(239字)
233 21

热门文章

最新文章