# project-management-system **Repository Path**: dooleencloud/project-management-system ## Basic Information - **Project Name**: project-management-system - **Description**: 工程项目管理系统 - 基于Vue3+Node.js+MySQL的全生命周期项目管理平台 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-15 - **Last Updated**: 2026-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工程项目管理系统 (Engineering Project Management System) ![Vue](https://img.shields.io/badge/Vue-3.4.0-42b883?logo=vue.js\&logoColor=white) *** ## 📖 目录 * [项目简介](#项目简介) * [产品展示](#产品展示) * [技术栈](#技术栈) * [功能特性](#功能特性) * [快速开始](#快速开始) * [项目结构](#项目结构) * [数据库设计](#数据库设计) * [API 文档](#api-文档) * [部署说明](#部署说明) * [贡献指南](#贡献指南) * [许可证](#许可证) *** ## 🌟 项目简介 工程项目管理系统是一款面向实施类工程项目的全生命周期管理平台,覆盖项目立项、审批、执行、验收全流程。系统提供进度计划、任务管理、费用管控、质量安全、物资设备、协同办公等多维度管理功能,帮助企业实现项目数字化转型。 ### 技术架构 本系统采用前后端分离架构,基于成熟开源技术栈构建,具备良好的可扩展性和可维护性: | 层级 | 技术选型 | 说明 | |------|----------|------| | **前端框架** | Vue 3 + Vite | 组合式 API、响应式数据绑定、快速热更新 | | **UI 组件库** | Element Plus | 企业级中后台 UI 组件,丰富的表单、表格、弹窗组件 | | **状态管理** | Pinia | 轻量级状态管理,支持持久化存储 | | **路由管理** | Vue Router 4 | 嵌套路由、动态路由、路由守卫权限控制 | | **HTTP 客户端** | Axios | 统一请求拦截、响应拦截、token 自动携带 | | **后端框架** | Node.js + Express | 轻量级 Web 框架,中间件机制灵活 | | **ORM 框架** | Sequelize | MySQL ORM,支持模型关联、事务、迁移 | | **数据库** | MySQL 8.0 | 关系型数据库,支持事务、JSON 字段 | | **认证授权** | JWT + RBAC | Token 认证、角色权限菜单控制 | | **移动端** | uni-app + Vue 3 | 一套代码多端发布,支持微信小程序 | ### 核心理念 * **全流程管理**:从项目立项到验收交付,覆盖项目全生命周期 * **精细化管控**:任务 WBS 分解、阶段进度计算、费用预算控制 * **协同办公**:会议管理、通知公告、往来函件、参建单位协同 * **权限体系**:基于 RBAC 的完整权限控制,支持角色菜单权限配置 * **审批流程**:可配置的审批流程,支持项目审批、费用审批等多场景 *** ## 🖼️ 产品展示 ### 登录页面 专业的科技蓝配色登录页面,左侧展示系统品牌信息和 4 大功能特点,右侧为登录表单,简洁清爽。 ![登录页面](./docs/images/01-login.png) ### 工作台 个人工作总览页面,左侧 2/3 区域展示 4 个统计卡片(我参与的项目、待办任务、待审批、我的工时),右侧 1/3 区域展示通知公告,下方展示我参与的项目卡片。 ![工作台](./docs/images/02-workbench.png) ### 项目管理 项目列表页面,支持按项目名称、类型、状态、项目经理搜索,提供新增、编辑、删除、详情、进入、发起审批等操作。普通用户只能看到自己作为成员的项目,管理员可以看到所有项目。 ![项目列表](./docs/images/03-project-list.png) ### 新增项目 完整的项目信息录入表单,包含项目基本信息、客户信息、计划时间、预算金额、项目描述等 17 个字段,日期默认为当前日期,金额默认为 0。 ![新增项目表单](./docs/images/04-project-add.png) ### 项目概览 项目详情首页,展示项目基本信息、项目阶段步骤图(完成绿色打勾、进行中蓝色、未开始灰色)、项目成员列表(姓名、职务、联系电话),支持新增阶段、编辑排序、添加成员。 ![项目概览](./docs/images/05-project-overview.png) ### 任务管理 项目任务管理,WBS 编号系统自动生成(年月日时分秒数字串),所属阶段放到表单第二个字段,负责人支持搜索选择,任务进度自动计算阶段进度。 ![任务管理列表](./docs/images/06-task-list.png) ### 新增任务 任务录入表单,包含任务名称、所属阶段、负责人、优先级、任务状态、计划时间、进度、预算、实际、任务描述等字段,WBS 编号由系统自动生成。 ![新增任务表单](./docs/images/07-task-add.png) ### 费用管理 项目费用管理,收款方从合作伙伴选取,关联合同自动带出该合作伙伴的项目合同,合同金额根据合同自动显示(只读),支持费用审批流程。 ![费用管理列表](./docs/images/08-expense-list.png) ### 新增费用 费用录入表单,收款方与关联合同联动,选择收款方后自动显示该合作伙伴作为乙方的项目合同列表,选择合同后自动显示合同金额。 ![新增费用表单](./docs/images/09-expense-add.png) ### 交付管理 项目交付物管理,支持交付物创建、交付验收、交付文档关联,完成后可关联文档资料的文档。 ![交付管理列表](./docs/images/10-deliverable.png) ### 文档资料 项目文档管理,支持文档上传、预览、下载,文档标题默认为文件名(包含后缀),发布日期默认为当前日期,附件图标根据文件类型显示。 ![文档资料列表](./docs/images/11-document-list.png) ### 新增文档 文档上传表单,支持多格式文件上传,上传成功后显示文档信息和上传成功信息,表单排版简洁清晰。 ![新增文档表单](./docs/images/12-document-add.png) ### 质量管理 项目质量管理,包含质量问题、质量计划、检验批三个子模块,责任人、质检员均采用下拉列表选择对应的人。 ![质量管理列表](./docs/images/13-quality.png) ### 安全检查 项目安全管理,包含安全检查、隐患整改、危险源、作业许可、安全事故五个子模块,全面覆盖项目安全管理。 ![安全检查列表](./docs/images/14-safety.png) ### 物资设备 项目物资设备管理,包含设备材料清册、采购计划、到货验收、设备台账四个子模块,实现物资全流程管理。 ![物资设备列表](./docs/images/15-material.png) ### 协同办公 项目协同办公,包含会议管理、往来函件、通知公告、参建单位、合同管理五个子模块,支持多附件上传下载。 ![协同办公列表](./docs/images/16-collab.png) ### 客户管理 客户信息管理,支持维护人实时搜索选择,所属行业中文映射,搜索栏精简高效,列表显示完整客户信息。 ![客户管理列表](./docs/images/17-customer-list.png) ### 新增客户 客户信息录入表单,包含客户名称、编号、行业、类型、联系人、电话、邮箱、地址、维护人、描述等字段,维护人支持实时搜索选择。 ![新增客户表单](./docs/images/18-customer-add.png) ### 合作伙伴管理 合作伙伴信息管理,支持施工单位、设计单位、监理单位、供应商等类型,可在费用管理收款方、参建单位、合同管理中引用,菜单权限通过后台配置。 ![合作伙伴管理列表](./docs/images/19-partner.png) ### 待我审批 审批待办列表,只展示需要当前用户审批的内容,已审批的不再展示,支持快速审批窗口,审批流程节点以流程图展示。 ![待我审批](./docs/images/20-approval.png) ### 用户管理 系统用户管理,支持新增用户、编辑用户、重置密码、删除用户,用户角色决定权限,列表显示完整用户信息。 ![用户管理列表](./docs/images/21-user.png) ### 角色管理 系统角色管理,支持角色创建、菜单权限分配,基于 RBAC 的完整权限控制体系,预置超级管理员、项目经理、普通用户等角色。 ![角色管理列表](./docs/images/22-role.png) ### 菜单管理 系统菜单管理,支持树形菜单结构,可配置菜单名称、路由、组件、图标、排序等,菜单数据与页面对应。 ![菜单管理列表](./docs/images/23-menu.png) ### 审批流程设置 可配置的审批流程,支持项目审批和费用审批,可配置审批节点、审批角色、审批顺序,预置项目审批和费用审批流程数据。 ![审批流程设置](./docs/images/24-approval-flow.png) *** ## 🛠️ 技术栈 ### 前端技术 | 技术 | 版本 | 说明 | | ------------ | ------- | ----------------- | | Vue | 3.4.0 | 渐进式 JavaScript 框架 | | Vite | 5.0.8 | 下一代前端构建工具 | | Vue Router | 4.2.5 | Vue.js 官方路由管理器 | | Pinia | 2.1.7 | Vue.js 状态管理库 | | Element Plus | 2.4.4 | Vue 3 组件库 | | Axios | 1.6.2 | HTTP 客户端 | | ECharts | 5.4.3 | 数据可视化图表库 | | Day.js | 1.11.10 | 轻量级日期处理库 | | NProgress | 0.2.0 | 页面进度条 | | Sass | 1.69.5 | CSS 预处理器 | ### 后端技术 | 技术 | 版本 | 说明 | | ----------------- | ------- | ---------------------- | | Node.js | 18+ | JavaScript 运行环境 | | Express | 4.18.2 | 简洁灵活的 Node.js Web 应用框架 | | Sequelize | 6.35.0 | Node.js ORM 工具 | | MySQL2 | 3.6.5 | MySQL 数据库驱动 | | JWT | 9.0.2 | JSON Web Token 认证 | | Bcryptjs | 2.4.3 | 密码加密库 | | CORS | 2.8.5 | 跨域资源共享 | | Helmet | 7.1.0 | HTTP 安全头保护 | | Morgan | 1.10.0 | HTTP 请求日志 | | Multer | 1.4.5 | 文件上传处理 | | Express Validator | 7.0.1 | 请求参数验证 | | Day.js | 1.11.10 | 日期处理库 | | Lodash | 4.17.21 | 实用工具库 | ### 数据库 * **MySQL 8.0+**:关系型数据库 * **63 张数据表**:覆盖系统管理、项目管理、任务管理、费用管理、质量管理、安全管理、物资管理、协同办公等全业务模块 *** ## ✨ 功能特性 ### 🏠 工作台 * 个人工作概览,4 个统计卡片 2x2 布局 * 我参与的项目(最近 8 个未完成项目,最新的在最前面) * 待办任务(我是负责人的未完成任务,展示进度和状态) * 待审批(需要我审批的项目和费用) * 我的工时统计 * 通知公告(最新 4 条,新闻式展示,支持查看全部) * 点击任务进入对应的项目任务中处理 ### 📋 项目管理 * 项目全生命周期管理(立项→审批→执行→验收) * 项目列表搜索(名称、类型、状态、项目经理) * 项目信息完整录入(基本信息、客户信息、预算、时间) * 项目阶段管理(步骤图展示、里程碑标签、排序编辑) * 项目成员管理(多选添加、列表展示姓名 / 职务 / 电话) * 项目进度自动计算(阶段进度 = 任务进度平均值,项目进度 = 阶段进度平均值) * 项目审批流程(可配置审批节点,详情页右上角按钮弹窗显示审批流程) * 普通用户只能看到自己作为成员的项目,管理员可以看到所有项目 * 项目状态中文映射(草稿、待审批、进行中、已完成绿色打勾、已暂停) ### ✅ 任务管理 * WBS 编号系统自动生成(年月日时分秒数字串) * 任务必须关联项目阶段(所属阶段放到表单第二个字段) * 负责人支持实时搜索选择,列表正常显示 * 任务优先级、状态、进度管理 * 任务计划时间、预算、实际费用跟踪 * 任务详情查看 * 任务树按钮已删除,界面更简洁 ### 💰 费用管理 * 费用类别管理(人工费、材料费、设备费、差旅费等) * 收款方从合作伙伴选取(普通选择框,对齐表单字段) * 关联合同自动带出(选择收款方后显示该合作伙伴作为乙方的项目合同) * 合同金额自动显示(根据选择的合同,只读不可修改) * 费用预算与实际对比 * 费用审批流程 * 金额默认为 0,日期默认为当前日期 ### 📦 交付管理 * 交付物管理(名称、类型、计划 / 实际交付日期) * 交付状态跟踪 * 交付物关联文档资料 * 交付验收功能 * 表单简化,关键字段保留 ### 📄 文档资料 * 文档分类管理(设计文档、施工方案、合同协议、验收报告等) * 文档上传(支持多格式,标题默认为文件名含后缀) * 文档预览功能 * 文档下载功能(支持认证,axios+blob 方式) * 附件图标根据文件类型显示 * 发布日期默认为当前日期 * 上传的附件列表在上传按钮旁边展示 * 表单排版简洁清晰,标签宽度合适 ### 🏗️ 质量管理 * **质量问题**:问题记录、发现时间、责任人、整改要求、整改状态 * **质量计划**:计划名称、内容、时间、责任人、质检员 * **检验批**:检验批名称、部位、时间、结果、责任人、质检员 * 责任人、质检员均采用下拉列表选择对应的人 ### 🛡️ 安全检查 * **安全检查**:检查时间、内容、人员、结果、整改要求 * **隐患整改**:隐患描述、发现时间、责任人、整改措施、状态 * **危险源**:危险源名称、风险等级、管控措施、责任人 * **作业许可**:作业类型、时间、人员、审批状态 * **安全事故**:事故时间、地点、描述、伤亡情况、处理措施 * 标签改为 "安全检查"(原安全环境) ### 🚚 物资设备 * **设备材料清册**:名称、规格型号、数量、单位、预算单价 * **采购计划**:采购物品、数量、预算、计划时间、责任人 * **到货验收**:到货时间、物品名称、数量、验收结果、验收人 * **设备台账**:设备名称、规格型号、编号、购置日期、使用状态、责任人 ### 🤝 协同办公 * **会议管理**:会议主题、时间(YYYY-MM-DD HH:mm:ss 格式)、地点、组织人(下拉选择,列表正常显示)、参会人员、会议纪要 * **往来函件**:函件标题、类型、收发日期、发件人、收件人、内容 * **通知公告**:标题、类型、发布时间(YYYY-MM-DD HH:mm:ss 格式)、发布人(下拉选择,列表正常显示)、内容(新闻式展示),最新的在最前面 * **参建单位**:单位名称、类型、联系人、电话、合同编号(从合同管理中选择合同) * **合同管理**:合同名称、编号、类型、甲方、乙方(合作伙伴)、金额、签订日期、多附件上传下载 * 附件列表在上传按钮旁边展示 * 附件直接展示在详情中的合同附件位置 * 附件图标根据文件后缀类型显示 * 翻页功能放在右下方 * 布局参考参建单位,包含查询按钮 ### 👥 客户管理 * 客户信息维护(名称、编号、行业、类型、联系人、电话、邮箱、地址) * 维护人字段(系统用户,支持实时搜索选择,列表正常显示) * 所属行业中文映射 * 搜索栏精简(名称、行业、类型,删除联系人、联系电话) * 项目管理中关联客户信息(客户及联系人、联系方式) ### 🤝 合作伙伴管理 * 合作伙伴信息维护(名称、编号、类型、联系人、电话、状态) * 合作伙伴类型(施工单位、设计单位、监理单位、供应商、其他) * 可在费用管理收款方、参建单位、合同管理中引用 * 菜单权限通过后台配置,不写死 * 搜索栏精简(删除合作伙伴编号、联系人、联系电话) ### ✅ 审批管理 * 待我审批列表(只展示需要当前用户审批的,已审批的不再展示) * 快速审批窗口(审批流程节点流程图展示,申请信息充分展示) * 审批按钮,支持快速审批 * 申请详情查看(分别进入项目详情或费用信息) * 审批操作(同意 / 驳回,支持审批意见) * 项目详情中审批流程按钮(文字型按钮,在返回列表左侧,文字小点) ### ⚙️ 系统管理 * **用户管理**:用户增删改查、重置密码、角色分配 * **角色管理**:角色增删改查、菜单权限分配 * **菜单管理**:树形菜单结构、路由配置、图标设置 * **部门管理**:组织部门树形结构 * **字典管理**:数据字典维护(项目类型、费用类别、行业类型等) * **审批流程设置**:项目审批、费用审批流程节点配置 ### 🔐 权限体系 * 基于 RBAC 的完整权限控制 * 用户 - 角色 - 菜单三级权限模型 * 普通用户只能看到自己作为成员的项目 * 管理员可以看到所有项目 * 菜单权限通过后台动态配置 * 接口权限 JWT Token 认证 * Cookie 过期后重新登录正常跳转 ### 🎨 界面优化 * 登录页面重新设计(科技蓝专业配色,非黑色背景) * 菜单白色背景,选中菜单科技蓝 * 页面切换无闪烁,直接丝滑浮现 * 所有配置 / 编辑弹框宽度 70%,字段一行两列 * 表单标签宽度合适,不换行 * 数字和下拉框有默认值,日期默认为当前日期 * 金额默认为 0 * 搜索栏下拉列表框宽度合适,文字可见 * 工作台布局优化(左 2/3 统计卡片 2x2 + 右 1/3 通知公告,高度对齐,文字居左,标题加粗加大) *** ## 🚀 快速开始 ### 环境要求 * Node.js >= 18.0.0 * MySQL >= 8.0 * npm >= 9.0.0 ### 克隆项目 ``` git clone https://github.com/your-username/project-management-system.git cd project-management-system ``` ### 数据库配置 1. 创建数据库 ``` CREATE DATABASE project\_management DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4\_unicode\_ci; ``` 1. 配置数据库连接 ``` cd server cp .env.example .env ``` 编辑 `.env` 文件,修改数据库配置: ``` \# 服务配置 PORT=3000 NODE\_ENV=development \# 数据库配置 DB\_HOST=127.0.0.1 DB\_PORT=3306 DB\_USER=root DB\_PASSWORD=your\_password DB\_NAME=project\_management \# JWT配置 JWT\_SECRET=project-management-secret-key-2024 JWT\_EXPIRES\_IN=2h \# 文件上传配置 UPLOAD\_DIR=./uploads MAX\_FILE\_SIZE=104857600 \# 跨域配置 CORS\_ORIGIN=http://localhost:5173 ``` ### 后端启动 ``` cd server npm install npm run init-db # 初始化数据库表结构 npm run seed # 初始化测试数据(可选) npm start # 启动后端服务 ``` 后端服务将在 `http://localhost:3000` 启动。 ### 前端启动 ``` cd client npm install npm run dev ``` 前端服务将在 `http://localhost:5173` 启动。 ### 访问系统 打开浏览器访问:`http://localhost:5173` ### 测试账号 系统初始化后预置以下测试账号,可用于快速体验系统各角色功能: | 角色 | 用户名 | 密码 | 说明 | | ---- | -------- | -------- | -------------- | | 管理员 | admin | admin123 | 超级管理员,拥有所有权限 | | 项目经理 | manager | 123456 | 项目经理,可管理项目 | | 工程师 | engineer | 123456 | 普通工程师,可查看和处理任务 | > 登录页面不默认填充账号,请手动输入用户名和密码登录。 *** ## 📁 项目结构 ``` project-management-system/ ├── client/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ │ ├── auth.js # 认证接口 │ │ │ └── index.js # 业务接口 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 公共组件 │ │ ├── layout/ # 布局组件 │ │ ├── router/ # 路由配置 │ │ ├── store/ # Pinia状态管理 │ │ ├── styles/ # 全局样式 │ │ ├── utils/ # 工具函数 │ │ ├── views/ # 页面视图 │ │ │ ├── approval/ # 审批管理 │ │ │ ├── collab/ # 协同办公 │ │ │ ├── customer/ # 客户管理 │ │ │ ├── deliverable/ # 交付管理 │ │ │ ├── document/ # 文档资料 │ │ │ ├── expense/ # 费用管理 │ │ │ ├── login/ # 登录页面 │ │ │ ├── material/ # 物资设备 │ │ │ ├── partner/ # 合作伙伴 │ │ │ ├── project/ # 项目管理 │ │ │ ├── quality/ # 质量管理 │ │ │ ├── safety/ # 安全检查 │ │ │ ├── system/ # 系统管理 │ │ │ ├── task/ # 任务管理 │ │ │ └── workbench/ # 工作台 │ │ ├── App.vue # 根组件 │ │ └── main.js # 入口文件 │ ├── index.html # HTML模板 │ ├── package.json # 依赖配置 │ └── vite.config.js # Vite配置 ├── server/ # 后端项目 │ ├── src/ │ │ ├── config/ # 配置文件 │ │ ├── controllers/ # 控制器 │ │ │ ├── authController.js # 认证控制器 │ │ │ ├── approvalFlowController.js # 审批流程控制器 │ │ │ ├── businessController.js # 业务控制器 │ │ │ ├── fileController.js # 文件控制器 │ │ │ └── systemController.js # 系统控制器 │ │ ├── middleware/ # 中间件 │ │ ├── models/ # 数据模型 │ │ │ ├── approvalFlow.js # 审批流程模型 │ │ │ ├── business.js # 业务模型(60+表) │ │ │ ├── index.js # 模型入口 │ │ │ ├── project.js # 项目模型 │ │ │ ├── system.js # 系统模型 │ │ │ └── task.js # 任务模型 │ │ ├── routes/ # 路由 │ │ │ └── index.js # 路由入口 │ │ ├── scripts/ # 脚本 │ │ ├── services/ # 服务层 │ │ ├── utils/ # 工具函数 │ │ └── app.js # 应用入口 │ ├── uploads/ # 上传文件目录 │ ├── .env.example # 环境变量示例 │ └── package.json # 依赖配置 ├── docs/ # 文档目录 ├── qa-results/ # QA测试结果 ├── user-manual-screenshots-v3/ # 用户手册截图(27张) ├── 项目管理系统用户操作手册V3.0.md # 用户操作手册 ├── README.md # 项目说明文档 └── LICENSE # 许可证 ``` *** ## 🗄️ 数据库设计 系统共包含 **63 张数据表**,按业务模块分类: ### 系统管理模块(18 张) | 表名 | 说明 | | ------------------------- | ------- | | sys\_user | 用户表 | | sys\_role | 角色表 | | sys\_menu | 菜单表 | | sys\_dept | 部门表 | | sys\_user\_role | 用户角色关联表 | | sys\_role\_menu | 角色菜单关联表 | | sys\_role\_dept | 角色部门关联表 | | sys\_dict\_type | 字典类型表 | | sys\_dict\_data | 字典数据表 | | sys\_login\_log | 登录日志表 | | sys\_oper\_log | 操作日志表 | | sys\_approval\_flow | 审批流程表 | | sys\_approval\_flow\_node | 审批流程节点表 | | sys\_approval\_record | 审批记录表 | | wf\_definition | 工作流定义表 | | wf\_instance | 工作流实例表 | | wf\_record | 工作流记录表 | | wf\_task | 工作流任务表 | ### 项目管理模块(9 张) | 表名 | 说明 | | --------------- | ------ | | proj\_project | 项目表 | | proj\_phase | 项目阶段表 | | proj\_milestone | 项目里程碑表 | | proj\_member | 项目成员表 | | proj\_goal | 项目目标表 | | proj\_program | 项目群表 | | proj\_approval | 项目审批表 | | file\_info | 文件信息表 | | file\_chunk | 文件分片表 | ### 任务管理模块(6 张) | 表名 | 说明 | | ---------------- | ----- | | task\_task | 任务表 | | task\_comment | 任务评论表 | | task\_attachment | 任务附件表 | | task\_dependency | 任务依赖表 | | task\_baseline | 任务基准表 | | task\_timesheet | 工时表 | ### 费用管理模块(3 张) | 表名 | 说明 | | ------------ | --------------------------------------- | | exp\_expense | 费用表(含 contract\_id、contract\_amount 字段) | | exp\_budget | 预算表 | | exp\_subject | 费用科目表 | ### 交付管理模块(2 张) | 表名 | 说明 | | ---------------- | ---- | | del\_deliverable | 交付物表 | | del\_acceptance | 验收表 | ### 文档管理模块(3 张) | 表名 | 说明 | | ------------- | ----- | | doc\_document | 文档表 | | doc\_category | 文档分类表 | | doc\_version | 文档版本表 | ### 质量管理模块(3 张) | 表名 | 说明 | | --------------------- | ----- | | qa\_issue | 质量问题表 | | qa\_plan | 质量计划表 | | qa\_inspection\_batch | 检验批表 | ### 安全管理模块(6 张) | 表名 | 说明 | | ------------------ | ----- | | hse\_inspection | 安全检查表 | | hse\_rectification | 隐患整改表 | | hse\_hazard | 危险源表 | | hse\_permit | 作业许可表 | | hse\_accident | 安全事故表 | | hse\_plan | 安全计划表 | ### 物资管理模块(4 张) | 表名 | 说明 | | ---------------- | ------- | | mat\_equipment | 设备材料清册表 | | mat\_procurement | 采购计划表 | | mat\_arrival | 到货验收表 | | mat\_ledger | 设备台账表 | ### 协同办公模块(7 张) | 表名 | 说明 | | ----------------------- | -------------------- | | col\_meeting | 会议管理表 | | col\_correspondence | 往来函件表 | | col\_notification | 通知公告表 | | col\_notification\_read | 通知已读表 | | col\_participant | 参建单位表 | | col\_comment | 评论表 | | biz\_contract | 合同表(含 party\_b 乙方字段) | ### 基础数据模块(2 张) | 表名 | 说明 | | ------------- | ----- | | biz\_customer | 客户表 | | biz\_partner | 合作伙伴表 | *** ## 📡 API 文档 ### 认证接口 | 方法 | 路径 | 说明 | | ---- | ------------------ | -------- | | POST | /api/auth/login | 用户登录 | | POST | /api/auth/logout | 用户登出 | | GET | /api/auth/userinfo | 获取当前用户信息 | | POST | /api/auth/refresh | 刷新 Token | ### 项目管理接口 | 方法 | 路径 | 说明 | | ------ | ------------------------- | -------- | | GET | /api/project/all | 获取项目列表 | | GET | /api/project/:id | 获取项目详情 | | POST | /api/project | 新增项目 | | PUT | /api/project/:id | 更新项目 | | DELETE | /api/project/:id | 删除项目 | | POST | /api/project/:id/approval | 发起项目审批 | | GET | /api/project/:id/approval | 获取项目审批流程 | ### 任务管理接口 | 方法 | 路径 | 说明 | | ------ | ------------- | ------ | | GET | /api/task/all | 获取任务列表 | | GET | /api/task/:id | 获取任务详情 | | POST | /api/task | 新增任务 | | PUT | /api/task/:id | 更新任务 | | DELETE | /api/task/:id | 删除任务 | ### 费用管理接口 | 方法 | 路径 | 说明 | | ------ | ---------------- | ------ | | GET | /api/expense/all | 获取费用列表 | | GET | /api/expense/:id | 获取费用详情 | | POST | /api/expense | 新增费用 | | PUT | /api/expense/:id | 更新费用 | | DELETE | /api/expense/:id | 删除费用 | ### 客户管理接口 | 方法 | 路径 | 说明 | | ------ | ----------------- | ------ | | GET | /api/customer/all | 获取客户列表 | | GET | /api/customer/:id | 获取客户详情 | | POST | /api/customer | 新增客户 | | PUT | /api/customer/:id | 更新客户 | | DELETE | /api/customer/:id | 删除客户 | ### 合作伙伴接口 | 方法 | 路径 | 说明 | | ------ | ---------------- | -------- | | GET | /api/partner/all | 获取合作伙伴列表 | | GET | /api/partner/:id | 获取合作伙伴详情 | | POST | /api/partner | 新增合作伙伴 | | PUT | /api/partner/:id | 更新合作伙伴 | | DELETE | /api/partner/:id | 删除合作伙伴 | ### 系统管理接口 | 方法 | 路径 | 说明 | | ------ | ---------------------- | -------- | | GET | /api/user/all | 获取用户列表 | | POST | /api/user | 新增用户 | | PUT | /api/user/:id | 更新用户 | | DELETE | /api/user/:id | 删除用户 | | GET | /api/role/all | 获取角色列表 | | GET | /api/menu/all | 获取菜单列表 | | GET | /api/approval-flow/all | 获取审批流程列表 | ### 文件上传接口 | 方法 | 路径 | 说明 | | ---- | ---------------------- | ---- | | POST | /api/file/upload | 上传文件 | | GET | /api/file/:id/download | 下载文件 | | GET | /api/file/:id/preview | 预览文件 | > 完整的 API 文档请参考后端路由配置文件 > > `server/src/routes/index.js` *** ## 📦 部署说明 ### 生产环境部署 #### 1. 前端构建 ``` cd client npm install npm run build ``` 构建产物将生成在 `client/dist` 目录。 #### 2. 后端部署 ``` cd server npm install --production NODE\_ENV=production node src/app.js ``` #### 3. Nginx 配置 ``` server { listen 80; server\_name your-domain.com; \# 前端静态文件 location / { root /path/to/client/dist; try\_files \$uri \$uri/ /index.html; } \# 后端API代理 location /api/ { proxy\_pass http://127.0.0.1:3000; proxy\_set\_header Host \$host; proxy\_set\_header X-Real-IP \$remote\_addr; proxy\_set\_header X-Forwarded-For \$proxy\_add\_x\_forwarded\_for; } \# 文件上传大小限制 client\_max\_body\_size 100M; } ``` #### 4. 使用 PM2 管理后端进程 ``` npm install -g pm2 cd server pm2 start src/app.js --name project-management-server pm2 save pm2 startup ``` ### MySQL 数据库配置 数据库信息在 `server/.env` 文件中配置: | 配置项 | 默认值 | 说明 | | ------------ | ------------------- | ----------- | | DB\_HOST | 127.0.0.1 | 数据库地址(可配置) | | DB\_PORT | 3306 | 数据库端口 | | DB\_USER | root | 数据库用户名(可配置) | | DB\_PASSWORD | Sy@fintech2020 | 数据库密码(可配置) | | DB\_NAME | project\_management | 数据库名称 | > MySQL 支持客户端连接权限,root 用户 host 已改为 %,支持远程连接。 ### Docker 部署(可选) 项目支持 Docker 容器化部署,可根据需要编写 Dockerfile 和 docker-compose.yml。 *** ## 🤝 贡献指南 我们欢迎所有形式的贡献,包括但不限于: * 🐛 提交 Bug 报告 * 💡 提出新功能建议 * 📝 改进文档 * 🔧 提交代码修复或新功能 ### 开发流程 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ### 代码规范 * 前端遵循 Vue 3 官方风格指南 * 后端遵循 Express 最佳实践 * 代码注释清晰,变量命名有意义 * 提交信息使用约定式提交规范 *** ## 📄 许可证 本项目基于 [MIT License](LICENSE) 开源协议。 *** ## 📞 联系方式 - **项目地址**:[https://gitee.com/dooleencloud/project-management-system](https://gitee.com/dooleencloud/project-management-system) - **问题反馈**:[https://gitee.com/dooleencloud/project-management-system/issues](https://gitee.com/dooleencloud/project-management-system/issues) - **邮箱地址**:[330511964@qq.com](mailto:330511964@qq.com) - **微信**:cacabook001 - **用户手册**:[工程项目管理系统用户操作手册 V3.0](./项目管理系统用户操作手册V3.0.md) ***