@next-bricks/ai-portal 0.70.0 → 0.70.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/bricks.json +42 -42
  2. package/dist/chunks/7202.a893b0e6.js.map +1 -1
  3. package/dist/chunks/action-buttons.68666920.js.map +1 -1
  4. package/dist/chunks/activity-timeline.96e7aaea.js.map +1 -1
  5. package/dist/chunks/ai-agents.cffd08a0.js.map +1 -1
  6. package/dist/chunks/ai-employees.267c3626.js.map +1 -1
  7. package/dist/chunks/blank-state.648eea95.js.map +1 -1
  8. package/dist/chunks/chat-input.444c80bb.js.map +1 -1
  9. package/dist/chunks/chat-panel-welcome.2f7c6c8b.js.map +1 -1
  10. package/dist/chunks/chat-panel.3160f2e8.js.map +1 -1
  11. package/dist/chunks/chat-stream.393c8241.js.map +1 -1
  12. package/dist/chunks/cruise-canvas.bfae3138.js.map +1 -1
  13. package/dist/chunks/dropdown-select.336442ba.js.map +1 -1
  14. package/dist/chunks/elevo-card.49b42ed0.js.map +1 -1
  15. package/dist/chunks/elevo-logo.25e3b889.js.map +1 -1
  16. package/dist/chunks/elevo-sidebar.a197a77f.js.map +1 -1
  17. package/dist/chunks/flow-tabs.ee1290c2.js.map +1 -1
  18. package/dist/chunks/goal-card-list.74ab5767.js.map +1 -1
  19. package/dist/chunks/home-container.f1829834.js.map +1 -1
  20. package/dist/chunks/icon-button.545ffb24.js.map +1 -1
  21. package/dist/chunks/mcp-tools.f132c502.js.map +1 -1
  22. package/dist/chunks/notice-dropdown.63cb2415.js.map +1 -1
  23. package/dist/chunks/page-container.2185f2e0.js.map +1 -1
  24. package/dist/chunks/preview-container.a0ca6e2f.js.map +1 -1
  25. package/dist/chunks/project-knowledges.51731410.js.map +1 -1
  26. package/dist/chunks/running-flow.37a428cf.js.map +1 -1
  27. package/dist/chunks/show-case.44e995fc.js.map +1 -1
  28. package/dist/chunks/show-cases.c3921ea0.js.map +1 -1
  29. package/dist/chunks/space-chat-guide.84f4a1e7.js.map +1 -1
  30. package/dist/chunks/space-logo.994f7a25.js.map +1 -1
  31. package/dist/chunks/space-workbench.8c064898.js.map +1 -1
  32. package/dist/chunks/stage-flow.9b6fad93.js.map +1 -1
  33. package/dist/chunks/stat-with-mini-chart.1509cf8c.js.map +1 -1
  34. package/dist/chunks/sticky-container.d3f7054e.js.map +1 -1
  35. package/dist/chunks/tab-list.ee97567f.js.map +1 -1
  36. package/dist/examples.json +52 -40
  37. package/dist/{index.8e0adc27.js → index.94998c36.js} +2 -2
  38. package/dist/{index.8e0adc27.js.map → index.94998c36.js.map} +1 -1
  39. package/dist/manifest.json +594 -313
  40. package/dist/types.json +796 -796
  41. package/dist-types/action-buttons/index.d.ts +10 -1
  42. package/dist-types/activity-timeline/index.d.ts +10 -1
  43. package/dist-types/ai-agents/index.d.ts +10 -1
  44. package/dist-types/ai-employees/index.d.ts +16 -1
  45. package/dist-types/blank-state/index.d.ts +10 -1
  46. package/dist-types/chat-input/index.d.ts +37 -1
  47. package/dist-types/chat-panel/index.d.ts +45 -3
  48. package/dist-types/chat-stream/index.d.ts +62 -1
  49. package/dist-types/cruise-canvas/index.d.ts +71 -1
  50. package/dist-types/dropdown-select/index.d.ts +3 -1
  51. package/dist-types/elevo-card/index.d.ts +5 -1
  52. package/dist-types/elevo-logo/index.d.ts +3 -1
  53. package/dist-types/elevo-sidebar/index.d.ts +19 -2
  54. package/dist-types/flow-tabs/index.d.ts +5 -1
  55. package/dist-types/gantt-chart/index.d.ts +3 -1
  56. package/dist-types/goal-card-list/index.d.ts +8 -1
  57. package/dist-types/home-container/index.d.ts +4 -1
  58. package/dist-types/icon-button/index.d.ts +4 -1
  59. package/dist-types/mcp-tools/index.d.ts +3 -1
  60. package/dist-types/page-container/index.d.ts +7 -0
  61. package/dist-types/preview-container/index.d.ts +4 -0
  62. package/dist-types/project-knowledges/index.d.ts +5 -0
  63. package/dist-types/running-flow/index.d.ts +3 -0
  64. package/dist-types/show-case/index.d.ts +5 -0
  65. package/dist-types/show-cases/index.d.ts +4 -0
  66. package/dist-types/space-workbench/chat-panel-welcome/index.d.ts +3 -0
  67. package/dist-types/space-workbench/index.d.ts +7 -0
  68. package/dist-types/space-workbench/space-chat-guide/index.d.ts +3 -0
  69. package/dist-types/space-workbench/space-logo/index.d.ts +1 -0
  70. package/dist-types/stage-flow/index.d.ts +21 -0
  71. package/dist-types/stat-with-mini-chart/index.d.ts +10 -0
  72. package/dist-types/sticky-container/index.d.ts +3 -0
  73. package/dist-types/tab-list/index.d.ts +4 -0
  74. package/docs/action-buttons.md +59 -10
  75. package/docs/action-buttons.react.md +80 -0
  76. package/docs/activity-timeline.md +51 -7
  77. package/docs/activity-timeline.react.md +109 -0
  78. package/docs/ai-agents.md +62 -2
  79. package/docs/ai-agents.react.md +73 -0
  80. package/docs/ai-employees.md +76 -2
  81. package/docs/ai-employees.react.md +106 -0
  82. package/docs/blank-state.md +62 -2
  83. package/docs/blank-state.react.md +77 -0
  84. package/docs/chat-box.md +134 -52
  85. package/docs/chat-box.react.md +142 -0
  86. package/docs/chat-input.md +117 -1
  87. package/docs/chat-input.react.md +117 -0
  88. package/docs/chat-panel-welcome.md +39 -0
  89. package/docs/chat-panel-welcome.react.md +41 -0
  90. package/docs/chat-panel.md +86 -3
  91. package/docs/chat-panel.react.md +109 -0
  92. package/docs/chat-stream.md +149 -2
  93. package/docs/chat-stream.react.md +155 -0
  94. package/docs/cruise-canvas.md +159 -0
  95. package/docs/cruise-canvas.react.md +159 -0
  96. package/docs/dropdown-select.md +37 -8
  97. package/docs/dropdown-select.react.md +144 -0
  98. package/docs/elevo-card.md +75 -1
  99. package/docs/elevo-card.react.md +104 -0
  100. package/docs/elevo-logo.md +13 -1
  101. package/docs/elevo-logo.react.md +27 -0
  102. package/docs/elevo-sidebar.md +150 -1
  103. package/docs/elevo-sidebar.react.md +149 -0
  104. package/docs/flow-tabs.md +97 -2
  105. package/docs/flow-tabs.react.md +102 -0
  106. package/docs/gantt-chart.md +101 -0
  107. package/docs/gantt-chart.react.md +125 -0
  108. package/docs/goal-card-list.md +149 -13
  109. package/docs/goal-card-list.react.md +185 -0
  110. package/docs/home-container.md +48 -2
  111. package/docs/home-container.react.md +51 -0
  112. package/docs/icon-button.md +128 -2
  113. package/docs/icon-button.react.md +120 -0
  114. package/docs/mcp-tools.md +105 -2
  115. package/docs/mcp-tools.react.md +117 -0
  116. package/docs/notice-dropdown.md +53 -10
  117. package/docs/notice-dropdown.react.md +167 -0
  118. package/docs/notice-list.md +53 -5
  119. package/docs/notice-list.react.md +121 -0
  120. package/docs/page-container.md +80 -3
  121. package/docs/page-container.react.md +83 -0
  122. package/docs/preview-container.md +22 -32
  123. package/docs/preview-container.react.md +71 -0
  124. package/docs/project-conversations.md +85 -4
  125. package/docs/project-conversations.react.md +110 -0
  126. package/docs/project-knowledges.md +73 -8
  127. package/docs/project-knowledges.react.md +85 -0
  128. package/docs/running-flow.md +57 -2
  129. package/docs/running-flow.react.md +90 -0
  130. package/docs/show-case.md +48 -3
  131. package/docs/show-case.react.md +60 -0
  132. package/docs/show-cases.md +52 -2
  133. package/docs/show-cases.react.md +92 -0
  134. package/docs/space-chat-guide.md +32 -0
  135. package/docs/space-chat-guide.react.md +39 -0
  136. package/docs/space-logo.md +53 -0
  137. package/docs/space-logo.react.md +46 -0
  138. package/docs/space-workbench.md +45 -2
  139. package/docs/space-workbench.react.md +102 -0
  140. package/docs/stage-flow.md +122 -26
  141. package/docs/stage-flow.react.md +112 -0
  142. package/docs/stat-with-mini-chart.md +64 -159
  143. package/docs/stat-with-mini-chart.react.md +113 -0
  144. package/docs/sticky-container.md +56 -3
  145. package/docs/sticky-container.react.md +60 -0
  146. package/docs/tab-list.md +74 -3
  147. package/docs/tab-list.react.md +73 -0
  148. package/package.json +2 -2
