AI源码
AI源码AI 精选 · 优质源码 · 助力学习

垃圾上门回收小程序

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

评分:4.8/5.0
销量:77
发布:2025/12/2
难度:L2 进阶级
💬 联系咨询观看视频介绍
永久使用权限
免费更新维护
技术支持服务

项目封面

截图 1

项目说明

垃圾上门回收小程序

项目简介

这是一个完整的垃圾上门回收服务平台,包含微信小程序端。系统实现了垃圾分类回收预约、订单管理、地址管理、系统配置等核心功能,采用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"操作

许可证

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

技术分类

包含内容

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

适用人群

学习参考与二次开发

关于 AI源码

AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。

QQ: 861077046
邮箱: 861077046@qq.com
已服务 77+ 位用户
立即咨询

相关推荐

查看全部 →
本地生活小程序
小程序
进阶

本地生活小程序

本项目是一个基于微信小程序原生开发的本地生活服务平台,提供餐厅推荐、招聘信息、生活服务分类、近期活动展示等功能,是一个典型的O2O本地生活服务类小程序。

小程序
4.869
电影购票网站
HTML
NEW
进阶

电影购票网站

基于原生 HTML、CSS、JavaScript 实现的 PC 端电影在线购票演示网站。数据使用本地 Mock 模拟,订单与座位占用状态通过浏览器 持久化,无需后端服务,直接用浏览器打开 即可运行。

HTML大作业
4.869
家乡介绍小程序
小程序
进阶

家乡介绍小程序

这是一个家乡文化展示与旅游推荐的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目以广东省惠州市惠东县为示例,完整实现了景点浏览、美食推荐、乡镇介绍、历史回顾、收藏管理等核心功能,适合作为微信小程序开发学习项目或计算机设计参考。

小程序
4.824
乡村振兴三农小程序
小程序
进阶

乡村振兴三农小程序

这是一个乡村振兴与三农服务的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目完整实现了政策解读、农业科技、数字乡村、乡村旅游、农产品展销、乡风文明、人才振兴、基层党建、经验分享等核心功能模块,适合作为微信小程序开发学习项目或计算机设计参考。

小程序
4.889
图书借阅小程序
Node
进阶

图书借阅小程序

这是一个图书借阅管理的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目完整实现了图书浏览、分类筛选、搜索查询、收藏管理、借阅下单、订单管理等核心功能,适合作为微信小程序开发学习项目或计算机设计参考。

Node小程序Vue2+1
4.865
物业管理系统
Node
进阶

物业管理系统

这是一个完整的智慧社区物业管理平台,包含H5移动端和PC管理后台。系统实现了通知公告、社区活动、访客管理、报修服务、失物招领、投诉建议、二手市场、分享墙、在线聊天等核心功能,采用前后端分离架构,适合作为Vue全栈开发学习项目或计算机设计参考。

NodeVue2MySQL
4.832