Roomie 是一个专为家庭和同住成员设计的协同生活小程序,提供一个共享的生活协同空间。成员加入同一个"同屋"后,可以一起记录家庭清单、安排日程、查看动态,让家庭事务不再分散在聊天工具中。
| 版本 | 日期 | 主题 | 说明 |
|---|---|---|---|
| v2.1 | 2026-06 | 账单导入 | 微信 / 支付宝账单上传,预览确认后写入同屋账本 |
| v2.0 | 2026-06 | 生日与提醒 | 主题换肤、家人生日、多渠道提醒、日程与消息中心 |
支持从微信、支付宝导出官方账单文件,先预览、再确认 导入同屋账本:
- 支持
.csv/.xlsx,页面内提供官方导出路径指引 - 自动识别 重复交易,避免重复入账
- 导入前可修改 分类、支付方式
- 待检查 提示、同商户批量改分类、记住商户规则
- 导入完成后展示成功 / 重复 / 跳过 / 失败统计
📖 用户使用说明(含界面截图):docs/ledger-import-features.md
本期已实现 生日与提醒 相关能力,包含主题换肤、家人生日录入、提醒规则、多渠道提醒、日程页与消息中心等。
📖 功能说明:docs/birthday-reminder-features.md
- 创建家庭清单(购物清单、待办事项、任务分配)
- 任务分配给成员
- 任务状态更新(待完成、进行中、已完成)
- 清单分类和标签
- 同屋共享账本,记录收支流水
- 账单导入(v2.1):上传微信 / 支付宝官方导出文件
- 解析预览、重复识别、分类与支付方式编辑
- 详见 账单导入使用说明
- 家人生日录入(公历 / 农历、闰月、记录预览)
- 共享家庭日程与生日统一管理
- 提醒规则配置(开关、提醒时间、提前天数)
- 多渠道提醒(小程序内提醒 + 微信生日订阅)
- 日程页展示提醒状态,支持补授权
- 消息中心独立展示生日 / 日程提醒卡片
- 6 套预设主题:经典靛蓝、清新翡翠、浪漫玫瑰、温暖琥珀、极客之夜、幻紫星云
- 一键切换:生日 / 提醒相关界面同步变色
- 实时切换:无闪烁切换效果
- 全局应用:颜色和图片即时生效
- 个人信息管理
- 主题设置(换肤功能)
- 通知与消息中心
- 偏好设置
- 框架: uni-app x (Vue 3 + TypeScript)
- 状态管理: Pinia
- 网络请求: 自定义HTTP封装
- 主题系统: 自定义主题管理器
- UI组件: 自定义组件库
Roomie/
├── common/ # 公共模块
│ ├── api/ # API接口封装
│ ├── config/ # 配置文件
│ ├── themes/ # 主题系统
│ └── utils/ # 工具函数
├── components/ # UI组件
├── docs/ # 功能说明文档
│ └── images/import/ # 账单导入界面截图
├── pages/ # 页面文件
├── store/ # 状态管理
├── types/ # 类型定义
└── static/ # 静态资源
- Node.js >= 16
- uni-app CLI
- 微信开发者工具
npm installnpm run dev:mp-weixinnpm run dev:h5npm run build:mp-weixin- 运行开发命令后,在微信开发者工具中导入项目
- 项目根目录为
Roomie/ - 请在
manifest.json与common/config/index.ts中将wxYOUR_WECHAT_APPID替换为你的微信小程序 AppID
- 启动页: 应用初始化和Logo展示
- 登录页: 点击"快速体验"进入应用
- 同屋选择: 创建或加入家庭空间
- 首页: 查看概览信息和快捷操作
- 我的页面: 访问主题设置和其他功能
在"我的"页面中:
- 点击"主题色"
- 选择 6 套预设主题之一
- 主题会实时应用到整个应用
- UI框架封装(基础组件和样式系统)
- 首页 tab 切换(首页 + 我的页面)
- 主题系统(6 套预设主题,全局颜色切换)
- 网络框架(API 封装和请求处理)
- 用户认证流程
- 基础页面框架
- 家人生日录入(公历 / 农历、闰月)
- 提醒规则与多渠道提醒(小程序内 + 微信订阅)
- 日程页(生日 / 行程列表、提醒状态)
- 消息中心(生日 / 日程提醒卡片)
- 弹窗交互优化(真机可滚动、底部按钮固定)
- 账单导入(微信 / 支付宝,预览确认入库)→ 使用说明
- 任务管理功能
- 动态功能
- 成员管理功能
- 数据持久化
- 后端 API 对接
import { switchTheme } from '@/common/themes'
// 切换到深色主题
switchTheme('dark')import { themeManager } from '@/common/themes'
const customTheme = {
name: '我的主题',
primaryColor: '#FF6B35',
secondaryColor: '#FF8C42',
backgroundColor: '#FFF8F3',
textColor: '#2D3748',
cardBackground: '#FFFFFF',
borderColor: '#FED7CC'
}
themeManager.createCustomTheme(customTheme)- 图标文件: tabBar图标需要在
static/icons/目录下准备 - 主题图片: 主题背景图和Logo需要在相应目录下准备
- API接口: 当前使用模拟数据,后续需要对接真实后端
- 数据存储: 目前使用本地存储,生产环境建议使用云存储
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
如有问题或建议,请通过以下方式联系:
- 需要完整代码和服务器代码,联系作者
- 邮箱: 903531306@qq.com
- 项目地址: [GitHub Repository]