mirror of
https://github.com/kuaifan/dootask.git
synced 2026-09-21 03:16:29 +00:00
插件/微应用可在自己的菜单入口显示数字或红点角标,插件未打开也生效。 - 后端:新增 app_badges 表 + AppBadge 模型 + Module/Badge 业务编排 + AppsController(badge__set 应用密钥鉴权 / badge__clear 用户鉴权) - 每应用独立密钥 APP_SECRET:按 appid 持久化于 appstore config.yml,鉴权校验 - 推送:复用 PushTask 下发 appBadge WS 消息;microapp_menu 附带初始角标 - 前端:appBadges Vuex module + WS 处理 + 三处菜单渲染(应用卡片/主菜单入口/ 父『应用』入口聚合)+ 移动端 Tabbar + 打开即清(badge_clear_on_open) - 用户离职级联清理;同步 ai-kb 角标知识
58 lines
2.5 KiB
Markdown
58 lines
2.5 KiB
Markdown
---
|
||
id: micro-app.badge.concept
|
||
title: 插件/微应用菜单角标
|
||
type: concept
|
||
feature: micro-app
|
||
scope: end-user
|
||
locale: zh
|
||
aliases:
|
||
- 应用角标
|
||
- 菜单红点
|
||
- 插件未读数
|
||
- 应用未读提醒
|
||
- 应用菜单数字
|
||
- badge
|
||
- 应用入口小红点
|
||
related_tools: []
|
||
related_pages: [application]
|
||
prerequisites: []
|
||
negative:
|
||
- 角标真值归插件,主程序不自己产生数字;插件未接入则不会有角标
|
||
- 角标不是消息未读数,具体含义由各插件自行定义
|
||
- 自定义微应用菜单(纯外链)默认不会有角标,除非其后端接入了角标接口
|
||
last_verified: v1.8.45
|
||
---
|
||
|
||
# 插件/微应用菜单角标
|
||
|
||
## 定义
|
||
插件/微应用可以在自己的菜单上显示「角标」——一个数字或一个小红点,用来提醒用户有待处理事项。角标真值由插件决定,DooTask 主程序只负责存储、下发与实时推送。
|
||
|
||
## 展示位置
|
||
- **应用中心卡片**:对应插件/微应用卡片右上角显示数字或红点
|
||
- **主导航平铺入口**:被平铺到左侧主菜单的单个插件入口显示其角标
|
||
- **父『应用』入口(聚合)**:左侧「应用」一级入口与移动端底部「应用」标签显示聚合角标
|
||
- 聚合规则:总数 = 工作报告未读数 + 所有插件角标数字之和
|
||
- 总数 > 0 显示数字(超过 999 显示 999+);总数为 0 时若任一插件存在红点则显示红点
|
||
|
||
## 关键属性(菜单配置 menu_items)
|
||
- **key**:菜单稳定标识,用于定位某个菜单的角标;留空时表示该应用的第一个菜单
|
||
- **badge_clear_on_open**:是否在该菜单被打开时自动清零
|
||
- `true`:打开对应应用菜单时角标自动清除
|
||
- `false`(默认):永不自动清零,角标的增减完全由插件控制
|
||
|
||
## 自动清零
|
||
当菜单设置了 `badge_clear_on_open: true`,用户打开该菜单时,前端会立即本地清零并调用接口持久化清除;多端会通过实时推送保持一致。
|
||
|
||
## 实时性
|
||
角标变化通过 WebSocket 实时推送给在线用户;离线用户在下次进入时由应用菜单接口随初始数据一同同步,无需额外请求。
|
||
|
||
## 生命周期
|
||
- 应用被卸载:该应用的全部角标清除
|
||
- 用户离职:该用户的全部角标清除
|
||
|
||
## 相关
|
||
- 微应用菜单:[[micro-app.menu.concept]]
|
||
- 微应用权限(角标只发给对该应用菜单可见的用户):[[micro-app.permission.concept]]
|
||
- 在哪能看到:[[micro-app.entry.menu-map]]
|