@next-bricks/ai-portal 0.70.1 → 0.70.3
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.
- package/dist/bricks.json +45 -45
- package/dist/chunks/1097.05983e91.js +3 -0
- package/dist/chunks/{1097.9e80dcca.js.LICENSE.txt → 1097.05983e91.js.LICENSE.txt} +2 -0
- package/dist/chunks/1097.05983e91.js.map +1 -0
- package/dist/chunks/{1889.b7766f77.js → 1889.803775eb.js} +2 -2
- package/dist/chunks/{1889.b7766f77.js.map → 1889.803775eb.js.map} +1 -1
- package/dist/chunks/3171.9d323cbe.js +2 -0
- package/dist/chunks/3171.9d323cbe.js.map +1 -0
- package/dist/chunks/{3186.f231329a.js → 3186.ca53075a.js} +2 -2
- package/dist/chunks/{3186.f231329a.js.map → 3186.ca53075a.js.map} +1 -1
- package/dist/chunks/3840.6080d56e.js +3 -0
- package/dist/chunks/3840.6080d56e.js.map +1 -0
- package/dist/chunks/{4864.bee3bb30.js → 4864.beefe6d5.js} +2 -2
- package/dist/chunks/{4864.bee3bb30.js.map → 4864.beefe6d5.js.map} +1 -1
- package/dist/chunks/5399.ef4bb3aa.js +2 -0
- package/dist/chunks/5399.ef4bb3aa.js.map +1 -0
- package/dist/chunks/551.ae5171a6.js +3 -0
- package/dist/chunks/551.ae5171a6.js.map +1 -0
- package/dist/chunks/5552.53024929.js +2 -0
- package/dist/chunks/5552.53024929.js.map +1 -0
- package/dist/chunks/6277.c8a6013f.js +2 -0
- package/dist/chunks/6277.c8a6013f.js.map +1 -0
- package/dist/chunks/6376.c35ff317.js +2 -0
- package/dist/chunks/6376.c35ff317.js.map +1 -0
- package/dist/chunks/7669.6f177bf2.js +3 -0
- package/dist/chunks/7669.6f177bf2.js.map +1 -0
- package/dist/chunks/794.214aa08f.js +3 -0
- package/dist/chunks/794.214aa08f.js.map +1 -0
- package/dist/chunks/948.c96c7036.js +3 -0
- package/dist/chunks/948.c96c7036.js.map +1 -0
- package/dist/chunks/action-buttons.68666920.js.map +1 -1
- package/dist/chunks/activity-timeline.96e7aaea.js.map +1 -1
- package/dist/chunks/ai-agents.cffd08a0.js.map +1 -1
- package/dist/chunks/ai-employees.267c3626.js.map +1 -1
- package/dist/chunks/blank-state.648eea95.js.map +1 -1
- package/dist/chunks/chat-box.060b8727.js +3 -0
- package/dist/chunks/chat-box.060b8727.js.map +1 -0
- package/dist/chunks/chat-input.e913e9ed.js +3 -0
- package/dist/chunks/chat-input.e913e9ed.js.map +1 -0
- package/dist/chunks/chat-panel-welcome.2f7c6c8b.js.map +1 -1
- package/dist/chunks/{chat-panel.3160f2e8.js → chat-panel.63207d2f.js} +2 -2
- package/dist/chunks/chat-panel.63207d2f.js.map +1 -0
- package/dist/chunks/chat-stream.393c8241.js.map +1 -1
- package/dist/chunks/cruise-canvas.bfae3138.js.map +1 -1
- package/dist/chunks/dropdown-select.336442ba.js.map +1 -1
- package/dist/chunks/elevo-card.49b42ed0.js.map +1 -1
- package/dist/chunks/elevo-logo.25e3b889.js.map +1 -1
- package/dist/chunks/elevo-sidebar.dfaaf9d1.js +3 -0
- package/dist/chunks/elevo-sidebar.dfaaf9d1.js.map +1 -0
- package/dist/chunks/flow-tabs.ee1290c2.js.map +1 -1
- package/dist/chunks/goal-card-list.74ab5767.js.map +1 -1
- package/dist/chunks/home-container.f1829834.js.map +1 -1
- package/dist/chunks/icon-button.545ffb24.js.map +1 -1
- package/dist/chunks/main.5e1b11a5.js +2 -0
- package/dist/chunks/main.5e1b11a5.js.map +1 -0
- package/dist/chunks/mcp-tools.f132c502.js.map +1 -1
- package/dist/chunks/notice-dropdown.63cb2415.js.map +1 -1
- package/dist/chunks/page-container.2185f2e0.js.map +1 -1
- package/dist/chunks/preview-container.a0ca6e2f.js.map +1 -1
- package/dist/chunks/project-knowledges.51731410.js.map +1 -1
- package/dist/chunks/running-flow.37a428cf.js.map +1 -1
- package/dist/chunks/show-case.44e995fc.js.map +1 -1
- package/dist/chunks/show-cases.c3921ea0.js.map +1 -1
- package/dist/chunks/space-chat-guide.b9f77cb5.js +3 -0
- package/dist/chunks/space-chat-guide.b9f77cb5.js.map +1 -0
- package/dist/chunks/space-logo.994f7a25.js.map +1 -1
- package/dist/chunks/space-workbench.9d48eec0.js +2 -0
- package/dist/chunks/space-workbench.9d48eec0.js.map +1 -0
- package/dist/chunks/stage-flow.9b6fad93.js.map +1 -1
- package/dist/chunks/stat-with-mini-chart.1509cf8c.js.map +1 -1
- package/dist/chunks/sticky-container.d3f7054e.js.map +1 -1
- package/dist/chunks/tab-list.ee97567f.js.map +1 -1
- package/dist/examples.json +56 -44
- package/dist/index.34851313.js +2 -0
- package/dist/index.34851313.js.map +1 -0
- package/dist/manifest.json +624 -343
- package/dist/types.json +1309 -1309
- package/dist-types/action-buttons/i18n.d.ts +1 -1
- package/dist-types/action-buttons/index.d.ts +10 -1
- package/dist-types/activity-timeline/i18n.d.ts +1 -1
- package/dist-types/activity-timeline/index.d.ts +10 -1
- package/dist-types/ai-agents/i18n.d.ts +1 -1
- package/dist-types/ai-agents/index.d.ts +10 -1
- package/dist-types/ai-employees/i18n.d.ts +1 -1
- package/dist-types/ai-employees/index.d.ts +16 -1
- package/dist-types/blank-state/index.d.ts +10 -1
- package/dist-types/chat-box/i18n.d.ts +1 -1
- package/dist-types/chat-input/i18n.d.ts +1 -1
- package/dist-types/chat-input/index.d.ts +37 -1
- package/dist-types/chat-panel/ChatPanelContent.d.ts +2 -2
- package/dist-types/chat-panel/index.d.ts +48 -6
- package/dist-types/chat-stream/Aside/FlowApp/i18n.d.ts +1 -1
- package/dist-types/chat-stream/i18n.d.ts +1 -1
- package/dist-types/chat-stream/index.d.ts +62 -1
- package/dist-types/cruise-canvas/NodeReplay/i18n.d.ts +1 -1
- package/dist-types/cruise-canvas/ToolCallDetail/i18n.d.ts +1 -1
- package/dist-types/cruise-canvas/i18n.d.ts +1 -1
- package/dist-types/cruise-canvas/index.d.ts +71 -1
- package/dist-types/dropdown-select/i18n.d.ts +1 -1
- package/dist-types/dropdown-select/index.d.ts +3 -1
- package/dist-types/elevo-card/index.d.ts +5 -1
- package/dist-types/elevo-logo/index.d.ts +3 -1
- package/dist-types/elevo-sidebar/i18n.d.ts +1 -1
- package/dist-types/elevo-sidebar/index.d.ts +19 -2
- package/dist-types/flow-tabs/index.d.ts +5 -1
- package/dist-types/gantt-chart/i18n.d.ts +1 -1
- package/dist-types/gantt-chart/index.d.ts +3 -1
- package/dist-types/goal-card-list/i18n.d.ts +1 -1
- package/dist-types/goal-card-list/index.d.ts +8 -1
- package/dist-types/home-container/index.d.ts +4 -1
- package/dist-types/icon-button/index.d.ts +4 -1
- package/dist-types/mcp-tools/i18n.d.ts +1 -1
- package/dist-types/mcp-tools/index.d.ts +3 -1
- package/dist-types/notice-dropdown/i18n.d.ts +1 -1
- package/dist-types/notice-list/i18n.d.ts +1 -1
- package/dist-types/page-container/index.d.ts +7 -0
- package/dist-types/preview-container/i18n.d.ts +1 -1
- package/dist-types/preview-container/index.d.ts +4 -0
- package/dist-types/project-conversations/i18n.d.ts +1 -1
- package/dist-types/project-knowledges/i18n.d.ts +1 -1
- package/dist-types/project-knowledges/index.d.ts +5 -0
- package/dist-types/running-flow/index.d.ts +3 -0
- package/dist-types/shared/ActivityPlan/i18n.d.ts +1 -1
- package/dist-types/shared/AskUser/i18n.d.ts +1 -1
- package/dist-types/shared/ChatBox/i18n.d.ts +1 -1
- package/dist-types/shared/CreatedView/i18n.d.ts +1 -1
- package/dist-types/shared/FilePreview/i18n.d.ts +1 -1
- package/dist-types/shared/FileUpload/i18n.d.ts +1 -1
- package/dist-types/shared/NodeFeedback/i18n.d.ts +1 -1
- package/dist-types/show-case/i18n.d.ts +1 -1
- package/dist-types/show-case/index.d.ts +5 -0
- package/dist-types/show-cases/i18n.d.ts +1 -1
- package/dist-types/show-cases/index.d.ts +4 -0
- package/dist-types/space-workbench/chat-panel-welcome/i18n.d.ts +1 -1
- package/dist-types/space-workbench/chat-panel-welcome/index.d.ts +3 -0
- package/dist-types/space-workbench/i18n.d.ts +1 -1
- package/dist-types/space-workbench/index.d.ts +7 -0
- package/dist-types/space-workbench/space-chat-guide/i18n.d.ts +1 -1
- package/dist-types/space-workbench/space-chat-guide/index.d.ts +3 -0
- package/dist-types/space-workbench/space-logo/index.d.ts +1 -0
- package/dist-types/stage-flow/i18n.d.ts +1 -1
- package/dist-types/stage-flow/index.d.ts +21 -0
- package/dist-types/stat-with-mini-chart/index.d.ts +10 -0
- package/dist-types/sticky-container/index.d.ts +3 -0
- package/dist-types/tab-list/index.d.ts +4 -0
- package/docs/action-buttons.md +59 -10
- package/docs/action-buttons.react.md +80 -0
- package/docs/activity-timeline.md +51 -7
- package/docs/activity-timeline.react.md +109 -0
- package/docs/ai-agents.md +62 -2
- package/docs/ai-agents.react.md +73 -0
- package/docs/ai-employees.md +76 -2
- package/docs/ai-employees.react.md +106 -0
- package/docs/blank-state.md +62 -2
- package/docs/blank-state.react.md +77 -0
- package/docs/chat-box.md +134 -52
- package/docs/chat-box.react.md +142 -0
- package/docs/chat-input.md +117 -1
- package/docs/chat-input.react.md +117 -0
- package/docs/chat-panel-welcome.md +39 -0
- package/docs/chat-panel-welcome.react.md +41 -0
- package/docs/chat-panel.md +86 -3
- package/docs/chat-panel.react.md +109 -0
- package/docs/chat-stream.md +149 -2
- package/docs/chat-stream.react.md +155 -0
- package/docs/cruise-canvas.md +159 -0
- package/docs/cruise-canvas.react.md +159 -0
- package/docs/dropdown-select.md +37 -8
- package/docs/dropdown-select.react.md +144 -0
- package/docs/elevo-card.md +75 -1
- package/docs/elevo-card.react.md +104 -0
- package/docs/elevo-logo.md +13 -1
- package/docs/elevo-logo.react.md +27 -0
- package/docs/elevo-sidebar.md +150 -1
- package/docs/elevo-sidebar.react.md +149 -0
- package/docs/flow-tabs.md +97 -2
- package/docs/flow-tabs.react.md +102 -0
- package/docs/gantt-chart.md +101 -0
- package/docs/gantt-chart.react.md +125 -0
- package/docs/goal-card-list.md +149 -13
- package/docs/goal-card-list.react.md +185 -0
- package/docs/home-container.md +48 -2
- package/docs/home-container.react.md +51 -0
- package/docs/icon-button.md +128 -2
- package/docs/icon-button.react.md +120 -0
- package/docs/mcp-tools.md +105 -2
- package/docs/mcp-tools.react.md +117 -0
- package/docs/notice-dropdown.md +53 -10
- package/docs/notice-dropdown.react.md +167 -0
- package/docs/notice-list.md +53 -5
- package/docs/notice-list.react.md +121 -0
- package/docs/page-container.md +80 -3
- package/docs/page-container.react.md +83 -0
- package/docs/preview-container.md +22 -32
- package/docs/preview-container.react.md +71 -0
- package/docs/project-conversations.md +85 -4
- package/docs/project-conversations.react.md +110 -0
- package/docs/project-knowledges.md +73 -8
- package/docs/project-knowledges.react.md +85 -0
- package/docs/running-flow.md +57 -2
- package/docs/running-flow.react.md +90 -0
- package/docs/show-case.md +48 -3
- package/docs/show-case.react.md +60 -0
- package/docs/show-cases.md +52 -2
- package/docs/show-cases.react.md +92 -0
- package/docs/space-chat-guide.md +32 -0
- package/docs/space-chat-guide.react.md +39 -0
- package/docs/space-logo.md +53 -0
- package/docs/space-logo.react.md +46 -0
- package/docs/space-workbench.md +45 -2
- package/docs/space-workbench.react.md +102 -0
- package/docs/stage-flow.md +122 -26
- package/docs/stage-flow.react.md +112 -0
- package/docs/stat-with-mini-chart.md +64 -159
- package/docs/stat-with-mini-chart.react.md +113 -0
- package/docs/sticky-container.md +56 -3
- package/docs/sticky-container.react.md +60 -0
- package/docs/tab-list.md +74 -3
- package/docs/tab-list.react.md +73 -0
- package/package.json +2 -2
- package/dist/chunks/1097.9e80dcca.js +0 -3
- package/dist/chunks/1097.9e80dcca.js.map +0 -1
- package/dist/chunks/2341.0e70532b.js +0 -2
- package/dist/chunks/2341.0e70532b.js.map +0 -1
- package/dist/chunks/3171.45ef4669.js +0 -2
- package/dist/chunks/3171.45ef4669.js.map +0 -1
- package/dist/chunks/3573.7b0bb780.js +0 -3
- package/dist/chunks/3573.7b0bb780.js.map +0 -1
- package/dist/chunks/4459.dbfa8706.js +0 -3
- package/dist/chunks/4459.dbfa8706.js.map +0 -1
- package/dist/chunks/4837.570099ad.js +0 -2
- package/dist/chunks/4837.570099ad.js.map +0 -1
- package/dist/chunks/5399.501fc322.js +0 -2
- package/dist/chunks/5399.501fc322.js.map +0 -1
- package/dist/chunks/5552.09658542.js +0 -2
- package/dist/chunks/5552.09658542.js.map +0 -1
- package/dist/chunks/6380.b8610c4b.js +0 -3
- package/dist/chunks/6380.b8610c4b.js.map +0 -1
- package/dist/chunks/7202.a893b0e6.js +0 -3
- package/dist/chunks/7202.a893b0e6.js.map +0 -1
- package/dist/chunks/948.e601f18c.js +0 -3
- package/dist/chunks/948.e601f18c.js.map +0 -1
- package/dist/chunks/9599.02a5e6e3.js +0 -2
- package/dist/chunks/9599.02a5e6e3.js.map +0 -1
- package/dist/chunks/9848.4b1f38c9.js +0 -3
- package/dist/chunks/9848.4b1f38c9.js.LICENSE.txt +0 -1
- package/dist/chunks/9848.4b1f38c9.js.map +0 -1
- package/dist/chunks/chat-box.1ac7555a.js +0 -3
- package/dist/chunks/chat-box.1ac7555a.js.map +0 -1
- package/dist/chunks/chat-input.444c80bb.js +0 -3
- package/dist/chunks/chat-input.444c80bb.js.map +0 -1
- package/dist/chunks/chat-panel.3160f2e8.js.map +0 -1
- package/dist/chunks/elevo-sidebar.a197a77f.js +0 -3
- package/dist/chunks/elevo-sidebar.a197a77f.js.map +0 -1
- package/dist/chunks/main.9d171af9.js +0 -2
- package/dist/chunks/main.9d171af9.js.map +0 -1
- package/dist/chunks/space-chat-guide.84f4a1e7.js +0 -3
- package/dist/chunks/space-chat-guide.84f4a1e7.js.map +0 -1
- package/dist/chunks/space-workbench.8c064898.js +0 -2
- package/dist/chunks/space-workbench.8c064898.js.map +0 -1
- package/dist/index.0edd6320.js +0 -2
- package/dist/index.0edd6320.js.map +0 -1
- /package/dist/chunks/{3573.7b0bb780.js.LICENSE.txt → 3840.6080d56e.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{4459.dbfa8706.js.LICENSE.txt → 551.ae5171a6.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{7202.a893b0e6.js.LICENSE.txt → 7669.6f177bf2.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{6380.b8610c4b.js.LICENSE.txt → 794.214aa08f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{948.e601f18c.js.LICENSE.txt → 948.c96c7036.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{chat-box.1ac7555a.js.LICENSE.txt → chat-box.060b8727.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{chat-input.444c80bb.js.LICENSE.txt → chat-input.e913e9ed.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{elevo-sidebar.a197a77f.js.LICENSE.txt → elevo-sidebar.dfaaf9d1.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{space-chat-guide.84f4a1e7.js.LICENSE.txt → space-chat-guide.b9f77cb5.js.LICENSE.txt} +0 -0
package/docs/notice-list.md
CHANGED
|
@@ -1,12 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.notice-list
|
|
3
|
+
displayName: WrappedAiPortalNoticeList
|
|
4
|
+
description: 消息通知列表构件,用于展示消息列表,支持批量操作
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
2
8
|
|
|
3
|
-
|
|
9
|
+
# ai-portal.notice-list
|
|
10
|
+
|
|
11
|
+
> 消息通知列表构件,用于展示消息列表,支持批量操作
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ----------- | -------------- | ---- | ------ | ------------------ |
|
|
17
|
+
| dataSource | `NoticeItem[]` | 否 | - | 消息数据列表 |
|
|
18
|
+
| emptyText | `string` | 否 | - | 空状态文案 |
|
|
19
|
+
| urlTemplate | `string` | 否 | - | 详情链接 |
|
|
20
|
+
| urlTarget | `Target` | 否 | - | 详情链接目标 |
|
|
21
|
+
| selectedIds | `string[]` | 否 | - | 选中的消息 ID 数组 |
|
|
22
|
+
|
|
23
|
+
## Events
|
|
24
|
+
|
|
25
|
+
| 事件 | detail | 说明 |
|
|
26
|
+
| --------------- | ----------------------------------- | ------------------ |
|
|
27
|
+
| notice.click | `NoticeItem` — 消息项数据 | 消息项点击事件 |
|
|
28
|
+
| mark.items.read | `NoticeItem[]` — 选中的消息 ID 数组 | 标记消息项已读事件 |
|
|
29
|
+
| mark.all.read | `void` | 全部已读事件 |
|
|
4
30
|
|
|
5
31
|
## Examples
|
|
6
32
|
|
|
7
|
-
###
|
|
33
|
+
### 基础使用
|
|
8
34
|
|
|
9
|
-
|
|
35
|
+
展示消息列表,支持批量选择和标记已读操作。
|
|
10
36
|
|
|
11
37
|
```yaml preview
|
|
12
38
|
brick: ai-portal.notice-list
|
|
@@ -54,7 +80,7 @@ events:
|
|
|
54
80
|
- "全部已读"
|
|
55
81
|
```
|
|
56
82
|
|
|
57
|
-
###
|
|
83
|
+
### 空状态
|
|
58
84
|
|
|
59
85
|
空状态展示,可以自定义空状态文案。
|
|
60
86
|
|
|
@@ -64,3 +90,25 @@ properties:
|
|
|
64
90
|
dataSource: []
|
|
65
91
|
emptyText: "暂无新消息通知"
|
|
66
92
|
```
|
|
93
|
+
|
|
94
|
+
### 带链接跳转
|
|
95
|
+
|
|
96
|
+
配置 urlTemplate 使消息项点击后跳转到详情页。
|
|
97
|
+
|
|
98
|
+
```yaml preview
|
|
99
|
+
brick: ai-portal.notice-list
|
|
100
|
+
properties:
|
|
101
|
+
urlTemplate: "/notices/{{id}}"
|
|
102
|
+
urlTarget: "_blank"
|
|
103
|
+
dataSource:
|
|
104
|
+
- id: "1"
|
|
105
|
+
type: "project"
|
|
106
|
+
isRead: false
|
|
107
|
+
title: "协作流【研发设计】已完成"
|
|
108
|
+
time: 1761207261887
|
|
109
|
+
- id: "2"
|
|
110
|
+
type: "account"
|
|
111
|
+
isRead: false
|
|
112
|
+
title: "您的账户资源配额即将达到限制"
|
|
113
|
+
time: 1761812267887
|
|
114
|
+
```
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.notice-list
|
|
3
|
+
displayName: WrappedAiPortalNoticeList
|
|
4
|
+
description: 消息通知列表构件,用于展示消息列表,支持批量操作
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedAiPortalNoticeList
|
|
10
|
+
|
|
11
|
+
> 消息通知列表构件,用于展示消息列表,支持批量操作
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedAiPortalNoticeList } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ----------- | -------------- | ---- | ------ | ------------------ |
|
|
23
|
+
| dataSource | `NoticeItem[]` | 否 | - | 消息数据列表 |
|
|
24
|
+
| emptyText | `string` | 否 | - | 空状态文案 |
|
|
25
|
+
| urlTemplate | `string` | 否 | - | 详情链接 |
|
|
26
|
+
| urlTarget | `Target` | 否 | - | 详情链接目标 |
|
|
27
|
+
| selectedIds | `string[]` | 否 | - | 选中的消息 ID 数组 |
|
|
28
|
+
|
|
29
|
+
## Events
|
|
30
|
+
|
|
31
|
+
| 事件 | detail | 说明 |
|
|
32
|
+
| --------------- | ----------------------------------- | ------------------ |
|
|
33
|
+
| onNoticeClick | `NoticeItem` — 消息项数据 | 消息项点击事件 |
|
|
34
|
+
| onMarkItemsRead | `NoticeItem[]` — 选中的消息 ID 数组 | 标记消息项已读事件 |
|
|
35
|
+
| onMarkAllRead | `void` | 全部已读事件 |
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
### 基础使用
|
|
40
|
+
|
|
41
|
+
展示消息列表,支持批量选择和标记已读操作。
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
<WrappedAiPortalNoticeList
|
|
45
|
+
dataSource={[
|
|
46
|
+
{
|
|
47
|
+
id: "1",
|
|
48
|
+
type: "project",
|
|
49
|
+
isRead: true,
|
|
50
|
+
title: "协作流【研发设计】已完成",
|
|
51
|
+
time: 1761207261887,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: "2",
|
|
55
|
+
type: "account",
|
|
56
|
+
isRead: true,
|
|
57
|
+
title: "您的账户资源配额即将达到限制",
|
|
58
|
+
time: 1761812267887,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: "3",
|
|
62
|
+
type: "system",
|
|
63
|
+
isRead: false,
|
|
64
|
+
title: "服务通知:服务维护",
|
|
65
|
+
time: 1761818247887,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: "4",
|
|
69
|
+
type: "space",
|
|
70
|
+
isRead: false,
|
|
71
|
+
title: "Luna 在项目【系统资源收集】中@了你",
|
|
72
|
+
time: 1761820851887,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "5",
|
|
76
|
+
type: "project",
|
|
77
|
+
isRead: false,
|
|
78
|
+
title: "协作流【设计规范】已完成",
|
|
79
|
+
time: 1761821891887,
|
|
80
|
+
},
|
|
81
|
+
]}
|
|
82
|
+
onNoticeClick={(e) => console.log("消息点击:", e.detail)}
|
|
83
|
+
onMarkItemsRead={(e) => console.log("消息已读:", e.detail)}
|
|
84
|
+
onMarkAllRead={(e) => console.log("全部已读")}
|
|
85
|
+
/>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 空状态
|
|
89
|
+
|
|
90
|
+
空状态展示,可以自定义空状态文案。
|
|
91
|
+
|
|
92
|
+
```tsx
|
|
93
|
+
<WrappedAiPortalNoticeList dataSource={[]} emptyText="暂无新消息通知" />
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 带链接跳转
|
|
97
|
+
|
|
98
|
+
配置 urlTemplate 使消息项点击后跳转到详情页。
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
<WrappedAiPortalNoticeList
|
|
102
|
+
urlTemplate="/notices/{{id}}"
|
|
103
|
+
urlTarget="_blank"
|
|
104
|
+
dataSource={[
|
|
105
|
+
{
|
|
106
|
+
id: "1",
|
|
107
|
+
type: "project",
|
|
108
|
+
isRead: false,
|
|
109
|
+
title: "协作流【研发设计】已完成",
|
|
110
|
+
time: 1761207261887,
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
id: "2",
|
|
114
|
+
type: "account",
|
|
115
|
+
isRead: false,
|
|
116
|
+
title: "您的账户资源配额即将达到限制",
|
|
117
|
+
time: 1761812267887,
|
|
118
|
+
},
|
|
119
|
+
]}
|
|
120
|
+
/>
|
|
121
|
+
```
|
package/docs/page-container.md
CHANGED
|
@@ -1,11 +1,88 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.page-container
|
|
3
|
+
displayName: WrappedAiPortalPageContainer
|
|
4
|
+
description: 页面容器构件,提供统一的页面布局,包含面包屑导航、页面标题和内容区域。
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ai-portal.page-container
|
|
10
|
+
|
|
11
|
+
> 页面容器构件,提供统一的页面布局,包含面包屑导航、页面标题和内容区域。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ----------- | ------------------------------- | ---- | ------ | ---------------------------------------------------------------------- |
|
|
17
|
+
| pageTitle | `string` | 否 | - | 页面标题,同时会调用 applyPageTitle 更新浏览器标签页标题 |
|
|
18
|
+
| breadcrumbs | `Breadcrumb[]` | 否 | - | 面包屑导航配置,每项包含 text 和 url |
|
|
19
|
+
| size | `"medium" \| "small" \| "full"` | 否 | - | 内容区域宽度模式,通过 CSS attribute selector 控制样式,不触发重新渲染 |
|
|
20
|
+
| variant | `"default" \| "form"` | 否 | - | 页面变体,通过 CSS attribute selector 控制样式,不触发重新渲染 |
|
|
21
|
+
| sticky | `boolean` | 否 | - | 是否固定头部(含面包屑和标题)到页面顶部 |
|
|
22
|
+
|
|
23
|
+
## Slots
|
|
24
|
+
|
|
25
|
+
| 名称 | 说明 |
|
|
26
|
+
| --------- | ------ |
|
|
27
|
+
| (default) | 内容 |
|
|
28
|
+
| toolbar | 工具栏 |
|
|
2
29
|
|
|
3
30
|
## Examples
|
|
4
31
|
|
|
5
|
-
###
|
|
32
|
+
### 基础使用
|
|
33
|
+
|
|
34
|
+
展示带页面标题和面包屑导航的页面容器。
|
|
35
|
+
|
|
36
|
+
```yaml preview
|
|
37
|
+
brick: ai-portal.page-container
|
|
38
|
+
properties:
|
|
39
|
+
pageTitle: "页面标题"
|
|
40
|
+
breadcrumbs:
|
|
41
|
+
- text: "首页"
|
|
42
|
+
url: "/"
|
|
43
|
+
- text: "子页面"
|
|
44
|
+
url: "/sub"
|
|
45
|
+
children:
|
|
46
|
+
- brick: div
|
|
47
|
+
properties:
|
|
48
|
+
textContent: "页面内容区域"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 带工具栏
|
|
52
|
+
|
|
53
|
+
在标题区右侧放置操作按钮。
|
|
54
|
+
|
|
55
|
+
```yaml preview
|
|
56
|
+
brick: ai-portal.page-container
|
|
57
|
+
properties:
|
|
58
|
+
pageTitle: "资源管理"
|
|
59
|
+
breadcrumbs:
|
|
60
|
+
- text: "首页"
|
|
61
|
+
url: "/"
|
|
62
|
+
children:
|
|
63
|
+
- brick: eo-button
|
|
64
|
+
slot: toolbar
|
|
65
|
+
properties:
|
|
66
|
+
type: primary
|
|
67
|
+
textContent: "新建"
|
|
68
|
+
- brick: div
|
|
69
|
+
properties:
|
|
70
|
+
textContent: "内容区域"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 固定头部
|
|
74
|
+
|
|
75
|
+
启用 sticky 将面包屑和标题区域固定在顶部。
|
|
6
76
|
|
|
7
77
|
```yaml preview
|
|
8
78
|
brick: ai-portal.page-container
|
|
9
79
|
properties:
|
|
10
|
-
|
|
80
|
+
pageTitle: "固定头部示例"
|
|
81
|
+
sticky: true
|
|
82
|
+
size: medium
|
|
83
|
+
variant: default
|
|
84
|
+
children:
|
|
85
|
+
- brick: div
|
|
86
|
+
properties:
|
|
87
|
+
textContent: "内容滚动时头部保持固定"
|
|
11
88
|
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.page-container
|
|
3
|
+
displayName: WrappedAiPortalPageContainer
|
|
4
|
+
description: 页面容器构件,提供统一的页面布局,包含面包屑导航、页面标题和内容区域。
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedAiPortalPageContainer
|
|
10
|
+
|
|
11
|
+
> 页面容器构件,提供统一的页面布局,包含面包屑导航、页面标题和内容区域。
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedAiPortalPageContainer } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ----------- | ------------------------------- | ---- | ------ | ---------------------------------------------------------------------- |
|
|
23
|
+
| pageTitle | `string` | 否 | - | 页面标题,同时会调用 applyPageTitle 更新浏览器标签页标题 |
|
|
24
|
+
| breadcrumbs | `Breadcrumb[]` | 否 | - | 面包屑导航配置,每项包含 text 和 url |
|
|
25
|
+
| size | `"medium" \| "small" \| "full"` | 否 | - | 内容区域宽度模式,通过 CSS attribute selector 控制样式,不触发重新渲染 |
|
|
26
|
+
| variant | `"default" \| "form"` | 否 | - | 页面变体,通过 CSS attribute selector 控制样式,不触发重新渲染 |
|
|
27
|
+
| sticky | `boolean` | 否 | - | 是否固定头部(含面包屑和标题)到页面顶部 |
|
|
28
|
+
|
|
29
|
+
## Slots
|
|
30
|
+
|
|
31
|
+
| 名称 | 说明 |
|
|
32
|
+
| --------- | ------ |
|
|
33
|
+
| (default) | 内容 |
|
|
34
|
+
| toolbar | 工具栏 |
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
### 基础使用
|
|
39
|
+
|
|
40
|
+
展示带页面标题和面包屑导航的页面容器。
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
<WrappedAiPortalPageContainer
|
|
44
|
+
pageTitle="页面标题"
|
|
45
|
+
breadcrumbs={[
|
|
46
|
+
{ text: "首页", url: "/" },
|
|
47
|
+
{ text: "子页面", url: "/sub" },
|
|
48
|
+
]}
|
|
49
|
+
>
|
|
50
|
+
<div>页面内容区域</div>
|
|
51
|
+
</WrappedAiPortalPageContainer>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 带工具栏
|
|
55
|
+
|
|
56
|
+
在标题区右侧放置操作按钮。
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
<WrappedAiPortalPageContainer
|
|
60
|
+
pageTitle="资源管理"
|
|
61
|
+
breadcrumbs={[{ text: "首页", url: "/" }]}
|
|
62
|
+
>
|
|
63
|
+
<WrappedEoButton slot="toolbar" type="primary">
|
|
64
|
+
新建
|
|
65
|
+
</WrappedEoButton>
|
|
66
|
+
<div>内容区域</div>
|
|
67
|
+
</WrappedAiPortalPageContainer>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 固定头部
|
|
71
|
+
|
|
72
|
+
启用 sticky 将面包屑和标题区域固定在顶部。
|
|
73
|
+
|
|
74
|
+
```tsx
|
|
75
|
+
<WrappedAiPortalPageContainer
|
|
76
|
+
pageTitle="固定头部示例"
|
|
77
|
+
sticky={true}
|
|
78
|
+
size="medium"
|
|
79
|
+
variant="default"
|
|
80
|
+
>
|
|
81
|
+
<div>内容滚动时头部保持固定</div>
|
|
82
|
+
</WrappedAiPortalPageContainer>
|
|
83
|
+
```
|
|
@@ -1,8 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.preview-container
|
|
3
|
+
displayName: WrappedAiPortalPreviewContainer
|
|
4
|
+
description: TSX 源码预览容器,将 TSX 源码字符串解析并渲染为完整的页面视图。
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ai-portal.preview-container
|
|
10
|
+
|
|
11
|
+
> TSX 源码预览容器,将 TSX 源码字符串解析并渲染为完整的页面视图。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ------ | -------- | ---- | ------ | --------------------------------------------------------------- |
|
|
17
|
+
| source | `string` | 否 | - | TSX 源码字符串,将被解析并渲染为页面视图 |
|
|
18
|
+
| url | `string` | 否 | - | 渲染上下文中可访问的 URL,传入后可在视图内通过路由相关 API 使用 |
|
|
2
19
|
|
|
3
20
|
## Examples
|
|
4
21
|
|
|
5
|
-
###
|
|
22
|
+
### 基础使用
|
|
23
|
+
|
|
24
|
+
将 TSX 源码字符串解析并渲染为磁盘使用情况报告视图。
|
|
6
25
|
|
|
7
26
|
```yaml preview minHeight="600px"
|
|
8
27
|
brick: ai-portal.preview-container
|
|
@@ -76,7 +95,6 @@ properties:
|
|
|
76
95
|
<View title="磁盘使用情况">
|
|
77
96
|
{RESPONSE.list.map((item) => (
|
|
78
97
|
<Card title={item.ip}>
|
|
79
|
-
{/* 磁盘空间使用情况 */}
|
|
80
98
|
<Plaintext>磁盘空间使用</Plaintext>
|
|
81
99
|
<Table
|
|
82
100
|
dataSource={{ list: item.disk_usage }}
|
|
@@ -92,8 +110,6 @@ properties:
|
|
|
92
110
|
rowKey="device"
|
|
93
111
|
pagination={false}
|
|
94
112
|
/>
|
|
95
|
-
|
|
96
|
-
{/* Inode 使用情况 */}
|
|
97
113
|
<Plaintext>Inode 使用情况</Plaintext>
|
|
98
114
|
<Table
|
|
99
115
|
dataSource={{ list: item.inode_usage }}
|
|
@@ -103,37 +119,11 @@ properties:
|
|
|
103
119
|
{ dataIndex: "total_inodes", key: "total_inodes", title: "Inode 总数" },
|
|
104
120
|
{ dataIndex: "used_inodes", key: "used_inodes", title: "已用 Inode" },
|
|
105
121
|
{ dataIndex: "free_inodes", key: "free_inodes", title: "空闲 Inode" },
|
|
106
|
-
{
|
|
107
|
-
dataIndex: "percent", key: "percent", title: "使用率",
|
|
108
|
-
render: (cell, record) => (
|
|
109
|
-
// <Plaintext>{record.percent}%</Plaintext>
|
|
110
|
-
`~${record.percent}`
|
|
111
|
-
)
|
|
112
|
-
}
|
|
122
|
+
{ dataIndex: "percent", key: "percent", title: "使用率" }
|
|
113
123
|
]}
|
|
114
124
|
rowKey="device"
|
|
115
125
|
pagination={false}
|
|
116
126
|
/>
|
|
117
|
-
|
|
118
|
-
{/* 大文件列表(仅当存在 large_files 且有内容时) */}
|
|
119
|
-
{item.disk_usage
|
|
120
|
-
.filter(disk => disk.large_files && disk.large_files.length > 0)
|
|
121
|
-
.map(disk =>
|
|
122
|
-
disk.large_files ? (
|
|
123
|
-
<Fragment key={disk.device}>
|
|
124
|
-
<Plaintext>{`大文件列表 (${disk.mount_point})`}</Plaintext>
|
|
125
|
-
<Table
|
|
126
|
-
dataSource={{ list: disk.large_files }}
|
|
127
|
-
columns={[
|
|
128
|
-
{ dataIndex: "path", key: "path", title: "路径" },
|
|
129
|
-
{ dataIndex: "size", key: "size", title: "大小" }
|
|
130
|
-
]}
|
|
131
|
-
rowKey="path"
|
|
132
|
-
pagination={false}
|
|
133
|
-
/>
|
|
134
|
-
</Fragment>
|
|
135
|
-
) : null
|
|
136
|
-
)}
|
|
137
127
|
</Card>
|
|
138
128
|
))}
|
|
139
129
|
</View>
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.preview-container
|
|
3
|
+
displayName: WrappedAiPortalPreviewContainer
|
|
4
|
+
description: TSX 源码预览容器,将 TSX 源码字符串解析并渲染为完整的页面视图。
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedAiPortalPreviewContainer
|
|
10
|
+
|
|
11
|
+
> TSX 源码预览容器,将 TSX 源码字符串解析并渲染为完整的页面视图。
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedAiPortalPreviewContainer } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ------ | -------- | ---- | ------ | --------------------------------------------------------------- |
|
|
23
|
+
| source | `string` | 否 | - | TSX 源码字符串,将被解析并渲染为页面视图 |
|
|
24
|
+
| url | `string` | 否 | - | 渲染上下文中可访问的 URL,传入后可在视图内通过路由相关 API 使用 |
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
### 基础使用
|
|
29
|
+
|
|
30
|
+
将 TSX 源码字符串解析并渲染为磁盘使用情况报告视图。
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<WrappedAiPortalPreviewContainer
|
|
34
|
+
style={{ position: "fixed", inset: 0, overflowY: "auto" }}
|
|
35
|
+
source={`
|
|
36
|
+
const RESPONSE = {
|
|
37
|
+
"list": [
|
|
38
|
+
{
|
|
39
|
+
"ip": "172.30.0.134",
|
|
40
|
+
"disk_usage": [
|
|
41
|
+
{ "device": "/dev/sda1", "mount_point": "/", "total": "95.00GB", "used": "85.00GB", "free": "9.00GB", "percent": "91%", "rw_status": "rw" }
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export default (
|
|
48
|
+
<View title="磁盘使用情况">
|
|
49
|
+
{RESPONSE.list.map((item) => (
|
|
50
|
+
<Card title={item.ip}>
|
|
51
|
+
<Table
|
|
52
|
+
dataSource={{ list: item.disk_usage }}
|
|
53
|
+
columns={[
|
|
54
|
+
{ dataIndex: "device", key: "device", title: "设备" },
|
|
55
|
+
{ dataIndex: "mount_point", key: "mount_point", title: "挂载点" },
|
|
56
|
+
{ dataIndex: "total", key: "total", title: "总大小" },
|
|
57
|
+
{ dataIndex: "used", key: "used", title: "已用空间" },
|
|
58
|
+
{ dataIndex: "free", key: "free", title: "可用空间" },
|
|
59
|
+
{ dataIndex: "percent", key: "percent", title: "使用率" },
|
|
60
|
+
{ dataIndex: "rw_status", key: "rw_status", title: "读写状态" }
|
|
61
|
+
]}
|
|
62
|
+
rowKey="device"
|
|
63
|
+
pagination={false}
|
|
64
|
+
/>
|
|
65
|
+
</Card>
|
|
66
|
+
))}
|
|
67
|
+
</View>
|
|
68
|
+
);
|
|
69
|
+
`}
|
|
70
|
+
/>
|
|
71
|
+
```
|
|
@@ -1,8 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.project-conversations
|
|
3
|
+
displayName: WrappedAiPortalProjectConversations
|
|
4
|
+
description: 项目会话列表构件,展示项目中的会话记录,支持目标分类、操作菜单。
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ai-portal.project-conversations
|
|
10
|
+
|
|
11
|
+
> 项目会话列表构件,展示项目中的会话记录,支持目标分类、操作菜单。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ----------- | ---------------- | ---- | ------ | ---------------------------------------------------------------------------- |
|
|
17
|
+
| list | `Conversation[]` | 否 | - | 会话列表数据,为 undefined 时显示加载状态 |
|
|
18
|
+
| urlTemplate | `string` | 否 | - | 会话详情链接模板,支持使用会话字段插值,如 /conversations/{{conversationId}} |
|
|
19
|
+
| actions | `ActionType[]` | 否 | - | 操作菜单配置,每项会话行尾显示可操作的菜单项 |
|
|
20
|
+
| goals | `Goal[]` | 否 | - | 目标列表,用于显示会话关联的目标名称 |
|
|
21
|
+
|
|
22
|
+
## Events
|
|
23
|
+
|
|
24
|
+
| 事件 | detail | 说明 |
|
|
25
|
+
| ------------ | ------------------------------------------------------------------------------------------------------------- | ---------------------------- |
|
|
26
|
+
| goal.click | `Conversation` — { conversationId: 会话ID, title: 会话标题, startTime: 开始时间, goalInstanceId: 目标实例ID } | 点击会话关联的目标标签时触发 |
|
|
27
|
+
| action.click | `ActionClickDetail` — { action: 操作项配置, item: 所属会话数据 } | 点击操作菜单项时触发 |
|
|
2
28
|
|
|
3
29
|
## Examples
|
|
4
30
|
|
|
5
|
-
###
|
|
31
|
+
### 基础使用
|
|
32
|
+
|
|
33
|
+
展示会话列表,当 list 为 undefined 时显示加载态。
|
|
6
34
|
|
|
7
35
|
```yaml preview
|
|
8
36
|
brick: ai-portal.project-conversations
|
|
@@ -12,13 +40,66 @@ properties:
|
|
|
12
40
|
title: 标题一
|
|
13
41
|
description: 这是一段描述
|
|
14
42
|
startTime: 1757904096
|
|
15
|
-
goal: GOAL0005
|
|
16
43
|
- conversationId: "conv-b"
|
|
17
44
|
title: 标题二
|
|
18
45
|
startTime: 1757863597
|
|
19
46
|
```
|
|
20
47
|
|
|
21
|
-
###
|
|
48
|
+
### 带目标分类
|
|
49
|
+
|
|
50
|
+
配置 goals 后会话卡片会显示关联的目标名称标签。
|
|
51
|
+
|
|
52
|
+
```yaml preview
|
|
53
|
+
brick: ai-portal.project-conversations
|
|
54
|
+
properties:
|
|
55
|
+
goals:
|
|
56
|
+
- instanceId: "GOAL0001"
|
|
57
|
+
title: "提升研发效率"
|
|
58
|
+
- instanceId: "GOAL0002"
|
|
59
|
+
title: "降低故障率"
|
|
60
|
+
list:
|
|
61
|
+
- conversationId: "conv-a"
|
|
62
|
+
title: 关联目标的会话
|
|
63
|
+
startTime: 1757904096
|
|
64
|
+
goalInstanceId: "GOAL0001"
|
|
65
|
+
- conversationId: "conv-b"
|
|
66
|
+
title: 全局会话(无目标)
|
|
67
|
+
startTime: 1757863597
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 带操作菜单
|
|
71
|
+
|
|
72
|
+
配置 actions 后每行显示可操作的菜单项。
|
|
73
|
+
|
|
74
|
+
```yaml preview
|
|
75
|
+
brick: ai-portal.project-conversations
|
|
76
|
+
properties:
|
|
77
|
+
actions:
|
|
78
|
+
- text: "删除"
|
|
79
|
+
event: "delete"
|
|
80
|
+
icon:
|
|
81
|
+
lib: "antd"
|
|
82
|
+
icon: "delete"
|
|
83
|
+
list:
|
|
84
|
+
- conversationId: "conv-a"
|
|
85
|
+
title: 会话标题一
|
|
86
|
+
description: 这是一段描述
|
|
87
|
+
startTime: 1757904096
|
|
88
|
+
username: "alice"
|
|
89
|
+
- conversationId: "conv-b"
|
|
90
|
+
title: 会话标题二
|
|
91
|
+
startTime: 1757863597
|
|
92
|
+
events:
|
|
93
|
+
action.click:
|
|
94
|
+
action: console.log
|
|
95
|
+
args:
|
|
96
|
+
- "操作点击:"
|
|
97
|
+
- "<% EVENT.detail %>"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 加载状态
|
|
101
|
+
|
|
102
|
+
list 为 undefined 时显示加载中状态。
|
|
22
103
|
|
|
23
104
|
```yaml preview
|
|
24
105
|
brick: ai-portal.project-conversations
|