dsh-nanny-calendar
育儿嫂日历看板 / Nanny calendar board — 一个 DeepSeek Harness 侧边栏插件,记录育儿嫂的上户 / 下户 / 休假 / 工资发放,并按月汇总。
功能
- 侧边栏入口:注册
sidebar.panellist(idnanny-calendar,order 20)与同名main面板,点击图标进入整页日历。 - 月历看板:周一起始的 6×7 网格,今天高亮,周末灰化,跨月补位日期淡显。
- 四类记录
类型 说明 字段 上户 阿姨到岗 日期、备注 下户 阿姨离岗 日期、备注 休假 休息日,可跨多天 开始日期、结束日期、备注 工资 发放记录 日期、金额、备注 - 本月汇总:在户天数(由上户/下户区间与本月交集得出)、休假天数、工资合计、上户/下户次数。
- 累计汇总:从最早一次上户到今天(截止目前)的累计统计——实际上班天数、累计休假天数、累计在户天数、累计工资,外加跨度天数与上户/下户次数。卡片标题右侧标出自
YYYY-MM-DD;没有上户记录时显示提示文案。 - 发薪日标记:确定上户日期后,日历自动按 30 天一个周期标出发薪日(
¥角标),并有一张「下个发薪日」卡片显示日期、距今天数与期数。周期口径:每期 26 个工作日 + 4 天休息;法定节假日全年 13 天(元旦 1、清明 1、端午 1、中秋 1、五一 2、国庆 3、春节 4)另计,不落到具体日期。发薪日 = 周期结束后的下个周期的第一天。 - 按日 / 按月列表:选中日的记录、本月全部记录,均可就地编辑或删除。
- 数据持久化:
localStorage,键dsh-nanny-calendar/v1;写入前做形状校验,脏数据直接丢弃。 - 备份:复制 JSON 到剪贴板 / 从剪贴板恢复 / 清空全部。
- 配色:四类记录各有一个固定色相,日历 chip、列表左侧色条、类型徽标、统计数字都跟随同一个色值——上户绿、休假红、工资金、下户灰。
- 主题与语言:只用
--dsw-alias-*主题 token(自动适配浅色/深色),文案走 Client locale 服务(zh/en),并在字典缺失时回落到内置中文。
结构
package.json dsh.bundle.patch + dsh.client(platform web, immediately)
cordis.patch.yml 插入一行 id: nanny-calendar
index.js Host 半边,空 apply(功能全在浏览器侧)
client.js window.__ModuleLoader__ 工厂:侧边栏图标 + main 面板
locale/{zh,en}.json 插件显示名与描述
icon.svg 插件图标
安装
三种方式,任选其一:
在 DSH 里从 GitHub 安装(推荐)——打开「插件」面板,选安装来源为 GitHub,填
wangsrGit119/dsh-nanny-calendar;等价于让plugin_manager执行install_bundle,target: github:wangsrGit119/dsh-nanny-calendar。命令行(
--profile必填,指向要装进的那个 profile):dsh plugin --profile desktop add github:wangsrGit119/dsh-nanny-calendar本地目录:克隆后对仓库目录执行
plugin_manager的install_bundle(本地目录安装会做成 link,适合改代码)。
安装后侧边栏出现日历图标;卸载或停用后记录仍留在 localStorage 中。
仓库已声明
dsh.bundle,所以安装时会读取cordis.patch.yml把插件挂进 profile;只有dsh.client的包无法被安装。
仓库结构补充
screenshots.json 市场详情页截图声明(assets/screenshot-1.png)
assets/ 市场卡片图标 icon-180.png 与界面截图
备注
在户天数只统计已声明区间:没有配对的「上户」就不会计入;一直没「下户」则算到本月末(当月算到今天)。
休假跨月会按天拆分,分别计入各自月份。
布局:宽屏为「日历 + 右侧栏」两列,面板宽度 ≤ 880px(容器查询,
@container与@media双写)时自动叠成单列。累计汇总的口径:起点取最早一次上户的日期;终点是今天(不含未来日期)。
- 累计在户 = 各「上户→下户」区间与
[起点, 今天]的交集天数;未下户的区间算到今天。 - 累计休假 = 休假记录逐日展开后,落在
[起点, 今天]且在户区间内的天数——上户之前的休假、或两次上户之间空档期的休假不计入,这样「实际上班 = 累计在户 − 累计休假」始终成立。 - 累计工资 = 今天及之前所有工资记录金额之和(未来日期的工资不计)。
- 累计在户 = 各「上户→下户」区间与
发薪日的口径:
- 起点是最早一次上户的日期,每 30 天为一期。第 n 期覆盖「上户日 + (n−1)×30」到「上户日 + n×30 − 1」,该期结束后的下个周期第一天(上户日 + n×30)就是发薪日。例如上户 2026-10-08 → 第 1 期 10-08~11-06,发薪日 2026-11-07。
- 下户后不再产生新的发薪日;再次上户则从最初那次上户的日期继续按 30 天排期。
- 每笔工资记录结算最早一个尚未结算的周期(落在该周期区间内,或正好是该周期的发薪日),一笔记录只结算一期;日历上的
¥角标结算后变绿。 - 法定节假日只按天数计入每期的工作日/休息日口径,不标注具体日期,因此规则不会随年份失效。
配色映射(
TYPE_TONE):上户--dsw-alias-state-success-primary(绿)、休假--dsw-alias-state-error-primary(红)、工资--dsw-alias-state-warn-primary(金)、下户--dsw-alias-label-tertiary(灰)。发薪日角标未结算用金色、已结算用绿色。全部取主题变量,33 套主题与深色模式自动跟随。
已验证(桌面端真机)
- 侧边栏图标与整页面板均正常渲染,中文字典经 locale 服务生效。
- 新增 / 编辑 / 删除(含
window.confirm二次确认)/ 清空全部、复制备份与从剪贴板恢复(navigator.clipboard)全部可用。 - 记录写入
localStorage,切走面板再回来、以及重开应用后仍在。 - 汇总联动正确:示例数据「上户 11-02、休假 10-30→11-02、工资 11-05 ¥8500」→ 在户 4 天、休假 2 天(跨月只计本月)、工资合计 ¥8,500、本月记录 3 条,日历上逐日显示 chip。
- 累计汇总(真机读数):上户 10-08、休假 10-17/10-18/10-25/11-01、工资 11-05 ¥8000 → 「累计汇总 自 2026-10-08」显示 实际上班 25 天 / 累计休假 4 天 / 累计在户 29 天 / 累计工资 ¥8,000 / 跨度 29 天;新增一条工资后本月与累计两处金额同步变化。窗口收窄到 820px 时新卡片随右侧栏一起叠到日历下方,无溢出。
- 发薪日(真机读数):上户 2026-10-08 → 第 1 期 10-08~11-06,日历 11-07 出现
¥角标,无障碍名「发薪日 2026-11-07(第 1 期)」;右侧「下个发薪日」卡片显示2026-10-08 → 2026-11-06、2026-11-07、2 天后、第 1 期 · 每期 30 天(26 个工作日 + 4 天休息)与口径说明。记一笔 11-05 的工资后角标变「已发薪」,「下个发薪日」自动跳到第 2 期2026-11-07 → 2026-12-06/2026-12-07/32 天后;删除该笔工资后角标回到未发薪、卡片回到第 1 期。卡片顺序为 本月汇总 → 下个发薪日 → 累计汇总 → 添加记录 → 选中日期 → 本月记录;820px 单列时依次堆叠(y=1138/1319/1509/1767/2180/2295),nc-calendar宽 934 无横向溢出。 - 配色(真机取色,
CopyFromScreen逐像素采样):休假 chip 底色rgb(249,216,216)、文字rgb(220,38,38)(红);工资 chip 底色rgb(241,224,211)、文字rgb(180,83,9)(金);上户 chip 底色rgb(213,232,220)、文字rgb(21,128,61)(绿);已发薪角标文字rgb(21,128,61)。本月汇总的数字也分别取色:在户21,128,61、休假220,38,38、工资180,83,9。类型切换按钮未选中时用色相的 62% 混灰,选中时是该色相的浅底 + 同色文字。
No comments yet. Be the first to write one.