Thanks to visit codestin.com
Credit goes to github.com

Skip to content

super12134/house

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

房屋租赁管理系统

中介内部房屋租赁数据管理系统,基于 Vue 3 + Node.js + MySQL 构建,Docker 容器化部署。


功能模块

1. 房源管理(Houses)

  • 楼栋布局:A栋(电梯楼)、B栋(步梯楼),每栋 8 层,每层 5 间
  • 房源属性:门牌号(唯一)、类型(电梯楼/步梯楼)、区域、状态
  • 房源状态:未租、已租、待出租、已预定、整租
  • 基础操作:新增、编辑、删除房源;手动切换状态和设置入住/退租日期
  • 查询筛选:按楼栋、按状态筛选
  • 可视化布局:以楼层网格形式展示所有房间,颜色区分状态(白=未租、黄=已预定、绿=已租)

2. 租金管理(Rent Records)

  • 数据规则:按月记录租金流水,每条流水关联对应房源
  • 字段:租金金额、收款状态(已收/未收)、费用月份
  • 操作:新增、编辑、删除租金记录,列表分页展示

3. 数据统计(Statistics)

  • 当月已收租金总额
  • 当月未收租金总额
  • 5 日内待收租金明细列表

4. 操作日志(Logs)

  • 记录房源(增/改/删)、租金记录(增/改/删)所有操作痕迹
  • 按时间倒序展示,支持按模块筛选

5. 日程看板(Schedule)

  • 展示未来 5 天内的入住/退租事项
  • 即将入住列表、即将退租列表

技术栈

层级 技术
前端 Vue 3 + Element Plus + Vite
后端 Node.js + Express
数据库 MySQL 8.0
容器化 Docker + Docker Compose
前端服务 Nginx(静态文件 + 反向代理)

快速启动

前置要求

使用 Docker 部署(推荐)

# 克隆项目后进入目录,直接启动所有服务
docker compose up -d

# 查看运行状态
docker compose ps

# 查看日志
docker compose logs -f frontend    # 前端日志
docker compose logs -f backend     # 后端日志
docker compose logs -f mysql       # 数据库日志

服务启动后访问:

本地开发

# 1. 启动 MySQL(Docker)
docker compose up -d mysql

# 2. 启动后端
cd backend
npm install
npm run dev

# 3. 启动前端
cd frontend
npm install
npm run dev

本地开发时前端访问 http://localhost:5173(Vite 开发服务器,自动代理 API 到后端)。


项目结构

├── docker-compose.yml        # Docker 编排配置
├── init.sql                  # 数据库初始化脚本
├── README.md
├── 需求文档.txt
│
├── backend/                  # 后端服务
│   ├── Dockerfile
│   ├── package.json
│   └── src/
│       ├── app.js            # Express 应用入口
│       ├── routes/
│       │   ├── houses.js     # 房源 CRUD API
│       │   ├── rentRecords.js# 租金记录 CRUD API
│       │   ├── statistics.js # 统计 API
│       │   └── logs.js       # 操作日志 API
│       └── middleware/
│           ├── logger.js     # 日志中间件
│           └── errorHandler.js# 错误处理中间件
│
├── frontend/                 # 前端应用
│   ├── Dockerfile
│   ├── nginx.conf            # Nginx 配置(生产环境)
│   ├── vite.config.js        # Vite 配置
│   ├── package.json
│   └── src/
│       ├── main.js           # Vue 应用入口
│       ├── App.vue           # 根组件
│       ├── api/
│       │   └── index.js      # API 请求封装
│       ├── router/
│       │   └── index.js      # 路由配置
│       └── views/
│           ├── HousesView.vue      # 房源管理
│           ├── RentRecordsView.vue  # 租金管理
│           ├── StatisticsView.vue   # 数据统计
│           ├── LogsView.vue         # 操作日志
│           └── ScheduleView.vue     # 日程看板
│
└── scripts/
    └── batch-add-houses.js   # 批量新增房源脚本

端口映射

服务 容器内端口 宿主机端口
前端 80 80
后端 API 3000 3000
MySQL 3306 3307

批量新增房源

项目提供了批量新增房源的脚本,用于快速初始化 A、B 两栋的房源数据:

# 安装依赖后执行
cd scripts
npm install mysql2
node batch-add-houses.js

脚本逻辑:

  • A栋(电梯楼):A-1-01 ~ A-8-05,共 40 间
  • B栋(步梯楼):B-1-01 ~ B-8-05,共 40 间
  • 初始状态全部为"待出租"

也可以直接在 MySQL 中执行看板来生成数据。


数据库

表结构

houses(房源表)

字段 类型 说明
id INT AUTO_INCREMENT PRIMARY KEY 主键
door_number VARCHAR(50) UNIQUE 门牌号
type ENUM('电梯楼','步梯楼') 类型
area VARCHAR(100) 区域
status ENUM('整租','已租','待出租','已预定','未租') 房源状态
checkin_date DATE NULL 入住日期
checkout_date DATE NULL 退租日期

rent_records(租金记录表)

字段 类型 说明
id INT AUTO_INCREMENT PRIMARY KEY 主键
house_id INT 关联房源 ID
amount DECIMAL(10,2) 租金金额
rent_month VARCHAR(7) 费用月份(YYYY-MM)
status ENUM('已收','未收') 收款状态

operation_logs(操作日志表)

字段 类型 说明
id INT AUTO_INCREMENT 主键
module VARCHAR(50) 操作模块
action VARCHAR(50) 操作类型
target_id INT 操作对象 ID
detail TEXT 操作详情

常见问题

页面无法访问

# 检查容器是否正常运行
docker compose ps

# 查看前端日志
docker compose logs frontend

# 重启前端(代码修改后需要重新构建)
docker compose build frontend
docker compose up -d frontend

数据库连接失败

# 确认 MySQL 容器健康
docker compose ps mysql

# 查看 MySQL 日志
docker compose logs mysql

# 手动连接测试
docker exec -it house-rental-mysql mysql -uroot -proot123 house_rental

修改代码不生效

前端代码打包在 Docker 镜像中,修改后需要重新构建:

docker compose build frontend
docker compose up -d frontend

后端代码同样需要重建:

docker compose build backend
docker compose up -d backend

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages