桌面日历软件

桌面日历软件

项目概述

这是一个基于 Electron 框架开发的跨平台桌面日历应用,提供直观的日历视图、事件管理、节假日显示和数据同步功能。

主要特性

  • 📅 多视图支持:月视图、周视图、日视图和年视图
  • 🎯 事件管理:添加、编辑、删除事件,支持分类和提醒
  • 🎉 节假日显示:内置常见节假日,支持自定义节假日
  • 💾 数据存储:本地存储,支持导出/导入 JSON 备份
  • 🌙 主题切换:支持浅色和深色模式
  • 🌍 跨平台:支持 Windows、macOS 和 Linux

技术栈

  • 前端:HTML5 + CSS3 + JavaScript
  • 框架:Electron ^28.0.0
  • 构建工具:electron-builder ^24.0.0
  • 存储:electron-store ^8.0.0

快速开始

环境要求

  • Node.js v16.0.0 或更高版本
  • npm 6.0.0 或更高版本

安装与运行

  1. 克隆项目
git clone https://gitee.com/zhang.wei/desktop-calendar.git
cd calendar
  1. 安装依赖
npm install
  1. 启动开发模式
npm start
  1. 打包应用
# 打包所有平台
npm run build

# 打包特定平台
npm run build -- --win    # Windows
npm run build -- --mac    # macOS
npm run build -- --linux  # Linux

项目结构

calendar/
├── electron/             # Electron 主进程和预加载脚本
│   ├── main.js          # 主进程:创建窗口和处理系统事件
│   └── preload.js       # 预加载脚本:桥接主进程和渲染进程
├── src/                  # 前端源码
│   ├── css/              # 样式文件
│   │   └── style.css    # 主样式文件
│   ├── js/               # 核心逻辑
│   │   ├── app.js        # 应用主逻辑
│   │   ├── calendar.js   # 日历核心功能
│   │   ├── events.js     # 事件管理
│   │   ├── settings.js   # 设置管理
│   │   └── storage.js    # 存储管理
│   └── index.html        # 主界面
├── calendar-app/         # 备用应用结构
├── dist/                 # 打包输出目录
├── package.json          # 项目配置
├── README.md             # 本文档
└── 打包部署指南.md        # 打包与部署指南

核心功能

1. 日历视图

  • 月视图:显示当月所有日期,突出显示当前日期和包含事件的日期
  • 周视图:按周显示日期,适合查看一周的安排
  • 日视图:详细显示当天的事件,按时间顺序排列
  • 年视图:显示全年月份概览,快速导航到特定月份

2. 事件管理

  • 添加事件:设置标题、时间、地点、描述和分类
  • 编辑事件:修改现有事件的所有属性
  • 删除事件:移除不需要的事件
  • 事件分类:支持工作、个人、重要等分类,不同分类显示不同颜色
  • 事件提醒:设置提前提醒时间,支持系统通知
  • 重复事件:支持每天、每周、每月、每年重复

3. 节假日显示

  • 内置节假日:包含常见的法定节假日
  • 自定义节假日:支持添加和管理自定义节假日

4. 数据管理

  • 本地存储:使用 electron-store 进行本地数据持久化
  • 数据导出:导出为 JSON 文件,用于备份
  • 数据导入:从 JSON 文件导入数据,用于恢复或迁移

5. 设置功能

  • 主题设置:切换浅色/深色模式
  • 语言设置:支持多语言(目前仅支持中文)
  • 提醒设置:配置提醒声音和方式
  • 默认视图:设置启动时默认显示的视图

开发指南

启动开发模式

npm start

代码规范

  • 使用 2 个空格进行缩进
  • 变量命名使用驼峰命名法
  • 函数命名使用动词开头的驼峰命名法
  • 常量使用全大写字母,单词间用下划线分隔
  • 注释使用 JSDoc 格式

调试技巧

  • 主进程调试:在 package.json 中添加 --inspect 标志
  • 渲染进程调试:在应用中按 Ctrl+Shift+I 打开开发者工具
  • 日志输出:使用 console.log() 在控制台查看输出

构建与发布

构建配置

构建配置在 package.json 文件的 build 字段中定义:

"build": {
  "appId": "com.desktop.calendar",
  "productName": "Desktop Calendar",
  "directories": {
    "output": "dist"
  },
  "win": {
    "target": ["nsis", "portable"]
  },
  "mac": {
    "target": "dmg"
  },
  "linux": {
    "target": ["deb", "rpm", "AppImage"]
  }
}

构建命令

# 构建所有平台
npm run build

# 构建特定平台
npm run build -- --win    # Windows
npm run build -- --mac    # macOS
npm run build -- --linux  # Linux

发布流程

  1. 更新版本号(在 package.json 中)
  2. 运行构建命令
  3. 测试构建产物
  4. 发布到相关平台

贡献指南

提交代码

  1. Fork 项目
  2. 创建功能分支
  3. 提交更改
  4. 创建 Pull Request

报告问题

在 GitHub Issues 中报告问题时,请提供以下信息:

  • 操作系统版本
  • 应用版本
  • 具体问题描述
  • 重现步骤
  • 相关截图(如果有)

功能请求

欢迎提出新功能请求,在 GitHub Issues 中详细描述您希望添加的功能。

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

致谢

联系方式

  • Q:372806800

更新日志

v1.0.0 (2026-02-24)

  • ✨ 初始版本发布
  • 📅 实现月视图、周视图、日视图和年视图
  • 🎯 实现事件管理功能
  • 🎉 实现节假日显示
  • 💾 实现本地存储和数据导出/导入
  • 🌙 实现主题切换
  • 🌍 支持 Windows、macOS 和 Linux

注意:本项目仍在开发中,部分功能可能会有变化。

祝您使用愉快! 📅

posted @ 2026-03-09 16:22  风来风往风伤(TiAmo)  阅读(49)  评论(0)    收藏  举报