Files
workspace/code/file-preview/.trae/documents/notification_refactor_plan.md
T
2026-04-28 17:29:53 +08:00

2.6 KiB
Raw Blame History

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 结构:

<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 调用方式保持兼容

  • 新增参数为可选参数,不影响现有代码


实施步骤

  1. 修改 render 方法,删除 dock 和 ui-lock 的 DOM 结构
  2. 修改 showNotification 方法,增加 lockUI、progress、customContent 选项
  3. 修改任务管理方法,使用 notification 显示进度
  4. 删除 dock 相关方法
  5. 修改 internalDownloadBatch 使用新的通知机制