# rentflow **Repository Path**: java_sxd/rentflow ## Basic Information - **Project Name**: rentflow - **Description**: 收租啦 RentFlow 是一款面向个人房东的开源收租管理工具,基于 uni-app 与 uview-plus 开发,支持房屋管理、租约记录、水电账单、押金流水、账单图片生成、优惠入口和自有服务器配置,配套 Node.js/MySQL 后端,适合自部署和二次开发。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-06-03 - **Last Updated**: 2026-06-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 收租啦 一个基于 uni-app、Vue 3 和 uview-plus 的收租管理应用,主要用于房东记录房屋、租约、账单、水电表读数、押金流水和应用版本更新。 项目最初使用 HBuilderX 开发,适合编译为 App,也可按 uni-app 支持的平台扩展到 H5 或小程序。 ## 开源地址 - GitHub: - 国内加速地址: ## 效果展示 ![收租啦 App 整体效果展示](./docs/images/app-overview.svg) ![收租流程展示](./docs/images/flow-overview.svg) ![自部署后端与服务器配置展示](./docs/images/server-config.svg) ## 功能特性 - 房屋管理:新增、编辑、搜索、删除房屋信息。 - 租约管理:记录租户、租金、押金、租期类型和起止日期。 - 账单管理:按房屋生成账单,记录水电读数、房租、其它费用和收款状态。 - 押金流水:记录押金收取、扣除、退还等变动。 - 费用统计:查看单个房屋或全部房屋的账单统计。 - 图片上传:支持水表、电表照片上传。 - App 更新:支持通过后端版本接口检查 wgt/apk 更新。 - 红包/链接页:可从后端拉取链接分组,也内置默认链接数据。 ## 技术栈 - uni-app - Vue 3 - uview-plus - HBuilderX - Node.js / Express - MySQL - Cloudflare R2 兼容 S3 存储 ## 目录结构 ```text . ├── App.vue # App 生命周期和更新检查 ├── main.js # Vue/uview-plus 初始化 ├── manifest.json # uni-app 应用配置 ├── pages.json # 页面和 tabBar 配置 ├── common/ │ └── api.js # 前端 API 封装 ├── pages/ │ ├── rent/ # 收租业务页面 │ ├── index/ # 链接/红包页面 │ └── gongju/ # 工具入口页面 ├── static/ # 静态资源 ├── uni_modules/ │ └── uview-plus/ # uview-plus 组件库 ├── unpackage/ │ └── res/icons/ # App 图标资源 └── server/ # Express 后端服务 ``` ## 前端运行 推荐使用 HBuilderX: 1. 克隆项目。 2. 使用 HBuilderX 打开项目根目录。 3. 确认 `uni_modules/uview-plus` 已存在。 4. 在 HBuilderX 中运行到浏览器、手机模拟器或真机。 5. 发行 App 时使用 HBuilderX 的 App 云打包或本地打包能力。 如果使用命令行方式,需要先安装依赖: ```bash npm install ``` 当前仓库的 `package.json` 主要保留 Vite/uni-app 相关依赖,具体运行脚本可按自己的构建方式补充。 ## 后端运行 后端位于 `server/`,提供房屋、账单、租约、押金、版本管理、链接管理和文件上传接口。 ```bash cd server npm install node server.js ``` 默认服务地址: ```text http://localhost:3000 ``` 首次进入房屋管理页时,应用会要求填写后端服务器地址。地址会保存到本地缓存,后续启动时会直接使用,无需重复填写。 请填写完整接口前缀,例如: ```text http://192.168.1.10:3000/api https://example.com/api https://example.com/api?device=a01 ``` 应用不会自动补全 `/api`。如果地址中携带查询参数,请把参数写在接口前缀后面,后续接口请求会自动保留这些参数。 ## 数据库 后端使用 MySQL。启动时会自动创建以下表: - `houses` - `bills` - `versions` - `links` - `leases` - `deposits` 请提前创建数据库和用户,并在后端配置中填写连接信息。 ## 开源前注意事项 开源到 GitHub 前,请务必处理以下内容: - 不要提交 `node_modules/`、`server/node_modules/`、`unpackage/cache/`、`unpackage/dist/`、`unpackage/release/`。 - 不要提交数据库密码、R2/S3 Access Key、Secret Key、真实域名等敏感信息。 - 建议把 `server/server.js` 中的数据库和对象存储配置改为环境变量。 - 如果使用自己的 AppID、小程序 AppID、图标和应用名称,请在 `manifest.json` 中替换。 - 如果后端和前端分开部署,请在 App 首次启动时填写对应的后端服务器地址。 推荐的环境变量示例: ```bash DB_HOST=localhost DB_USER=fangzu DB_PASSWORD=change-me DB_NAME=fangzu R2_ENDPOINT=https://example.r2.cloudflarestorage.com R2_ACCESS_KEY_ID=change-me R2_SECRET_ACCESS_KEY=change-me R2_BUCKET=your-bucket R2_PUBLIC_URL=https://pub.example.com ``` ## 打包产物 HBuilderX 会生成 `unpackage/cache`、`unpackage/dist`、`unpackage/release` 等目录。这些都是可再生成内容,不建议提交到 GitHub。 `unpackage/res/icons` 是当前 `manifest.json` 引用的 App 图标资源,需要保留,或移动到其它目录后同步修改 `manifest.json`。 ## License 本项目使用 MIT License。详见 [LICENSE](./LICENSE)。