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

宿舍洗衣房自助预约小程序

面向高校宿舍的洗衣房自助预约全栈系统:学生端微信小程序按时段预约洗衣机/烘干机、加购耗材、钱包支付;管理员通过 Vue3 后台维护洗衣房与设备、处理订单、发布公告并查看运营数据,后端为 Express + MySQL。

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

项目封面

截图 1

项目说明

宿舍洗衣房自助预约小程序

项目介绍

本项目是面向高校宿舍场景的洗衣房自助预约系统,覆盖学生端预约使用与管理端日常运营。学生可在微信小程序中查看楼栋洗衣房、按日期与小时时段预约洗衣机 / 烘干机,按需加购洗涤耗材,通过钱包余额完成支付;管理员通过 PC 后台维护洗衣房与设备、处理预约订单、发布公告并查看运营数据。适合作为计算机设计 / 课程设计的本地全栈演示项目。

技术组成

  • 后端:Node.js + Express + MySQL
  • 管理后台:Vue 3 + Element Plus + Vite + ECharts
  • 客户端:微信原生小程序

一、小程序端功能(学生)

1. 首页与洗衣房浏览

  • 展示运营配置的首页 Banner 轮播
  • 按列表展示各楼栋洗衣房(封面、名称、位置、开放时间)
  • 进入详情前校验登录状态,未登录跳转授权页

2. 洗衣房详情与时段预约

  • 查看洗衣房多图封面、开放时间、位置说明
  • 支持收藏 / 取消收藏当前洗衣房
  • 周历选择预约日期(可切换上一周 / 下一周)
  • 设备列表支持筛选:全部 / 洗衣机 / 烘干机
  • 按时段格子展示设备空闲情况,三种状态区分:
    • 可选:可点击选中
    • 已约:他人已占用
    • 过期:当日已过去的时段
  • 选定设备与一个或多个小时时段后进入确认页

3. 确认预约与支付

  • 展示预约设备、日期时段与设备费用
  • 可选加购洗涤耗材(按次计费,可多选)
  • 预约人姓名、手机号直接读取个人资料,无需重复填写
  • 支持会员折扣计价(VIP / SVIP)
  • 使用钱包余额确认支付并生成预约订单

4. 公告

  • TabBar「公告」查看各洗衣房相关通知列表
  • 进入详情阅读富文本内容(支持图文)

5. 我的

  • 展示头像、昵称、会员等级
  • 入口包括:个人信息、洗衣钱包、我的预约、问题反馈、收藏洗衣房

6. 个人信息

  • 更换微信头像
  • 维护姓名、昵称、手机号、性别
  • 查看当前会员等级

7. 洗衣钱包

  • 查看账户余额
  • 在线充值
  • 查看充值、消费、退款等账户变动记录
  • 累计充值达到门槛后自动升级会员:
    • 累计充值 ≥ 100:VIP(预约约 9.5 折)
    • 累计充值 ≥ 500:SVIP(预约约 9 折)

8. 我的预约

  • 按状态查看预约订单(待付款 / 已付款 / 已取消 / 已完成等)
  • 进入详情查看设备、时段、费用、耗材等信息
  • 支持取消预约等订单操作(按业务规则处理退款)

9. 收藏洗衣房

  • 查看已收藏洗衣房列表,可快速再次进入预约

10. 问题反馈

  • 提交投诉建议:上传截图、填写问题描述与联系邮箱
  • 查看历史提交记录及管理员回复

11. 登录授权

  • 未登录时引导微信快捷登录,获取用户身份后进入预约流程

二、管理后台功能(管理员)

1. 登录与权限

  • 管理员账号密码登录
  • 登录后进入带侧栏菜单的后台主框架

2. 数据概览

  • 展示核心运营数据(用户、订单、洗衣房等汇总)
  • 近几日预约趋势等图表,便于掌握使用情况

3. Banner 管理

  • 维护小程序首页轮播图
  • 支持上传图片、排序、启用 / 停用