@@ -0,0 +1,120 @@
1
+ ---
2
+ tagName: ai-portal.icon-button
3
+ displayName: WrappedAiPortalIconButton
4
+ description: 图标按钮,支持多种视觉变体、禁用状态、Tooltip 提示及文字插槽。
5
+ category: interact-basic
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # WrappedAiPortalIconButton
10
+
11
+ > 图标按钮,支持多种视觉变体、禁用状态、Tooltip 提示及文字插槽。
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiPortalIconButton } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | -------------- | -------------------------------------------------------------- | ---- | ------ | -------------------------------------------------------------------------------------- |
23
+ | icon | `GeneralIconProps` | 否 | - | 按钮图标配置 |
24
+ | tooltip | `string` | 否 | - | 悬停时显示的 Tooltip 文本 |
25
+ | tooltipHoist | `boolean` | 否 | - | 是否将 Tooltip 挂载到顶层,避免被父容器裁剪 |
26
+ | active | `boolean` | 否 | - | 是否为激活状态,通过 CSS 属性选择器控制样式,不触发重新渲染 |
27
+ | disabled | `boolean` | 否 | - | 是否禁用按钮 |
28
+ | variant | `"default" \| "light" \| "mini" \| "mini-light" \| "bordered"` | 否 | - | 按钮视觉变体,通过 CSS 属性选择器控制样式,不触发重新渲染 |
29
+ | reduceIconSize | `boolean` | 否 | - | 是否缩小图标尺寸(部分 easyops 图标过大),通过 CSS 属性选择器控制样式,不触发重新渲染 |
30
+
31
+ ## Slots
32
+
33
+ | 名称 | 说明 |
34
+ | ------- | -------------------------- |
35
+ | default | 图标旁边的文字内容(可选) |
36
+
37
+ ## Examples
38
+
39
+ ### Basic
40
+
41
+ 基础图标按钮,配置图标和 Tooltip 提示。
42
+
43
+ ```tsx
44
+ <WrappedAiPortalIconButton
45
+ icon={{ lib: "antd", icon: "download" }}
46
+ tooltip="下载"
47
+ />
48
+ ```
49
+
50
+ ### Variants
51
+
52
+ 展示不同视觉变体的图标按钮。
53
+
54
+ ```tsx
55
+ <div style={{ display: "flex", gap: 8, alignItems: "center", padding: 8 }}>
56
+ <WrappedAiPortalIconButton
57
+ variant="default"
58
+ icon={{ lib: "antd", icon: "setting" }}
59
+ tooltip="默认样式"
60
+ />
61
+ <WrappedAiPortalIconButton
62
+ variant="light"
63
+ icon={{ lib: "antd", icon: "heart" }}
64
+ tooltip="轻量样式"
65
+ />
66
+ <WrappedAiPortalIconButton
67
+ variant="mini"
68
+ icon={{ lib: "antd", icon: "star" }}
69
+ tooltip="迷你样式"
70
+ />
71
+ <WrappedAiPortalIconButton
72
+ variant="mini-light"
73
+ icon={{ lib: "antd", icon: "bell" }}
74
+ tooltip="迷你轻量"
75
+ />
76
+ <WrappedAiPortalIconButton
77
+ variant="bordered"
78
+ icon={{ lib: "antd", icon: "plus" }}
79
+ tooltip="边框样式"
80
+ />
81
+ </div>
82
+ ```
83
+
84
+ ### Disabled State
85
+
86
+ 展示禁用状态的图标按钮。
87
+
88
+ ```tsx
89
+ <WrappedAiPortalIconButton
90
+ icon={{ lib: "antd", icon: "delete" }}
91
+ tooltip="无法删除"
92
+ disabled
93
+ />
94
+ ```
95
+
96
+ ### With Text Slot
97
+
98
+ 图标按钮配合文字内容插槽。
99
+
100
+ ```tsx
101
+ <WrappedAiPortalIconButton
102
+ icon={{ lib: "easyops", icon: "new-chat" }}
103
+ active
104
+ reduceIconSize
105
+ >
106
+ <span>新建对话</span>
107
+ </WrappedAiPortalIconButton>
108
+ ```
109
+
110
+ ### With Tooltip Hoist
111
+
112
+ 配置 tooltipHoist 防止 Tooltip 被父容器裁剪。
113
+
114
+ ```tsx
115
+ <WrappedAiPortalIconButton
116
+ icon={{ lib: "antd", icon: "info-circle" }}
117
+ tooltip="这是一条提示信息"
118
+ tooltipHoist
119
+ />
120
+ ```
package/docs/mcp-tools.md CHANGED
@@ -1,11 +1,114 @@
1
- 构件 `ai-portal.mcp-tools`
1
+ ---
2
+ tagName: ai-portal.mcp-tools
3
+ displayName: WrappedAiPortalMcpTools
4
+ description: MCP 工具列表组件,按服务分组展示工具信息,支持按平台分类过滤和吸顶标签栏。
5
+ category: display-component
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # ai-portal.mcp-tools
10
+
11
+ > MCP 工具列表组件,按服务分组展示工具信息,支持按平台分类过滤和吸顶标签栏。
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | --------- | ----------- | ---- | ------ | -------------------------------------------------------------------------- |
17
+ | list | `McpTool[]` | 否 | - | MCP 工具列表数据,按 server.id 自动分组并归属平台分类 |
18
+ | stickyTop | `number` | 否 | - | 平台过滤标签栏的吸顶偏移量(px),设置后标签栏使用吸顶容器,未设置则不吸顶 |
2
19
 
