@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/chat-input.md
CHANGED
|
@@ -1,9 +1,125 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.chat-input
|
|
3
|
+
displayName: WrappedAiPortalChatInput
|
|
4
|
+
description: 小型聊天输入框,用于对话等页面,支持命令联想、@提及数字人、文件上传及终止任务等功能。
|
|
5
|
+
category: ai-portal
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ai-portal.chat-input
|
|
10
|
+
|
|
11
|
+
> 小型聊天输入框,用于对话等页面,支持命令联想、@提及数字人、文件上传及终止任务等功能。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| -------------------- | -------------------------------- | ---- | ---------- | ------------------------------------------------------- |
|
|
17
|
+
| placeholder | `string \| undefined` | 否 | - | 输入框占位文字 |
|
|
18
|
+
| autoFocus | `boolean \| undefined` | 否 | - | 是否自动聚焦 |
|
|
19
|
+
| submitDisabled | `boolean \| undefined` | 否 | - | 是否禁用发送按钮,通常在 AI 正在处理时设为 true |
|
|
20
|
+
| supportsTerminate | `boolean \| undefined` | 否 | - | 是否显示终止任务按钮,需与 submitDisabled 配合使用 |
|
|
21
|
+
| terminating | `boolean \| undefined` | 否 | - | 是否正在终止任务,为 true 时显示加载状态 |
|
|
22
|
+
| autoFade | `boolean \| undefined` | 否 | - | 是否在输入框为空时自动淡出,通过 CSS 属性选择器控制样式 |
|
|
23
|
+
| uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
|
|
24
|
+
| aiEmployees | `AIEmployee[] \| undefined` | 否 | - | 可 @ 提及的数字人列表 |
|
|
25
|
+
| commands | `Command[] \| undefined` | 否 | - | 命令列表,支持通过 / 或搜索触发联想 |
|
|
26
|
+
| suggestionsPlacement | `"top" \| "bottom" \| undefined` | 否 | `"bottom"` | 命令/提及联想弹出层的显示位置 |
|
|
27
|
+
|
|
28
|
+
## Events
|
|
29
|
+
|
|
30
|
+
| 事件 | detail | 说明 |
|
|
31
|
+
| -------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
|
|
32
|
+
| message.submit | `string` — 用户输入的消息文本内容 | 用户提交消息时触发(已废弃,请使用 chat.submit 事件) |
|
|
33
|
+
| chat.submit | `ChatPayload` — { content: 消息内容, files: 上传的文件列表, cmd: 命令载荷, aiEmployeeId: @提及的数字人 ID } | 用户提交聊天消息时触发 |
|
|
34
|
+
| terminate | `void` | 点击终止按钮时触发 |
|
|
35
|
+
|
|
36
|
+
## Methods
|
|
37
|
+
|
|
38
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
39
|
+
| -------- | ------------------------- | ------ | -------------------- |
|
|
40
|
+
| setValue | `(value: string) => void` | `void` | 设置输入框的值并聚焦 |
|
|
2
41
|
|
|
3
42
|
## Examples
|
|
4
43
|
|
|
5
44
|
### Basic
|
|
6
45
|
|
|
46
|
+
展示小型聊天输入框的基本用法。
|
|
47
|
+
|
|
48
|
+
```yaml preview
|
|
49
|
+
brick: ai-portal.chat-input
|
|
50
|
+
properties:
|
|
51
|
+
placeholder: 请输入您的问题
|
|
52
|
+
events:
|
|
53
|
+
chat.submit:
|
|
54
|
+
action: console.log
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### With Terminate Support
|
|
58
|
+
|
|
59
|
+
配置终止任务按钮,在 AI 处理时显示停止操作。
|
|
60
|
+
|
|
61
|
+
```yaml preview
|
|
62
|
+
brick: ai-portal.chat-input
|
|
63
|
+
properties:
|
|
64
|
+
placeholder: 请输入您的问题
|
|
65
|
+
submitDisabled: true
|
|
66
|
+
supportsTerminate: true
|
|
67
|
+
terminating: false
|
|
68
|
+
events:
|
|
69
|
+
chat.submit:
|
|
70
|
+
action: console.log
|
|
71
|
+
terminate:
|
|
72
|
+
action: console.log
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### With File Upload
|
|
76
|
+
|
|
77
|
+
配置 uploadOptions 属性,启用文件上传功能。
|
|
78
|
+
|
|
79
|
+
```yaml preview
|
|
80
|
+
brick: ai-portal.chat-input
|
|
81
|
+
properties:
|
|
82
|
+
placeholder: 请输入您的问题,或拖入文件
|
|
83
|
+
uploadOptions:
|
|
84
|
+
enabled: true
|
|
85
|
+
accept: image/*,.pdf
|
|
86
|
+
maxFiles: 3
|
|
87
|
+
readableAccept: 图片或 PDF
|
|
88
|
+
events:
|
|
89
|
+
chat.submit:
|
|
90
|
+
action: console.log
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### With AI Employees and Commands
|
|
94
|
+
|
|
95
|
+
同时配置 aiEmployees 和 commands,支持 @ 提及和 / 命令联想。
|
|
96
|
+
|
|
97
|
+
```yaml preview
|
|
98
|
+
brick: ai-portal.chat-input
|
|
99
|
+
properties:
|
|
100
|
+
placeholder: 输入 / 或 @ 触发联想
|
|
101
|
+
suggestionsPlacement: top
|
|
102
|
+
aiEmployees:
|
|
103
|
+
- employeeId: emp001
|
|
104
|
+
name: 运维工程师小李
|
|
105
|
+
commands:
|
|
106
|
+
- command: analyze
|
|
107
|
+
description: 分析数据
|
|
108
|
+
events:
|
|
109
|
+
chat.submit:
|
|
110
|
+
action: console.log
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### With Auto Fade
|
|
114
|
+
|
|
115
|
+
启用 autoFade 属性,使输入框在空内容时通过 CSS 淡出。
|
|
116
|
+
|
|
7
117
|
```yaml preview
|
|
8
118
|
brick: ai-portal.chat-input
|
|
119
|
+
properties:
|
|
120
|
+
placeholder: 请输入您的问题
|
|
121
|
+
autoFade: true
|
|
122
|
+
events:
|
|
123
|
+
chat.submit:
|
|
124
|
+
action: console.log
|
|
9
125
|
```
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.chat-input
|
|
3
|
+
displayName: WrappedAiPortalChatInput
|
|
4
|
+
description: 小型聊天输入框,用于对话等页面,支持命令联想、@提及数字人、文件上传及终止任务等功能。
|
|
5
|
+
category: ai-portal
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedAiPortalChatInput
|
|
10
|
+
|
|
11
|
+
> 小型聊天输入框,用于对话等页面,支持命令联想、@提及数字人、文件上传及终止任务等功能。
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedAiPortalChatInput } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| -------------------- | -------------------------------- | ---- | ---------- | ------------------------------------------------------- |
|
|
23
|
+
| placeholder | `string \| undefined` | 否 | - | 输入框占位文字 |
|
|
24
|
+
| autoFocus | `boolean \| undefined` | 否 | - | 是否自动聚焦 |
|
|
25
|
+
| submitDisabled | `boolean \| undefined` | 否 | - | 是否禁用发送按钮,通常在 AI 正在处理时设为 true |
|
|
26
|
+
| supportsTerminate | `boolean \| undefined` | 否 | - | 是否显示终止任务按钮,需与 submitDisabled 配合使用 |
|
|
27
|
+
| terminating | `boolean \| undefined` | 否 | - | 是否正在终止任务,为 true 时显示加载状态 |
|
|
28
|
+
| autoFade | `boolean \| undefined` | 否 | - | 是否在输入框为空时自动淡出,通过 CSS 属性选择器控制样式 |
|
|
29
|
+
| uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
|
|
30
|
+
| aiEmployees | `AIEmployee[] \| undefined` | 否 | - | 可 @ 提及的数字人列表 |
|
|
31
|
+
| commands | `Command[] \| undefined` | 否 | - | 命令列表,支持通过 / 或搜索触发联想 |
|
|
32
|
+
| suggestionsPlacement | `"top" \| "bottom" \| undefined` | 否 | `"bottom"` | 命令/提及联想弹出层的显示位置 |
|
|
33
|
+
|
|
34
|
+
## Events
|
|
35
|
+
|
|
36
|
+
| 事件 | detail | 说明 |
|
|
37
|
+
| --------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
|
|
38
|
+
| onMessageSubmit | `string` — 用户输入的消息文本内容 | 用户提交消息时触发(已废弃,请使用 onChatSubmit) |
|
|
39
|
+
| onChatSubmit | `ChatPayload` — { content: 消息内容, files: 上传的文件列表, cmd: 命令载荷, aiEmployeeId: @提及的数字人 ID } | 用户提交聊天消息时触发 |
|
|
40
|
+
| onTerminate | `void` | 点击终止按钮时触发 |
|
|
41
|
+
|
|
42
|
+
## Methods
|
|
43
|
+
|
|
44
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
45
|
+
| -------- | ------------------------- | ------ | -------------------- |
|
|
46
|
+
| setValue | `(value: string) => void` | `void` | 设置输入框的值并聚焦 |
|
|
47
|
+
|
|
48
|
+
## Examples
|
|
49
|
+
|
|
50
|
+
### Basic
|
|
51
|
+
|
|
52
|
+
展示小型聊天输入框的基本用法。
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
<WrappedAiPortalChatInput
|
|
56
|
+
placeholder="请输入您的问题"
|
|
57
|
+
onChatSubmit={(e) => console.log(e.detail)}
|
|
58
|
+
/>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### With Terminate Support
|
|
62
|
+
|
|
63
|
+
配置终止任务按钮,在 AI 处理时显示停止操作。
|
|
64
|
+
|
|
65
|
+
```tsx
|
|
66
|
+
<WrappedAiPortalChatInput
|
|
67
|
+
placeholder="请输入您的问题"
|
|
68
|
+
submitDisabled={true}
|
|
69
|
+
supportsTerminate={true}
|
|
70
|
+
terminating={false}
|
|
71
|
+
onChatSubmit={(e) => console.log(e.detail)}
|
|
72
|
+
onTerminate={(e) => console.log(e.detail)}
|
|
73
|
+
/>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### With File Upload
|
|
77
|
+
|
|
78
|
+
配置 uploadOptions 属性,启用文件上传功能。
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
<WrappedAiPortalChatInput
|
|
82
|
+
placeholder="请输入您的问题,或拖入文件"
|
|
83
|
+
uploadOptions={{
|
|
84
|
+
enabled: true,
|
|
85
|
+
accept: "image/*,.pdf",
|
|
86
|
+
maxFiles: 3,
|
|
87
|
+
readableAccept: "图片或 PDF",
|
|
88
|
+
}}
|
|
89
|
+
onChatSubmit={(e) => console.log(e.detail)}
|
|
90
|
+
/>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### With AI Employees and Commands
|
|
94
|
+
|
|
95
|
+
同时配置 aiEmployees 和 commands,支持 @ 提及和 / 命令联想。
|
|
96
|
+
|
|
97
|
+
```tsx
|
|
98
|
+
<WrappedAiPortalChatInput
|
|
99
|
+
placeholder="输入 / 或 @ 触发联想"
|
|
100
|
+
suggestionsPlacement="top"
|
|
101
|
+
aiEmployees={[{ employeeId: "emp001", name: "运维工程师小李" }]}
|
|
102
|
+
commands={[{ command: "analyze", description: "分析数据" }]}
|
|
103
|
+
onChatSubmit={(e) => console.log(e.detail)}
|
|
104
|
+
/>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### With Auto Fade
|
|
108
|
+
|
|
109
|
+
启用 autoFade 属性,使输入框在空内容时通过 CSS 淡出。
|
|
110
|
+
|
|
111
|
+
```tsx
|
|
112
|
+
<WrappedAiPortalChatInput
|
|
113
|
+
placeholder="请输入您的问题"
|
|
114
|
+
autoFade={true}
|
|
115
|
+
onChatSubmit={(e) => console.log(e.detail)}
|
|
116
|
+
/>
|
|
117
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.chat-panel-welcome
|
|
3
|
+
displayName: WrappedAiPortalChatPanelWelcome
|
|
4
|
+
description: 聊天面板欢迎语构件,展示带有 Elevo 头像的欢迎消息。
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ai-portal.chat-panel-welcome
|
|
10
|
+
|
|
11
|
+
> 聊天面板欢迎语构件,展示带有 Elevo 头像的欢迎消息。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ---- | -------- | ---- | ------ | -------------- |
|
|
17
|
+
| text | `string` | 否 | - | 欢迎语文本内容 |
|
|
18
|
+
|
|
19
|
+
## Examples
|
|
20
|
+
|
|
21
|
+
### 基础使用
|
|
22
|
+
|
|
23
|
+
展示带 Elevo 头像和欢迎语文本的欢迎消息。
|
|
24
|
+
|
|
25
|
+
```yaml preview
|
|
26
|
+
brick: ai-portal.chat-panel-welcome
|
|
27
|
+
properties:
|
|
28
|
+
text: "你好!我是 Elevo,你的 AI 助手。有什么可以帮助你的吗?"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 自定义欢迎语
|
|
32
|
+
|
|
33
|
+
根据业务场景配置个性化的欢迎文案。
|
|
34
|
+
|
|
35
|
+
```yaml preview
|
|
36
|
+
brick: ai-portal.chat-panel-welcome
|
|
37
|
+
properties:
|
|
38
|
+
text: "欢迎来到产品设计空间!我可以帮助你进行需求分析、流程设计和问题排查。"
|
|
39
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.chat-panel-welcome
|
|
3
|
+
displayName: WrappedAiPortalChatPanelWelcome
|
|
4
|
+
description: 聊天面板欢迎语构件,展示带有 Elevo 头像的欢迎消息。
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedAiPortalChatPanelWelcome
|
|
10
|
+
|
|
11
|
+
> 聊天面板欢迎语构件,展示带有 Elevo 头像的欢迎消息。
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedAiPortalChatPanelWelcome } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ---- | -------- | ---- | ------ | -------------- |
|
|
23
|
+
| text | `string` | 否 | - | 欢迎语文本内容 |
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
|
|
27
|
+
### 基础使用
|
|
28
|
+
|
|
29
|
+
展示带 Elevo 头像和欢迎语文本的欢迎消息。
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
<WrappedAiPortalChatPanelWelcome text="你好!我是 Elevo,你的 AI 助手。有什么可以帮助你的吗?" />
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 自定义欢迎语
|
|
36
|
+
|
|
37
|
+
根据业务场景配置个性化的欢迎文案。
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
<WrappedAiPortalChatPanelWelcome text="欢迎来到产品设计空间!我可以帮助你进行需求分析、流程设计和问题排查。" />
|
|
41
|
+
```
|
package/docs/chat-panel.md
CHANGED
|
@@ -1,13 +1,45 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.chat-panel
|
|
3
|
+
displayName: WrappedAiPortalChatPanel
|
|
4
|
+
description: 弹出式 AI 对话面板,以模态框形式展示对话界面,支持与 AI 助手进行多轮对话。
|
|
5
|
+
category: ai-portal
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
2
8
|
|
|
3
|
-
|
|
9
|
+
# ai-portal.chat-panel
|
|
4
10
|
|
|
5
|
-
弹出式 AI
|
|
11
|
+
> 弹出式 AI 对话面板,以模态框形式展示对话界面,支持与 AI 助手进行多轮对话。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ------------- | ----------------------------------------- | ---- | ------- | ------------------------------------ |
|
|
17
|
+
| panelTitle | `string \| undefined` | 否 | - | 面板标题 |
|
|
18
|
+
| aiEmployeeId | `string \| undefined` | 否 | - | 预设数字人 ID,对话提交时会携带该 ID |
|
|
19
|
+
| cmd | `CommandPayload \| undefined` | 否 | - | 预设命令载荷,对话提交时会携带该命令 |
|
|
20
|
+
| width | `string \| number \| undefined` | 否 | - | 面板宽度 |
|
|
21
|
+
| height | `string \| number \| undefined` | 否 | - | 面板高度 |
|
|
22
|
+
| placeholder | `string \| undefined` | 否 | - | 输入框占位文字 |
|
|
23
|
+
| uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
|
|
24
|
+
| help | `{ useBrick: UseBrickConf } \| undefined` | 否 | - | 无对话时显示的帮助内容配置 |
|
|
25
|
+
| maskClosable | `boolean \| undefined` | 否 | `false` | 是否点击遮罩关闭面板 |
|
|
26
|
+
|
|
27
|
+
## Methods
|
|
28
|
+
|
|
29
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
30
|
+
| ------------- | -------------------------------- | ------ | -------------------- |
|
|
31
|
+
| open | `() => void` | `void` | 打开对话面板 |
|
|
32
|
+
| close | `() => void` | `void` | 关闭对话面板 |
|
|
33
|
+
| setInputValue | `(content: string) => void` | `void` | 设置输入框的内容 |
|
|
34
|
+
| send | `(payload: ChatPayload) => void` | `void` | 直接发送一条消息 |
|
|
35
|
+
| showFile | `(file: FileInfo) => void` | `void` | 在面板中显示文件预览 |
|
|
6
36
|
|
|
7
37
|
## Examples
|
|
8
38
|
|
|
9
39
|
### Basic
|
|
10
40
|
|
|
41
|
+
通过按钮触发打开 AI 对话面板。
|
|
42
|
+
|
|
11
43
|
```yaml preview
|
|
12
44
|
- brick: eo-button
|
|
13
45
|
properties:
|
|
@@ -25,3 +57,54 @@
|
|
|
25
57
|
panelTitle: AI 助手
|
|
26
58
|
placeholder: 请输入您的问题...
|
|
27
59
|
```
|
|
60
|
+
|
|
61
|
+
### With Upload Options
|
|
62
|
+
|
|
63
|
+
配置文件上传功能的对话面板。
|
|
64
|
+
|
|
65
|
+
```yaml preview
|
|
66
|
+
- brick: eo-button
|
|
67
|
+
properties:
|
|
68
|
+
themeVariant: elevo
|
|
69
|
+
textContent: 打开对话面板
|
|
70
|
+
events:
|
|
71
|
+
click:
|
|
72
|
+
target: "#chatPanel"
|
|
73
|
+
method: open
|
|
74
|
+
- brick: ai-portal.chat-panel
|
|
75
|
+
properties:
|
|
76
|
+
id: chatPanel
|
|
77
|
+
panelTitle: AI 文档助手
|
|
78
|
+
placeholder: 请上传文件或输入问题
|
|
79
|
+
maskClosable: true
|
|
80
|
+
uploadOptions:
|
|
81
|
+
enabled: true
|
|
82
|
+
accept: .pdf,.docx
|
|
83
|
+
maxFiles: 3
|
|
84
|
+
readableAccept: PDF 或 Word 文档
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Programmatic Send
|
|
88
|
+
|
|
89
|
+
通过调用 send 方法直接发起对话。
|
|
90
|
+
|
|
91
|
+
```yaml preview
|
|
92
|
+
- brick: eo-button
|
|
93
|
+
properties:
|
|
94
|
+
themeVariant: elevo
|
|
95
|
+
textContent: 发起分析请求
|
|
96
|
+
events:
|
|
97
|
+
click:
|
|
98
|
+
- target: "#chatPanel"
|
|
99
|
+
method: open
|
|
100
|
+
- target: "#chatPanel"
|
|
101
|
+
method: send
|
|
102
|
+
args:
|
|
103
|
+
- content: 请帮我分析当前系统的性能瓶颈
|
|
104
|
+
- brick: ai-portal.chat-panel
|
|
105
|
+
properties:
|
|
106
|
+
id: chatPanel
|
|
107
|
+
panelTitle: AI 分析助手
|
|
108
|
+
width: 700
|
|
109
|
+
height: 600
|
|
110
|
+
```
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.chat-panel
|
|
3
|
+
displayName: WrappedAiPortalChatPanel
|
|
4
|
+
description: 弹出式 AI 对话面板,以模态框形式展示对话界面,支持与 AI 助手进行多轮对话。
|
|
5
|
+
category: ai-portal
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedAiPortalChatPanel
|
|
10
|
+
|
|
11
|
+
> 弹出式 AI 对话面板,以模态框形式展示对话界面,支持与 AI 助手进行多轮对话。
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedAiPortalChatPanel } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ------------- | ----------------------------------------- | ---- | ------- | ------------------------------------ |
|
|
23
|
+
| panelTitle | `string \| undefined` | 否 | - | 面板标题 |
|
|
24
|
+
| aiEmployeeId | `string \| undefined` | 否 | - | 预设数字人 ID,对话提交时会携带该 ID |
|
|
25
|
+
| cmd | `CommandPayload \| undefined` | 否 | - | 预设命令载荷,对话提交时会携带该命令 |
|
|
26
|
+
| width | `string \| number \| undefined` | 否 | - | 面板宽度 |
|
|
27
|
+
| height | `string \| number \| undefined` | 否 | - | 面板高度 |
|
|
28
|
+
| placeholder | `string \| undefined` | 否 | - | 输入框占位文字 |
|
|
29
|
+
| uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
|
|
30
|
+
| help | `{ useBrick: UseBrickConf } \| undefined` | 否 | - | 无对话时显示的帮助内容配置 |
|
|
31
|
+
| maskClosable | `boolean \| undefined` | 否 | `false` | 是否点击遮罩关闭面板 |
|
|
32
|
+
|
|
33
|
+
## Methods
|
|
34
|
+
|
|
35
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
36
|
+
| ------------- | -------------------------------- | ------ | -------------------- |
|
|
37
|
+
| open | `() => void` | `void` | 打开对话面板 |
|
|
38
|
+
| close | `() => void` | `void` | 关闭对话面板 |
|
|
39
|
+
| setInputValue | `(content: string) => void` | `void` | 设置输入框的内容 |
|
|
40
|
+
| send | `(payload: ChatPayload) => void` | `void` | 直接发送一条消息 |
|
|
41
|
+
| showFile | `(file: FileInfo) => void` | `void` | 在面板中显示文件预览 |
|
|
42
|
+
|
|
43
|
+
## Examples
|
|
44
|
+
|
|
45
|
+
### Basic
|
|
46
|
+
|
|
47
|
+
通过按钮触发打开 AI 对话面板。
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
const ref = useRef<any>();
|
|
51
|
+
|
|
52
|
+
<>
|
|
53
|
+
<button onClick={() => ref.current?.open()}>打开对话面板</button>
|
|
54
|
+
<WrappedAiPortalChatPanel
|
|
55
|
+
ref={ref}
|
|
56
|
+
width={600}
|
|
57
|
+
height={800}
|
|
58
|
+
panelTitle="AI 助手"
|
|
59
|
+
placeholder="请输入您的问题..."
|
|
60
|
+
/>
|
|
61
|
+
</>;
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### With Upload Options
|
|
65
|
+
|
|
66
|
+
配置文件上传功能的对话面板。
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
const ref = useRef<any>();
|
|
70
|
+
|
|
71
|
+
<>
|
|
72
|
+
<button onClick={() => ref.current?.open()}>打开对话面板</button>
|
|
73
|
+
<WrappedAiPortalChatPanel
|
|
74
|
+
ref={ref}
|
|
75
|
+
panelTitle="AI 文档助手"
|
|
76
|
+
placeholder="请上传文件或输入问题"
|
|
77
|
+
maskClosable={true}
|
|
78
|
+
uploadOptions={{
|
|
79
|
+
enabled: true,
|
|
80
|
+
accept: ".pdf,.docx",
|
|
81
|
+
maxFiles: 3,
|
|
82
|
+
readableAccept: "PDF 或 Word 文档",
|
|
83
|
+
}}
|
|
84
|
+
/>
|
|
85
|
+
</>;
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Programmatic Send
|
|
89
|
+
|
|
90
|
+
通过调用 send 方法直接发起对话。
|
|
91
|
+
|
|
92
|
+
```tsx
|
|
93
|
+
const ref = useRef<any>();
|
|
94
|
+
|
|
95
|
+
const handleAnalyze = () => {
|
|
96
|
+
ref.current?.open();
|
|
97
|
+
ref.current?.send({ content: "请帮我分析当前系统的性能瓶颈" });
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
<>
|
|
101
|
+
<button onClick={handleAnalyze}>发起分析请求</button>
|
|
102
|
+
<WrappedAiPortalChatPanel
|
|
103
|
+
ref={ref}
|
|
104
|
+
panelTitle="AI 分析助手"
|
|
105
|
+
width={700}
|
|
106
|
+
height={600}
|
|
107
|
+
/>
|
|
108
|
+
</>;
|
|
109
|
+
```
|