drawio www.diagrams.net https://github.com/jgraph/drawio https://github.com/jgraph/drawio https://jgraph.github.io/drawio/src/main/webapp/index.html https://github.com/Hlingoes/springboot-drawio https://github.com/ydtong/drawio https://github.com/Hlingoes/springboot-drawio https://github.com/JolyRain/drawio_demo https://github.com/weichou99/drawio-intergation https://github.com/WinwayJia/drawio https://gitee.com/gitofcjf/dynamic-flow?_from=gitee_search https://github.com/LXFengGithub/drawio-master https://github.com/ydtong/drawio https://github.com/coral-cloud/coral-draw https://www.diagrams.net/blog/embedding-walkthrough https://www.drawzh.com/ https://desk.draw.io/support/solutions/articles/16000101649-use-the-simple-viewer https://www.pianshen.com/article/84141387911/ https://blog.csdn.net/keylkeaf/article/details/106012044 https://blog.csdn.net/fm0517/article/details/117412592 https://blog.csdn.net/PiaoMiaoXiaodao/article/details/90761115 https://blog.csdn.net/privateobject/article/details/105143285 重要 https://zhangzw.com/posts/20200107.html https://blog.csdn.net/MaZhaoLiang0201/article/details/107083338 保存 https://blog.csdn.net/fm0517/article/details/117560735 URL前缀为本地 https://blog.csdn.net/Iammiky/article/details/109742767 打开已保存入数据的地图 https://blog.csdn.net/Iammiky/article/details/113636410 https://www.codeleading.com/article/48782597070/ https://blog.csdn.net/weixin_41108690/article/details/88608748 https://blog.csdn.net/qq_37541097/article/details/116024091 基于draw.io的二次开发,文件增加本地以及oss存储 https://gitee.com/zero123123/draw.io https://www.dazhuanlan.com/houfeng30920/topics/1395999 https://gitee.com/twobear/drawio-webapp https://github.com/jgraph vue https://codeburst.io/from-draw-io-to-vue-js-app-c0f84ede8383 https://www.iotschool.com/topics/189 urlParams['lang'] = 'zh';//修改默认语言为中文 urlParams['offline'] = 1;//修改为离线模式 result['offline'] = '1' //urlParams['lang'] = 'zh';//修改默认语言为中文 //urlParams['offline'] = 1;//修改为离线模式 result['lang'] = '1'; result['offline'] = 'zh'; webappjsdiagramlyDrawioFile.js 1903行 isLocalStorage = urlParams['local'] != '1' && typeof (localStorage) != 'undefined' DRAW_SERVER_URL loadServerData 加载数据 window.DRAW_SERVER_URL = window.DRAW_SERVER_URL || '/file'; saveToServer automatic=自动 autosave=自动保存 autosize=自动调整 save=保存 autosave webappjsdiagramlyLocalFile.js 129行 加个ajax请求可将绘图信息保存到数据库 具体代码就不展示了 大致位置就在这 可以自行研究 webapp/js/diagramly/App.js webapp/js/diagramly/StorageFile.js 将几个菜单按钮都隐藏掉:js/mxgragh/Menus.js 更改代码: hightopo https://github.com/qdteng/drawdb https://github.com/othorizon/drawio-webdav https://www.jianshu.com/p/4a1edcb07ed7 https://github.com/search?p=1&q=springboot+thymeleaf+vue&type=Repositories https://blog.csdn.net/u014229652/article/details/82979551 https://github.com/Jackjun724/spring-boot-blog https://github.com/jfreshik/test-message-app C:UsersAdministratorAppDataLocalJetBrainsIntelliJIdea2020.3 omcat https://app.diagrams.net/?lang=zh http://localhost:8080/drawio/index.html http://localhost:8080/drawio/?dev=1 http://localhost:8080/drawio/?offline=1 http://localhost:8082 https://stackoverflow.com/questions/52512054/how-to-create-new-image-in-draw-io-and-save-it-database-from-within-my-website https://drawio.freshdesk.com/support/solutions/articles/16000067785-export-a-diagram-to-various-file-formats https://jgraph.github.io/drawio-tools/tools/convert.html huajun-drawio coral-draw eventType env_drawio_data env_drawio_user 标准操作程序SOP 标准作业流程SOP 作业指导书 作业指导流程 NewDrawioFile.xm sop.url env_sop window.open(key, "_blank"); http://localhost:8082/admin/index.html export function listUser(query) { return request({ url: '/system/user/list', method: 'get', params: query, baseURL: process.env.BASE_API }) } Access to XMLHttpRequest at 'http://localhost:8082/user/check?ids=c79d8fc734fe0e4a4b31d2509e5b5e41&token=fea1cc48-1fa3-4324-ac96-06723b992935' from origin 'http://localhost' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. No 'Access-Control-Allow-Origin' header is present on the requested resource. CorsConfig if (StringUtils.isNotEmpty(token)) { String userKey = getTokenKey(token); LoginUser user = redisService.getCacheObject(userKey); return user; } redis: database: 6 host: 192.168.8.248 port: 6379 password: http://localhost:8082 user=darjeely&pass=cardinals5521 http://localhost:8082/index.html?ownerId=1629168317743_1546895912&uuid=affe9bfc-c0e9-4885-966c-bfb7130433cd#L%E6%B2%B3%E5%8D%97%E7%9C%81%E5%BA%94%E6%80%A5%E5%8E%85 this.loading = true; this.loading = false; http://localhost:8082/index.html?ownerId=publicUser&uuid=52a9dc40-96ba-4d16-86dd-8563326a224b#LNewDrawioFile.xml http://localhost:8082/index.html?ownerId=publicUser&uuid=c79d8fc734fe0e4a4b31d2509e5b5e41&title=第三方付付付不#LNewDrawioFile.xml http://localhost:8082/index.html?ownerId=publicUser&uuid=c79d8fc734fe0e4a4b31d2509e5b5e41#LNewDrawioFile.xml http://localhost:8082/index.html?ownerId=publicUser&uuid=52a9dc40-96ba-4d16-86dd-8563326a224b#LNewDrawioFile.xml http://localhost:8086/index.html?ownerId=publicUser&uuid=52a9dc40-96ba-4d16-86dd-8563326a224b#LNewDrawioFile.xml http://localhost:8082/index.html?ownerId=publicUser&uuid=c79d8fc734fe0e4a4b31d2509e5b5e41&title=%E7%AC%AC%E4%B8%89%E6%96%B9%E4%BB%98%E4%BB%98%E4%BB%98%E4%B8%8D#LNewDrawioFile.xml http://localhost:8082/index.html?ownerId=publicUser&uuid=426d8fc734fe0e4a4b31d2509e5b5e42&title=%E6%B5%8B%E8%AF%95%E4%B8%80#LNewDrawioFile.xml http://localhost:8082/index.html?ownerId=publicUser&uuid=436d8fc734fe0e4a4b31d2509e5b5e43&title=%E6%B5%8B%E8%AF%95%E4%B8%80#LNewDrawioFile.xml 2021-08-18 19:24:07.318 WARN 13560 --- [nio-8082-exec-4] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1062, SQLState: 23000 2021-08-18 19:24:07.318 ERROR 13560 --- [nio-8082-exec-4] o.h.engine.jdbc.spi.SqlExceptionHelper : Duplicate entry 'publicUser' for key 'UK_ro1shf9dkhardfds9psiwqtld' 2021-08-18 19:24:07.319 ERROR 13560 --- [nio-8082-exec-4] c.m.server.biz.base.DrawBaseService : {"body":"PG14ZmlsZSBtb2RpZmllZD0iMjAyMS0wOC0xOFQxMDoyMjozNi4xNTlaIiBob3N0PSJsb2NhbGhvc3QiIGFnZW50PSJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTIuMC40NTE1LjE1OSBTYWZhcmkvNTM3LjM2IiBldGFnPSJCQVY5UE50UHBaZ2xWRGY5RjZqSiIgdmVyc2lvbj0iMTAuOS41IiB0eXBlPSJicm93c2VyIj48ZGlhZ3JhbSBpZD0iRk8ydjNhMTV0THpvVUR1YWN0elYiIG5hbWU9IlBhZ2UtMSI+eFpoYlU2TXdHSVovRFpmdWNHZ3B2YlJIN1dxclUxMVhiNXdVVW9nR3dvYlFncjkrQTRSeVZOdWR0dHR4cG54dkRpVFBkMGlxcEEzZGFFcUI3OXdTQzJKSmxhMUkwa2FTcWlvZFZaV1NQOW1LTTZYWDF6UEJwc2dTblFwaGlUNmdFR1doaHNpQ1FhVWpJd1F6NUZkRmszZ2VORmxGQTVTU2JiWGJtdURxVzMxZ3c0YXdOQUZ1cWsvSVlrNm1HbXF2MEs4Z3NwMzh6WXJlejFwY2tIY1dPd2tjWUpGdFNkTEdramFraExEc3lZMkdFQ2Z3Y2k3WnVNa25yYnVGVWVpeGZRYU0vOXpqNk9MaDZtRXpESzRlbDdvN2Z3MHZ4Q3diZ0VPeDRUams5aHZDU0ZKMTRQcVNOdkJXUWZJbGRzSGlIQTBsb1dmQlpIYUZOMjhkeE9EU0IyYlN1dVhCd0RXSHVWZzBOMWVidnhwU0JxT1NKRlkvaGNTRmpNYThpMmpWOHBnUW9kVHBDSHRiT0ViSmFUc2xwK2hDQXlJVzdOM1VCUzcrSUlnZFFFOXQwR3RBNGw3M2swY3p4b2pUb3QrVFdtVlliMVk3QVpqdmRncDdFVEkrQ3p3ZVVsMnVJaldhUlBVV29NYXBnR3I3QTJVY0hQd2d5WFFESDFMRUY1RFFMZlM3UWp4RGNOWkpxdjg5T0RzSEJDZWcxbmxTdUZ1bHBPaE5Ta1lMSkVVK0ZhWHUvcFI4U2t3WUJIdGs4T2tTdGxNRDJOSE9HR2IzM20xQXR3dnJUcVhyeVFKUFI3TW4ybktDZkJGbUdKT1FmUSt3bk05aVVEbWJqOERScU1YaHZ0bDZqTW8zbndRUDdGb3hYblFaUG04VXN1MWhKOGRZb2dZdGZoRVJKcUhNSVRieEFCNFg2cUE0Z0dWdUZYMXVDUEVGeVRmSVdDeHVWU0JrcE1vWlJvajlUb2IvVUx2Q2ZFN04zQnBGWXZMVWlFdEd5UitwOXFsUEFoSlNFMzRSUUNKZWt1MSs2VGtLTVdCb1U3Mlh0ZmxCREwwamlDOWw1L0hkUFV5NFhLdVhGQWFvRFprWVZmUG1iaG4vbmljSDNCVWljcDR6UytsWGtlZ3R4ZVJVeC8rTURVMkZ6Wkh4Ni9uK25aZkluOXBnMWxKTGxQVFRJTVUzeUtvNEFrYkpPeHdTbkxBYmVTUXB1b00xd3JnbUFZeHNMeWtySEZ0YVRCSmNpQmVaUzlIZ0lzdEtzNnVOZnpYamp1R0NYczBGVFE5MFdqeWdIc0VEL1k4bDlPVEllQWxlOGVweEVzM2pwWGxJTmVmNzVxVVpZbUpUNE5hS2RxWHR2QmV4YnUwaXBwL3pJdWJFTHo2YmVrL0tnbGpYZHMrNVhNKzhmWmp5V2ZnUDJzK2k3cmlBNmxlSTd1bU9QbTRXdjIrelFscjhsMEFiL3dVPTwvZGlhZ3JhbT48L214ZmlsZT4=","createTime":1629285847314,"delFlag":0,"id":0,"name":"NewDrawioFile.xml","ownerId":"publicUser","svgData":"ZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUIyWlhKemFXOXVQU0l4TGpFaUlIZHBaSFJvUFNJMk5ERndlQ0lnYUdWcFoyaDBQU0kyTmpGd2VDSWdkbWxsZDBKdmVEMGlMVEF1TlNBdE1DNDFJRFkwTVNBMk5qRWlQanhrWldaekx6NDhaejQ4Y21WamRDQjRQU0l5TXpBaUlIazlJak01TUNJZ2QybGtkR2c5SWpFeU1DSWdhR1ZwWjJoMFBTSTJNQ0lnY25nOUlqa2lJSEo1UFNJNUlpQm1hV3hzUFNJalptWm1abVptSWlCemRISnZhMlU5SWlNd01EQXdNREFpSUhCdmFXNTBaWEl0WlhabGJuUnpQU0p1YjI1bElpOCtQR2NnZEhKaGJuTm1iM0p0UFNKMGNtRnVjMnhoZEdVb01qYzBMalVzTkRFekxqVXBJajQ4YzNkcGRHTm9QanhtYjNKbGFXZHVUMkpxWldOMElITjBlV3hsUFNKdmRtVnlabXh2ZHpwMmFYTnBZbXhsT3lJZ2NHOXBiblJsY2kxbGRtVnVkSE05SW1Gc2JDSWdkMmxrZEdnOUlqTXdJaUJvWldsbmFIUTlJakV5SWlCeVpYRjFhWEpsWkVabFlYUjFjbVZ6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk5VVVpOVRWa2N4TVM5bVpXRjBkWEpsSTBWNGRHVnVjMmxpYVd4cGRIa2lQanhrYVhZZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR2gwYld3aUlITjBlV3hsUFNKa2FYTndiR0Y1T2lCcGJteHBibVV0WW14dlkyczdJR1p2Ym5RdGMybDZaVG9nTVRKd2VEc2dabTl1ZEMxbVlXMXBiSGs2SUVobGJIWmxkR2xqWVRzZ1kyOXNiM0k2SUhKbllpZ3dMQ0F3TENBd0tUc2diR2x1WlMxb1pXbG5hSFE2SURFdU1qc2dkbVZ5ZEdsallXd3RZV3hwWjI0NklIUnZjRHNnZDJsa2RHZzZJRE15Y0hnN0lIZG9hWFJsTFhOd1lXTmxPaUJ1YjNkeVlYQTdJRzkyWlhKbWJHOTNMWGR5WVhBNklHNXZjbTFoYkRzZ2RHVjRkQzFoYkdsbmJqb2dZMlZ1ZEdWeU95SStQR1JwZGlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRhSFJ0YkNJZ2MzUjViR1U5SW1ScGMzQnNZWGs2YVc1c2FXNWxMV0pzYjJOck8zUmxlSFF0WVd4cFoyNDZhVzVvWlhKcGREdDBaWGgwTFdSbFkyOXlZWFJwYjI0NmFXNW9aWEpwZER0M2FHbDBaUzF6Y0dGalpUcHViM0p0WVd3N0lqNTVkU0JxYVd4cHdxQThMMlJwZGo0OEwyUnBkajQ4TDJadmNtVnBaMjVQWW1wbFkzUStQSFJsZUhRZ2VEMGlNVFVpSUhrOUlqRXlJaUJtYVd4c1BTSWpNREF3TURBd0lpQjBaWGgwTFdGdVkyaHZjajBpYldsa1pHeGxJaUJtYjI1MExYTnBlbVU5SWpFeWNIZ2lJR1p2Ym5RdFptRnRhV3g1UFNJblNHVnNkbVYwYVdOaEp5SStXMDV2ZENCemRYQndiM0owWldRZ1lua2dkbWxsZDJWeVhUd3ZkR1Y0ZEQ0OEwzTjNhWFJqYUQ0OEwyYytQSEJoZEdnZ1pEMGlUU0ExTWpBZ05EWWdReUExTWpBZ01qUXVOamNnTlRnd0lESTBMalkzSURVNE1DQTBOaUJNSURVNE1DQTVOQ0JESURVNE1DQXhNVFV1TXpNZ05USXdJREV4TlM0ek15QTFNakFnT1RRZ1dpSWdabWxzYkQwaUkyWm1abVptWmlJZ2MzUnliMnRsUFNJak1EQXdNREF3SWlCemRISnZhMlV0YldsMFpYSnNhVzFwZEQwaU1UQWlJSEJ2YVc1MFpYSXRaWFpsYm5SelBTSnViMjVsSWk4K1BIQmhkR2dnWkQwaVRTQTFNakFnTkRZZ1F5QTFNakFnTmpJZ05UZ3dJRFl5SURVNE1DQTBOaUlnWm1sc2JEMGlibTl1WlNJZ2MzUnliMnRsUFNJak1EQXdNREF3SWlCemRISnZhMlV0YldsMFpYSnNhVzFwZEQwaU1UQWlJSEJ2YVc1MFpYSXRaWFpsYm5SelBTSnViMjVsSWk4K1BIQmhkR2dnWkQwaVRTQTFNakFnTWpVd0lFd2dOVFEwSURFNU1DQk1JRFl4TmlBeE9UQWdUQ0EyTkRBZ01qVXdJRm9pSUdacGJHdzlJaU5tWm1abVptWWlJSE4wY205clpUMGlJekF3TURBd01DSWdjM1J5YjJ0bExXMXBkR1Z5YkdsdGFYUTlJakV3SWlCd2IybHVkR1Z5TFdWMlpXNTBjejBpYm05dVpTSXZQanh3WVhSb0lHUTlJazBnTXpBd0lERXhNQ0JNSURNMU1DQXhNVEFnVENBek5UQWdNakV3SUV3Z01qY3dJREl4TUNCTUlESTNNQ0F4TkRBZ1dpSWdabWxzYkQwaUkyWm1abVptWmlJZ2MzUnliMnRsUFNJak1EQXdNREF3SWlCemRISnZhMlV0YldsMFpYSnNhVzFwZEQwaU1UQWlJSEJ2YVc1MFpYSXRaWFpsYm5SelBTSnViMjVsSWk4K1BISmxZM1FnZUQwaU16Y3dJaUI1UFNJek9EQWlJSGRwWkhSb1BTSXhNakFpSUdobGFXZG9kRDBpTmpBaUlHWnBiR3c5SWlObVptWm1abVlpSUhOMGNtOXJaVDBpSXpBd01EQXdNQ0lnY0c5cGJuUmxjaTFsZG1WdWRITTlJbTV2Ym1VaUx6NDhjR0YwYUNCa1BTSk5JRE00TWlBek9EQWdUQ0F6T0RJZ05EUXdJRTBnTkRjNElETTRNQ0JNSURRM09DQTBOREFpSUdacGJHdzlJbTV2Ym1VaUlITjBjbTlyWlQwaUl6QXdNREF3TUNJZ2MzUnliMnRsTFcxcGRHVnliR2x0YVhROUlqRXdJaUJ3YjJsdWRHVnlMV1YyWlc1MGN6MGlibTl1WlNJdlBqeHdZWFJvSUdROUlrMGdNQ0E1TUNCTUlERXlNQ0E1TUNCTUlERXlNQ0F4TkRBZ1RDQTRNQ0F4TkRBZ1RDQTJNQ0F4TnpBZ1RDQTJNQ0F4TkRBZ1RDQXdJREUwTUNCYUlpQm1hV3hzUFNJalptWm1abVptSWlCemRISnZhMlU5SWlNd01EQXdNREFpSUhOMGNtOXJaUzF0YVhSbGNteHBiV2wwUFNJeE1DSWdjRzlwYm5SbGNpMWxkbVZ1ZEhNOUltNXZibVVpTHo0OGNHRjBhQ0JrUFNKTklERXlOU0EyTWpBZ1RDQXhNalVnTkRFMUlFd2dNVFF3SURReE5TQk1JREUwTUNBeU5UWXVNemNpSUdacGJHdzlJbTV2Ym1VaUlITjBjbTlyWlQwaUl6QXdNREF3TUNJZ2MzUnliMnRsTFcxcGRHVnliR2x0YVhROUlqRXdJaUJ3YjJsdWRHVnlMV1YyWlc1MGN6MGlibTl1WlNJdlBqeHdZWFJvSUdROUlrMGdNVFF3SURJMU1TNHhNaUJNSURFME15NDFJREkxT0M0eE1pQk1JREUwTUNBeU5UWXVNemNnVENBeE16WXVOU0F5TlRndU1USWdXaUlnWm1sc2JEMGlJekF3TURBd01DSWdjM1J5YjJ0bFBTSWpNREF3TURBd0lpQnpkSEp2YTJVdGJXbDBaWEpzYVcxcGREMGlNVEFpSUhCdmFXNTBaWEl0WlhabGJuUnpQU0p1YjI1bElpOCtQSEJoZEdnZ1pEMGlUU0F4TVRBZ05UZ3dJRkVnTVRjd0lEVTRNQ0F4TnpBZ05qSXdJRkVnTVRjd0lEWTJNQ0F4TVRBZ05qWXdJRkVnTVRRd0lEWXlNQ0F4TVRBZ05UZ3dJRm9pSUdacGJHdzlJaU5tWm1abVptWWlJSE4wY205clpUMGlJekF3TURBd01DSWdjM1J5YjJ0bExXMXBkR1Z5YkdsdGFYUTlJakV3SWlCd2IybHVkR1Z5TFdWMlpXNTBjejBpYm05dVpTSXZQanhuSUhSeVlXNXpabTl5YlQwaWRISmhibk5zWVhSbEtEa3hMalVzTVRNdU5Ta2lQanh6ZDJsMFkyZytQR1p2Y21WcFoyNVBZbXBsWTNRZ2MzUjViR1U5SW05MlpYSm1iRzkzT25acGMybGliR1U3SWlCd2IybHVkR1Z5TFdWMlpXNTBjejBpWVd4c0lpQjNhV1IwYUQwaU16WWlJR2hsYVdkb2REMGlNVElpSUhKbGNYVnBjbVZrUm1WaGRIVnlaWE05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTDFSU0wxTldSekV4TDJabFlYUjFjbVVqUlhoMFpXNXphV0pwYkdsMGVTSStQR1JwZGlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRhSFJ0YkNJZ2MzUjViR1U5SW1ScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6c2dabTl1ZEMxemFYcGxPaUF4TW5CNE95Qm1iMjUwTFdaaGJXbHNlVG9nU0dWc2RtVjBhV05oT3lCamIyeHZjam9nY21kaUtEQXNJREFzSURBcE95QnNhVzVsTFdobGFXZG9kRG9nTVM0eU95QjJaWEowYVdOaGJDMWhiR2xuYmpvZ2RHOXdPeUIzYVdSMGFEb2dNelp3ZURzZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEc2diM1psY21ac2IzY3RkM0poY0RvZ2JtOXliV0ZzT3lCMFpYaDBMV0ZzYVdkdU9pQmpaVzUwWlhJN0lqNDhaR2wySUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaG9kRzFzSWlCemRIbHNaVDBpWkdsemNHeGhlVHBwYm14cGJtVXRZbXh2WTJzN2RHVjRkQzFoYkdsbmJqcHBibWhsY21sME8zUmxlSFF0WkdWamIzSmhkR2x2YmpwcGJtaGxjbWwwTzNkb2FYUmxMWE53WVdObE9tNXZjbTFoYkRzaVBqRXhNVEV4TVR3dlpHbDJQand2WkdsMlBqd3ZabTl5WldsbmJrOWlhbVZqZEQ0OGRHVjRkQ0I0UFNJeE9DSWdlVDBpTVRJaUlHWnBiR3c5SWlNd01EQXdNREFpSUhSbGVIUXRZVzVqYUc5eVBTSnRhV1JrYkdVaUlHWnZiblF0YzJsNlpUMGlNVEp3ZUNJZ1ptOXVkQzFtWVcxcGJIazlJa2hsYkhabGRHbGpZU0krTVRFeE1URXhQQzkwWlhoMFBqd3ZjM2RwZEdOb1Bqd3ZaejQ4Y0dGMGFDQmtQU0pOSURReU1DQTJOVEFnVENBME5EUWdOVGt3SUV3Z05UUXdJRFU1TUNCTUlEVXhOaUEyTlRBZ1dpSWdabWxzYkQwaUkyWm1abVptWmlJZ2MzUnliMnRsUFNJak1EQXdNREF3SWlCemRISnZhMlV0YldsMFpYSnNhVzFwZEQwaU1UQWlJSEJ2YVc1MFpYSXRaWFpsYm5SelBTSnViMjVsSWk4K1BHVnNiR2x3YzJVZ1kzZzlJalF6TUNJZ1kzazlJalF3SWlCeWVEMGlOakFpSUhKNVBTSTBNQ0lnWm1sc2JEMGlJMlptWm1abVppSWdjM1J5YjJ0bFBTSWpNREF3TURBd0lpQndiMmx1ZEdWeUxXVjJaVzUwY3owaWJtOXVaU0l2UGp3dlp6NDhMM04yWno0PQ==","updateTime":1629285847314,"uuid":"42a9dc40-96ba-4d16-86dd-8563326a2242"}:could not execute statement; SQL [n/a]; constraint [UK_ro1shf9dkhardfds9psiwqtld]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement 2021-08-18 19:24:07.320 INFO 13560 --- [nio-8082-exec-4] c.m.server.biz.control.FileControl : save File:{"body":"PG14ZmlsZSBtb2RpZmllZD0iMjAyMS0wOC0xOFQxMDoyMjozNi4xNTlaIiBob3N0PSJsb2NhbGhvc3QiIGFnZW50PSJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTIuMC40NTE1LjE1OSBTYWZhcmkvNTM3LjM2IiBldGFnPSJCQVY5UE50UHBaZ2xWRGY5RjZqSiIgdmVyc2lvbj0iMTAuOS41IiB0eXBlPSJicm93c2VyIj48ZGlhZ3JhbSBpZD0iRk8ydjNhMTV0THpvVUR1YWN0elYiIG5hbWU9IlBhZ2UtMSI+eFpoYlU2TXdHSVovRFpmdWNHZ3B2YlJIN1dxclUxMVhiNXdVVW9nR3dvYlFncjkrQTRSeVZOdWR0dHR4cG54dkRpVFBkMGlxcEEzZGFFcUI3OXdTQzJKSmxhMUkwa2FTcWlvZFZaV1NQOW1LTTZYWDF6UEJwc2dTblFwaGlUNmdFR1doaHNpQ1FhVWpJd1F6NUZkRmszZ2VORmxGQTVTU2JiWGJtdURxVzMxZ3c0YXdOQUZ1cWsvSVlrNm1HbXF2MEs4Z3NwMzh6WXJlejFwY2tIY1dPd2tjWUpGdFNkTEdramFraExEc3lZMkdFQ2Z3Y2k3WnVNa25yYnVGVWVpeGZRYU0vOXpqNk9MaDZtRXpESzRlbDdvN2Z3MHZ4Q3diZ0VPeDRUams5aHZDU0ZKMTRQcVNOdkJXUWZJbGRzSGlIQTBsb1dmQlpIYUZOMjhkeE9EU0IyYlN1dVhCd0RXSHVWZzBOMWVidnhwU0JxT1NKRlkvaGNTRmpNYThpMmpWOHBnUW9kVHBDSHRiT0ViSmFUc2xwK2hDQXlJVzdOM1VCUzcrSUlnZFFFOXQwR3RBNGw3M2swY3p4b2pUb3QrVFdtVlliMVk3QVpqdmRncDdFVEkrQ3p3ZVVsMnVJaldhUlBVV29NYXBnR3I3QTJVY0hQd2d5WFFESDFMRUY1RFFMZlM3UWp4RGNOWkpxdjg5T0RzSEJDZWcxbmxTdUZ1bHBPaE5Ta1lMSkVVK0ZhWHUvcFI4U2t3WUJIdGs4T2tTdGxNRDJOSE9HR2IzM20xQXR3dnJUcVhyeVFKUFI3TW4ybktDZkJGbUdKT1FmUSt3bk05aVVEbWJqOERScU1YaHZ0bDZqTW8zbndRUDdGb3hYblFaUG04VXN1MWhKOGRZb2dZdGZoRVJKcUhNSVRieEFCNFg2cUE0Z0dWdUZYMXVDUEVGeVRmSVdDeHVWU0JrcE1vWlJvajlUb2IvVUx2Q2ZFN04zQnBGWXZMVWlFdEd5UitwOXFsUEFoSlNFMzRSUUNKZWt1MSs2VGtLTVdCb1U3Mlh0ZmxCREwwamlDOWw1L0hkUFV5NFhLdVhGQWFvRFprWVZmUG1iaG4vbmljSDNCVWljcDR6UytsWGtlZ3R4ZVJVeC8rTURVMkZ6Wkh4Ni9uK25aZkluOXBnMWxKTGxQVFRJTVUzeUtvNEFrYkpPeHdTbkxBYmVTUXB1b00xd3JnbUFZeHNMeWtySEZ0YVRCSmNpQmVaUzlIZ0lzdEtzNnVOZnpYamp1R0NYczBGVFE5MFdqeWdIc0VEL1k4bDlPVEllQWxlOGVweEVzM2pwWGxJTmVmNzVxVVpZbUpUNE5hS2RxWHR2QmV4YnUwaXBwL3pJdWJFTHo2YmVrL0tnbGpYZHMrNVhNKzhmWmp5V2ZnUDJzK2k3cmlBNmxlSTd1bU9QbTRXdjIrelFscjhsMEFiL3dVPTwvZGlhZ3JhbT48L214ZmlsZT4=","createTime":1629285847314,"delFlag":0,"id":0,"name":"NewDrawioFile.xml","ownerId":"publicUser","svgData":"ZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUIyWlhKemFXOXVQU0l4TGpFaUlIZHBaSFJvUFNJMk5ERndlQ0lnYUdWcFoyaDBQU0kyTmpGd2VDSWdkbWxsZDBKdmVEMGlMVEF1TlNBdE1DNDFJRFkwTVNBMk5qRWlQanhrWldaekx6NDhaejQ4Y21WamRDQjRQU0l5TXpBaUlIazlJak01TUNJZ2QybGtkR2c5SWpFeU1DSWdhR1ZwWjJoMFBTSTJNQ0lnY25nOUlqa2lJSEo1UFNJNUlpQm1hV3hzUFNJalptWm1abVptSWlCemRISnZhMlU5SWlNd01EQXdNREFpSUhCdmFXNTBaWEl0WlhabGJuUnpQU0p1YjI1bElpOCtQR2NnZEhKaGJuTm1iM0p0UFNKMGNtRnVjMnhoZEdVb01qYzBMalVzTkRFekxqVXBJajQ4YzNkcGRHTm9QanhtYjNKbGFXZHVUMkpxWldOMElITjBlV3hsUFNKdmRtVnlabXh2ZHpwMmFYTnBZbXhsT3lJZ2NHOXBiblJsY2kxbGRtVnVkSE05SW1Gc2JDSWdkMmxrZEdnOUlqTXdJaUJvWldsbmFIUTlJakV5SWlCeVpYRjFhWEpsWkVabFlYUjFjbVZ6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk5VVVpOVRWa2N4TVM5bVpXRjBkWEpsSTBWNGRHVnVjMmxpYVd4cGRIa2lQanhrYVhZZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR2gwYld3aUlITjBlV3hsUFNKa2FYTndiR0Y1T2lCcGJteHBibVV0WW14dlkyczdJR1p2Ym5RdGMybDZaVG9nTVRKd2VEc2dabTl1ZEMxbVlXMXBiSGs2SUVobGJIWmxkR2xqWVRzZ1kyOXNiM0k2SUhKbllpZ3dMQ0F3TENBd0tUc2diR2x1WlMxb1pXbG5hSFE2SURFdU1qc2dkbVZ5ZEdsallXd3RZV3hwWjI0NklIUnZjRHNnZDJsa2RHZzZJRE15Y0hnN0lIZG9hWFJsTFhOd1lXTmxPaUJ1YjNkeVlYQTdJRzkyWlhKbWJHOTNMWGR5WVhBNklHNXZjbTFoYkRzZ2RHVjRkQzFoYkdsbmJqb2dZMlZ1ZEdWeU95SStQR1JwZGlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRhSFJ0YkNJZ2MzUjViR1U5SW1ScGMzQnNZWGs2YVc1c2FXNWxMV0pzYjJOck8zUmxlSFF0WVd4cFoyNDZhVzVvWlhKcGREdDBaWGgwTFdSbFkyOXlZWFJwYjI0NmFXNW9aWEpwZER0M2FHbDBaUzF6Y0dGalpUcHViM0p0WVd3N0lqNTVkU0JxYVd4cHdxQThMMlJwZGo0OEwyUnBkajQ4TDJadmNtVnBaMjVQWW1wbFkzUStQSFJsZUhRZ2VEMGlNVFVpSUhrOUlqRXlJaUJtYVd4c1BTSWpNREF3TURBd0lpQjBaWGgwTFdGdVkyaHZjajBpYldsa1pHeGxJaUJtYjI1MExYTnBlbVU5SWpFeWNIZ2lJR1p2Ym5RdFptRnRhV3g1UFNJblNHVnNkbVYwYVdOaEp5SStXMDV2ZENCemRYQndiM0owWldRZ1lua2dkbWxsZDJWeVhUd3ZkR1Y0ZEQ0OEwzTjNhWFJqYUQ0OEwyYytQSEJoZEdnZ1pEMGlUU0ExTWpBZ05EWWdReUExTWpBZ01qUXVOamNnTlRnd0lESTBMalkzSURVNE1DQTBOaUJNSURVNE1DQTVOQ0JESURVNE1DQXhNVFV1TXpNZ05USXdJREV4TlM0ek15QTFNakFnT1RRZ1dpSWdabWxzYkQwaUkyWm1abVptWmlJZ2MzUnliMnRsUFNJak1EQXdNREF3SWlCemRISnZhMlV0YldsMFpYSnNhVzFwZEQwaU1UQWlJSEJ2YVc1MFpYSXRaWFpsYm5SelBTSnViMjVsSWk4K1BIQmhkR2dnWkQwaVRTQTFNakFnTkRZZ1F5QTFNakFnTmpJZ05UZ3dJRFl5SURVNE1DQTBOaUlnWm1sc2JEMGlibTl1WlNJZ2MzUnliMnRsUFNJak1EQXdNREF3SWlCemRISnZhMlV0YldsMFpYSnNhVzFwZEQwaU1UQWlJSEJ2YVc1MFpYSXRaWFpsYm5SelBTSnViMjVsSWk4K1BIQmhkR2dnWkQwaVRTQTFNakFnTWpVd0lFd2dOVFEwSURFNU1DQk1JRFl4TmlBeE9UQWdUQ0EyTkRBZ01qVXdJRm9pSUdacGJHdzlJaU5tWm1abVptWWlJSE4wY205clpUMGlJekF3TURBd01DSWdjM1J5YjJ0bExXMXBkR1Z5YkdsdGFYUTlJakV3SWlCd2IybHVkR1Z5TFdWMlpXNTBjejBpYm05dVpTSXZQanh3WVhSb0lHUTlJazBnTXpBd0lERXhNQ0JNSURNMU1DQXhNVEFnVENBek5UQWdNakV3SUV3Z01qY3dJREl4TUNCTUlESTNNQ0F4TkRBZ1dpSWdabWxzYkQwaUkyWm1abVptWmlJZ2MzUnliMnRsUFNJak1EQXdNREF3SWlCemRISnZhMlV0YldsMFpYSnNhVzFwZEQwaU1UQWlJSEJ2YVc1MFpYSXRaWFpsYm5SelBTSnViMjVsSWk4K1BISmxZM1FnZUQwaU16Y3dJaUI1UFNJek9EQWlJSGRwWkhSb1BTSXhNakFpSUdobGFXZG9kRDBpTmpBaUlHWnBiR3c5SWlObVptWm1abVlpSUhOMGNtOXJaVDBpSXpBd01EQXdNQ0lnY0c5cGJuUmxjaTFsZG1WdWRITTlJbTV2Ym1VaUx6NDhjR0YwYUNCa1BTSk5JRE00TWlBek9EQWdUQ0F6T0RJZ05EUXdJRTBnTkRjNElETTRNQ0JNSURRM09DQTBOREFpSUdacGJHdzlJbTV2Ym1VaUlITjBjbTlyWlQwaUl6QXdNREF3TUNJZ2MzUnliMnRsTFcxcGRHVnliR2x0YVhROUlqRXdJaUJ3YjJsdWRHVnlMV1YyWlc1MGN6MGlibTl1WlNJdlBqeHdZWFJvSUdROUlrMGdNQ0E1TUNCTUlERXlNQ0E1TUNCTUlERXlNQ0F4TkRBZ1RDQTRNQ0F4TkRBZ1RDQTJNQ0F4TnpBZ1RDQTJNQ0F4TkRBZ1RDQXdJREUwTUNCYUlpQm1hV3hzUFNJalptWm1abVptSWlCemRISnZhMlU5SWlNd01EQXdNREFpSUhOMGNtOXJaUzF0YVhSbGNteHBiV2wwUFNJeE1DSWdjRzlwYm5SbGNpMWxkbVZ1ZEhNOUltNXZibVVpTHo0OGNHRjBhQ0JrUFNKTklERXlOU0EyTWpBZ1RDQXhNalVnTkRFMUlFd2dNVFF3SURReE5TQk1JREUwTUNBeU5UWXVNemNpSUdacGJHdzlJbTV2Ym1VaUlITjBjbTlyWlQwaUl6QXdNREF3TUNJZ2MzUnliMnRsTFcxcGRHVnliR2x0YVhROUlqRXdJaUJ3YjJsdWRHVnlMV1YyWlc1MGN6MGlibTl1WlNJdlBqeHdZWFJvSUdROUlrMGdNVFF3SURJMU1TNHhNaUJNSURFME15NDFJREkxT0M0eE1pQk1JREUwTUNBeU5UWXVNemNnVENBeE16WXVOU0F5TlRndU1USWdXaUlnWm1sc2JEMGlJekF3TURBd01DSWdjM1J5YjJ0bFBTSWpNREF3TURBd0lpQnpkSEp2YTJVdGJXbDBaWEpzYVcxcGREMGlNVEFpSUhCdmFXNTBaWEl0WlhabGJuUnpQU0p1YjI1bElpOCtQSEJoZEdnZ1pEMGlUU0F4TVRBZ05UZ3dJRkVnTVRjd0lEVTRNQ0F4TnpBZ05qSXdJRkVnTVRjd0lEWTJNQ0F4TVRBZ05qWXdJRkVnTVRRd0lEWXlNQ0F4TVRBZ05UZ3dJRm9pSUdacGJHdzlJaU5tWm1abVptWWlJSE4wY205clpUMGlJekF3TURBd01DSWdjM1J5YjJ0bExXMXBkR1Z5YkdsdGFYUTlJakV3SWlCd2IybHVkR1Z5TFdWMlpXNTBjejBpYm05dVpTSXZQanhuSUhSeVlXNXpabTl5YlQwaWRISmhibk5zWVhSbEtEa3hMalVzTVRNdU5Ta2lQanh6ZDJsMFkyZytQR1p2Y21WcFoyNVBZbXBsWTNRZ2MzUjViR1U5SW05MlpYSm1iRzkzT25acGMybGliR1U3SWlCd2IybHVkR1Z5TFdWMlpXNTBjejBpWVd4c0lpQjNhV1IwYUQwaU16WWlJR2hsYVdkb2REMGlNVElpSUhKbGNYVnBjbVZrUm1WaGRIVnlaWE05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTDFSU0wxTldSekV4TDJabFlYUjFjbVVqUlhoMFpXNXphV0pwYkdsMGVTSStQR1JwZGlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRhSFJ0YkNJZ2MzUjViR1U5SW1ScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6c2dabTl1ZEMxemFYcGxPaUF4TW5CNE95Qm1iMjUwTFdaaGJXbHNlVG9nU0dWc2RtVjBhV05oT3lCamIyeHZjam9nY21kaUtEQXNJREFzSURBcE95QnNhVzVsTFdobGFXZG9kRG9nTVM0eU95QjJaWEowYVdOaGJDMWhiR2xuYmpvZ2RHOXdPeUIzYVdSMGFEb2dNelp3ZURzZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEc2diM1psY21ac2IzY3RkM0poY0RvZ2JtOXliV0ZzT3lCMFpYaDBMV0ZzYVdkdU9pQmpaVzUwWlhJN0lqNDhaR2wySUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaG9kRzFzSWlCemRIbHNaVDBpWkdsemNHeGhlVHBwYm14cGJtVXRZbXh2WTJzN2RHVjRkQzFoYkdsbmJqcHBibWhsY21sME8zUmxlSFF0WkdWamIzSmhkR2x2YmpwcGJtaGxjbWwwTzNkb2FYUmxMWE53WVdObE9tNXZjbTFoYkRzaVBqRXhNVEV4TVR3dlpHbDJQand2WkdsMlBqd3ZabTl5WldsbmJrOWlhbVZqZEQ0OGRHVjRkQ0I0UFNJeE9DSWdlVDBpTVRJaUlHWnBiR3c5SWlNd01EQXdNREFpSUhSbGVIUXRZVzVqYUc5eVBTSnRhV1JrYkdVaUlHWnZiblF0YzJsNlpUMGlNVEp3ZUNJZ1ptOXVkQzFtWVcxcGJIazlJa2hsYkhabGRHbGpZU0krTVRFeE1URXhQQzkwWlhoMFBqd3ZjM2RwZEdOb1Bqd3ZaejQ4Y0dGMGFDQmtQU0pOSURReU1DQTJOVEFnVENBME5EUWdOVGt3SUV3Z05UUXdJRFU1TUNCTUlEVXhOaUEyTlRBZ1dpSWdabWxzYkQwaUkyWm1abVptWmlJZ2MzUnliMnRsUFNJak1EQXdNREF3SWlCemRISnZhMlV0YldsMFpYSnNhVzFwZEQwaU1UQWlJSEJ2YVc1MFpYSXRaWFpsYm5SelBTSnViMjVsSWk4K1BHVnNiR2x3YzJVZ1kzZzlJalF6TUNJZ1kzazlJalF3SWlCeWVEMGlOakFpSUhKNVBTSTBNQ0lnWm1sc2JEMGlJMlptWm1abVppSWdjM1J5YjJ0bFBTSWpNREF3TURBd0lpQndiMmx1ZEdWeUxXVjJaVzUwY3owaWJtOXVaU0l2UGp3dlp6NDhMM04yWno0PQ==","updateTime":1629285847314,"uuid":"42a9dc40-96ba-4d16-86dd-8563326a2242"} Application Cache Error event: Manifest fetch failed (404) errorLoadingFile=加载文件出错 =========================部署==================================== 中没有主清单属性 java -jar huajun-drawio-3.0.0-2108191615.jar java -jar huajun-drawio-1.0.jar spring boot gradle jar HuajunDrawioApplication com.mxgraph.server.HuajunDrawioApplication.main Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 1 more https://stackoverflow.com/questions/58810438/gradle-spring-boot-error-java-lang-classnotfoundexception-org-springframework https://stackoverflow.com/questions/58810438/gradle-spring-boot-error-java-lang-classnotfoundexception-org-springframework 部署 diagrams.net https://os.51cto.com/art/202004/615447.htm https://github.com/tobyqin/drawio-local https://gitee.com/twobear/drawio-webapp https://www.lefer.cn/posts/16902/ https://blog.csdn.net/mathcoder23/article/details/118763696 https://blog.csdn.net/mathcoder23/article/details/118763696 部署重要 托管静态Html到OSS 1.由于html的静态化,我们需要先修改静态代码指向的Drawio私有云后端服务地址 编辑html/admin/config.js 将window.baseUrl = '/api'更改为后端地址,http://ip:8080/api这里的ip是公网ip,注意后面不要加斜杠 这里的http://ip:8080/api也可以改为//ip:8080/api,跟随前端协议变化而变化,但是需要自行配置https https://github.com/othorizon/drawio-webdav https://github.com/jgraph/drawio https://gitee.com/twobear/projects npm install npm run dev http://localhost:8086/admin/login.html http://localhost:8086/index.html http://localhost:8086/js/diagramly/Init.js http://localhost:8086/index.html?ownerId=publicUser&uuid=52a9dc40-96ba-4d16-86dd-8563326a224b#LNewDrawioFile.xml 后台api地址 http://localhost:8083 http://localhost:8083/index-dev.html https://blog.csdn.net/fm0517/article/details/117560735 https://blog.csdn.net/qq_36202485/article/details/103406256 https://www.codenong.com/cs106012044/ https://www.bilibili.com/read/cv6514509 https://www.cxyzjd.com/article/FesonX/103344938 http://devhost.jgraph.com/drawio/src/main/webapp/js/diagramly/Init.js http://localhost:8083/js/diagramly/Init.js http://devhost.jgraph.com/mxgraph2/javascript/examples/grapheditor/www/js/Init.js http://localhost:8083/js/mxgraph/Init.js http://devhost.jgraph.com/mxgraph2/javascript/src/js/mxClient.js http://devhost.jgraph.com/drawio/src/main/webapp/js/diagramly/Devel.js http://localhost:8083/js/diagramly/Devel.js ======================================================================================== http://localhost:8086/index.html?ownerId=publicUser&uuid=52a9dc40-96ba-4d16-86dd-8563326a224b#LNewDrawioFile.xml huajun-drawio