# oa **Repository Path**: liusi/oa ## Basic Information - **Project Name**: oa - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-20 - **Last Updated**: 2025-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OA系统 - 周报月报年报上报系统 基于需求文档实现的完整OA系统,包含周报、月报、年报的上报、管理和汇总功能。 ## 技术栈 ### 后端 - Node.js + Express - SQLite 数据库 - JWT 身份认证 - bcryptjs 密码加密 ### 前端 - Vue 3 - Vite - Ant Design Vue - Vue Router - Pinia - Markdown编辑器 (@kangc/v-md-editor) - ECharts 图表库 ## 项目结构 ``` OA/ ├── server/ # 后端服务 │ ├── database/ # 数据库配置 │ ├── routes/ # 路由文件 │ ├── utils/ # 工具函数 │ └── index.js # 入口文件 ├── system/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── views/ # 页面组件 │ │ ├── layouts/ # 布局组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # 状态管理 │ │ └── utils/ # 工具函数 │ └── package.json └── 需求文档.md # 需求文档 ``` ## 安装和运行 ### 后端 ```bash cd server npm install npm run dev ``` 后端服务将运行在 http://localhost:3000 ### 前端 ```bash cd system npm install npm run dev ``` 前端服务将运行在 http://localhost:5173 ## 功能模块 ### 1. 用户认证 - 用户登录 - 密码修改 - JWT Token认证 - 权限验证 ### 2. 周报管理 - 创建、编辑、删除周报 - 提交周报 - 部门经理审核 - 查看周报列表 ### 3. 月报管理 - 创建、编辑、删除月报 - 提交月报 - 部门经理审核 - 查看月报列表 ### 4. 年报管理 - 自由制作年报(使用Markdown编辑器) - 基于模板填报年报 - 提交和审核年报 - 查看年报列表 ### 5. 模板管理 - 创建年报模板 - 编辑模板字段 - 下发模板到部门 - 模板版本管理 ### 6. 数据汇总 - 周报汇总 - 月报汇总 - 年报汇总(支持模板数据汇总) - 统计分析(图表展示) ### 7. 系统管理 - 用户管理(创建、编辑、删除用户) - 部门管理 - 角色管理 ## 角色权限 ### 管理员(Admin) - 所有功能权限 - 用户、部门、角色管理 ### 总经理(General Manager) - 查看所有部门报表 - 创建和下发模板 - 审核报表 - 查看数据汇总 ### 部门经理(Department Manager) - 查看本部门报表 - 审核本部门报表 - 查看本部门数据汇总 ### 普通职员(Employee) - 创建和提交个人报表 - 使用模板填报年报 - 查看个人历史报表 ## 数据库初始化 系统首次启动时会自动创建数据库表和初始化默认数据: - 默认角色(管理员、总经理、部门经理、普通职员) - 默认部门(总公司) 创建默认管理员用户: ```bash cd server npm run init-admin ``` 默认管理员账号: - 用户名: admin - 密码: admin123 **请登录后立即修改密码!** ## API接口 ### 认证相关 - POST /api/auth/login - 用户登录 - POST /api/auth/change-password - 修改密码 ### 用户管理 - GET /api/users - 获取用户列表 - POST /api/users - 创建用户 - PUT /api/users/:id - 更新用户 - DELETE /api/users/:id - 删除用户 ### 报表管理 - GET /api/weekly-reports - 获取周报列表 - POST /api/weekly-reports - 创建周报 - PUT /api/weekly-reports/:id - 更新周报 - POST /api/weekly-reports/:id/audit - 审核周报 (月报和年报接口类似) ### 模板管理 - GET /api/templates - 获取模板列表 - POST /api/templates - 创建模板 - PUT /api/templates/:id - 更新模板 - POST /api/templates/:id/distribute - 下发模板 ### 数据汇总 - GET /api/summary/weekly - 周报汇总 - GET /api/summary/monthly - 月报汇总 - GET /api/summary/annual - 年报汇总 - GET /api/summary/statistics - 统计数据 ## 注意事项 1. 首次运行需要安装依赖:`npm install` 2. 数据库文件会自动创建在 `server/database/oa.db` 3. 上传的文件保存在 `server/uploads/` 目录 4. 默认JWT密钥在 `.env` 文件中配置,生产环境请修改 ## 开发规范 - 遵循项目代码规范(见 `.cursor/rules/rule.mdc`) - 使用中文注释和变量名 - 组件使用 Ant Design Vue - API使用统一的请求封装 - 状态管理使用 Pinia ## 后续优化建议 1. 添加文件上传功能 2. 完善数据导出功能(Excel/PDF) 3. 添加消息通知功能 4. 优化富文本编辑器体验 5. 添加数据可视化图表 6. 完善权限控制细节 7. 添加操作日志记录