垃圾上门回收小程序

垃圾上门回收小程序毕业设计,Egg.js + 微信原生小程序(TDesign),支持垃圾分类预约、上门时间选择、地址管理与回收价格配置。

评分:4.8/5.0
销量:77
发布:12/2/2025
难度:L3 高级

获取完整源码

演示视频仅作效果参考。完整源码、项目说明与运行答疑,请私聊沟通(适合毕业设计 / 课程设计 / 课设参考)。

获取完整源码观看演示视频
含项目说明文档,便于对照学习
可本地运行,适合课设演示
沟通获取后可咨询运行问题

项目封面

截图 1

项目概览

垃圾上门回收小程序毕业设计基于 Egg.js + MySQL 后端与 TDesign 微信小程序 UI,实现垃圾分类回收预约、订单状态流转、多地址管理与营业时间/回收价格灵活配置,适合 Node.js 环保 O2O 类毕业设计。

项目说明

垃圾上门回收小程序

项目简介

这是一个完整的垃圾上门回收服务平台,包含微信小程序端。系统实现了垃圾分类回收预约、订单管理、地址管理、系统配置等核心功能,采用Egg.js后端框架,适合作为微信小程序全栈开发学习项目或计算机设计参考。

技术栈

后端技术

技术版本/说明
运行环境Node.js 10.0+
Web框架Egg.js 2.15.1
数据库MySQL 5.7+
数据库插件egg-mysql
身份认证egg-jwt
跨域处理egg-cors
表单验证egg-validate
文件处理egg-multipart
Excel处理exceljs / xlsx
邮件发送nodemailer

小程序端技术

技术版本/说明
开发框架微信小程序原生框架
开发语言JavaScript (ES6+)
样式语言WXSS
模板语言WXML
UI组件库TDesign Miniprogram
日期处理Day.js

项目特点

  • 前后端分离:后端提供RESTful API,小程序独立开发
  • 完整业务流程:涵盖预约下单、接单、完成、取消全流程
  • 多角色支持:普通用户、管理员角色区分
  • 灵活配置:支持营业时间、回收价格等系统配置
  • 地址管理:支持多地址管理和默认地址设置
  • 微信登录:支持微信授权登录

功能模块

小程序端功能

1. 首页模块 (pages/index)

  • 轮播图展示
  • 垃圾分类导航
  • 回收价格展示
  • 营业状态显示
  • 快速预约入口

2. 预约下单模块 (pages/form)

  • 选择垃圾分类
  • 选择上门时间
  • 选择收货地址
  • 填写预估重量
  • 添加备注说明
  • 提交预约订单

3. 订单管理模块

  • 订单列表 (pages/orderList)
  • 订单详情 (pages/orderDetail)
  • 订单状态查看
  • 取消订单

4. 地址管理模块

  • 地址列表 (pages/addressList)
  • 新增/编辑地址 (pages/addressAddUpdate)
  • 设置默认地址
  • 省市区选择

5. 垃圾分类知识 (pages/sortKnowledgeInfo)

  • 分类知识介绍
  • 回收指南

6. 个人中心模块 (pages/my)

  • 用户信息展示
  • 我的订单入口
  • 地址管理入口
  • 问题反馈 (pages/question)
  • 关于我们 (pages/about)
  • 用户信息编辑 (pages/userInfo)

7. 管理员功能 (pages/admin)

  • 订单管理
  • 接单/拒单
  • 完成订单
  • 用户管理
  • 系统配置

8. 授权登录 (pages/auth)

  • 微信授权登录
  • 手机号获取

项目结构

