基于SpringBoot2+vue2的文档管理系统
温馨提示:
本文最后更新于 2026年06月03日,已超过 7 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
1. 资源
放到文章后面
2. 项目简介
“文档管理系统” 旨在为用户提供一个在线文档或资料管理的平台。主要功能包括:用户(如学生)可以注册登录、浏览、按分类检索并上传学习资料;管理员可以对用户、资料、公告、论坛等进行后台管理。系统还集成了一个简单的论坛模块,供用户之间交流讨论。
3. 技术栈
后端技术:
- 核心框架: Spring Boot (版本
2.2.2.RELEASE) - 持久层框架: MyBatis-Plus (版本
2.3) + MyBatis (版本2.1.1) - 安全控制: Apache Shiro (版本
1.3.2), 用于权限管理 - 数据库: MySQL (驱动版本
5.7.32-log) - 工具库: Apache Commons Lang3, Commons IO, Hutool, Fastjson, 百度AI SDK 等
- 核心框架: Spring Boot (版本
前端技术:
- 后台管理界面: Vue2 + Element UI
- 用户前台界面: Layui + jQuery
4. 详细介绍
4.1. 核心功能模块
- 用户管理: 用户可以注册、登录。管理员可以对用户进行增删改查,并管理用户的专业、性别等信息。
- 资料管理: 这是系统的核心功能。
- 用户: 可以查看已审核通过的资料列表,按资料类型和二级分类进行筛选,下载资料文件,并可以自己上传新的资料。
- 管理员: 可以对所有资料进行管理,包括审核用户上传的资料(审核结果:未审核、通过、拒绝),以及对资料进行增删改查。
- 公告信息管理: 管理员可以发布、修改、删除系统公告。所有用户可以在前台查看公告。
- 论坛管理: 用户可以在论坛发布帖子、回复帖子。管理员也可以参与回复并对帖子进行管理。
- 基础数据管理: 管理员可以管理系统中的各种字典数据,如“资料类型”、“专业”、“性别”、“审核结果”等,这些数据用于动态生成前端下拉选项。
4.2. 数据库设计
yonghu(用户表): 存储用户账号、密码、姓名、性别、身份证、手机号、专业等。wendang(资料信息表): 存储资料的标题、类型、二级分类、封面图片、文件路径、所属用户、审核状态等。news(公告信息表): 存储公告的标题、类型、图片、内容等。forum(论坛表): 存储帖子的标题、内容、发布人(用户或管理员)、父ID(用于区分主题帖和回帖)、状态等。dictionary(字典表): 存储各类枚举值,如资料类型、专业、性别等,实现数据动态配置。users(管理员表): 存储管理员的账号和密码。
5. 部分代码
5.1. 后端 - 资料信息控制层 (WendangController.java)
以下代码展示了资料信息模块的后端接口实现,包括分页查询、保存(含审核状态初始化和用户关联)、更新和逻辑删除功能。
// ==== 文件引用: ./wendangguanli/src/main/java/com/controller/WendangController.java ====
package com.controller;
// ... 省略导入 ...
/**
* 资料信息
* 后端接口
*/
@RestController
@Controller
@RequestMapping("/wendang")
public class WendangController {
// ... 省略依赖注入 ...
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
// ... 处理角色权限,用户只能看自己的资料 ...
params.put("wendangDeleteStart",1); // 只查未删除的
PageUtils page = wendangService.queryPage(params);
// ... 字典表转换 ...
return R.ok().put("data", page);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody WendangEntity wendang, HttpServletRequest request){
// ... 角色判断 ...
// 检查是否重复
Wrapper<WendangEntity> queryWrapper = new EntityWrapper<WendangEntity>()
.eq("wendang_name", wendang.getWendangName());
// ... 其他条件 ...
WendangEntity wendangEntity = wendangService.selectOne(queryWrapper);
if(wendangEntity==null){
// 设置默认值:待审核状态(1),未删除(1)
wendang.setWendangYesnoTypes(1);
wendang.setWendangDelete(1);
wendang.setCreateTime(new Date());
wendangService.insert(wendang);
return R.ok();
}
return R.error(511,"表中有相同数据");
}
/**
* 删除(逻辑删除)
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
ArrayList<WendangEntity> list = new ArrayList<>();
for(Integer id:ids){
WendangEntity wendangEntity = new WendangEntity();
wendangEntity.setId(id);
wendangEntity.setWendangDelete(2); // 2代表已删除
list.add(wendangEntity);
}
wendangService.updateBatchById(list);
return R.ok();
}
// ... 省略其他方法 ...
}
5.2. 前端 - 资料信息列表页面 (list.html)
以下代码展示了用户前台资料列表页面的核心Vue.js逻辑,包括数据请求、分页处理和分类筛选功能。
<!-- ==== 文件引用: ./wendangguanli/src/main/resources/front/front/pages/wendang/list.html ==== -->
<script type="text/javascript">
var vue = new Vue({
el: '#app',
data: {
// 查询条件模型
searchForm: {
page: 1,
limit: 8,
wendangDelete: 1,
wendangYesnoTypes: 2, // 只显示审核通过的
wendangName: "",
wendangTypes: ""
},
dataList: [], // 列表数据
},
methods: {
jump(url) { jump(url); },
// ... 其他方法
}
});
layui.use(['laypage', 'http', 'jquery'], function() {
var laypage = layui.laypage;
var http = layui.http;
var jquery = layui.jquery;
// 分页列表查询函数
function pageList() {
http.request('wendang/list', 'get', vue.searchForm, function (res) {
vue.dataList = res.data.list;
// 渲染分页组件
laypage.render({
elem: 'pager',
count: res.data.total,
limit: vue.searchForm.limit,
jump: function (obj, first) {
vue.searchForm.page = obj.curr;
if (!first) { pageList(); } // 非首次加载则重新请求
}
});
});
}
// 页面初始化时调用
pageList();
});
</script>
6. 部分截图



























7. 项目总结
该项目是一个功能较为完整的文档管理Web应用,覆盖了从用户注册登录、资料上传下载、信息公告发布到论坛交流的完整业务流程。
优点与特点:
- 权限分离:明确区分了管理员和普通用户的操作权限,后台功能菜单和接口均做了权限控制。
- 数据动态配置:大量使用字典表(
dictionary)来管理如资料类型、专业等枚举值,增强了系统的灵活性和可维护性。 - 审核流程:用户上传的资料需经过管理员审核才能在前台展示,保证了资料内容的准确性和合规性。
- 技术栈成熟:后端采用Spring Boot + MyBatis-Plus,前端采用Vue/Element UI(管理端)和Layui/jQuery(用户端),都是业界成熟的技术方案,便于开发和维护。
正文到此结束
- 本文标签: Java Spring Boot 毕业设计
- 本文链接: https://blog.xiaobias.com/article/47
- 版权声明: 本文由十五喵原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
