# Module Spec：vab-notice（消息中心）

module:
  id: vab-notice
  name: VabNotice（消息中心/通知）
  type: ui
  entrypoints:
    - library/components/VabNotice/index.vue

public_api:
  concept:
    - "显示通知 badge，弹出 popover + tabs 展示通知/邮件"
    - "从 api/notice.getList 拉取数据并计算 badge"
    - "提供清空消息入口（仅清空前端列表与 badge，并提示）"

dependency_closure:
  runtime:
    - "store-settings：theme.showNotice"
    - "api/notice：getList"
    - "plugin-vab：$baseMessage（清空提示，通过 inject 获取）"
    - "i18n：translate"
    - "Element Plus：el-badge/el-popover/el-tabs/el-tab-pane/el-scrollbar/el-avatar/el-button"
    - "VabIcon"

acceptance:
  - "theme.showNotice=true 时显示通知入口与 badge"
  - "点击/切换 tab 会触发 fetchData 更新列表"

pitfalls:
  - "数据协议依赖 notice.getList 的返回结构（list/total）"
  - "清空仅影响前端状态，不等价于后端已读/删除"
