logo
0
0
Login

集装箱进出管理系统

一个基于 ThinkPHP + Vue3 的集装箱进出管理系统,支持动态表单配置、实时数据推送、多端访问等功能。

项目简介

本系统用于管理道口集装箱的进出登记、实时监控和数据统计,采用前后端分离架构,支持多端访问。

核心功能

  • ✅ 动态表单设计器 - 可视化配置表单,支持多种题型和逻辑规则
  • ✅ 实时数据看板 - WebSocket推送,实时展示集装箱进出信息
  • ✅ 多端支持 - 管理端、工作端、移动填报端
  • ✅ 数据统计分析 - 多维度数据统计,支持导出Excel
  • ✅ 权限管理 - 基于角色的权限控制
  • ✅ 消息通知 - 异常预警,实时推送

用户角色

角色权限描述主要功能
超级管理员系统所有权限系统配置、用户管理、所有功能
管理员表单和数据管理表单设计、数据管理、统计分析
工作人员查看和处理数据实时看板、数据查询、消息接收
司机填写表单扫码填报、查看提交记录

技术栈

后端

  • ThinkPHP 6.1.0 - PHP框架
  • MySQL 5.7+ - 主数据库
  • Redis 6.0+ - 缓存和队列
  • Workerman 4.0 - WebSocket服务
  • JWT - 身份认证
  • PhpSpreadsheet - Excel处理

前端

  • Vue 3.0 - 前端框架
  • Element Plus - UI组件库(管理端)
  • Vant 3.0 - UI组件库(移动端)
  • Axios - HTTP请求
  • ECharts - 数据可视化
  • Socket.io-client - WebSocket客户端

服务器环境

  • CentOS 7.9 / Ubuntu 20.04
  • Nginx 1.20+
  • PHP 8.0+
  • 宝塔面板 7.x
  • PM2 - 进程管理

项目结构

container-management/ ├── backend/ # 后端项目 │ ├── app/ # 应用目录 │ │ ├── api/ # API接口模块 │ │ │ ├── controller/ # 控制器 │ │ │ └── model/ # 模型 │ │ └── common/ # 公共模块 │ │ ├── model/ # 公共模型 │ │ ├── service/ # 服务类 │ │ ├── exception/ # 异常处理 │ │ └── middleware/ # 中间件 │ ├── config/ # 配置文件 │ ├── public/ # Web根目录 │ ├── route/ # 路由定义 │ ├── workerman/ # WebSocket服务 │ └── composer.json # 依赖配置 │ ├── frontend/ # 前端项目 │ ├── admin/ # 管理端 │ ├── worker/ # 工作端 │ └── mobile/ # 移动端 │ ├── database/ # 数据库 │ ├── schema.sql # 表结构 │ ├── seed.sql # 测试数据 │ └── README.md # 数据库说明 │ └── docs/ # 项目文档

快速开始

1. 环境要求

  • PHP >= 8.0
  • MySQL >= 5.7
  • Redis >= 6.0
  • Node.js >= 16.0
  • Composer
  • Nginx

2. 后端安装

# 进入后端目录 cd backend # 安装依赖 composer install # 复制环境配置文件 cp .env.example .env # 编辑配置文件,配置数据库等信息 vim .env # 设置目录权限 chmod -R 755 runtime chmod -R 755 public/uploads

3. 数据库初始化

# 创建数据库 mysql -u root -p -e "CREATE DATABASE container_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" # 导入表结构 mysql -u root -p container_management < database/schema.sql # 导入测试数据(可选) mysql -u root -p container_management < database/seed.sql

4. 启动WebSocket服务

# 开发环境 php backend/workerman/start.php start # 生产环境(使用PM2) pm2 start ecosystem.config.js pm2 save pm2 startup

5. 前端安装

# 安装管理端依赖 cd frontend/admin npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build

6. Nginx配置

参考 container-management-docs.md 中的 Nginx 配置章节。

默认账号

管理员账号

  • 用户名:admin
  • 密码:admin123

工作人员账号(测试数据)

  • 用户名:worker
  • 密码:worker123

⚠️ 生产环境请立即修改默认密码!

API接口文档

认证接口

用户登录

POST /api/auth/login Body: { "username": "admin", "password": "admin123" }

刷新Token

POST /api/auth/refresh Header: Authorization: Bearer {refresh_token}

表单接口

获取表单列表

GET /api/forms?page=1&limit=10

创建表单

POST /api/forms Body: { "title": "表单标题", "form_structure": [...] }

提交表单数据

POST /api/form/submit Body: { "template_id": 1, "form_data": {...} }

更多接口文档请参考 container-management-docs.md

WebSocket消息协议

客户端认证

{ "type": "auth", "user_id": 1, "role": "admin" }

心跳检测

{ "type": "ping" }

接收通知

{ "type": "notification", "data": { "type": "new_submission", "data": {...} } }

部署说明

宝塔面板部署

  1. 创建网站,设置运行目录为 backend/public
  2. 配置PHP版本为8.0+
  3. 配置伪静态规则(ThinkPHP)
  4. 导入数据库
  5. 配置 .env 文件
  6. 启动 WebSocket 服务
  7. 构建并上传前端文件

详细部署步骤请参考 container-management-docs.md 第5章。

常见问题

1. 500错误

  • 检查目录权限:runtimepublic/uploads 需要可写权限
  • 查看错误日志:runtime/log/error-*.log

2. WebSocket连接失败

  • 检查2346端口是否开放
  • 查看WebSocket服务状态:pm2 status
  • 检查Nginx配置是否正确代理WebSocket

3. 数据库连接失败

  • 检查.env配置是否正确
  • 确认MySQL服务是否运行
  • 检查数据库用户权限

开发计划

  • 移动端应用完善
  • 数据导出功能增强
  • 报表功能
  • 微信小程序支持
  • 更多图表类型
  • 操作审计日志

贡献指南

欢迎提交Issue和Pull Request!

许可证

本项目采用 Apache-2.0 许可证。

联系方式

  • 技术支持:请提交Issue
  • 文档地址:container-management-docs.md

版本:v1.0.0 更新日期:2024-01-01

About

No description, topics, or website provided.
Language
JavaScript71%
TypeScript13.9%
PHP11.2%
Markdown1.7%
Others2.2%