# agenda **Repository Path**: forestalphy/agenda ## Basic Information - **Project Name**: agenda - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-10 - **Last Updated**: 2026-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Agenda 一款基于 Vue 3 + TypeScript 开发的工作/学习用日程安排表软件,支持本地离线运行,具备日程管理和学期课表两大核心功能。 ## 功能特性 ### 日程模式 - **日历视图**:左侧月历,右侧单日日程 - **日程管理**:创建、编辑、删除日程 - **日程分类**:工作、学习、个人、其他分类标签 - **标签功能**:支持自定义标签 - **筛选功能**:按时间、分类、标签、状态、重要性筛选 - **已完成状态**:支持标记日程为已完成 - **重要日程**:特别关注的重要日程 - **数据导入/导出**:支持 JSON 格式 ### 课表模式 - **学期配置**:设置学期名称、第一周日期、总周数、节次时间 - **课程管理**:添加、编辑、删除学期课程 - **调课功能**:灵活的调课、临时课程添加功能 - **周视图**:按周显示课表,支持周数切换 - **颜色自定义**:每个课程可设置独立颜色 - **时间范围**:支持全学期或指定周数课程 - **多时间段**:一个课程可设置多个上课时间 - **课表设置**:随时修改学期配置和节次时间 ### 离线功能 - **本地存储**:使用 localStorage 持久化存储 - **数据备份**:支持导出/导入 JSON 格式日程 ### 用户体验 - **双模式切换**:日程模式和课表模式自由切换 - **响应式设计**:适配不同屏幕尺寸 - **友好界面**:现代化 UI 设计 ## 技术栈 - **前端框架**:Vue 3 + TypeScript - **构建工具**:Vite - **状态管理**:Pinia - **本地存储**:localStorage - **UI 组件库**:Element Plus - **日期处理**:Day.js ## 项目结构 ``` src/ ├── core/ # 核心功能 │ ├── event/ # 事件管理服务 │ └── storage/ # 存储管理 │ ├── storage.service.ts # 日程存储 │ └── timetable.storage.ts # 课表存储 ├── ui/ # UI 组件 │ └── components/ # 组件 │ ├── Calendar.vue # 月历组件 │ ├── EventForm.vue # 日程表单 │ ├── DashboardCard.vue # 仪表盘 │ ├── FilterPanel.vue # 筛选面板 │ └── timetable/ # 课表相关组件 │ ├── TimetableSetup.vue # 学期配置 │ ├── TimetableSettings.vue # 课表设置 │ ├── TimetableView.vue # 课表视图 │ ├── AddSemesterCourse.vue # 添加课程 │ ├── EditSemesterCourse.vue # 编辑课程 │ └── AddFreeCourse.vue # 调课功能 ├── types/ # 类型定义 │ ├── event.ts # 日程相关类型 │ └── timetable.ts # 课表相关类型 ├── stores/ # 状态管理 │ ├── event.ts # 日程状态 │ └── timetable.ts # 课表状态 ├── main.ts # 应用入口 └── App.vue # 主应用组件 dairy/ # 开发日志 ``` ## 开发指南 ### 安装依赖 ```bash npm install ``` ### 开发模式 ```bash npm run dev ``` 访问 (或自动分配的端口) ### 构建打包 ```bash npm run build ``` ## 使用说明 ### 日程模式 1. 点击"创建日程"添加新日程 2. 在月历上点击日期查看当天日程 3. 点击日程卡片查看详情,点击"编辑"修改 4. 使用"筛选"功能按条件筛选日程 5. 点击"完成"按钮标记日程为已完成 6. 使用"导出"和"导入"功能备份数据 ### 课表模式 1. 首次使用需要配置学期: - 设置学期名称 - 选择第一周的任意一天 - 设置总周数 - 配置各节次的时间 2. 点击"添加学期课程"添加课程: - 填写课程名称、教师、地点 - 选择颜色 - 设置周数范围 - 添加上课时间 3. 点击"编辑课程"修改已有课程 4. 使用"添加调课"添加临时课程 5. 使用"学期设置"修改学期配置 6. 使用顶部导航切换周数 ## 开发日志 项目开发过程记录在 `dairy/` 目录下: ## 后续规划 - **云同步**:添加云存储同步功能 - **数据统计**:添加课程和日程统计功能 - **多学期**:支持多学期管理 - **提醒功能**:课程和日程提醒 - **移动端优化**:完善移动端适配 - **数据导出**:课表图片/Excel导出 ## 许可证 MIT