@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.
- package/dist/bricks.json +42 -42
- package/dist/chunks/7202.a893b0e6.js.map +1 -1
- 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-input.444c80bb.js.map +1 -1
- package/dist/chunks/chat-panel-welcome.2f7c6c8b.js.map +1 -1
- package/dist/chunks/chat-panel.3160f2e8.js.map +1 -1
- 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.a197a77f.js.map +1 -1
- 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/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.84f4a1e7.js.map +1 -1
- package/dist/chunks/space-logo.994f7a25.js.map +1 -1
- package/dist/chunks/space-workbench.8c064898.js.map +1 -1
- 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 +52 -40
- package/dist/{index.8e0adc27.js → index.94998c36.js} +2 -2
- package/dist/{index.8e0adc27.js.map → index.94998c36.js.map} +1 -1
- package/dist/manifest.json +594 -313
- package/dist/types.json +796 -796
- package/dist-types/action-buttons/index.d.ts +10 -1
- package/dist-types/activity-timeline/index.d.ts +10 -1
- package/dist-types/ai-agents/index.d.ts +10 -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-input/index.d.ts +37 -1
- package/dist-types/chat-panel/index.d.ts +45 -3
- package/dist-types/chat-stream/index.d.ts +62 -1
- package/dist-types/cruise-canvas/index.d.ts +71 -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/index.d.ts +19 -2
- package/dist-types/flow-tabs/index.d.ts +5 -1
- package/dist-types/gantt-chart/index.d.ts +3 -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/index.d.ts +3 -1
- package/dist-types/page-container/index.d.ts +7 -0
- package/dist-types/preview-container/index.d.ts +4 -0
- package/dist-types/project-knowledges/index.d.ts +5 -0
- package/dist-types/running-flow/index.d.ts +3 -0
- package/dist-types/show-case/index.d.ts +5 -0
- package/dist-types/show-cases/index.d.ts +4 -0
- package/dist-types/space-workbench/chat-panel-welcome/index.d.ts +3 -0
- package/dist-types/space-workbench/index.d.ts +7 -0
- 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/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/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
|