3
20
  ## Examples
4
21
 
5
22
  ### Basic
6
23
 
24
+ 展示基础 MCP 工具列表,按服务分组展示。
25
+
26
+ ```yaml preview
27
+ brick: ai-portal.mcp-tools
28
+ properties:
29
+ list:
30
+ - name: list_hosts
31
+ title: 查询主机列表
32
+ description: 查询 CMDB 中的主机资源列表,支持按条件过滤。
33
+ server:
34
+ id: cmdb
35
+ name: CMDB
36
+ - name: get_host_detail
37
+ title: 获取主机详情
38
+ description: 根据主机实例 ID 获取主机的详细信息,包括配置、状态等。
39
+ server:
40
+ id: cmdb
41
+ name: CMDB
42
+ - name: list_alerts
43
+ title: 查询告警列表
44
+ description: 获取当前活跃告警列表,支持按严重性筛选。
45
+ server:
46
+ id: alert
47
+ name: 监控事件
48
+ ```
49
+
50
+ ### With Custom Icons
51
+
52
+ 为工具配置自定义图标,增强视觉区分。
53
+
54
+ ```yaml preview
55
+ brick: ai-portal.mcp-tools
56
+ properties:
57
+ list:
58
+ - name: deploy_app
59
+ title: 部署应用
60
+ description: 向 Kubernetes 集群部署应用,支持指定命名空间和镜像版本。
61
+ icon:
62
+ lib: antd
63
+ icon: cloud-upload
64
+ server:
65
+ id: kubernetes
66
+ name: Kubernetes
67
+ - name: scale_deployment
68
+ title: 弹性伸缩
69
+ description: 调整 Kubernetes Deployment 的副本数量。
70
+ icon:
71
+ lib: antd
72
+ icon: apartment
73
+ server:
74
+ id: kubernetes
75
+ name: Kubernetes
76
+ - name: execute_llm
77
+ title: 调用大模型
78
+ description: 向大模型发送请求并获取响应。
79
+ icon:
80
+ lib: antd
81
+ icon: robot
82
+ server:
83
+ id: llm
84
+ name: 大模型
85
+ ```
86
+
87
+ ### With Sticky Tabs
88
+
89
+ 启用吸顶平台过滤标签栏,适合内容较多的场景。
90
+
7
91
  ```yaml preview
8
92
  brick: ai-portal.mcp-tools
9
93
  properties:
10
- textContent: Hello world
94
+ stickyTop: 0
95
+ list:
96
+ - name: list_hosts
97
+ title: 查询主机列表
98
+ description: 查询 CMDB 中的主机资源列表,支持按条件过滤。
99
+ server:
100
+ id: cmdb
101
+ name: CMDB
102
+ - name: create_page
103
+ title: 创建页面
104
+ description: 在低代码平台中创建一个新的页面。
105
+ server:
106
+ id: web-builder
107
+ name: 低代码
108
+ - name: list_dashboards
109
+ title: 查询仪表盘
110
+ description: 获取 Grafana 中所有仪表盘列表。
111
+ server:
112
+ id: grafana
113
+ name: Grafana
11
114
  ```
