# scheduling-calendar-app **Repository Path**: ningerjohn/scheduling-calendar-app ## Basic Information - **Project Name**: scheduling-calendar-app - **Description**: 排班日历app(使用codebuddy生成) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-04 - **Last Updated**: 2026-09-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 排班日历(本地版) 一个基于 **uni-app + Vue3** 的轻量个人倒班助手,仿照主流"排班日历" App 的交互,数据全部存储在本地,无需服务器。 ## 运行方式 本工程采用 **uni-app Vue3 + Vite CLI** 标准结构(源码在 `src/` 下),两种方式皆可: ### 方式一:npm / CLI(推荐,Linux/命令行友好) ```bash # 项目根目录执行(需 Node 16+) npm install npm run dev:h5 # 浏览器实时预览(H5,数据存 localStorage) # npm run dev:app # 运行到 App 模拟器/真机(需 HBuilderX 环境) # npm run build:h5 # 产出 H5 静态包(在 dist/build/h5) ``` > 依赖版本按 `@dcloudio` Vue3(vite)线固定(`vite 5.2.8` / `vue 3.4.21`,见 package.json),用官方统一版本号,`npm install` 即可装齐。 > H5 预览后请打开浏览器控制台确认无编译报错。 ### 方式二:HBuilderX(可视化编译到手机 App) 1. 菜单 `文件 → 打开目录` 选择本项目根目录(需识别为 CLI 工程,先执行过 `npm install`); 2. 若要以 App 基座真机运行,需先在 HBuilderX 中把工程"关联到已创建 App 工程"或使用较新正式版内置编译器运行。 > 发布为独立 App 前需在 `src/manifest.json` 中配置 App 图标、启动图与 `appid`(HBuilderX 云打包)。 ## 已有功能(一期) - 日历月视图:月份切换、回到今天、今天高亮、周号、周末着色 - 手动排班:点击任意日期选择班次,**支持一天多班次**,可随时清除 - 周期排班:设置循环规律(如 白白夜夜休休),自选起始日自动循环填充;内置常用规律一键套用 - 班次管理:白/早/中/夜/值班/休息六种预设,可自定义名称、时段、颜色 - 同事班表:默认"我的班表",可添加多位同事,每人独立周期与日历,侧边抽屉切换 - 每周起始(周一/周日)切换 - 数据备份:导出/导入 JSON(复制到剪贴板粘贴) ## 目录结构 ``` ├─ package.json npm 依赖与脚本(uni-app Vue3/Vite CLI) ├─ vite.config.js Vite 配置(vite-plugin-uni) ├─ index.html H5 构建入口模板 └─ src/ 源码根(@/ 别名指向这里) ├─ App.vue 全局样式与启动初始化 ├─ main.js uni-app 入口 ├─ manifest.json App 配置 ├─ pages.json 页面路由注册 ├─ uni.scss 全局样式变量 ├─ common/ │ ├─ store.js 本地数据层(核心):班次/班表/周期/手动覆盖/设置 │ ├─ date.js 日期工具(月历生成、ISO周、星期) │ └─ constants.js 默认班次、调色板 ├─ components/ │ └─ app-tabbar.vue 自绘底部导航 └─ pages/ ├─ calendar/ 日历月视图(排班主界面) ├─ cycle/ 周期规律设置 ├─ shifts/ 班次管理列表 ├─ shift-edit/ 班次编辑(名称/时段/颜色) └─ settings/ 「我的」设置页 ``` ## 数据模型与排班规则 某人在某天的班次计算规则:**手动覆盖 > 周期推算 > 空**。 - 周期推算:从 `startDate` 起按 `pattern` 数组逐天循环; - 手动覆盖:仅影响所点当天,后续日期仍按周期走;与推算结果一致时会自动清理覆盖,避免冗余。 ## 二期规划(待做) - 法定节假日:联网获取后缓存本地(无需二次获取),月历展示节日名与调休上班日「班」标记 - 今日/班次推送提醒(本地通知) - 月排班表生成图片分享(协商换班) - 农历显示