lajihuishou/
├── egg/                            # 后端服务(Egg.js + MySQL)
│   ├── app/
│   │   ├── controller/             # 控制器
│   │   │   ├── address.js          # 地址接口
│   │   │   ├── order.js            # 订单接口
│   │   │   ├── setting.js          # 系统配置接口
│   │   │   └── user.js             # 用户接口
│   │   ├── middleware/             # 中间件
│   │   │   └── jwt.js              # JWT验证
│   │   ├── public/                 # 静态资源
│   │   │   └── images/             # 上传图片存储
│   │   ├── service/                # 业务逻辑层
│   │   │   ├── address.js          # 地址服务
│   │   │   ├── order.js            # 订单服务
│   │   │   ├── setting.js          # 配置服务
│   │   │   └── user.js             # 用户服务
│   │   └── router.js               # 路由配置
│   ├── config/
│   │   ├── config.default.js       # 默认配置
│   │   └── plugin.js               # 插件配置
│   ├── logs/                       # 日志目录
│   ├── package.json
│   └── README.md
│
├── min/                            # 微信小程序
│   ├── components/                 # 自定义组件
│   ├── imgs/                       # 图片资源
│   │   ├── index/                  # 首页图片
│   │   ├── lajiclass/              # 垃圾分类图片
│   │   ├── my/                     # 个人中心图片
│   │   └── tabbar/                 # TabBar图标
│   ├── miniprogram_npm/            # npm包
│   │   ├── dayjs/                  # 日期处理
│   │   └── tdesign-miniprogram/    # TDesign组件库
│   ├── pages/                      # 页面目录
│   │   ├── index/                  # 首页
│   │   ├── form/                   # 预约表单
│   │   ├── orderList/              # 订单列表
│   │   ├── orderDetail/            # 订单详情
│   │   ├── addressList/            # 地址列表
│   │   ├── addressAddUpdate/       # 地址编辑
│   │   ├── sortKnowledgeInfo/      # 分类知识
│   │   ├── my/                     # 个人中心
│   │   ├── userInfo/               # 用户信息
│   │   ├── question/               # 问题反馈
│   │   ├── about/                  # 关于我们
│   │   ├── admin/                  # 管理员页面
│   │   └── auth/                   # 授权登录
│   ├── services/
│   │   ├── api.js                  # API接口封装
│   │   └── request.js              # 请求封装
│   ├── style/
│   │   └── wxParse.wxss            # 富文本样式
│   ├── utils/
│   │   ├── feedback.js             # 反馈工具
│   │   ├── index.js                # 工具函数
│   │   └── mock.js                 # 模拟数据
│   ├── app.js                      # 小程序入口
│   ├── app.json                    # 小程序配置
│   ├── app.wxss                    # 全局样式
│   └── project.config.json         # 项目配置
│
├── lajihuishou.sql                 # 数据库SQL文件
└── 垃圾上门回收小程序.xmind         # 项目思维导图

数据模型

用户表 (users)

{
  id: int,                    // 用户ID
  nickname: varchar(255),     // 昵称
  username: varchar(255),     // 姓名
  avatar: varchar(1000),      // 头像
  openId: varchar(100),       // 微信OpenID
  origin: varchar(100),       // 来源
  phone: varchar(100),        // 手机号
  is_admin: int,              // 是否为管理员 (99 root, 32 二级管理员)
  is_user: int,               // 是否可以访问用户列表
  is_order: int,              // 是否可以访问订单列表
  is_setting: int,            // 是否可以访问系统配置
  create_time: timestamp,     // 创建时间
  update_time: timestamp      // 更新时间
}

订单表 (orders)

{
  id: int,                    // 订单ID
  user_id: int,               // 用户ID
  cate_title: varchar(100),   // 分类标题
  address: varchar(1000),     // 地址
  start_time: varchar(1000),  // 上门时间
  weight: varchar(1000),      // 重量
  phone: varchar(100),        // 联系电话
  username: varchar(100),     // 联系人
  desc: varchar(1000),        // 描述
  status: int,                // 状态 (0已提交 1已接单 2已完成 3已取消 4已拒绝)
  cover_list: varchar(1000),  // 记录图
  order_no: varchar(100),     // 订单编号
  reason: varchar(1000),      // 拒绝原因
  opt_id: int,                // 操作人
  create_time: timestamp,     // 创建时间
  update_time: timestamp      // 更新时间
}

地址表 (address)

{
  id: int,                    // 地址ID
  user_id: int,               // 用户ID
  username: varchar(100),     // 收货人
  phone: varchar(100),        // 联系电话
  province: varchar(100),     // 省份
  city: varchar(100),         // 城市
  district: varchar(100),     // 区县
  address: varchar(1000),     // 详细地址
  address_detail: varchar(100), // 门牌号
  is_default: int,            // 是否默认 (0否 1是)
  create_time: timestamp,     // 创建时间
  update_time: timestamp      // 更新时间
}

系统配置表 (setting)

{
  id: int,                    // 配置ID
  banner_list: longtext,      // 轮播图列表
  open_time_start: varchar(100), // 营业开始时间
  open_time_end: varchar(100),   // 营业结束时间
  price_list: longtext,       // 价格列表(JSON格式)
  is_open: int,               // 是否营业
  create_time: timestamp,     // 创建时间
  update_time: timestamp      // 更新时间
}

Token表 (token)

{
  id: int,                    // Token ID
  appId: varchar(50),         // 小程序AppID
  remark: varchar(2000),      // Access Token
  exp: bigint,                // 过期时间
  create_time: timestamp,     // 创建时间
  update_time: timestamp      // 更新时间
}

订单状态说明

状态码状态名称说明
0已提交用户提交预约,等待接单
1已接单管理员已接单,等待上门
2已完成回收完成
3已取消用户取消订单
4已拒绝管理员拒绝订单

垃圾分类

分类名称回收价格(元/kg)
纸类1
金属2
塑料3

运行环境要求

后端环境

  • Node.js 10.0+
  • MySQL 5.7+
  • npm 或 yarn

小程序端

  • 微信开发者工具(最新稳定版)
  • 基础库版本 2.19.0+
  • 需要有效的AppID

快速开始

1. 数据库配置

  1. 创建MySQL数据库
