网站首页/ 信息中心/ 档案百科/

基于SpringBoot与Vue构建机关档案系统实操

发布时间:2026年09月05日 07:30:31 浏览量:0

一、环境准备与工具安装

在开始构建机关单位档案管理系统之前,必须先配置好基础开发环境。请严格按照以下版本进行安装,以避免兼容性问题。

安装完成后,在终端分别输入java -versionnode -vmvn -v确认环境生效。

二、数据库设计与初始化

打开MySQL客户端或命令行工具,执行以下SQL脚本创建数据库及核心档案表。该表包含了机关档案管理最基础的字段:档案编号、标题、密级、归档日期及存储路径。

在MySQL中执行以下命令:

```sql CREATE DATABASE IF NOT EXISTS archive_db DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci; USE archive_db; CREATE TABLE t_archive ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', archive_no VARCHAR(50) NOT NULL UNIQUE COMMENT '档案编号', title VARCHAR(200) NOT NULL COMMENT '档案标题', category VARCHAR(50) COMMENT '档案分类', secret_level VARCHAR(20) DEFAULT '普通' COMMENT '密级:普通/秘密/机密', file_path VARCHAR(500) COMMENT '电子文件存储路径', create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='档案信息表'; ```

三、后端服务搭建(Spring Boot)

1. 项目构建与依赖配置

使用Spring Initializr(https://start.spring.io/)生成项目,选择Maven项目,Java版本17,引入以下Dependencies:

生成项目并解压,用IDEA打开。修改pom.xml确保依赖完整(主要版本号示例):

```xml org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa com.mysql mysql-connector-j runtime org.projectlombok lombok true ```

2. 数据源配置

src/main/resources/application.yml中配置数据库连接信息及JPA格式化输出:

```yaml server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/archive_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false username: root password: 123456 请替换为本地MySQL密码 driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update 自动更新表结构 show-sql: true open-in-view: false ```

3. 实体类与数据层开发

创建包结构com.example.archive.entity,编写实体类Archive.java

```java package com.example.archive.entity; import jakarta.persistence.; import lombok.Data; import java.time.LocalDateTime; @Data @Entity @Table(name = "t_archive") public class Archive { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true, length = 50) private String archiveNo; @Column(nullable = false, length = 200) private String title; private String category; @Column(length = 20) private String secretLevel; @Column(length = 500) private String filePath; @Column(name = "create_time", updatable = false) private LocalDateTime createTime; @Column(name = "update_time") private LocalDateTime updateTime; } ```

基于SpringBoot与Vue构建机关档案系统实操

创建包com.example.archive.repository,编写Repository接口:

```java package com.example.archive.repository; import com.example.archive.entity.Archive; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface ArchiveRepository extends JpaRepository { } ```

4. 业务控制层开发

创建包com.example.archive.controller,编写ArchiveController.java,实现增删改查接口:

```java package com.example.archive.controller; import com.example.archive.entity.Archive; import com.example.archive.repository.ArchiveRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.; import java.util.List; @RestController @RequestMapping("/api/archives") @CrossOrigin(origins = "") // 允许跨域,方便前端调试 public class ArchiveController { @Autowired private ArchiveRepository archiveRepository; // 查询所有档案 @GetMapping public List getAllArchives() { return archiveRepository.findAll(); } // 新增档案 @PostMapping public Archive createArchive(@RequestBody Archive archive) { return archiveRepository.save(archive); } // 删除档案 @DeleteMapping("/{id}") public void deleteArchive(@PathVariable Long id) { archiveRepository.deleteById(id); } } ```

启动主类ArchiveApplication.java,确认控制台无报错,Tomcat运行在8080端口。

四、前端界面开发(Vue 3 + Element Plus)

1. 项目初始化

在终端执行以下命令创建Vue项目:

```bash npm create vue@latest archive-frontend 按提示选择:Yes (TypeScript), No (JSX), Yes (Router), No (Pinia) cd archive-frontend npm install npm install axios element-plus ```

2. 配置Element Plus与Axios

打开src/main.js,全局引入Element Plus样式和组件:

```javascript import { createApp } from 'vue' import App from './App.vue' import router from './router' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' const app = createApp(App) app.use(router) app.use(ElementPlus) app.mount('app') ```

3. 封装API请求

创建src/api/archive.js,封装后端接口调用:

```javascript import axios from 'axios' const request = axios.create({ baseURL: 'http://localhost:8080/api', timeout: 5000 }) export const getArchiveList = () => { return request.get('/archives') } export const addArchive = (data) => { return request.post('/archives', data) } export const deleteArchive = (id) => { return request.delete(`/archives/${id}`) } ```

4. 页面组件开发

修改src/App.vue,编写档案管理的主界面,包含表格展示和新增表单弹窗:

```html ```

五、系统运行与验证

完成上述代码编写后,按以下步骤启动系统进行验证。

  1. 启动后端:在IDEA中运行ArchiveApplication,观察控制台输出,确认Tomcat启动在8080端口,且成功连接MySQL数据库。
  2. 启动前端:在archive-frontend目录下打开终端,运行npm run dev
  3. 访问系统:终端会输出本地访问地址,通常是http://localhost:5173。使用浏览器打开该地址。

此时,你应该能看到一个简洁的档案管理列表。点击“新增档案”,输入编号(如GW-2023-001)、标题、选择密级并提交。数据将立即保存至MySQL数据库并刷新显示在表格中。至此,一个基于Spring Boot与Vue 3的机关单位档案管理系统基础原型已成功落地。

商标档案管理系统:别再让商标资产“睡大觉”了!
商标档案管理系统:别再让商标资产“睡大觉”了!
你有没有发现,很多公司花大价钱注册了一堆商标,结果呢?这些商标就像被扔进了仓库角落的旧文件,没人记得、没人维护,甚至快过期了都无人知晓。这事儿吧,说白了就是管理上的一笔“糊涂账”。
2026年09月05日 07:30:31
土木工程建筑业企业档案培训:实用干货全揭秘
土木工程建筑业企业档案培训:实用干货全揭秘
哎,各位土木届的搬砖人、包工头、资料员们,终于挖到个能救咱们半条命的宝贝了——今天要唠的就是跟咱们每天离不开的“工地隐形生命线”有关的【土木工程建筑业企业档案培训】!我可不是啥自媒体瞎忽悠,我是真踩过...
2026年09月05日 07:30:31
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818