|
|
1 hete | |
|---|---|---|
| deploy | 2 hónapja | |
| docs | 2 hónapja | |
| server | 1 hete | |
| web | 1 hete | |
| .gitignore | 2 hónapja | |
| README.md | 2 hónapja | |
| deploy.sh | 2 hónapja | |
| ecosystem.config.js | 2 hónapja | |
| package.json | 2 hónapja |
高效的订单物流全流程管理平台 —— 集中管理订单发货、物流追踪、批量导入导出,实时掌握每一笔订单状态。
本系统面向电商/礼品卡业务场景,解决以下核心痛点:
基于以上需求,设计并实现了本系统,提供从订单查询、物流批量导入、状态管理到操作审计的一站式解决方案。
-、—、--)| 层级 | 技术 | 版本 |
|---|---|---|
| 前端框架 | Vue 3 (Composition API) | ^3.4.0 |
| 构建工具 | Vite | ^5.0.0 |
| UI 组件库 | Element Plus | ^2.5.0 |
| 图标库 | @element-plus/icons-vue | ^2.3.2 |
| HTTP 客户端 | Axios | ^1.6.0 |
| 后端框架 | Node.js + Express | ^5.2.1 |
| 数据库驱动 | pg (PostgreSQL) | ^8.22.0 |
| Excel 处理 | ExcelJS | ^4.4.0 |
| 文件上传 | Multer | ^2.2.0 |
| 跨域处理 | CORS | ^2.8.6 |
| 进程管理 | PM2 | - |
| 反向代理 | Nginx | - |
┌─────────────────────────────────────────────────────────┐
│ 用户浏览器 │
│ (Vue 3 SPA 前端) │
└──────────────────────┬──────────────────────────────────┘
│ HTTP/HTTPS
▼
┌─────────────────────────────────────────────────────────┐
│ Nginx (:80) │
│ 静态资源缓存 + Gzip + 反向代理 │
└──────────────────────┬──────────────────────────────────┘
│ proxy_pass
▼
┌─────────────────────────────────────────────────────────┐
│ Node.js + Express (:3000) │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────────┐ │
│ │ 静态文件托管 │ │ RESTful API │ │ SPA 兜底路由 │ │
│ └──────────────┘ └──────┬───────┘ └─────────────── │
└───────────────────────────┼─────────────────────────────┘
│
┌────────────┼────────────
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ PostgreSQL│ │ 本地日志 │ 文件上传 │
│ 数据库 │ │ 文件 │ (Multer) │
└────────── └──────────┘ └──────────
shangyan_project/
├── server/ # 后端服务
│ ├── index.js # 入口(API + 静态文件托管)
│ ├── db.js # 数据库连接池(支持环境变量)
│ ├── logistics.js # 物流公司代码↔中文名映射
│ ├── routes/
│ │ └── orders.js # 订单相关 API 路由
│ └── logs/ # 本地日志目录(按月分文件)
── web/ # 前端项目
│ ├── src/
│ │ ├── App.vue # 主应用组件
│ │ ├── main.js # 入口
│ │ ├── api/
│ │ │ └── orders.js # API 请求封装
│ │ ├── components/ # 通用组件
│ │ │ ├── Sidebar.vue # 侧边栏导航
│ │ │ └── AppHeader.vue# 顶栏
│ │ ├── views/ # 页面组件
│ │ │ ├── LoginPage.vue # 登录页
│ │ │ ├── OrderManagement.vue # 订单管理
│ │ │ ├── LogisticsImport.vue # 物流导入
│ │ │ └── OperationLogs.vue # 操作日志
│ │ └── styles/ # 样式系统
│ │ ├── tokens.css # 设计令牌(OKLCH色彩)
│ │ └── global.css # 全局样式 + Element Plus 主题覆盖
│ ├── index.html
│ ├── vite.config.js
│ └── package.json
├── deploy/
│ └── nginx.conf # Nginx 配置模板
├── ecosystem.config.js # PM2 进程配置
├── deploy.sh # 一键部署脚本
── package.json # 后端依赖
└── .gitignore
左右分屏设计,左侧品牌视觉区展示系统定位与实时统计数据,右侧登录表单。
四大 KPI 统计卡片 + 多维筛选栏 + 数据表格 + 自定义状态标签。
拖拽上传区域 + 导入结果统计(成功/失败/总计)+ 失败详情 + 导入说明文档。
管理员专属页面,支持按用户名/操作类型/日期筛选,用户头像 + 操作标签 + 分页。
# 1. 克隆项目
git clone https://code.mizentech.com/chenmingtao/SY_project.git
cd SY_project
# 2. 安装后端依赖
npm install
# 3. 安装前端依赖
cd web && npm install && cd ..
# 4. 启动后端(端口 3000)
cd server && node index.js
# 5. 启动前端(端口 5173,另开终端)
cd web && npm run dev
# 首次部署:一键安装依赖 + 构建前端 + 安装 PM2
bash deploy.sh install
# 启动服务
bash deploy.sh start
# 配置 Nginx(修改 server_name 后)
sudo cp deploy/nginx.conf /etc/nginx/conf.d/order-shipping.conf
sudo nginx -t && sudo nginx -s reload
每次代码推送到 Git 后,在服务器上执行以下任一方式更新:
# 方式一:使用部署脚本(推荐,自动拉代码 + 构建前端 + 重启)
bash deploy.sh update
# 方式二:手动执行
cd /opt/SY_project
git pull
cd web && npm run build && cd ..
pm2 restart order-shipping
通过环境变量或 ecosystem.config.js 配置:
| 变量 | 说明 | 默认值 |
|---|---|---|
DB_HOST |
数据库主机 | 121.37.183.152 |
DB_PORT |
端口 | 5432 |
DB_NAME |
数据库名 | lp-card-test |
DB_USER |
用户名 | postgres |
DB_PASSWORD |
密码 | 123456 |
| 用户名 | 密码 | 角色 | 权限 |
|---|---|---|---|
| admin | admin123 | 管理员 | 全部功能 + 操作日志 |
| user | user123 | 普通用户 | 订单查询/导出/导入 |