灵伴桌面宠物 — 提醒优化与形象换装系统 v2.3
一、提醒功能模块优化
现有问题分析
| # | 问题 | 严重度 |
|---|---|---|
| 1 | 无法停止运行中的任务 — PowerShell 进程启动后无法从 UI 中断 | 🔴 高 |
| 2 | 无任务执行超时控制 — 脚本卡死会一直占用 running 状态 | 🔴 高 |
| 3 | 运行状态不透明 — UI 上看不到实时运行状态(stdout/stderr 流式更新) | 🟡 中 |
| 4 | 手动运行后状态不刷新 — runTask 结束后 UI 不同步 lastStatus | 🟡 中 |
| 5 | 无执行确认对话框 — 定时关机等危险操作无二次确认 | 🟢 低 |
| 6 | 任务列表筛选缺失 — 全部/已启用/已禁用 筛选 | 🟢 低 |
优化方案
- 停止运行任务: task-scheduler.js 新增
stop(taskId)方法 → 调用child.kill('SIGTERM')→ UI 新增”停止”按钮 - 超时控制: 默认 5 分钟超时,超过自动 kill,config-store 新增
task.timeout字段 - 实时状态: scheduler 通过 IPC 推送 stdout/stderr 增量,UI 实时展示
- 执行确认: 任务脚本包含
shutdown/format/del等危险关键词时弹确认框 - 任务筛选: 全部/已启用/已禁用 tabs
二、宠物形象换装系统
设计方案
C:\Users\Administrator\Downloads\已扣出\
├── 星期一\ (dayOfWeek 1)
│ ├── 01_连衣裙\ (outfit 1)
│ │ ├── 1p_上午.png (prefix "1p" = 上午 06:00-12:00)
│ │ ├── 2p_下午.png (prefix "2p" = 下午 12:00-18:00)
│ │ ├── 3p_晚上.png (prefix "3p" = 晚上 18:00-06:00)
│ │ └── idle.gif (静止时的动画)
│ ├── 02_卫衣\
│ └── 03_T恤\
├── 星期二\
├── ...
└── 星期天\
时间段划分
| 时段 | 时间范围 | 文件前缀 | 穿衣程度 |
|---|---|---|---|
| 🌅 上午 | 06:00 - 12:00 | 1p_ |
全套(穿最多) |
| ☀️ 下午 | 12:00 - 18:00 | 2p_ |
半套(脱掉外套) |
| 🌙 晚上 | 18:00 - 06:00 | 3p_ |
少量(居家休闲) |
图片选择逻辑
- 周几 → 选文件夹: 根据当前星期几选择对应文件夹
- 随机选一套衣服: 在当天文件夹中随机选一个子文件夹
- 时段 → 选图片: 在衣服文件夹中根据时段前缀选对应图片
- GIF/APNG 优先: 如果有 idle.gif/apng,作为静止动画;否则用当前时段静态图
- 每隔 N 小时重新随机: 避免同一套衣服穿一整天
新增配置字段
{
"settings": {
"wardrobePath": "C:\\Users\\Administrator\\Downloads\\已扣出",
"wardrobeEnabled": false,
"wardrobeInterval": 3 // 每N小时换一次衣服
}
}
实现要点
- config-store 新增
wardrobePath/wardrobeEnabled/wardrobeInterval - main.js 新增
resolveWardrobeImage()函数,根据 星期几+时段+随机衣服 返回图片路径 petImageUrl()优先使用 wardrobe 系统- 控制中心新增”形象换装”设置面板
- 定时器每 N 小时重新随机衣服并刷新宠物
三、删除游戏功能
- manager.html 删除游戏页面 section
- manager.js 删除所有游戏相关代码(~80行)
- manager.css 删除游戏样式
- 导航栏删除”游戏”入口
四、宠物缩放 250%
- main.js
setPetScale上限从 1.75 改为 2.5 - pet.js 缩放上限同步
- manager.html range 滑块 max 改为 250