From a3b0d49832f62507c6772a5d48fe9f65610217f2 Mon Sep 17 00:00:00 2001 From: "xinxin.wu" Date: Wed, 21 Oct 2026 17:00:45 +0800 Subject: [PATCH] feat: embed mode --- ui/src/assets/application/embed-floating.png | Bin 0 -> 9114 bytes .../assets/application/embed-fullscreen.png | Bin 0 -> 8541 bytes ui/src/assets/application/embed-mobile.png | Bin 0 -> 4175 bytes ui/src/views/VIEW_README.md | 3 + .../components/ApplicationBasicInfo.vue | 2 +- .../ButtonEmbedThirdParty.vue | 6 +- .../EmbedThirdPartyDialog.vue | 83 +++++++++++++++++- 7 files changed, 87 insertions(+), 7 deletions(-) create mode 100644 ui/src/assets/application/embed-floating.png create mode 100644 ui/src/assets/application/embed-fullscreen.png create mode 100644 ui/src/assets/application/embed-mobile.png diff --git a/ui/src/assets/application/embed-floating.png b/ui/src/assets/application/embed-floating.png new file mode 100644 index 0000000000000000000000000000000000000000..6a4a2d393c189073e293c11e73dff45d915eb71e GIT binary patch literal 9114 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 Yf23xZD!=h|3IG5A07*qoM6N<$f+OeC7ytkO literal 0 HcmV?d00001 diff --git a/ui/src/assets/application/embed-fullscreen.png b/ui/src/assets/application/embed-fullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..8af9e9b085f3d4df443486600ba92e39838a2456 GIT binary patch literal 8541 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 Z{tM2<#+rMlE=m9Z002ovPDHLkV1l-S>)-$Y literal 0 HcmV?d00001 diff --git a/ui/src/views/VIEW_README.md b/ui/src/views/VIEW_README.md index 3882028e30b..f45ceda5bed 100644 --- a/ui/src/views/VIEW_README.md +++ b/ui/src/views/VIEW_README.md @@ -338,6 +338,9 @@ View 负责路由、资源与模式、图加载、保存/发布/调试编排 `api-key/`,入口和对应弹窗同目录维护。API Key 弹窗通过 `resourceApi.apiKey` 传入当前范围的完整 API 与智能体 ID, 复用 `business/api-key-list/`,Base URL 使用 Chat API 部署前缀加智能体 ID; Workspace 与 System 资源管理共用智能体弹窗,分别使用各自接口,不回退或使用头像菜单的全局系统 API Key。 + 嵌入第三方弹窗接收概览已有的 Web 链接与访问凭证,不额外请求接口;按全屏、浮窗、移动端单选切换并复制代码, + 关闭后恢复全屏模式。iframe 沿用 Web 链接及工作流参数,移动端增加 `mode=mobile`;浮窗使用 Chat API 前缀下的 + `/embed`,携带协议、主机、访问凭证及工作流参数,生成 HTML 时转义属性值。无访问凭证时禁用入口。 其他访问配置及弹窗业务尚待接入,不模拟保存。 三类场景统一调用 `getMonitoring(workspaceId, range, applicationId)`;全部智能体使用空 ID, 两类首页不提交智能体筛选,概览传当前智能体 ID。页面直接传入完整 API,不包装接口。 diff --git a/ui/src/views/application-detail/overview/components/ApplicationBasicInfo.vue b/ui/src/views/application-detail/overview/components/ApplicationBasicInfo.vue index 1227de71530..77b055b5f2c 100644 --- a/ui/src/views/application-detail/overview/components/ApplicationBasicInfo.vue +++ b/ui/src/views/application-detail/overview/components/ApplicationBasicInfo.vue @@ -125,7 +125,7 @@ onMounted(() => {
    - +
    diff --git a/ui/src/views/application-detail/overview/embed-third-party/ButtonEmbedThirdParty.vue b/ui/src/views/application-detail/overview/embed-third-party/ButtonEmbedThirdParty.vue index 4f94d1dd624..efc505b2109 100644 --- a/ui/src/views/application-detail/overview/embed-third-party/ButtonEmbedThirdParty.vue +++ b/ui/src/views/application-detail/overview/embed-third-party/ButtonEmbedThirdParty.vue @@ -4,18 +4,20 @@ import EmbedThirdPartyDialog from './EmbedThirdPartyDialog.vue' defineOptions({ name: 'ButtonEmbedThirdParty' }) +const props = defineProps<{ shareUrl: string; accessToken: string }>() const dialogRef = useTemplateRef>('dialogRef') function handleOpenEmbedThirdParty() { + if (!props.shareUrl || !props.accessToken) return dialogRef.value?.open() } diff --git a/ui/src/views/application-detail/overview/embed-third-party/EmbedThirdPartyDialog.vue b/ui/src/views/application-detail/overview/embed-third-party/EmbedThirdPartyDialog.vue index e0141cdc4df..89ca1f0bac9 100644 --- a/ui/src/views/application-detail/overview/embed-third-party/EmbedThirdPartyDialog.vue +++ b/ui/src/views/application-detail/overview/embed-third-party/EmbedThirdPartyDialog.vue @@ -1,9 +1,51 @@