时光记 - 微信小程序项目总结
1. 立项背景与目标
随着人们生活节奏加快,对个人事务管理、财务记录和情感表达的需求日益增长。本项目旨在开发一款无需后端服务器、完全本地化运行的微信小程序,帮助用户高效管理待办事项、记录日常收支、撰写心情日记,实现"一站式"个人生活记录,同时保护用户数据隐私。
2. 软件功能与核心模块
| 模块 | 功能描述 |
|------|----------|
| 首页| 智能问候、数据统计概览、快捷功能入口、最近日记预览 |
| 待办事项| 任务增删改查、优先级设置(高/中/低)、截止日期、状态筛选、完成统计 |
| 记账本 | 收入/支出记录、多分类管理、按月统计、收支结余计算、数据分组展示 |
| 心情日记| 日记撰写、心情选择(6种)、天气标记、标签系统、关键词搜索 |
| 个人中心| 数据统计、主题切换、数据备份导出/导入、震动反馈设置、数据清除 |
3. 业务流程与功能路径
启动小程序 → 首页(查看统计概览)
├── 快捷功能 → 一键跳转各功能模块
├── 待办事项 → 添加/编辑/完成/删除任务 → 本地存储
├── 记账本 → 选择类型 → 输入金额 → 选择分类 → 保存记录
├── 心情日记 → 写日记 → 选择心情/天气 → 添加标签 → 保存
└── 个人中心 → 数据管理/主题设置/备份导出
数据流向:用户操作 → JS逻辑处理 → StorageManager存储 → wx.setStorageSync本地持久化 → 页面数据刷新
3. 整体架构与设计思路
架构设计:
├── pages/ # 页面层(5个Tab页)
├── components/ # 组件层(自定义TabBar)
├── utils/ # 工具层(数据管理、工具函数)
├── styles/ # 样式层(主题变量、动画库)
└── assets/ # 资源层(图标等)
```
**技术栈**:
| 层级 | 技术方案 |
|------|----------|
| 前端框架 | 微信小程序原生框架(WXML/WXSS/JS) |
| 数据存储 | wx.setStorageSync / wx.getStorageSync |
| 状态管理 | Page.data 响应式数据绑定 |
| 样式方案 | CSS变量主题系统 + 渐变色设计 |
| 动画效果 | WXSS @keyframes 动画库 |
设计理念:采用**模块化设计**,数据管理器封装为独立类,实现业务逻辑与视图分离;使用CSS变量实现主题系统,便于后期扩展深色模式。
5. "我"负责模块与结果
本人独立完成了小程序的**全部开发工作:
| 工作内容 | 完成情况 |
|----------|----------|
| 项目架构搭建 | ✅ 完成 |
| 5个核心页面开发 | ✅ 完成 |
| 本地数据存储系统 | ✅ 完成 |
| 自定义TabBar组件 | ✅ 完成 |
| 主题样式系统 | ✅ 完成 |
| 动画效果库 | ✅ 完成 |
| 数据导入/导出功能 | ✅ 完成 |
最终成果:一款功能完整、界面美观、可独立运行的微信小程序,无需任何后端API支持。
6. 遇到的难点与解决方案
| 难点 | 解决方案 |
|------|----------|
| **自定义TabBar图标依赖** | 使用Emoji字符替代图片资源,避免资源加载问题 |
| **WXML标签嵌套错误** | 严格遵循XML语法规范,逐层检查标签闭合,重构文件结构 |
| **WXSS被WXML覆盖** | 建立文件类型检查机制,确保样式文件使用纯CSS语法 |
| **数据持久化方案** | 封装StorageManager统一管理,支持JSON序列化存储复杂对象 |
| **心情/天气图标动态显示** | 在JS层建立映射表,数据加载时预计算icon属性 |
| **弃用API兼容** | 将`substr`替换为`substring`,确保代码符合最新规范 |
| **多端适配** | 使用rpx单位 + env(safe-area-inset-bottom)适配刘海屏 |