@@ -0,0 +1,117 @@
1
+ ---
2
+ tagName: ai-portal.mcp-tools
3
+ displayName: WrappedAiPortalMcpTools
4
+ description: MCP 工具列表组件,按服务分组展示工具信息,支持按平台分类过滤和吸顶标签栏。
5
+ category: display-component
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # WrappedAiPortalMcpTools
10
+
11
+ > MCP 工具列表组件,按服务分组展示工具信息,支持按平台分类过滤和吸顶标签栏。
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiPortalMcpTools } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | --------- | ----------- | ---- | ------ | -------------------------------------------------------------------------- |
23
+ | list | `McpTool[]` | 否 | - | MCP 工具列表数据,按 server.id 自动分组并归属平台分类 |
24
+ | stickyTop | `number` | 否 | - | 平台过滤标签栏的吸顶偏移量(px),设置后标签栏使用吸顶容器,未设置则不吸顶 |
25
+
26
+ ## Examples
27
+
28
+ ### Basic
29
+
30
+ 展示基础 MCP 工具列表,按服务分组展示。
31
+
32
+ ```tsx
33
+ <WrappedAiPortalMcpTools
34
+ list={[
35
+ {
36
+ name: "list_hosts",
37
+ title: "查询主机列表",
38
+ description: "查询 CMDB 中的主机资源列表,支持按条件过滤。",
39
+ server: { id: "cmdb", name: "CMDB" },
40
+ },
41
+ {
42
+ name: "get_host_detail",
43
+ title: "获取主机详情",
44
+ description: "根据主机实例 ID 获取主机的详细信息,包括配置、状态等。",
45
+ server: { id: "cmdb", name: "CMDB" },
46
+ },
47
+ {
48
+ name: "list_alerts",
49
+ title: "查询告警列表",
50
+ description: "获取当前活跃告警列表,支持按严重性筛选。",
51
+ server: { id: "alert", name: "监控事件" },
52
+ },
53
+ ]}
54
+ />
55
+ ```
56
+
57
+ ### With Custom Icons
58
+
59
+ 为工具配置自定义图标,增强视觉区分。
60
+
61
+ ```tsx
62
+ <WrappedAiPortalMcpTools
63
+ list={[
64
+ {
65
+ name: "deploy_app",
66
+ title: "部署应用",
67
+ description: "向 Kubernetes 集群部署应用,支持指定命名空间和镜像版本。",
68
+ icon: { lib: "antd", icon: "cloud-upload" },
69
+ server: { id: "kubernetes", name: "Kubernetes" },
70
+ },
71
+ {
72
+ name: "scale_deployment",
73
+ title: "弹性伸缩",
74
+ description: "调整 Kubernetes Deployment 的副本数量。",
75
+ icon: { lib: "antd", icon: "apartment" },
76
+ server: { id: "kubernetes", name: "Kubernetes" },
77
+ },
78
+ {
79
+ name: "execute_llm",
80
+ title: "调用大模型",
81
+ description: "向大模型发送请求并获取响应。",
82
+ icon: { lib: "antd", icon: "robot" },
83
+ server: { id: "llm", name: "大模型" },
84
+ },
85
+ ]}
86
+ />
87
+ ```
88
+
89
+ ### With Sticky Tabs
90
+
91
+ 启用吸顶平台过滤标签栏,适合内容较多的场景。
92
+
93
+ ```tsx
94
+ <WrappedAiPortalMcpTools
95
+ stickyTop={0}
96
+ list={[
97
+ {
98
+ name: "list_hosts",
99
+ title: "查询主机列表",
100
+ description: "查询 CMDB 中的主机资源列表,支持按条件过滤。",
101
+ server: { id: "cmdb", name: "CMDB" },
102
+ },
103
+ {
104
+ name: "create_page",
105
+ title: "创建页面",
106
+ description: "在低代码平台中创建一个新的页面。",
107
+ server: { id: "web-builder", name: "低代码" },
108
+ },
109
+ {
110
+ name: "list_dashboards",
111
+ title: "查询仪表盘",
112
+ description: "获取 Grafana 中所有仪表盘列表。",
113
+ server: { id: "grafana", name: "Grafana" },
114
+ },
115
+ ]}
116
+ />
117
+ ```
@@ -1,11 +1,48 @@
1
- 构件 `ai-portal.notice-dropdown`
1
+ ---
2
+ tagName: ai-portal.notice-dropdown
3
+ displayName: WrappedAiPortalNoticeDropdown
4
+ description: 消息通知下拉框构件,用于展示消息列表
5
+ category: ""
6
+ source: "@next-bricks/ai-portal"
7
+ ---
2
8
 
