码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • draw.io 二次开发(idea2020) 系列(二)


    上次的文章(系列一)主要是下载源码和搭建本地开发环境

    现在我已经可以在浏览器打开 http://localhost:8080/drawio了  

    首先要改掉 打开流程编辑器前的 欢迎提示界面

    webapp目录下 index.html 搜索  geBlock

    把英文提示改成自己的提示

    根据文档,在url后面用不同的参数可以达到不同效果

    http://localhost:8080/drawio/?lang=zh  用这个可以打开默认简体中文界面

    http://localhost:8080/drawio/?offline=1   用这个可以跳过选择存储方式,不用选什么google drive,github之类的

    http://localhost:8080/drawio/?dev=1     用这个可以进入调试模式,也就是前端加载的不是压缩后的js,方便调试前端代码  (实际我打不开这个页面,一直卡在加载界面,发现是有些静态资源请求的地址 是  http://devhost.jgraph.com/xxxxxxxx)   需要代码里全文搜索 devhost.jgraph.com  找到 index.html 文件  把这个写死的域名去掉 ,具体示例参考

    https://www.jianshu.com/p/40a30dd1a3f1  (这个文章还有参数列表说明,可以看看)

    其他修改: (见最后的说明,由于我只是用了draw.io的embed功能,所以对于编辑器首页的界面,我并不需要做这些修改,下面这些只是收集一些网上的修改经验)

    1. 删除右上角share按钮

    参考 drawio.io二次开发采坑记录_maoguan121的博客-CSDN博客_drawio 源码

    修改  js/diagramly/Menus.js 里面的代码

    2. File菜单功能修改

    里面有些按钮菜单 没必要  或者 依赖draw.io官方接口  

     参考 drawio.io二次开发采坑记录_maoguan121的博客-CSDN博客_drawio 源码

    3. 进入界面后底部弹框提示下载桌面版,可以隐藏掉或者换成自己的链接

     参考 drawio.io二次开发采坑记录_maoguan121的博客-CSDN博客_drawio 源码

    4. 精简右上角语言列表,入门视频链接,默认搜索引擎等 修改

     参考 drawio.io二次开发采坑记录_maoguan121的博客-CSDN博客_drawio 源码

    5.修改一些静态资源的请求地址,修改发布预览地址等

    参考 draw.io二次开发改造过程_iru的博客-CSDN博客_drawio源码分析

    最后我要做的流程编辑器  是需要以下功能   

    创建和编辑新的流程图

    加载和编辑已有流程图

    支持导出svg文件 和 png图片文件

    由于需求不是很复杂,并且为了避免更改很多代码 (方便以后用最新的源码覆盖更新), 

    目前采用的方式是

    1. 后端用  tomcat  把这个draw.io 代码跑起来,作为一个中间件 

    2. 前端 要用到 draw.io 提供的  https://github.com/jgraph/drawio-integration 前端页面,这个页面 会用iframe的形式 加载 draw.io 服务, 只需要在这个页面上把它的域名修改为 指向自己在跑的后端draw.io 服务

    这个 drawio-intergration

    在文件 helloworld.html 里面 会用  diagram-editor.js 去加载 本地iframe

    修改 diagram-editor.js

    1. 把
    2. DiagramEditor.prototype.drawDomain = 'https://embed.diagrams.net/';
    3. 改成
    4. DiagramEditor.prototype.drawDomain = 'http://我的本地ip或远程ip:8080/drawio/?embed=1&lang=zh';
    5. 由于url拼接方式
    6. 由 二级域名 ? 自定义参数 变成了
    7. ip ? 默认参数 &自定义参数 , 所以修改一下
    8. 把
    9. DiagramEditor.prototype.getFrameUrl = function()
    10. {
    11. var url = this.drawDomain + '?proto=json&spin=1';
    12. ......
    13. 改成
    14. DiagramEditor.prototype.getFrameUrl = function()
    15. {
    16. var url = this.drawDomain + '&proto=json&spin=1';
    17. ......

     这个 helloworld.html 和 diagram-editor.js 会让iframe 里面的drawio 编辑器 加载一个svg文件

    其他的功能  利用他的iframe通信去完成

    ​​​​​​

  • 相关阅读:
    多肽TAT接枝/功能肽RGDC修饰荧光碳量子点/碳量子点修饰多肽LyP-1的制备研究
    SIMULIA--Abaqus结构仿真篇
    RabbitMQ常用命令(一)
    传统平台项目通过大模型技术智能化升级
    智云通CRM:客户说“我们已经有供应商了”,我们该如何回应?
    【色彩管理】锐印RIP软件安装教程
    项目管理最重要的工具之一——甘特图
    arthas
    信息系统项目管理师第四版学习笔记——项目管理科学基础
    Java并发进阶之:关于计算机的一些知识
  • 原文地址:https://blog.csdn.net/live4what/article/details/125898959
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号