2.6 KiB
2.6 KiB
Notification 重构计划
需求分析
用户要求将现有的 notification 和 dock 两个组件合并,统一使用 notification 来显示所有通知和进度信息。
修改目标
- 统一使用 notification:删除 dock 组件,所有进度显示改用 notification
- 下载进度结构不变:保持现有的任务进度数据结构
- 开放 notification 内容:支持更灵活的内容传递
- 添加 lockUI 选项:在 showNotification 中增加是否锁定 UI 的选项
修改内容
1. 删除 DOM 结构中的 dock
文件: custom-file/index.js
删除 render 方法中的 task-dock HTML 结构:
<div class="task-dock">...</div>
<div class="ui-lock"></div>
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调用方式保持兼容 -
新增参数为可选参数,不影响现有代码
实施步骤
- 修改
render方法,删除 dock 和 ui-lock 的 DOM 结构 - 修改
showNotification方法,增加 lockUI、progress、customContent 选项 - 修改任务管理方法,使用 notification 显示进度
- 删除 dock 相关方法
- 修改
internalDownloadBatch使用新的通知机制