# enterprise-document-system **Repository Path**: listen-carefully/enterprise-document-system ## Basic Information - **Project Name**: enterprise-document-system - **Description**: 基于数据安全的企业文档管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-04 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 企业文档管理系统
**一个注重数据安全的现代化企业文档管理平台** [![Vue](https://img.shields.io/badge/Vue-3.5.26-brightgreen.svg)](https://vuejs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue.svg)](https://www.typescriptlang.org/) [![Element Plus](https://img.shields.io/badge/Element%20Plus-2.13.1-409EFF.svg)](https://element-plus.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.115.6-009688.svg)](https://fastapi.tiangolo.com/) [![Python](https://img.shields.io/badge/Python-3.13-blue.svg)](https://www.python.org/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [在线演示](#) · [功能特性](#功能特性) · [快速开始](#快速开始) · [技术架构](#技术架构)
--- ## 📖 项目简介 企业文档管理系统是一个采用前后端分离架构的全栈项目,专注于企业文档的安全管理。系统实现了**AES-256文档加密存储**、**敏感词实时检测**、**RBAC权限控制**、**操作全程审计**等核心功能,适用于对文档安全有严格要求的企业场景。 ### 🎯 核心价值 - 🔐 **数据安全**:AES-256加密存储、敏感词检测、操作审计 - 👥 **权限管控**:三级RBAC权限体系,精细化权限控制 - 📊 **可视化分析**:实时数据统计、多维度图表展示 - 🎨 **现代化UI**:响应式设计、流畅动画、优秀交互体验 - 🚀 **高性能**:前后端分离、异步处理、优化查询 --- ## 🎨 系统预览 ### 登录页面
登录页面

现代化登录界面 - 双栏布局 + 动态粒子背景

**📸 截图说明**: - **截取内容**:完整的登录页面(全屏截图) - **展示重点**:左侧品牌展示区 + 右侧登录表单 + 动态粒子背景效果 - **截图技巧**:不要输入真实密码,保持表单空白或使用测试账号 - **浏览器设置**:隐藏书签栏,F11全屏或最大化窗口,确保界面整洁 --- ### 数据可视化仪表板
仪表板

数据可视化仪表板 - 实时统计 + ECharts图表

**📸 截图说明**: - **截取内容**:仪表板主页面(包含顶部导航栏和左侧菜单) - **展示重点**:4个统计卡片 + 登录趋势折线图 + 文档类型饼图 + 部门统计柱状图 + 最近活动 - **截图技巧**:确保有测试数据,图表显示正常,数据不要为0 - **最佳时机**:使用admin账号登录后,直接截取首页 --- ### 文档管理
文档管理

文档管理 - 列表展示 + 权限控制 + 敏感词检测

**📸 截图说明**: - **截取内容**:文档管理页面(包含文档列表和操作按钮) - **展示重点**:文档列表、搜索筛选栏、上传按钮、操作按钮(预览、下载、删除) - **截图技巧**:列表中至少显示3-5条文档记录,包含不同文件类型(docx、pdf、txt)和敏感标记 - **数据准备**:提前上传几个测试文档,确保有正常文档和敏感文档 --- ### 文档在线预览
文档预览

文档在线预览 - 支持Word、PDF、文本格式

**📸 截图说明**: - **截取内容**:文档预览对话框或预览页面 - **展示重点**:预览窗口 + 文档内容清晰显示 - **截图技巧**:选择一个内容丰富的Word或PDF文档进行预览,确保文字清晰可读 - **推荐文档**:使用包含标题、段落、格式的测试文档(避免空白或纯文本) --- ### 用户管理
用户管理

用户管理 - CRUD操作 + 角色分配 + 状态控制

**📸 截图说明**: - **截取内容**:用户管理页面 - **展示重点**:用户列表、搜索筛选、新增/编辑按钮、角色标签、状态标签 - **截图技巧**:显示不同角色的用户(超级管理员、部门管理员、普通成员),展示不同状态 - **权限要求**:必须使用admin账号登录才能访问此页面 --- ### 日志审计
日志审计

日志审计 - 操作日志 + 登录日志追踪

**📸 截图说明**: - **截取内容**:操作日志或登录日志页面 - **展示重点**:日志列表、时间筛选、操作类型、用户信息、IP地址 - **截图技巧**:确保有多条日志记录,展示不同的操作类型(上传、下载、删除等) - **数据准备**:进行一些操作(上传文档、修改用户等)生成日志记录 --- ### 敏感词检测演示
敏感词检测

敏感词检测 - 实时提示 + 上传拦截

**📸 截图说明**: - **截取内容**:上传文档时触发敏感词检测的提示框 - **展示重点**:敏感词检测警告提示信息 - **截图技巧**:上传一个包含敏感词的文档(文件名或内容包含"机密"、"绝密"、"内部"等) - **触发方式**:在文档上传页面,选择包含敏感词的文件,系统会自动弹出提示 --- ## ✨ 功能特性 ### 核心功能模块 #### 🔑 用户认证与授权 - JWT Token身份认证 - 图形验证码防暴力破解 - 登录失败自动锁定(5次) - IP异常行为监控与封禁 - 白名单机制保护管理员 #### 📁 文档管理(核心) - **安全存储**:AES-256-CBC加密算法 - **格式支持**:Word(.docx)、PDF(.pdf)、文本(.txt) - **在线预览**:支持文档在线预览 - **敏感词检测**:前后端双重验证,文件名+内容检测 - **权限隔离**:超级管理员/部门管理员/普通成员三级权限 - **下载统计**:自动记录下载次数 #### 👥 用户与部门管理 - 用户CRUD操作 - 灵活的角色分配 - 树形部门结构 - 用户状态控制 - 头像上传 #### 📝 日志审计 - 操作日志记录 - 登录日志追踪 - 多维度查询 - 日志导出 #### 🛡️ 安全监控 - 敏感词管理 - IP监控与锁定 - 安全告警 - 访问统计 #### 📊 数据可视化 - 实时统计数据 - 登录趋势分析 - 文档类型分布 - 部门文档统计 --- ## 🏗️ 技术架构 ### 技术栈 #### 前端技术栈 - **框架**:Vue 3.5.26 + TypeScript 5.9 - **构建工具**:Vite 7.3.0 - **UI组件库**:Element Plus 2.13.1 - **状态管理**:Pinia 3.0.4 - **路由管理**:Vue Router 4.6.4 - **HTTP客户端**:Axios 1.13.2 - **图表库**:ECharts 6.0.0 - **文档解析**:Mammoth.js、PDF.js #### 后端技术栈 - **Web框架**:FastAPI 0.115.6 - **ASGI服务器**:Uvicorn 0.34.0 - **ORM框架**:SQLAlchemy 2.0.36 - **数据库驱动**:PyMySQL 1.1.1 - **数据验证**:Pydantic 2.10.5 - **JWT认证**:Python-JOSE 3.3.0 - **密码加密**:Passlib + BCrypt - **文件加密**:Cryptography 42.0.0 - **文档处理**:Python-docx、PyPDF2 ### 系统架构图 ``` ┌─────────────────────────────────────────────────────────────┐ │ 浏览器 (Browser) │ └─────────────────────┬───────────────────────────────────────┘ │ ┌─────────────────────▼───────────────────────────────────────┐ │ 前端层 (Vue 3 + TypeScript) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 仪表板 │ │ 文档管理 │ │ 用户管理 │ │ 日志审计 │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ 状态管理(Pinia) + 路由(Vue Router) + HTTP(Axios) │ └─────────────────────┬───────────────────────────────────────┘ │ RESTful API (JSON) ┌─────────────────────▼───────────────────────────────────────┐ │ 后端层 (FastAPI + Python) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 认证服务 │ │ 文档服务 │ │ 用户服务 │ │ 日志服务 │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ JWT认证 + AES加密 + 敏感词检测 + 权限控制 │ └─────────────────────┬───────────────────────────────────────┘ │ SQLAlchemy ORM ┌─────────────────────▼───────────────────────────────────────┐ │ 数据层 (MySQL 8.0+) │ │ 用户表 | 角色表 | 部门表 | 文档表 | 日志表 | 敏感词表 │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 🔒 安全设计 ### 1. 文件加密存储 采用 **AES-256-CBC** 加密算法: - **密钥长度**:256位(32字节) - **加密模式**:CBC(密码块链接模式) - **填充方式**:PKCS7 - **存储格式**:IV(16字节)+ 加密数据 - **文件标识**:`.enc` 后缀 ### 2. 敏感词检测 **双重检测策略**: - 前端实时检测(docx、txt) - 后端二次验证(所有格式) - 文件名 + 内容双重检测 ### 3. 权限控制(RBAC) | 角色 | 权限范围 | |------|----------| | **超级管理员** | 全系统权限 | | **部门管理员** | 本部门权限 | | **部门成员** | 个人权限 | ### 4. 安全防护 - ✅ 密码BCrypt加密存储 - ✅ JWT Token认证(120分钟过期) - ✅ 登录失败5次锁定 - ✅ IP异常监控与封禁 - ✅ 操作全程审计日志 - ✅ CORS跨域安全配置 --- ## 📁 项目结构 ``` Enterprise-Documents/ ├── admin/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── components/ # 公共组件 │ │ ├── views/ # 页面组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # 状态管理 │ │ └── utils/ # 工具函数 │ ├── package.json │ └── README.md # 前端详细说明 │ ├── server/ # 后端项目 │ ├── app/ │ │ ├── api/ # API路由 │ │ ├── core/ # 核心功能 │ │ ├── models/ # 数据库模型 │ │ └── schemas/ # 数据验证 │ ├── requirements.txt │ ├── database_init.sql # 数据库初始化 │ └── README.md # 后端详细说明 │ ├── docs/ # 文档和截图 │ └── images/ # 系统截图 │ ├── login.png │ ├── dashboard.png │ ├── document-list.png │ ├── document-preview.png │ ├── user-management.png │ ├── log-audit.png │ └── sensitive-word-detection.png │ └── README.md # 项目总体说明(本文件) ``` --- ## 🚀 快速开始 ### 环境要求 - **Node.js**:20.19.0+ - **Python**:3.13+ - **MySQL**:8.0+ - **浏览器**:Chrome、Edge、Firefox、Safari ### 1. 克隆项目 ```bash git clone https://gitee.com/你的用户名/enterprise-document-system.git cd enterprise-document-system ``` ### 2. 数据库初始化 使用MySQL客户端执行初始化脚本: ```bash mysql -u root -p < server/database_init.sql ``` 这将创建: - 数据库:`doc_system` - 9张数据表 - 初始数据(3个角色、5个部门、6个测试用户) ### 3. 启动后端服务 ```bash # 进入后端目录 cd server # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # Linux/Mac: source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 配置环境变量(修改.env文件) # 配置数据库连接信息 # 启动服务 python run.py ``` 后端服务:`http://localhost:8080` API文档:`http://localhost:8080/docs` ### 4. 启动前端服务 ```bash # 进入前端目录 cd admin # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端服务:`http://localhost:5173` ### 5. 访问系统 浏览器访问:`http://localhost:5173` **测试账号**: | 角色 | 用户名 | 密码 | 说明 | |------|--------|------|------| | 超级管理员 | admin | 123456 | 全系统权限 | | 部门管理员 | tech_manager | 123456 | 科技部管理员 | | 部门成员 | tech_user1 | 123456 | 科技部成员 | ⚠️ **首次登录后请立即修改密码!** --- ## 📦 生产部署 ### 前端构建 ```bash cd admin npm run build ``` 构建产物在 `admin/dist` 目录,可部署到Nginx。 ### Nginx配置示例 ```nginx server { listen 80; server_name your-domain.com; # 前端静态资源 location / { root /path/to/admin/dist; try_files $uri $uri/ /index.html; } # 后端API代理 location /api { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` ### 后端部署 ```bash # 使用Gunicorn部署 pip install gunicorn gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8080 ``` --- ## 📚 详细文档 - [前端开发文档](./admin/README.md) - 前端技术栈、项目结构、开发指南 - [后端开发文档](./server/README.md) - 后端技术栈、API接口、数据库设计 - [系统架构文档](./admin/docs/01-系统架构设计文档.md) - 系统架构设计 - [API接口文档](./admin/docs/08-API接口文档.md) - 完整的API接口说明 - [数据库设计文档](./admin/docs/07-数据库设计文档.md) - 数据库表结构设计 - [部署说明文档](./admin/docs/09-部署说明文档.md) - 详细的部署指南 --- ## 🔧 开发指南 ### 代码规范 ```bash # 前端代码检查 cd admin npm run lint # 前端代码格式化 npm run format # 类型检查 npm run type-check ``` ### API接口规范 统一响应格式: ```json { "code": 200, "message": "success", "data": {} } ``` ### 提交规范 ```bash feat: 新功能 fix: Bug修复 docs: 文档更新 style: 代码格式调整 refactor: 代码重构 perf: 性能优化 test: 测试相关 chore: 构建/工具链相关 ``` --- ## 📊 性能优化 ### 前端优化 - ✅ 路由懒加载 - ✅ 组件按需引入 - ✅ 图片懒加载 - ✅ Gzip压缩 - ✅ 浏览器缓存 ### 后端优化 - ✅ 数据库连接池 - ✅ SQL查询优化 - ✅ 异步文件处理 - ✅ 响应数据压缩 - ✅ 接口限流保护 --- ## 🐛 常见问题 ### 前端启动失败 ```bash # 清除缓存重新安装 npm cache clean --force rm -rf node_modules package-lock.json npm install ``` ### 后端数据库连接失败 - 检查MySQL服务是否启动 - 确认`.env`文件配置正确 - 检查数据库用户权限 ### 文件上传失败 - 检查`uploads`目录权限 - 确认文件大小未超限(50MB) - 检查文件格式是否支持 --- ## 📝 更新日志 ### v1.0.0 (2026-01-23) **新增功能**: - ✨ 完整的用户认证与授权系统 - ✨ 文档加密存储与在线预览 - ✨ 敏感词实时检测功能 - ✨ 操作日志与登录日志审计 - ✨ IP监控与异常行为检测 - ✨ 数据可视化仪表板 **优化改进**: - 🎨 现代化UI设计 - ⚡ 前端性能优化 - 🔒 增强安全防护 - 📱 响应式布局 --- ## 🤝 贡献指南 欢迎提交Issue和Pull Request! ### 提交规范 ``` (): ``` --- ## 📄 开源协议 本项目采用 [MIT](LICENSE) 协议开源。 --- ## 📮 联系方式 - **作者**:[Your Name] - **邮箱**:your.email@example.com - **GitHub**:[@yourusername](https://github.com/yourusername) - **Gitee**:[@yourusername](https://gitee.com/yourusername) --- ## 🙏 致谢 感谢以下开源项目: - [Vue.js](https://vuejs.org/) - 渐进式JavaScript框架 - [Element Plus](https://element-plus.org/) - Vue 3组件库 - [FastAPI](https://fastapi.tiangolo.com/) - 现代Python Web框架 - [ECharts](https://echarts.apache.org/) - 数据可视化图表库 - [SQLAlchemy](https://www.sqlalchemy.org/) - Python SQL工具包 ---
**如果这个项目对你有帮助,请给一个⭐️Star支持一下!** Made with ❤️ by [宁采臣的剑]