3
- 消息通知下拉框构件,用于展示消息列表。支持自定义触发器、消息列表展示、空状态、以及交互事件。
9
+ # ai-portal.notice-dropdown
10
+
11
+ > 消息通知下拉框构件,用于展示消息列表
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ---------------------- | --------------------- | ---- | ------ | ------------------------ |
17
+ | dataSource | `NoticeItem[]` | 否 | - | 消息数据列表 |
18
+ | popoverPlacement | `Placement` | 否 | - | 弹窗位置 |
19
+ | emptyText | `string` | 否 | - | 空状态文案 |
20
+ | notifyCenterUrl | `string` | 否 | - | 通知中心URL |
21
+ | urlTemplate | `string` | 否 | - | 详情链接 |
22
+ | urlTarget | `Target` | 否 | - | 详情链接目标 |
23
+ | dropdownMaxWidth | `string \| number` | 否 | - | 下拉框最大宽度 |
24
+ | dropdownContentStyle | `React.CSSProperties` | 否 | - | 下拉框内容样式 |
25
+ | hideNotifyCenterButton | `boolean` | 否 | - | 是否隐藏进入消息中心按钮 |
26
+
27
+ ## Events
28
+
29
+ | 事件 | detail | 说明 |
30
+ | ------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------- |
31
+ | notice.click | `NoticeItem` — { id: 消息ID, type: 消息类型, isRead: 是否已读, title: 标题, description: 描述, time: 时间戳, url: 详情链接 } | 消息项点击事件 |
32
+ | mark.all.read | `void` | 全部已读点击事件 |
33
+
34
+ ## Slots
35
+
36
+ | 名称 | 说明 |
37
+ | ------- | ---------------------------------------- |
38
+ | trigger | 自定义触发器,默认为带角标的铃铛图标按钮 |
4
39
 
