我正在创建一个可用于概述您的 IT 环境的应用程序。目前,它可以显示一个表格,其中包含您环境中的接口及其连接的应用程序。它还能够根据这些数据创建 SVG 图像。它自己的数据可以通过 API 调用添加。
我从一个项目开始:
leiningen new luminus versiontracker +h2 +shadow-cljs +kee-frame +swagger +(some other)
为了能够生成支持拖放的 SVG 文件,我将 rid3 添加到项目 .clj 文件中。
当我在开发模式下运行应用程序时:
lein repl
和
lein shadow-cljs watch app
我可以拖动生成的 SVG 文件中的任何项目。我可以单击一个圆圈并将其拖动到我想要的任何地方。
但是,当我使用以下命令创建“生产”版本时:
lein uberjar
然后使用以下命令运行此应用程序:
java -Dconf=config.edn -jar versiontracker.jar
拖动对象无法正常工作。整个 SVG 被选中,而不是 SVG 图像中的单个对象;这会导致奇怪的拖放行为。
通过控制台窗口查看事件,我可以看到不同的行为。
- 在开发环境中,如果我抓取一个圆圈(附加了拖动功能),则 sourceEvent 中的 srcElement 是显示在该圆圈顶部的文本。虽然没有选择圆圈,但拖动按预期工作。拖动时所选项目跟随鼠标。
- 在“生产”环境中,如果我抓住一个圆圈,则 sourceEvent 中的 srcElement 是完整的 svg;这会导致奇怪的拖放行为。选定的项目不跟随鼠标,但项目确实开始以不可预知的方式移动。
转到Version Tracker下载带有标签 V0.3.0 的发布版本,用于生产版本(还有一个带有一些示例数据的 H2 数据库),并通过检查项目将其与开发版本进行比较。
任何帮助表示赞赏