4. 洗衣房管理

  • 新增 / 编辑 / 删除楼栋洗衣房
  • 维护名称、封面图、位置描述、开放时段

5. 设备管理

  • 为洗衣房配置洗衣机、烘干机
  • 维护设备名称、类型、小时单价、备注说明与图片

6. 耗材管理

  • 维护洗衣液、柔顺剂等可选加购项
  • 设置所属洗衣房、单价、说明与图片

7. 预约订单

  • 按状态、日期等条件查询学生预约单
  • 查看订单详情并完成核销 / 状态处理

8. 用户管理

  • 查看与编辑学生用户资料(姓名、昵称、手机号等)
  • 区分普通学生与管理员角色

9. 公告管理

  • 按洗衣房发布运营公告
  • 使用富文本编辑器编写内容,支持插图
  • 支持编辑、删除已有公告

10. 收藏统计

  • 查看用户收藏洗衣房的汇总情况

11. 问题反馈

  • 查看学生提交的反馈与截图信息
  • 对反馈进行回复

12. 充值记录

  • 查询钱包充值与相关流水,便于对账与运营统计

三、业务对象说明(便于理解功能边界)

名称含义
洗衣房按宿舍楼划分的洗衣场所
设备洗衣机或烘干机,按小时时段预约
耗材预约时可加购的洗涤用品
订单一次设备预约记录(含时段、费用、可选耗材)
钱包学生余额账户,用于充值与支付预约
公告面向学生的洗衣房通知
收藏学生对常用洗衣房的收藏
反馈学生提交的问题 / 投诉建议

目录结构

