码农知识堂 - 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通信去完成

    ​​​​​​

  • 相关阅读:
    ATV32变频器在堆垛机应用
    vtk.js滚动切片
    EDI对接 New York & Company案例
    【每日十分钟前端】基础篇19,普通函数、箭头函数、构造函数的区别
    CSS 基础知识-02
    如何做好测试?(三)功能测试 (Functional Testing, FT)
    Tungsten Fabric SDN — 与 Kubernetes 的集成部署(CN)
    2022秋实习面经
    Git 中的 HEAD
    【Flask】官方教程(Tutorial)-part2:蓝图-视图、模板、静态文件
  • 原文地址:https://blog.csdn.net/live4what/article/details/125898959
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号