5
40
  ## Examples
6
41
 
7
42
  ### 基础使用(带消息列表)
8
43
 
44
+ 展示包含多条不同类型消息的下拉通知列表。
45
+
9
46
  ```yaml preview
10
47
  brick: ai-portal.notice-dropdown
11
48
  properties:
@@ -26,31 +63,30 @@ properties:
26
63
  type: "system"
27
64
  isRead: true
28
65
  title: "Samuel在项目【项目A】@了你"
29
- - id: "msg-2"
66
+ - id: "msg-5"
30
67
  type: "account"
31
68
  isRead: false
32
69
  title: "协作流【协作流名称】 - 【活动名称】需要人工确认"
33
- - id: "msg-3"
70
+ - id: "msg-6"
34
71
  type: "system"
35
72
  isRead: true
36
73
  title: "【项目协作功能】已发布"
37
- - id: "msg-4"
74
+ - id: "msg-7"
38
75
  type: "project"
39
76
  isRead: true
40
77
  title: "Samuel在项目【项目A】@了你"
41
- - id: "msg-2"
78
+ - id: "msg-8"
42
79
  type: "space"
43
80
  isRead: false
44
81
  title: "协作流【协作流名称】 - 【活动名称】需要人工确认"
45
- - id: "msg-3"
82
+ - id: "msg-9"
46
83
  type: "space"
47
84
  isRead: true
48
85
  title: "【项目协作功能】已发布"
49
- - id: "msg-4"
86
+ - id: "msg-10"
50
87
  type: "system"
51
88
  isRead: true
52
89
  title: "Samuel在项目【项目A】@了你"
53
-
54
90
  events:
55
91
  notice.click:
56
92
  action: console.log
@@ -65,13 +101,18 @@ events:
65
101
 
66
102
  ### 空状态
67
103
 
104
+ 当没有消息时展示空状态提示文案。
105
+
68
106
  ```yaml preview
