@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
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.elevo-sidebar
|
|
3
|
+
displayName: WrappedAiPortalElevoSidebar
|
|
4
|
+
description: Elevo AI 侧边栏,包含 Logo 导航、新建对话、历史记录、项目列表及个人账户操作,支持折叠和抽屉两种行为模式。
|
|
5
|
+
category: layout-component
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedAiPortalElevoSidebar
|
|
10
|
+
|
|
11
|
+
> Elevo AI 侧边栏,包含 Logo 导航、新建对话、历史记录、项目列表及个人账户操作,支持折叠和抽屉两种行为模式。
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedAiPortalElevoSidebar } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ------------------------ | ----------------------- | ---- | ----------- | ---------------------------------------------------------------------- |
|
|
23
|
+
| userInstanceId | `string` | 否 | - | 当前用户的实例 ID,用于显示头像和用户名 |
|
|
24
|
+
| behavior | `"default" \| "drawer"` | 否 | - | 侧边栏行为模式,`"default"` 为常驻展开/折叠,`"drawer"` 为抽屉覆盖模式 |
|
|
25
|
+
| logoUrl | `string` | 否 | - | Logo 区域的跳转链接 |
|
|
26
|
+
| newChatUrl | `string` | 否 | - | 新建对话按钮的跳转链接 |
|
|
27
|
+
| newChatLinkWhenCollapsed | `boolean` | 否 | - | 侧边栏折叠时是否仍显示新建对话快捷入口 |
|
|
28
|
+
| historyUrlTemplate | `string` | 否 | - | 对话历史记录条目的链接模板,支持 `{{conversationId}}` 等占位符 |
|
|
29
|
+
| historyActions | `ActionType[]` | 否 | - | 对话历史记录条目的操作按钮列表 |
|
|
30
|
+
| showProjects | `boolean` | 否 | - | 是否显示项目列表区块 |
|
|
31
|
+
| projectUrlTemplate | `string` | 否 | - | 项目条目的链接模板,支持 `{{instanceId}}` 等占位符 |
|
|
32
|
+
| projectActions | `ActionType[]` | 否 | - | 项目条目的操作按钮列表 |
|
|
33
|
+
| personalActions | `ActionType[]` | 否 | - | 个人账户区域的自定义操作列表,未设置时显示默认的退出登录和切换语言选项 |
|
|
34
|
+
| links | `SidebarLink[]` | 否 | - | 侧边栏顶部的自定义链接列表,显示在新建对话按钮下方 |
|
|
35
|
+
| canAddProject | `boolean` | 否 | `true` | 是否显示新建项目按钮 |
|
|
36
|
+
| myLinks | `SidebarLink[]` | 否 | - | 历史区域顶部的"我的"快捷链接列表 |
|
|
37
|
+
| scope | `"default" \| "space"` | 否 | `"default"` | 视图模式,`"space"` 时显示空间导航(SpaceNav)替换历史记录 |
|
|
38
|
+
| spaceNav | `SpaceNavProps` | 否 | - | scope 为 `"space"` 时的空间导航配置 |
|
|
39
|
+
|
|
40
|
+
## Events
|
|
41
|
+
|
|
42
|
+
| 事件 | detail | 说明 |
|
|
43
|
+
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------- |
|
|
44
|
+
| onLogout | `void` | 点击退出登录时触发 |
|
|
45
|
+
| onActionClick | `ActionClickDetail` — { action: 点击的操作项(含 project 等扩展字段), item: 当前对话历史记录项, project: 关联的项目(可选) } | 点击对话历史操作按钮时触发 |
|
|
46
|
+
| onProjectActionClick | `ProjectActionClickDetail` — { action: 点击的操作项, project: 当前项目对象 } | 点击项目操作按钮时触发 |
|
|
47
|
+
| onAddProject | `void` | 点击新建项目按钮时触发 |
|
|
48
|
+
| onAddServiceflow | `void` | 点击新建服务流按钮时触发(scope 为 space 时有效) |
|
|
49
|
+
| onPersonalActionClick | `PersonalActionClickDetail` — { action: 点击的操作项 } | 点击个人操作按钮时触发 |
|
|
50
|
+
|
|
51
|
+
## Methods
|
|
52
|
+
|
|
53
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
54
|
+
| ---------------- | ---------------------------------- | ------ | -------------------------------------------- |
|
|
55
|
+
| pullHistory | `(delay: number) => void` | `void` | 延迟一段时间后拉取最新对话历史 |
|
|
56
|
+
| open | `() => void` | `void` | 展开侧边栏(behavior 为 drawer 时有效) |
|
|
57
|
+
| close | `() => void` | `void` | 折叠侧边栏(behavior 为 drawer 时有效) |
|
|
58
|
+
| removeProject | `(projectId: string) => void` | `void` | 从历史列表中移除指定项目及其对话 |
|
|
59
|
+
| addProject | `(project: Project) => void` | `void` | 向项目列表中追加一个新项目 |
|
|
60
|
+
| moveConversation | `(conversationId: string) => void` | `void` | 将指定对话标记为已移入项目,从历史列表中隐藏 |
|
|
61
|
+
|
|
62
|
+
## Examples
|
|
63
|
+
|
|
64
|
+
### Basic
|
|
65
|
+
|
|
66
|
+
基础用法,展示默认侧边栏。
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
<WrappedAiPortalElevoSidebar
|
|
70
|
+
userInstanceId="user-001"
|
|
71
|
+
logoUrl="/"
|
|
72
|
+
newChatUrl="/chat/new"
|
|
73
|
+
historyUrlTemplate="/chat/{{conversationId}}"
|
|
74
|
+
onLogout={(e) => console.log(e.detail)}
|
|
75
|
+
/>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### With Projects
|
|
79
|
+
|
|
80
|
+
启用项目列表,并配置项目操作按钮。
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
<WrappedAiPortalElevoSidebar
|
|
84
|
+
userInstanceId="user-001"
|
|
85
|
+
logoUrl="/"
|
|
86
|
+
newChatUrl="/chat/new"
|
|
87
|
+
historyUrlTemplate="/chat/{{conversationId}}"
|
|
88
|
+
showProjects
|
|
89
|
+
canAddProject
|
|
90
|
+
projectUrlTemplate="/project/{{instanceId}}"
|
|
91
|
+
projectActions={[
|
|
92
|
+
{
|
|
93
|
+
key: "delete",
|
|
94
|
+
text: "删除",
|
|
95
|
+
icon: { lib: "antd", icon: "delete" },
|
|
96
|
+
danger: true,
|
|
97
|
+
},
|
|
98
|
+
]}
|
|
99
|
+
onLogout={(e) => console.log(e.detail)}
|
|
100
|
+
onAddProject={(e) => console.log(e.detail)}
|
|
101
|
+
onProjectActionClick={(e) => console.log(e.detail)}
|
|
102
|
+
/>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Drawer Mode
|
|
106
|
+
|
|
107
|
+
抽屉模式下,点击折叠按钮后侧边栏以覆盖层形式展开。
|
|
108
|
+
|
|
109
|
+
```tsx
|
|
110
|
+
<WrappedAiPortalElevoSidebar
|
|
111
|
+
userInstanceId="user-001"
|
|
112
|
+
behavior="drawer"
|
|
113
|
+
logoUrl="/"
|
|
114
|
+
newChatUrl="/chat/new"
|
|
115
|
+
historyUrlTemplate="/chat/{{conversationId}}"
|
|
116
|
+
onLogout={(e) => console.log(e.detail)}
|
|
117
|
+
/>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### With Custom Links and Personal Actions
|
|
121
|
+
|
|
122
|
+
配置顶部自定义链接和个人账户自定义操作。
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
<WrappedAiPortalElevoSidebar
|
|
126
|
+
userInstanceId="user-001"
|
|
127
|
+
logoUrl="/"
|
|
128
|
+
newChatUrl="/chat/new"
|
|
129
|
+
historyUrlTemplate="/chat/{{conversationId}}"
|
|
130
|
+
links={[
|
|
131
|
+
{
|
|
132
|
+
title: "工作台",
|
|
133
|
+
url: "/workbench",
|
|
134
|
+
icon: { lib: "antd", icon: "appstore" },
|
|
135
|
+
},
|
|
136
|
+
]}
|
|
137
|
+
myLinks={[{ title: "我的收藏", url: "/favorites" }]}
|
|
138
|
+
personalActions={[
|
|
139
|
+
{ key: "profile", text: "个人资料", icon: { lib: "antd", icon: "user" } },
|
|
140
|
+
{
|
|
141
|
+
key: "logout",
|
|
142
|
+
text: "退出登录",
|
|
143
|
+
icon: { lib: "fa", prefix: "fas", icon: "arrow-right-from-bracket" },
|
|
144
|
+
},
|
|
145
|
+
]}
|
|
146
|
+
onPersonalActionClick={(e) => console.log(e.detail)}
|
|
147
|
+
onActionClick={(e) => console.log(e.detail)}
|
|
148
|
+
/>
|
|
149
|
+
```
|
package/docs/flow-tabs.md
CHANGED
|
@@ -1,15 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.flow-tabs
|
|
3
|
+
displayName: WrappedAiPortalFlowTabs
|
|
4
|
+
description: 流程标签页组件,提供带背景画布动效的标签导航,支持工具栏插槽和默认内容插槽。
|
|
5
|
+
category: navigate
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ai-portal.flow-tabs
|
|
10
|
+
|
|
11
|
+
> 流程标签页组件,提供带背景画布动效的标签导航,支持工具栏插槽和默认内容插槽。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| --------- | -------- | ---- | ------ | ------------------------------------- |
|
|
17
|
+
| tabs | `Tab[]` | 否 | - | 标签列表,每项包含 `id` 和 `label` |
|
|
18
|
+
| activeTab | `string` | 否 | - | 当前激活的标签 ID,点击标签时自动更新 |
|
|
19
|
+
|
|
20
|
+
## Events
|
|
21
|
+
|
|
22
|
+
| 事件 | detail | 说明 |
|
|
23
|
+
| --------- | -------------------------------------------- | ----------------------------------------- |
|
|
24
|
+
| tab.click | `Tab` — { id: 标签 ID, label: 标签显示文本 } | 点击标签项时触发,同时更新 activeTab 属性 |
|
|
25
|
+
|
|
26
|
+
## Slots
|
|
27
|
+
|
|
28
|
+
| 名称 | 说明 |
|
|
29
|
+
| ------- | -------------------- |
|
|
30
|
+
| toolbar | 标签栏右侧工具栏区域 |
|
|
31
|
+
| default | 标签页内容区域 |
|
|
2
32
|
|
|
3
33
|
## Examples
|
|
4
34
|
|
|
5
35
|
### Basic
|
|
6
36
|
|
|
37
|
+
基础标签页,展示多个流程步骤标签。
|
|
38
|
+
|
|
7
39
|
```yaml preview
|
|
8
40
|
brick: ai-portal.home-container
|
|
9
41
|
children:
|
|
10
42
|
- brick: ai-portal.flow-tabs
|
|
11
43
|
properties:
|
|
12
|
-
textContent: Hello world
|
|
13
44
|
tabs:
|
|
14
45
|
- id: foo
|
|
15
46
|
label: Fooooo
|
|
@@ -18,4 +49,68 @@ children:
|
|
|
18
49
|
- id: baz
|
|
19
50
|
label: Baaaaaz
|
|
20
51
|
activeTab: foo
|
|
52
|
+
events:
|
|
53
|
+
tab.click:
|
|
54
|
+
action: "console.log"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### With Toolbar Slot
|
|
58
|
+
|
|
59
|
+
在标签栏右侧添加工具栏操作按钮。
|
|
60
|
+
|
|
61
|
+
```yaml preview
|
|
62
|
+
brick: ai-portal.home-container
|
|
63
|
+
children:
|
|
64
|
+
- brick: ai-portal.flow-tabs
|
|
65
|
+
properties:
|
|
66
|
+
tabs:
|
|
67
|
+
- id: design
|
|
68
|
+
label: 设计阶段
|
|
69
|
+
- id: develop
|
|
70
|
+
label: 开发阶段
|
|
71
|
+
- id: test
|
|
72
|
+
label: 测试阶段
|
|
73
|
+
- id: deploy
|
|
74
|
+
label: 部署阶段
|
|
75
|
+
activeTab: design
|
|
76
|
+
children:
|
|
77
|
+
- brick: ai-portal.icon-button
|
|
78
|
+
slot: toolbar
|
|
79
|
+
properties:
|
|
80
|
+
icon:
|
|
81
|
+
lib: antd
|
|
82
|
+
icon: filter
|
|
83
|
+
tooltip: 筛选
|
|
84
|
+
events:
|
|
85
|
+
tab.click:
|
|
86
|
+
action: "console.log"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### With Content
|
|
90
|
+
|
|
91
|
+
标签页带内容区域,点击标签切换展示不同内容。
|
|
92
|
+
|
|
93
|
+
```yaml preview
|
|
94
|
+
brick: ai-portal.home-container
|
|
95
|
+
children:
|
|
96
|
+
- brick: ai-portal.flow-tabs
|
|
97
|
+
properties:
|
|
98
|
+
tabs:
|
|
99
|
+
- id: overview
|
|
100
|
+
label: 概览
|
|
101
|
+
- id: detail
|
|
102
|
+
label: 详情
|
|
103
|
+
- id: history
|
|
104
|
+
label: 历史
|
|
105
|
+
activeTab: overview
|
|
106
|
+
children:
|
|
107
|
+
- brick: span
|
|
108
|
+
properties:
|
|
109
|
+
textContent: 这里是内容区域
|
|
110
|
+
style:
|
|
111
|
+
padding: 16px
|
|
112
|
+
display: block
|
|
113
|
+
events:
|
|
114
|
+
tab.click:
|
|
115
|
+
action: "console.log"
|
|
21
116
|
```
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.flow-tabs
|
|
3
|
+
displayName: WrappedAiPortalFlowTabs
|
|
4
|
+
description: 流程标签页组件,提供带背景画布动效的标签导航,支持工具栏插槽和默认内容插槽。
|
|
5
|
+
category: navigate
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedAiPortalFlowTabs
|
|
10
|
+
|
|
11
|
+
> 流程标签页组件,提供带背景画布动效的标签导航,支持工具栏插槽和默认内容插槽。
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedAiPortalFlowTabs } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| --------- | -------- | ---- | ------ | ------------------------------------- |
|
|
23
|
+
| tabs | `Tab[]` | 否 | - | 标签列表,每项包含 `id` 和 `label` |
|
|
24
|
+
| activeTab | `string` | 否 | - | 当前激活的标签 ID,点击标签时自动更新 |
|
|
25
|
+
|
|
26
|
+
## Events
|
|
27
|
+
|
|
28
|
+
| 事件 | detail | 说明 |
|
|
29
|
+
| ---------- | -------------------------------------------- | ----------------------------------------- |
|
|
30
|
+
| onTabClick | `Tab` — { id: 标签 ID, label: 标签显示文本 } | 点击标签项时触发,同时更新 activeTab 属性 |
|
|
31
|
+
|
|
32
|
+
## Slots
|
|
33
|
+
|
|
34
|
+
| 名称 | 说明 |
|
|
35
|
+
| ------- | -------------------- |
|
|
36
|
+
| toolbar | 标签栏右侧工具栏区域 |
|
|
37
|
+
| default | 标签页内容区域 |
|
|
38
|
+
|
|
39
|
+
## Examples
|
|
40
|
+
|
|
41
|
+
### Basic
|
|
42
|
+
|
|
43
|
+
基础标签页,展示多个流程步骤标签。
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
<WrappedAiPortalHomeContainer>
|
|
47
|
+
<WrappedAiPortalFlowTabs
|
|
48
|
+
tabs={[
|
|
49
|
+
{ id: "foo", label: "Fooooo" },
|
|
50
|
+
{ id: "bar", label: "Baaaaar" },
|
|
51
|
+
{ id: "baz", label: "Baaaaaz" },
|
|
52
|
+
]}
|
|
53
|
+
activeTab="foo"
|
|
54
|
+
onTabClick={(e) => console.log(e.detail)}
|
|
55
|
+
/>
|
|
56
|
+
</WrappedAiPortalHomeContainer>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### With Toolbar Slot
|
|
60
|
+
|
|
61
|
+
在标签栏右侧添加工具栏操作按钮。
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
<WrappedAiPortalHomeContainer>
|
|
65
|
+
<WrappedAiPortalFlowTabs
|
|
66
|
+
tabs={[
|
|
67
|
+
{ id: "design", label: "设计阶段" },
|
|
68
|
+
{ id: "develop", label: "开发阶段" },
|
|
69
|
+
{ id: "test", label: "测试阶段" },
|
|
70
|
+
{ id: "deploy", label: "部署阶段" },
|
|
71
|
+
]}
|
|
72
|
+
activeTab="design"
|
|
73
|
+
onTabClick={(e) => console.log(e.detail)}
|
|
74
|
+
>
|
|
75
|
+
<WrappedAiPortalIconButton
|
|
76
|
+
slot="toolbar"
|
|
77
|
+
icon={{ lib: "antd", icon: "filter" }}
|
|
78
|
+
tooltip="筛选"
|
|
79
|
+
/>
|
|
80
|
+
</WrappedAiPortalFlowTabs>
|
|
81
|
+
</WrappedAiPortalHomeContainer>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### With Content
|
|
85
|
+
|
|
86
|
+
标签页带内容区域,点击标签切换展示不同内容。
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
<WrappedAiPortalHomeContainer>
|
|
90
|
+
<WrappedAiPortalFlowTabs
|
|
91
|
+
tabs={[
|
|
92
|
+
{ id: "overview", label: "概览" },
|
|
93
|
+
{ id: "detail", label: "详情" },
|
|
94
|
+
{ id: "history", label: "历史" },
|
|
95
|
+
]}
|
|
96
|
+
activeTab="overview"
|
|
97
|
+
onTabClick={(e) => console.log(e.detail)}
|
|
98
|
+
>
|
|
99
|
+
<span style={{ padding: 16, display: "block" }}>这里是内容区域</span>
|
|
100
|
+
</WrappedAiPortalFlowTabs>
|
|
101
|
+
</WrappedAiPortalHomeContainer>
|
|
102
|
+
```
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.gantt-chart
|
|
3
|
+
displayName: WrappedAiPortalGanttChart
|
|
4
|
+
description: 甘特图组件,以树状层级结构展示任务节点及其时间条,支持折叠展开和全屏操作。
|
|
5
|
+
category: chart
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ai-portal.gantt-chart
|
|
10
|
+
|
|
11
|
+
> 甘特图组件,以树状层级结构展示任务节点及其时间条,支持折叠展开和全屏操作。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ---------- | ------------- | ---- | ------ | -------------------------------------------------------- |
|
|
17
|
+
| chartTitle | `string` | 否 | - | 甘特图标题 |
|
|
18
|
+
| nodes | `GanttNode[]` | 否 | - | 任务节点树数据,每个节点包含名称、状态、时间范围及子节点 |
|
|
19
|
+
|
|
20
|
+
## Events
|
|
21
|
+
|
|
22
|
+
| 事件 | detail | 说明 |
|
|
23
|
+
| ---------------- | ------------------------------------------------------------------------------------------------------------------- | -------------------- |
|
|
24
|
+
| node.click | `GanttNode` — { name: 节点名称, state: 节点状态, startTime: 开始时间戳, endTime: 结束时间戳, children: 子节点列表 } | 点击甘特图节点时触发 |
|
|
25
|
+
| fullscreen.click | `void` | 点击全屏按钮时触发 |
|
|
26
|
+
|
|
27
|
+
## Examples
|
|
28
|
+
|
|
29
|
+
### Basic
|
|
30
|
+
|
|
31
|
+
展示基础甘特图,包含父子任务节点和时间条。
|
|
32
|
+
|
|
33
|
+
```yaml preview
|
|
34
|
+
brick: ai-portal.gantt-chart
|
|
35
|
+
properties:
|
|
36
|
+
chartTitle: 项目执行计划
|
|
37
|
+
nodes:
|
|
38
|
+
- name: 需求分析
|
|
39
|
+
state: completed
|
|
40
|
+
startTime: 1700000000000
|
|
41
|
+
endTime: 1700200000000
|
|
42
|
+
children:
|
|
43
|
+
- name: 业务需求梳理
|
|
44
|
+
state: completed
|
|
45
|
+
startTime: 1700000000000
|
|
46
|
+
endTime: 1700100000000
|
|
47
|
+
- name: 技术方案评审
|
|
48
|
+
state: completed
|
|
49
|
+
startTime: 1700100000000
|
|
50
|
+
endTime: 1700200000000
|
|
51
|
+
- name: 开发阶段
|
|
52
|
+
state: working
|
|
53
|
+
startTime: 1700200000000
|
|
54
|
+
endTime: 1700600000000
|
|
55
|
+
children:
|
|
56
|
+
- name: 后端开发
|
|
57
|
+
state: working
|
|
58
|
+
startTime: 1700200000000
|
|
59
|
+
endTime: 1700500000000
|
|
60
|
+
- name: 前端开发
|
|
61
|
+
state: ready
|
|
62
|
+
startTime: 1700300000000
|
|
63
|
+
endTime: 1700600000000
|
|
64
|
+
- name: 测试上线
|
|
65
|
+
state: ready
|
|
66
|
+
startTime: 1700600000000
|
|
67
|
+
endTime: 1700800000000
|
|
68
|
+
events:
|
|
69
|
+
node.click:
|
|
70
|
+
action: "console.log"
|
|
71
|
+
fullscreen.click:
|
|
72
|
+
action: "console.log"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Simple Flat Nodes
|
|
76
|
+
|
|
77
|
+
展示无子节点的平铺任务甘特图。
|
|
78
|
+
|
|
79
|
+
```yaml preview
|
|
80
|
+
brick: ai-portal.gantt-chart
|
|
81
|
+
properties:
|
|
82
|
+
chartTitle: 迭代任务
|
|
83
|
+
nodes:
|
|
84
|
+
- name: 任务 A
|
|
85
|
+
state: completed
|
|
86
|
+
startTime: 1700000000000
|
|
87
|
+
endTime: 1700150000000
|
|
88
|
+
- name: 任务 B
|
|
89
|
+
state: working
|
|
90
|
+
startTime: 1700150000000
|
|
91
|
+
endTime: 1700400000000
|
|
92
|
+
- name: 任务 C
|
|
93
|
+
state: ready
|
|
94
|
+
startTime: 1700400000000
|
|
95
|
+
endTime: 1700600000000
|
|
96
|
+
events:
|
|
97
|
+
node.click:
|
|
98
|
+
action: "console.log"
|
|
99
|
+
fullscreen.click:
|
|
100
|
+
action: "console.log"
|
|
101
|
+
```
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: ai-portal.gantt-chart
|
|
3
|
+
displayName: WrappedAiPortalGanttChart
|
|
4
|
+
description: 甘特图组件,以树状层级结构展示任务节点及其时间条,支持折叠展开和全屏操作。
|
|
5
|
+
category: chart
|
|
6
|
+
source: "@next-bricks/ai-portal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedAiPortalGanttChart
|
|
10
|
+
|
|
11
|
+
> 甘特图组件,以树状层级结构展示任务节点及其时间条,支持折叠展开和全屏操作。
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedAiPortalGanttChart } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ---------- | ------------- | ---- | ------ | -------------------------------------------------------- |
|
|
23
|
+
| chartTitle | `string` | 否 | - | 甘特图标题 |
|
|
24
|
+
| nodes | `GanttNode[]` | 否 | - | 任务节点树数据,每个节点包含名称、状态、时间范围及子节点 |
|
|
25
|
+
|
|
26
|
+
## Events
|
|
27
|
+
|
|
28
|
+
| 事件 | detail | 说明 |
|
|
29
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------------------- | -------------------- |
|
|
30
|
+
| onNodeClick | `GanttNode` — { name: 节点名称, state: 节点状态, startTime: 开始时间戳, endTime: 结束时间戳, children: 子节点列表 } | 点击甘特图节点时触发 |
|
|
31
|
+
| onFullscreenClick | `void` | 点击全屏按钮时触发 |
|
|
32
|
+
|
|
33
|
+
## Examples
|
|
34
|
+
|
|
35
|
+
### Basic
|
|
36
|
+
|
|
37
|
+
展示基础甘特图,包含父子任务节点和时间条。
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
<WrappedAiPortalGanttChart
|
|
41
|
+
chartTitle="项目执行计划"
|
|
42
|
+
nodes={[
|
|
43
|
+
{
|
|
44
|
+
name: "需求分析",
|
|
45
|
+
state: "completed",
|
|
46
|
+
startTime: 1700000000000,
|
|
47
|
+
endTime: 1700200000000,
|
|
48
|
+
children: [
|
|
49
|
+
{
|
|
50
|
+
name: "业务需求梳理",
|
|
51
|
+
state: "completed",
|
|
52
|
+
startTime: 1700000000000,
|
|
53
|
+
endTime: 1700100000000,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: "技术方案评审",
|
|
57
|
+
state: "completed",
|
|
58
|
+
startTime: 1700100000000,
|
|
59
|
+
endTime: 1700200000000,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: "开发阶段",
|
|
65
|
+
state: "working",
|
|
66
|
+
startTime: 1700200000000,
|
|
67
|
+
endTime: 1700600000000,
|
|
68
|
+
children: [
|
|
69
|
+
{
|
|
70
|
+
name: "后端开发",
|
|
71
|
+
state: "working",
|
|
72
|
+
startTime: 1700200000000,
|
|
73
|
+
endTime: 1700500000000,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "前端开发",
|
|
77
|
+
state: "ready",
|
|
78
|
+
startTime: 1700300000000,
|
|
79
|
+
endTime: 1700600000000,
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: "测试上线",
|
|
85
|
+
state: "ready",
|
|
86
|
+
startTime: 1700600000000,
|
|
87
|
+
endTime: 1700800000000,
|
|
88
|
+
},
|
|
89
|
+
]}
|
|
90
|
+
onNodeClick={(e) => console.log(e.detail)}
|
|
91
|
+
onFullscreenClick={(e) => console.log(e.detail)}
|
|
92
|
+
/>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Simple Flat Nodes
|
|
96
|
+
|
|
97
|
+
展示无子节点的平铺任务甘特图。
|
|
98
|
+
|
|
99
|
+
```tsx
|
|
100
|
+
<WrappedAiPortalGanttChart
|
|
101
|
+
chartTitle="迭代任务"
|
|
102
|
+
nodes={[
|
|
103
|
+
{
|
|
104
|
+
name: "任务 A",
|
|
105
|
+
state: "completed",
|
|
106
|
+
startTime: 1700000000000,
|
|
107
|
+
endTime: 1700150000000,
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: "任务 B",
|
|
111
|
+
state: "working",
|
|
112
|
+
startTime: 1700150000000,
|
|
113
|
+
endTime: 1700400000000,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
name: "任务 C",
|
|
117
|
+
state: "ready",
|
|
118
|
+
startTime: 1700400000000,
|
|
119
|
+
endTime: 1700600000000,
|
|
120
|
+
},
|
|
121
|
+
]}
|
|
122
|
+
onNodeClick={(e) => console.log(e.detail)}
|
|
123
|
+
onFullscreenClick={(e) => console.log(e.detail)}
|
|
124
|
+
/>
|
|
125
|
+
```
|