前言✨博主介绍一线全栈工程师毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码帮你把毕设做成作品集。精彩专栏 推荐订阅Java精品项目案例【3000套】Python精品项目案例【500套】uniapp/微信小程序/安卓app【800套】2026-2027届Java毕业设计优质选题汇总百个热门方向完整推荐✅2026-2027届Python毕业设计优质选题汇总百个热门方向完整推荐✅2026-2027届小程序/APP毕业设计优质选题汇总百个热门方向完整推荐✅✅获取源码请私信✅感兴趣的可以先收藏起来还有大家在毕设选题项目以及论文编写等相关问题都可以找我咨询希望帮助更多的人❤️系统实现学生用户功能实现学生进入在线考试界面系统显示考试列表和倒计时。学生选择考试后进入答题页面可逐题作答并标记疑问。答题过程中系统自动保存答案考试结束前允许修改。到达截止时间系统自动交卷并显示提交成功。在线考试界面学生在作业信息查看页面浏览教师发布的作业清单。系统按课程分类显示作业名称、截止日期和完成状态。学生点击具体作业可查看详细要求和附件资料。页面提供作业收藏和进度记录功能。作业信息查看界面学生在提交作业页面选择要提交的作业任务。系统显示作业基本信息和剩余提交次数。学生上传作业文件或输入文本内容可添加备注说明。确认无误后点击提交按钮系统验证文件格式和大小后完成上传。提交作业界面学生在作业批改页面查看已提交作业的批改状态。系统显示教师评分、评语和批改附件。学生可下载批改后的文件对批改结果有疑问时可发起反馈。页面同时显示历次作业的成绩趋势图。作业批改界面学生在错题记录页面查看考试和作业中的错误题目。系统按学科和知识点分类展示错题列表。学生可查看题目解析和正确答案进行错题重练。页面提供错题导出和相似题目推荐功能。错题记录界面教师用户功能实现教师在作业信息管理页面创建新作业填写作业标题、要求和截止时间。系统支持富文本编辑和附件上传可设置提交次数限制。教师可查看已发布作业的提交情况对作业信息进行编辑或下架处理。作业信息管理界面教师在提交作业管理页面查看学生提交记录。系统按班级和作业分类展示提交列表标注逾期未交学生。教师可批量下载作业文件查看提交时间和备注信息。页面提供提交状态统计和催交功能。提交作业管理界面教师在作业批改管理页面对学生作业进行评分。系统展示待批改作业列表支持在线批注和文件批改。教师输入分数和评语可上传批改附件。批改完成后系统自动更新学生成绩支持批量批改操作。作业批改管理界面教师在在线考试页面创建考试任务设置试题库和考试时间。系统支持随机组卷和固定试卷两种模式可配置考试规则。教师监控考试进程查看实时参与情况。考试结束后系统生成成绩报表和考试分析。在线考试界面管理员功能实现管理员在班级分类管理页面维护班级信息。系统显示现有班级列表支持按年级和专业筛选。管理员可添加新班级设置班级名称和所属院系对已有班级信息进行编辑或停用。班级分类管理界面管理员在作业信息管理页面监控全校作业发布情况。系统按时间范围显示作业统计报表支持按教师和课程查询。管理员可查看作业详情对违规内容进行下架处理。页面提供作业数据导出和异常预警功能。作业信息管理界面管理员在提交作业管理页面查看全校作业提交数据。系统展示各班级提交率统计标注异常提交记录。管理员可追溯具体学生的提交历史对系统异常进行干预处理。页面提供数据分析和报表生成功能。提交作业管理界面管理员在作业批改管理页面监督教师批改工作。系统显示批改进度统计包括待批改量和平均批改时长。管理员可查看批改质量评估对批改异常情况进行核查。页面提供批改工作量统计报表。作业批改管理界面管理员在资源管理页面维护系统基础数据。系统管理文件存储空间和用户上传资源支持资源分类和权限设置。管理员可清理无效文件监控系统资源使用情况设置存储配额和备份策略。资源管理界面管理员在在线考试页面管理全校考试事务。系统显示考试安排总表包括进行中和已结束的考试。管理员可查看各考场监控数据处理考试异常情况生成考试汇总报告。页面支持考试数据导出和归档。在线考试界面数据库参考CREATE TABLE article ( article_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT 文章id, title varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT COMMENT 标题, type varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 0 COMMENT 文章分类, hits int(10) unsigned NOT NULL DEFAULT 0 COMMENT 点击数, praise_len int(11) NOT NULL DEFAULT 0 COMMENT 点赞数, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, source varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 来源, url varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 来源地址, tag varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 标签, content longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 正文, img varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 封面图, description text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 文章描述, PRIMARY KEY (article_id,title) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT文章; DROP TABLE IF EXISTS access_token; CREATE TABLE access_token ( token_id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 临时访问牌ID, token varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 临时访问牌, info text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 信息, maxage int(2) NOT NULL DEFAULT 2 COMMENT 最大寿命默认2小时, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, user_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 用户编号, PRIMARY KEY (token_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT登陆访问时长; DROP TABLE IF EXISTS code_token; CREATE TABLE code_token ( code_token_id int(11) NOT NULL AUTO_INCREMENT COMMENT 验证码ID, token varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL COMMENT 令牌, code varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL COMMENT 验证码, expire_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 失效时间, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (code_token_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci ROW_FORMATCOMPACT COMMENT验证码; DROP TABLE IF EXISTS collect; CREATE TABLE collect ( collect_id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 收藏ID, user_id int(10) unsigned NOT NULL DEFAULT 0 COMMENT 收藏人ID, source_table varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源表, source_field varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源字段, source_id int(10) unsigned NOT NULL DEFAULT 0 COMMENT 来源ID, title varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 标题, img varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 封面, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (collect_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT收藏;代码参考package com.project.demo.controller; import com.project.demo.entity.ClassNameClassNameification; import com.project.demo.service.ClassNameClassNameificationService; import com.alibaba.fastjson.JSON; import com.project.demo.controller.base.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.util.StringUtils; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import javax.persistence.Query; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; /** * 班级分类(ClassNameClassNameification)表控制层 * */ RestController RequestMapping(/class_name_class_nameification) public class ClassNameClassNameificationController extends BaseControllerClassNameClassNameification, ClassNameClassNameificationService { /** * 班级分类对象 */ Autowired public ClassNameClassNameificationController(ClassNameClassNameificationService service) { setService(service); } PostMapping(/add) Transactional public MapString, Object add(HttpServletRequest request) throws IOException { MapString,Object paramMap service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry - { Object value entry.getValue(); return value instanceof String ((String) value).isEmpty(); }); ClassNameClassNameification class_name_class_nameification new ClassNameClassNameification(); class_name_class_nameification.setClass_name_name(paramMap.get(class_name_name)null?null:String.valueOf(paramMap.get(class_name_name))); this.addEntity(class_name_class_nameification); System.out.println(班级分类新增成功); return success(1); } PostMapping(/set) Transactional public MapString, Object set(HttpServletRequest request) throws IOException { MapString,String queryMap service.readQuery(request); MapString,String configMap service.readConfig(request); MapString,Object paramMap service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry - { Object value entry.getValue(); return value instanceof String ((String) value).isEmpty(); }); ClassNameClassNameification class_name_class_nameification new ClassNameClassNameification(); class_name_class_nameification.setClass_name_name(paramMap.get(class_name_name)null?null:String.valueOf(paramMap.get(class_name_name))); this.setEntity(queryMap,configMap,class_name_class_nameification); System.out.println(班级分类修改成功); return success(1); package com.project.demo.controller; import com.project.demo.entity.JobInformation; import com.project.demo.service.JobInformationService; import com.alibaba.fastjson.JSON; import com.project.demo.controller.base.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.util.StringUtils; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import javax.persistence.Query; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; /** * 作业信息(JobInformation)表控制层 * */ RestController RequestMapping(/job_information) public class JobInformationController extends BaseControllerJobInformation, JobInformationService { /** * 作业信息对象 */ Autowired public JobInformationController(JobInformationService service) { setService(service); } PostMapping(/add) Transactional public MapString, Object add(HttpServletRequest request) throws IOException { MapString,Object paramMap service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry - { Object value entry.getValue(); return value instanceof String ((String) value).isEmpty(); }); JobInformation job_information new JobInformation(); job_information.setJob_number(paramMap.get(job_number)null?null:String.valueOf(paramMap.get(job_number))); MapString, String mapjob_number new HashMap(); mapjob_number.put(job_number,String.valueOf(paramMap.get(job_number))); List listjob_number service.selectBaseList(service.select(mapjob_number, new HashMap())); if (listjob_number.size()0){ return error(30000, 字段作业编号内容不能重复); } job_information.setJob_name(paramMap.get(job_name)null?null:String.valueOf(paramMap.get(job_name))); job_information.setCover_chart(paramMap.get(cover_chart)null?null:String.valueOf(paramMap.get(cover_chart))); job_information.setClass_name_arrangement(paramMap.get(class_name_arrangement)null?null:String.valueOf(paramMap.get(class_name_arrangement))); job_information.setDeadline(paramMap.get(deadline)null?null:String.valueOf(paramMap.get(deadline))); job_information.setOperation_attachments(paramMap.get(operation_attachments)null?null:String.valueOf(paramMap.get(operation_attachments))); job_information.setTeacher_user(paramMap.get(teacher_user)null?null:Integer.valueOf(String.valueOf(paramMap.get(teacher_user)))); job_information.setTeachers_work_number(paramMap.get(teachers_work_number)null?null:String.valueOf(paramMap.get(teachers_work_number))); job_information.setTeachers_name(paramMap.get(teachers_name)null?null:String.valueOf(paramMap.get(teachers_name))); job_information.setSpecificsed_description(paramMap.get(specificsed_description)null?null:String.valueOf(paramMap.get(specificsed_description))); job_information.setCollect_len(paramMap.get(collect_len)null?null:Integer.valueOf(String.valueOf(paramMap.get(collect_len)))); job_information.setComment_len(paramMap.get(comment_len)null?null:Integer.valueOf(String.valueOf(paramMap.get(comment_len)))); job_information.setSubmit_job_limit_times(paramMap.get(submit_job_limit_times)null?null:String.valueOf(paramMap.get(submit_job_limit_times))); this.addEntity(job_information); System.out.println(作业信息新增成功); return success(1); } PostMapping(/set) Transactional public MapString, Object set(HttpServletRequest request) throws IOException { MapString,String queryMap service.readQuery(request); MapString,String configMap service.readConfig(request); MapString,Object paramMap service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry - { Object value entry.getValue(); return value instanceof String ((String) value).isEmpty(); }); JobInformation job_information new JobInformation(); job_information.setJob_number(paramMap.get(job_number)null?null:String.valueOf(paramMap.get(job_number))); job_information.setJob_name(paramMap.get(job_name)null?null:String.valueOf(paramMap.get(job_name))); job_information.setCover_chart(paramMap.get(cover_chart)null?null:String.valueOf(paramMap.get(cover_chart))); job_information.setClass_name_arrangement(paramMap.get(class_name_arrangement)null?null:String.valueOf(paramMap.get(class_name_arrangement))); job_information.setDeadline(paramMap.get(deadline)null?null:String.valueOf(paramMap.get(deadline))); job_information.setOperation_attachments(paramMap.get(operation_attachments)null?null:String.valueOf(paramMap.get(operation_attachments))); job_information.setTeacher_user(paramMap.get(teacher_user)null?null:Integer.valueOf(String.valueOf(paramMap.get(teacher_user)))); job_information.setTeachers_work_number(paramMap.get(teachers_work_number)null?null:String.valueOf(paramMap.get(teachers_work_number))); job_information.setTeachers_name(paramMap.get(teachers_name)null?null:String.valueOf(paramMap.get(teachers_name))); job_information.setSpecificsed_description(paramMap.get(specificsed_description)null?null:String.valueOf(paramMap.get(specificsed_description))); job_information.setCollect_len(paramMap.get(collect_len)null?null:Integer.valueOf(String.valueOf(paramMap.get(collect_len)))); job_information.setComment_len(paramMap.get(comment_len)null?null:Integer.valueOf(String.valueOf(paramMap.get(comment_len)))); job_information.setSubmit_job_limit_times(paramMap.get(submit_job_limit_times)null?null:String.valueOf(paramMap.get(submit_job_limit_times))); this.setEntity(queryMap,configMap,job_information); System.out.println(作业信息修改成功); return success(1);前端基于Vue.js框架构建用户界面使用HTML5、CSS3和JavaScript实现页面结构与交互逻辑通过Vue Router管理路由Vuex或Pinia维护全局状态。采用Element UI或Vant组件库快速搭建界面Axios封装HTTP请求实现与后端的数据通信。后端基于springboot框架搭建遵循Controller-Service-Mapper三层架构。Controller层接收前端请求并校验参数Service层处理核心业务逻辑Mapper层通过MyBatis或MyBatis-Plus完成数据库操作。使用Spring Security或Shiro结合JWT实现用户认证与权限控制。数据库采用MySQL存储持久化数据Redis缓存热点信息以提升系统性能。开发工具使用IDEA开发后端VSCode或HBuilderX开发前端Git进行版本管理Maven和npm分别管理前后端依赖。精彩专栏 推荐订阅Java精品项目案例【3000套】Python精品项目案例【500套】uniapp/微信小程序/安卓app【800套】2026-2027届Java毕业设计优质选题汇总百个热门方向完整推荐✅2026-2027届Python毕业设计优质选题汇总百个热门方向完整推荐✅2026-2027届小程序/APP毕业设计优质选题汇总百个热门方向完整推荐✅✅获取源码请私信✅感兴趣的可以先收藏起来还有大家在毕设选题项目以及论文编写等相关问题都可以找我咨询希望帮助更多的人❤️
企业数字化 ERP 产品动态
相关推荐
大型家电集团智慧供应链数字化采购SAP解决方案 该方案适用于大型家电集团管理层、供应链与采购负责人、IT 运维人员及 SAP 项目实施与咨询从业者。其重要性体现在:针对家电行业采购流程不规范、供应商协同弱、成本难管控等痛点,构建 SAP SRM 为核心的数字化采购平台。覆盖供应商全生命周期管理、寻源招… · 2026/11/3 2:44:27
别再专门打开 OCR 网站了:它正在变成 AI 员工随手就能用的一个工具 别再专门打开 OCR 网站了:它正在变成 AI 员工随手就能用的一个工具 【免费下载链接】Unlimited-OCR-2 项目地址: https://ai.gitcode.com/hf_mirrors/baidu/Unlimited-OCR-2
先说个特别真实的场景。
月底财务要核对几十份扫描合同,以前的流程是… · 2026/11/3 2:44:27
如何快速上手MiniMax-M3.1-Flash-w8a8:5步完成模型下载、加载与推理 如何快速上手MiniMax-M3.1-Flash-w8a8:5步完成模型下载、加载与推理
MiniMax-M3.1-Flash-w8a8 是基于 MiniMax-M3.1-Flash 打造的 w8a8 量化多模态大模型:权重与激活同时量化到 8-bit,面向 Ascend NPU 推理场景,显存占用大幅降低… · 2026/11/3 2:43:27
CTF敏感信息搜集:从基础到实战的完整指南 1. CTF敏感信息搜集的核心价值在网络安全竞赛和实际渗透测试中,敏感信息搜集往往是最容易被忽视却至关重要的第一步。我参加过的三十多场CTF比赛中,至少有40%的Web类赛题可以通过系统的信息搜集直接拿到flag或突破点。不同于爆破和注入这些"硬技术&… · 2026/11/3 3:09:31
ABAQUS蠕变分析两步法:静态加载与VISCO步设置及排错 简介:《ABAQUS蠕变问题计算流程》面向从事有限元仿真、材料长期变形与寿命评估的工程师及学习者,聚焦高温、高应力环境下塑料、金属合金等材料的蠕变数值模拟问题,属于偏入门到进阶的流程型文档。压缩包内含1个doc文档,约198KB&am… · 2026/11/3 3:09:31
叉车型AGV电气安全:车架隔离与故障可预测设计 简介:这份PDF讲义围绕叉车型AGV的EN 1175-1:1998A1:2010电气安全要求展开,面向AGV电气设计、安全评估、检测认证及设备维护人员,帮助读者把标准条款落实到整车电气架构与合规检查中。内容从适用范围与一般要求切入,逐项讲解防止直… · 2026/11/3 3:09:31
不变学习中的环境标签失效问题与解决方案 1. 项目概述:当不变学习遭遇环境标签失效在机器学习领域,不变学习(Invariant Learning)一直是提升模型泛化能力的重要方法。其核心假设是:存在某些跨环境不变的预测规律,而模型应该学习这些不变性而非虚假相… · 2026/11/3 3:09:31
SSE协议性能测试工具开发与实战指南 1. 项目概述:当性能测试遇上AI流式输出去年在给某金融客户做压力测试时,我们团队遇到了一个棘手问题——他们的AI客服系统采用SSE(Server-Sent Events)协议推送实时响应,而市面上主流测试工具对这类长连接流式输出的支… · 2026/11/3 3:09:31
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18