69
107
  brick: ai-portal.notice-dropdown
70
108
  properties:
71
109
  dataSource: []
110
+ emptyText: "暂无新消息"
72
111
  ```
73
112
 
74
- ### 自定义触发器(使用 eo-button)
113
+ ### 自定义触发器
114
+
115
+ 使用 trigger 插槽放置自定义触发器元素(如按钮)。
75
116
 
76
117
  ```yaml preview
77
118
  brick: ai-portal.notice-dropdown
@@ -89,6 +130,8 @@ properties:
89
130
  type: "account"
90
131
  isRead: true
91
132
  title: "【项目协作功能】已发布"
133
+ hideNotifyCenterButton: true
134
+ dropdownMaxWidth: 400
92
135
  children:
93
136
  - brick: eo-button
94
137
  slot: trigger
@@ -0,0 +1,167 @@
1
+ ---
2
+ tagName: ai-portal.notice-dropdown
3
+ displayName: WrappedAiPortalNoticeDropdown
4
+ description: 消息通知下拉框构件,用于展示消息列表
5
+ category: ""
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # WrappedAiPortalNoticeDropdown
10
+
11
+ > 消息通知下拉框构件,用于展示消息列表
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiPortalNoticeDropdown } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ---------------------- | --------------------- | ---- | ------ | ------------------------ |
23
+ | dataSource | `NoticeItem[]` | 否 | - | 消息数据列表 |
24
+ | popoverPlacement | `Placement` | 否 | - | 弹窗位置 |
25
+ | emptyText | `string` | 否 | - | 空状态文案 |
26
+ | notifyCenterUrl | `string` | 否 | - | 通知中心URL |
27
+ | urlTemplate | `string` | 否 | - | 详情链接 |
28
+ | urlTarget | `Target` | 否 | - | 详情链接目标 |
29
+ | dropdownMaxWidth | `string \| number` | 否 | - | 下拉框最大宽度 |
30
+ | dropdownContentStyle | `React.CSSProperties` | 否 | - | 下拉框内容样式 |
31
+ | hideNotifyCenterButton | `boolean` | 否 | - | 是否隐藏进入消息中心按钮 |
32
+
33
+ ## Events
34
+
35
+ | 事件 | detail | 说明 |
36
+ | ------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------- |
37
+ | onNoticeClick | `NoticeItem` — { id: 消息ID, type: 消息类型, isRead: 是否已读, title: 标题, description: 描述, time: 时间戳, url: 详情链接 } | 消息项点击事件 |
38
+ | onMarkAllRead | `void` | 全部已读点击事件 |
39
+
40
+ ## Slots
41
+
42
+ | 名称 | 说明 |
43
+ | ------- | ---------------------------------------- |
44
+ | trigger | 自定义触发器,默认为带角标的铃铛图标按钮 |
45
+
46
+ ## Examples
47
+
48
+ ### 基础使用(带消息列表)
49
+
50
+ 展示包含多条不同类型消息的下拉通知列表。
51
+
52
+ ```tsx
53
+ <WrappedAiPortalNoticeDropdown
54
+ dataSource={[
55
+ {
56
+ id: "msg-1",
57
+ isRead: false,
58
+ type: "project",
59
+ title:
60
+ "协作流【研发设计】已完成【项目协作功能】已发布【项目协作功能】已发布【项目协作功能】已发布【项目协作功能】已发布",
61
+ },
62
+ {
63
+ id: "msg-2",
64
+ isRead: false,
65
+ type: "space",
66
+ title: "协作流【协作流名称】 - 【活动名称】需要人工确认",
67
+ },
68
+ {
69
+ id: "msg-3",
70
+ type: "account",
71
+ isRead: true,
72
+ title: "【项目协作功能】已发布",
73
+ },
74
+ {
75
+ id: "msg-4",
76
+ type: "system",
77
+ isRead: true,
78
+ title: "Samuel在项目【项目A】@了你",
79
+ },
80
+ {
81
+ id: "msg-5",
82
+ type: "account",
83
+ isRead: false,
84
+ title: "协作流【协作流名称】 - 【活动名称】需要人工确认",
85
+ },
86
+ {
87
+ id: "msg-6",
88
+ type: "system",
89
+ isRead: true,
90
+ title: "【项目协作功能】已发布",
91
+ },
92
+ {
93
+ id: "msg-7",
94
+ type: "project",
95
+ isRead: true,
96
+ title: "Samuel在项目【项目A】@了你",
97
+ },
98
+ {
99
+ id: "msg-8",
100
+ type: "space",
101
+ isRead: false,
102
+ title: "协作流【协作流名称】 - 【活动名称】需要人工确认",
103
+ },
104
+ {
105
+ id: "msg-9",
106
+ type: "space",
107
+ isRead: true,
108
+ title: "【项目协作功能】已发布",
109
+ },
110
+ {
111
+ id: "msg-10",
112
+ type: "system",
113
+ isRead: true,
114
+ title: "Samuel在项目【项目A】@了你",
115
+ },
116
+ ]}
117
+ onNoticeClick={(e) => console.log("点击了消息:", e.detail)}
118
+ onMarkAllRead={(e) => console.log("点击了全部已读")}
119
+ />
120
+ ```
121
+
122
+ ### 空状态
123
+
124
+ 当没有消息时展示空状态提示文案。
125
+
126
+ ```tsx
127
+ <WrappedAiPortalNoticeDropdown dataSource={[]} emptyText="暂无新消息" />
128
+ ```
129
+
130
+ ### 自定义触发器
131
+
132
+ 使用 trigger 插槽放置自定义触发器元素(如按钮)。
133
+
134
+ ```tsx
135
+ <WrappedAiPortalNoticeDropdown
136
+ dataSource={[
137
+ {
138
+ id: "msg-1",
139
+ isRead: false,
140
+ type: "project",
141
+ title: "协作流【研发设计】已完成",
142
+ },
143
+ {
144
+ id: "msg-2",
145
+ isRead: false,
146
+ type: "space",
147
+ title: "协作流【协作流名称】需要人工确认",
148
+ },
149
+ {
150
+ id: "msg-3",
151
+ type: "account",
152
+ isRead: true,
153
+ title: "【项目协作功能】已发布",
154
+ },
155
+ ]}
156
+ hideNotifyCenterButton={true}
157
+ dropdownMaxWidth={400}
158
+ >
159
+ <WrappedEoButton
160
+ slot="trigger"
161
+ type="primary"
162
+ icon={{ lib: "antd", icon: "bell" }}
163
+ >
164
+ 查看通知
165
+ </WrappedEoButton>
166
+ </WrappedAiPortalNoticeDropdown>
167
+ ```