Davinci 数据可视化实战嵌入第三方系统的三条路径【免费下载链接】davinciDavinci is a DVsaaS (Data Visualization as a Service) Platform项目地址: https://gitcode.com/gh_mirrors/da/davinciDavinci 是一个 DVaaSData Visualization as a Service平台覆盖数据源、仪表板、大屏到组件的完整链路。跟着本文你可以在 10 分钟内把一块实时刷新的数据看板挂进自家业务系统的侧边栏或工作台也能反过来把公司内网页面嵌进图表里——全程只用两行 iframe 加一个 URL 参数不需要改造前端框架。先判断你的嵌入方向「插件化集成」在 Davinci 里其实是两个相反方向的动作先对号入座别走错门把 Davinci 嵌进你的系统最常见。你的产品需要一个数据看板但不想自己开发可视化引擎直接复用 Davinci 做好的仪表板或大屏。把外部网页嵌进 Davinci比如把内部审批页、另一套 BI 页面、营销活动页塞进图表区和真实数据图表并排展示。登录态打通两边系统都想让用户无感登录涉及 OAuth2 / LDAP 对接。方向搞对了后面每一步都是机械操作。前置条件部署 Davinci 并配好对外访问地址git clone https://gitcode.com/gh_mirrors/da/davinci部署细节以项目文档为准参考docs/_docs/zh/1.1-deployment.md环境需要 JDK 1.8 和 MySQL 5.5。配置阶段有一个极易踩坑的点把config/application.yml.example复制为application.yml后如果你的服务做了端口映射比如内网 8080 映射到外网 80必须显式填上server.access.address和server.access.port。不填的话分享页、下载、账号激活这些依赖「真实访问地址」的功能会静默失效这是后续所有嵌入动作的地基。路径一一个 iframe 把仪表板放进你的业务系统在 Davinci 里建好仪表板后点击仪表板右上角的分享按钮Davinci 提供三种分享方式普通分享生成带有效期的链接任意浏览器打开即可看数据权限与分享者一致——嵌入场景首选口令分享多一层口令验证适合半公开场景授权分享只能分享给组织内的角色和成员且可选「被分享者自身权限」适合内部按岗位看数的场景。拿到分享链接后在你的业务系统里放一个 iframe 就够了iframe srchttps://davinci.example.com/xxx分享页地址 stylewidth: 100%; height: 100vh; border: none;/iframe为什么用分享页而不是直接嵌仪表板编辑页编辑页依赖编辑权限和完整的编辑器资源分享页才是给「只看」的访问者设计的加载轻、权限语义清晰。大屏Display同理它支持自动轮播屏、过渡动画和多种缩放方式等比缩放宽/高、全屏铺满、实际尺寸挂到大屏投放场景时只需把 iframe 铺满容器。路径二URL 传参把筛选面板藏起来你的业务系统通常已经有自己的筛选器客户、日期、门店。Davinci 的分享页支持通过 URL 给全局控制器传参格式为分享页URL控制器名称值用法是双保险在你的页面拼好参数把值带进去同时在仪表板里把对应全局控制器设为隐藏。这样嵌入后的看板由你的系统驱动数据范围用户既看到正确数据也摸不到控制器去乱改——这是嵌入第三方系统时最省心的参数通道比 postMessage 互调稳定得多。路径三反向嵌入——任意网页进图表如果你的需求是「在 Davinci 看板里挂一块外部页面」Davinci 内置了内嵌网页iframe 类型的图表。它不需要配置维度和指标在样式栏填入目标网页地址即可渲染。相关实现就两个文件逻辑很短iframe 图表定义 和 Iframe 组件后者本质只有一行iframe src{src} /方便你按需二次开发比如加 loading 态或错误兜底。效果自检与三个高频坑嵌入完成后按这张清单过一遍分享页能打开但下载/激活类功能不可用→ 十有八九是server.access没配回到 application.yml 补上。用户想无感登录→ 在 application.yml 中开启security.oauth2.enable并配置 provider 端点企业内 LDAP 走spring.ldap配置具体字段以部署文档为准不同授权服务器的 userMapping 需要按实际返回调整。嵌入页里的脚本访问不到父窗口→ 这是浏览器同源策略的硬限制不是 Davinci 的问题。跨窗口通信请走 URL 参数或第三方系统自己发 postMessage别指望 JS 直调。另外记住一条权限语义普通分享页的数据权限与分享者一致不是与打开者一致。如果要求「每个人登录看到自己权限内的数据」请用授权分享并选择「使用被分享者自身权限」。下一步可以做什么把大屏接进投放场景Display 模块的多屏轮播、定时刷新组件配合「全屏铺满」缩放方式适配物理大屏docs/assets/images/display/1.3.png可参考最终效果。用定时任务做报表分发配合截图能力把看板按周期推送到邮件嵌入与订阅两不误详见docs/_docs/zh/2.6-schedule.md。有定制需求时直接看源码前端图表类型都集中在webapp/app/containers/Widget/config/chart/下新增一个可嵌入的组件类型照着 iframe 这个最短示例改即可。【免费下载链接】davinciDavinci is a DVsaaS (Data Visualization as a Service) Platform项目地址: https://gitcode.com/gh_mirrors/da/davinci创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考