CREATE DATABASE lajihuishou CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  1. 导入数据库文件
mysql -u root -p lajihuishou < lajihuishou.sql
  1. 修改数据库配置 编辑 egg/config/config.default.js
config.mysql = {
  client: {
    host: 'localhost',
    port: '3306',
    user: 'root',
    password: 'root', // 修改为你的密码
    database: 'lajihuishou',
  },
};

2. 启动后端服务

# 进入后端目录
cd egg

# 安装依赖
npm install

# 启动服务(开发模式)
npm run dev

后端服务默认运行在 http://localhost:8392

3. 运行小程序

  1. 打开微信开发者工具
  2. 选择"导入项目"
  3. 选择 min 目录
  4. 填入AppID(可使用测试号)
  5. 点击"导入"

4. 配置小程序API地址

编辑 min/services/request.js,修改API基础地址:

const baseUrl = 'http://localhost:8392'; // 修改为你的后端地址

5. 构建npm

在微信开发者工具中:

  1. 点击"工具" -> "构建npm"
  2. 等待构建完成

默认账号

小程序端

  • 支持微信授权登录
  • 管理员权限需在数据库中设置 is_admin = 99is_admin = 32

管理员权限说明

字段说明
is_admin99超级管理员
is_admin32二级管理员
is_admin0普通用户
is_user1可访问用户列表
is_order1可访问订单列表
is_setting1可访问系统配置

界面预览

项目包含思维导图文件:

  • 垃圾上门回收小程序.xmind - 项目功能结构图

扩展建议

如需进一步完善项目,可考虑以下扩展:

  1. 地图定位:集成地图API,显示回收员位置
  2. 消息推送:订单状态变更推送通知
  3. 支付功能:集成微信支付,支持在线结算
  4. 积分系统:回收积分累计和兑换
  5. 数据统计:回收数据分析和报表
  6. 回收员端:开发回收员专用小程序
  7. 环保知识:添加更多垃圾分类知识
  8. 预约时段:更精细的时间段选择

注意事项

  1. 本项目为学习演示项目,部分数据为模拟数据
  2. 生产环境部署需要配置HTTPS
  3. 小程序上线需要完成微信认证
  4. 建议定期备份数据库数据

常见问题

Q: 数据库连接失败?

A: 检查MySQL服务是否启动,数据库配置是否正确

Q: 小程序无法请求后端?

A: 检查request.js中的baseUrl配置,开发时需在微信开发者工具中关闭"不校验合法域名"

Q: 管理员功能无法访问?

A: 确认数据库中users表对应用户的is_admin字段值为99或32

Q: TDesign组件不显示?

A: 确保已执行"构建npm"操作

许可证

本项目仅供学习交流使用,请勿用于商业用途。

获取完整源码

技术分类

包含内容

完整源码
项目说明文档
演示材料

适合方向

适合 Node.js + Egg.js + 微信小程序毕业设计,面向环保回收、预约下单与系统配置管理的计算机、环境相关专业学生。

关于 AI源码

AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。

QQ: 861077046
邮箱: 861077046@qq.com
已帮助 77+ 位同学完成选题参考
问能不能做我的题目

相关推荐

查看全部 →
社区论坛系统
高级

社区论坛系统

Spring Boot+Vue 豆宝社区论坛系统,类似简版掘金,实现注册登录、发帖回帖、评论关注与用户中心,集成 Vditor Markdown 编辑器与 JWT 认证,支持暗黑模式,适合 Java 社区类毕业设计。

SpringBootVue2MySQL
4.883
宠物领养小程序
高级·新上架

宠物领养小程序

宠物领养小程序毕业设计,Spring Boot 后端 + 微信原生小程序 + Vue 管理后台,覆盖宠物发布、领养申请审核、宠物圈社交与微信登录全流程。

SpringBoot小程序Vue2+1
4.822
本地生活小程序
进阶

本地生活小程序

微信小程序原生 O2O 本地生活平台,Skyline 渲染引擎,含餐厅推荐与地图定位、招聘、48 项生活服务分类与近期活动收藏,适合小程序开发类毕业设计。

小程序
4.869
美食之家小程序
进阶

美食之家小程序

美食菜谱分享微信小程序,纯前端 Mock 实现分类浏览、菜谱详情、评论互动与用户发布,Storage 持久化收藏与评论,橙红美食主题 UI,适合小程序社交类毕业设计。

小程序
4.881
乐龄生活养老服务小程序
进阶

乐龄生活养老服务小程序

乐龄生活养老服务微信小程序,涵盖养老院查询、居家服务预约、社区活动报名、健康资讯与收藏管理,纯前端 Mock,蓝色清新 UI,适合养老服务类毕业设计。

小程序
4.851
绿行回收小程序
进阶

绿行回收小程序

绿行回收垃圾分类微信小程序,含智能分类查询、回收站点地图、上门回收预约与环保知识科普,集成地图组件,绿色 UI,适合环保类毕业设计。

小程序
4.894