# Notification 重构计划 ## 需求分析 用户要求将现有的 `notification` 和 `dock` 两个组件合并,统一使用 `notification` 来显示所有通知和进度信息。 ### 修改目标 1. **统一使用 notification**:删除 dock 组件,所有进度显示改用 notification 2. **下载进度结构不变**:保持现有的任务进度数据结构 3. **开放 notification 内容**:支持更灵活的内容传递 4. **添加 lockUI 选项**:在 showNotification 中增加是否锁定 UI 的选项 *** ## 修改内容 ### 1. 删除 DOM 结构中的 dock **文件**: `custom-file/index.js` 删除 `render` 方法中的 task-dock HTML 结构: ```html
...
``` ### 2. 删除 dock 相关变量 删除 `render` 方法中的: * `this.$taskDock = this.$container.find(".task-dock");` * `this.$uiLock = this.$container.find(".ui-lock");` ### 3. 修改 showNotification 方法 增加以下 options: * `lockUI`: 是否锁定 UI(默认 false) * `progress`: 进度百分比(0-100),用于显示进度条 * `customContent`: 自定义内容(支持 HTML) ### 4. 修改任务管理方法 修改以下方法使用 notification 显示进度: * `addTask`: 创建任务时显示通知 * `updateTask`: 更新任务进度时更新通知 * `finishTask`: 完成任务时更新通知状态 * `clearTasks`: 清空任务时关闭通知 ### 5. 删除 dock 相关方法 删除以下方法: * `showTaskDock` * `hideTaskDock` * `updateTaskDock` * `bindTaskDockEvents` * `lockUI`(改为在 showNotification 中处理) * `unlockUI`(改为在通知关闭时处理) * `isUILocked` ### 6. 修改批量下载逻辑 修改 `internalDownloadBatch` 方法,使用 notification 显示下载进度。 *** ## 风险评估 | 风险项 | 风险等级 | 处理方式 | | --------- | ---- | ---------------------------- | | 任务进度状态丢失 | 低 | 保留 tasks 数组用于状态管理 | | UI 锁定逻辑变化 | 中 | 在 notification 中实现 lockUI 选项 | | 通知样式需要调整 | 低 | 保持原有样式,增加进度条样式 | *** ## 兼容性 * 原有 `showNotification` 调用方式保持兼容 * 新增参数为可选参数,不影响现有代码 *** ## 实施步骤 1. 修改 `render` 方法,删除 dock 和 ui-lock 的 DOM 结构 2. 修改 `showNotification` 方法,增加 lockUI、progress、customContent 选项 3. 修改任务管理方法,使用 notification 显示进度 4. 删除 dock 相关方法 5. 修改 `internalDownloadBatch` 使用新的通知机制