node-room-xiyiji-yuyue-min/                      # 项目根目录(管理后台 + 后端 + 小程序)
│
├── admin/                                      # PC 管理后台:洗衣房运营侧 Web 端
│   ├── index.html                              # Vite 挂载页,承载 #app
│   ├── jsconfig.json                           # IDE / 编译路径别名(@ → src)
│   ├── package.json                            # 后台依赖与 npm 脚本(dev / build)
│   ├── vite.config.js                          # 开发服务器、别名、依赖预构建等配置
│   └── src/                                    # 后台业务源码
│       ├── main.js                             # 创建 Vue 应用,注册路由 / Pinia / Element Plus
│       ├── App.vue                             # 根组件,仅承载路由出口
│       ├── api/                                # 与 Express 通信的接口层
│       │   ├── index.js                        # 各业务接口方法(登录、CRUD、统计等)
│       │   └── request.js                      # axios 实例、Token 拦截、上传地址、BASE_URL
│       ├── assets/                             # 静态样式资源
│       │   └── main.css                        # 全局基础样式(页面卡片、表格区等)
│       ├── components/                         # 可复用业务组件
│       │   └── components/
│       │       ├── Editor.vue                  # Quill 富文本(公告内容编辑、插图上传)
│       │       └── ImageListUpload.vue         # 多图 / 单图上传(封面、Banner 等)
│       ├── layouts/                            # 页面骨架布局
│       │   └── MainLayout.vue                  # 登录后主框架:左侧菜单 + 顶栏 + 内容区
│       ├── router/                             # 前端路由
│       │   └── index.js                        # 路由定义与登录鉴权跳转
│       ├── stores/                             # Pinia 状态
│       │   └── user.js                         # 管理员 Token、用户信息存取与退出
│       ├── utils/                              # 通用工具
│       │   ├── formatTime.js                   # 接口返回时间字段统一格式化展示
│       │   └── media.js                        # 图片相对路径 ↔ 完整访问地址转换
│       └── views/                              # 业务页面(与侧栏菜单一一对应)
│           ├── Login.vue                       # 管理员登录页
│           ├── Welcome.vue                     # 数据概览:统计卡片与预约趋势图表
│           ├── Banner.vue                      # 首页轮播 Banner 增删改查、启停、排序
│           ├── Shop.vue                        # 楼栋洗衣房信息与封面维护
│           ├── Cate.vue                        # 洗衣机 / 烘干机设备及单价维护
│           ├── Equ.vue                         # 洗涤耗材(洗衣液等)维护
│           ├── Order.vue                       # 预约订单查询与核销 / 状态处理
│           ├── User.vue                        # 学生用户资料维护
│           ├── News.vue                        # 洗衣房公告发布与富文本编辑
│           ├── Star.vue                        # 用户收藏洗衣房统计查看
│           ├── Question.vue                    # 用户问题反馈查看与回复
│           └── Paylist.vue                     # 钱包充值 / 消费流水查询
│
├── express/                                    # 后端 API 服务:供后台与小程序共用
│   ├── app.js                                  # 创建 Express、CORS、JWT、静态资源与错误处理
│   ├── package.json                            # 后端依赖与启动脚本(dev / prod)
│   ├── ecosystem.config.js                     # 生产环境 pm2 进程配置
│   ├── bin/
│   │   └── www                                 # HTTP 监听入口(默认端口 3564)
│   ├── config/                                 # 运行配置
│   │   ├── db.js                               # MySQL 连接参数(库名 / 账号 / 密码)
│   │   └── index.js                            # JWT 密钥、微信 APPID / APPSECRET 等
│   ├── util/                                   # 服务端工具
│   │   ├── index.js                            # 日期格式化、随机串等通用方法
│   │   └── wechat.js                           # 微信 code 换 openId 等登录辅助
│   ├── public/                                 # 对外可访问静态资源根目录
│   │   └── images/                             # 上传文件落盘目录(按业务分子目录)
│   │       ├── avatar/                         # 用户头像
│   │       ├── banner/                         # 首页 Banner 图
│   │       ├── shop/                           # 洗衣房封面图
│   │       ├── cate/                           # 设备图片
│   │       ├── equ/                            # 耗材图片
│   │       ├── news/                           # 公告正文插图
│   │       └── question/                       # 问题反馈截图
│   └── routes/                                 # 接口路由(按端拆分)
│       ├── index.js                            # 挂载 admin / web / upload 等子路由
│       ├── upload.js                           # 统一图片上传,返回相对路径
│       ├── paylistMid.js                       # 充值消费后写流水、更新余额的中间逻辑
│       ├── admin/                              # 管理后台专用接口(需管理员登录)
│       │   ├── index.js                        # admin 子路由汇总
│       │   ├── home.js                         # 概览统计、近几日趋势、排行等
│       │   ├── banner.js                       # Banner CRUD
│       │   ├── shop.js                         # 洗衣房 CRUD
│       │   ├── cate.js                         # 设备 CRUD(含洗涤 / 烘干类型)
│       │   ├── equ.js                          # 耗材 CRUD
│       │   ├── order.js                        # 订单列表、详情、状态变更
│       │   ├── user.js                         # 后台登录、用户列表与编辑
│       │   ├── news.js                         # 公告 CRUD
│       │   ├── star.js                         # 收藏数据查询
│       │   ├── question.js                     # 反馈列表、回复、删除
│       │   └── paylist.js                      # 充值流水查询
│       └── web/                                # 小程序端接口(学生侧)
│           ├── index.js                        # web 子路由汇总
│           ├── banner.js                       # 首页启用中的 Banner 列表
│           ├── shop.js                         # 洗衣房列表与详情
│           ├── cate.js                         # 某洗衣房下的设备列表
│           ├── equ.js                          # 某洗衣房下的可选耗材
│           ├── order.js                        # 下单、订单列表、取消 / 完成等
│           ├── user.js                         # 微信登录、资料查询与更新
│           ├── news.js                         # 公告列表与详情
│           ├── star.js                         # 收藏 / 取消收藏、收藏列表
│           ├── question.js                     # 提交反馈、我的反馈列表
│           ├── wallet.js                       # 钱包余额查询
│           ├── paylist.js                      # 钱包流水、充值入账
│           └── address.js                      # 地址相关(预留 / 辅助)
│
├── min/                                        # 微信原生小程序(学生端)
│   ├── app.js                                  # 小程序生命周期入口
│   ├── app.json                                # 页面注册、窗口主题、TabBar 配置
│   ├── app.wxss                                # 全局主题色、通用布局工具类
│   ├── project.config.json                     # 微信开发者工具工程配置
│   ├── project.private.config.json             # 本机私有配置(不建议提交敏感项)
│   ├── sitemap.json                            # 小程序索引配置
│   ├── components/                             # 自定义组件
│   │   ├── weekCalendar/                       # 周历:切换周、选择预约日期
│   │   │   ├── weekCalendar.js                 # 周数据计算与点击事件
│   │   │   ├── weekCalendar.json               # 组件声明
│   │   │   ├── weekCalendar.wxml               # 周历结构
│   │   │   └── weekCalendar.wxss               # 周历样式(选中日高亮)
│   │   └── wxParse/                            # 富文本渲染(公告 HTML 展示)
│   │       └── wxParse/
│   │           ├── wxParse.js                  # 组件逻辑
│   │           ├── wxParse.json
│   │           ├── wxParse.wxml                # 节点递归渲染模板
│   │           ├── wxParse.wxss
│   │           └── utils/                      # HTML 解析、转码等内部工具
│   ├── images/                                 # 本地静态图
│   │   ├── banner.jpg                          # 列表缺省封面占位图
│   │   ├── checked.png                         # 选中态图标
│   │   ├── right.png                           # 「我的」列表右箭头
│   │   ├── star.png / star1.png                # 未收藏 / 已收藏图标
│   │   └── tabbar/                             # 底部导航普通态 / 选中态图标
│   │       ├── index.png / index_active.png    # 「洗衣房」Tab
│   │       ├── news.png / news_active.png      # 「公告」Tab
│   │       └── my.png / my_active.png          # 「我的」Tab
│   ├── utils/                                  # 小程序工具层
│   │   ├── request.js                          # wx.request 封装、baseUrl、Token、时间字段处理
│   │   ├── api.js                              # 各业务请求方法(对接 express/web)
│   │   ├── util.js                             # 时间格式化、开放时段格子生成(可选/已约/过期)
│   │   ├── date.js                             # 本周 / 上下周日期列表
│   │   ├── media.js                            # 图片相对路径补全为可访问完整地址
│   │   ├── feedback.js                         # 统一 Toast、二次确认弹窗
│   │   └── markdown.js                         # Markdown 辅助(如有历史内容处理)
│   └── pages/                                  # 业务页面(每个目录含 js/json/wxml/wxss)
│       ├── index/                              # 首页:Banner 轮播 + 附近洗衣房列表
│       ├── detail/                             # 详情:封面、收藏、周历、设备筛选与时段预约
│       ├── comfirm/                            # 确认页:选耗材、读取个人资料、确认支付
│       ├── newsList/                           # 公告列表(TabBar)
│       ├── newsDetail/                         # 公告详情(富文本展示)
│       ├── my/                                 # 个人中心入口:钱包、订单、收藏、反馈等
│       ├── userInfo/                           # 个人信息编辑(头像、姓名、手机、性别等)
│       ├── wallet/                             # 钱包余额与账户变动记录
│       ├── walletAdd/                          # 钱包充值
│       ├── orderList/                          # 我的预约列表(按状态筛选)
│       ├── orderDetail/                        # 单笔预约详情与操作
│       ├── star/                               # 我收藏的洗衣房
│       ├── question/                           # 投诉建议提交 + 我的反馈记录
│       └── auth/                               # 未登录时的微信快捷登录引导
│
├── db_laundry_room.sql                         # 完整建库建表及初始演示数据脚本
├── init-db.sh                                  # 一键导入 SQL、创建数据库的辅助脚本
├── 演示材料/                                   # 答辩 / 演示用材料目录
├── 运行手册.md                                 # 运行环境与各端启动步骤说明
└── 项目说明.md                                 # 项目介绍与目录说明(本文档)

技术分类

包含内容

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

适用人群

学习参考与二次开发

关于 AI源码

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

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

相关推荐

查看全部 →