来源:AI开发日志公众号专辑「Build Your Own X With AI」
原文链接:https://mp.weixin.qq.com/s?__biz=MzUxMjg3MjE2OA==&mid=2247485778&idx=1&sn=67d6be79a24ff48c9f5a4013d536455a&chksm=f95c92d5ce2b1bc3b42294406d5e0b805398388a71bb4f2db3dd69ad01bd4bdacc902d6d762a#rd

50天重启人生-桌面日历应用

一个美观的桌面日历应用,可以作为桌面背景运行,提供年历视图和待办事项管理功能。

截图

功能特性

🗓️ 年历视图: 显示完整年度日历,左侧展示所有月份

✅ 待办事项管理: 右侧待办事项列表,支持添加、完成、删除操作

🌙 明暗主题: 支持明暗主题切换,适应不同使用场景

💾 数据持久化: 自动保存待办事项和主题设置到本地存储

📅 日期交互: 点击日历中的日期,待办事项会跳转到对应日期

🖥️ 桌面背景: 应用运行后作为桌面背景,其他应用在其上方显示

📱 响应式设计: 适配不同屏幕尺寸

技术栈

Frontend

React 18 + CSS3

Desktop

Electron 26

构建工具

React Scripts

包管理

npm

安装和运行

前置要求

Node.js (推荐 v16 或更高版本)

npm

开发模式

安装依赖:

npm install

启动开发服务器(仅 React 应用):

npm run dev-react

访问 http://localhost:3000 查看应用

启动完整桌面应用(需要 Electron 正确安装):

npm run dev

生产构建

构建 React 应用:

npm run build

构建桌面应用:

npm run build-electron

打包分发:

npm run dist

使用说明

基本操作

查看日历

应用启动后,左侧显示当前年度的完整日历

添加待办事项

在右侧输入框中输入内容,按回车或点击 + 按钮添加

完成待办事项

点击待办事项前的复选框标记为完成

删除待办事项

鼠标悬停在待办事项上,点击右侧的 × 按钮删除

切换主题

点击右上角的主题切换按钮(🌙/☀️)

日期交互

点击日历中的任意日期,右侧待办事项会切换到该日期

今天的日期会有特殊标记

有待办事项的日期会显示小圆点指示器

桌面背景模式

当作为桌面应用运行时:

应用会全屏显示在桌面背景层

其他应用窗口会显示在日历应用上方

仍可以与日历进行交互(点击、输入等)

项目结构

Calendar/

├── public/                 # 静态资源

├── src/

│   ├── components/        # React 组件

│   │   ├── Calendar.js    # 日历组件

│   │   ├── TodoList.js    # 待办事项组件

│   │   └── ThemeToggle.js # 主题切换组件

│   ├── styles/            # CSS 样式文件

│   │   ├── App.css        # 全局样式

│   │   ├── Calendar.css   # 日历样式

│   │   ├── TodoList.css   # 待办事项样式

│   │   └── ThemeToggle.css # 主题切换样式

│   ├── main.js            # Electron 主进程

│   └── index.js           # React 入口文件

├── package.json           # 项目配置

└── README.md             # 说明文档

自定义配置

主题颜色

可以在 CSS 文件中修改主题颜色:

深色主题:主要使用黑色渐变背景,红色强调色 (#ff6b6b)

浅色主题:主要使用白色渐变背景,蓝色强调色 (#e74c3c)

桌面行为

在 src/main.js 中可以调整桌面背景行为:

transparent

背景透明度

alwaysOnTop

是否总在最上层

focusable

是否可以获得焦点

故障排除

Electron 安装问题

如果遇到 Electron 安装问题,尝试:

rm -rf node_modules/electron

npm install electron

网络问题

如果在网络受限环境中,可以:

使用淘宝镜像:npm config set registry https://registry.npmmirror.com

或仅运行 React 版本:npm run dev-react

开发计划

[ ] 添加更多待办事项功能(优先级、分类、提醒)

[ ] 支持导入/导出待办事项

[ ] 添加快捷键支持

[ ] 支持多年份切换

[ ] 添加天气信息显示

[ ] 支持自定义背景图片

贡献

欢迎提交 Issue 和 Pull Request!

许可证

MIT License

image-1

image-2

image-3