demo_export.html 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>流程图-导出图片</title>
  6. <!--[if lt IE 9]>
  7. <?import namespace="v" implementation="#default#VML" ?>
  8. <![endif]-->
  9. <link rel="stylesheet" type="text/css" href="../codebase/GooFlow.css"/>
  10. <script type="text/javascript" src="data2.js"></script>
  11. <script type="text/javascript" src="../plugin/jquery.min.js"></script>
  12. <script type="text/javascript" src="../codebase/GooFunc.js"></script>
  13. <script type="text/javascript" src="../plugin/json2.js"></script>
  14. <link rel="stylesheet" type="text/css" href="default.css"/>
  15. <script type="text/javascript" src="../codebase/GooFlow.js"></script>
  16. <script type="text/javascript" src="../codebase/GooFlow.color.js"></script>
  17. <script type="text/javascript" src="../plugin/promise.min.js"></script>
  18. <script type="text/javascript" src="../plugin/html2canvas.min.js"></script>
  19. <!--[if lte IE 11]-->
  20. <script type="text/javascript" src="../plugin/canvg.js"></script>
  21. <!--[endif]-->
  22. <script type="text/javascript" src="../codebase/GooFlow.export.js"></script>
  23. <script type="text/javascript">
  24. var property={
  25. width:1200,
  26. height:540,
  27. toolBtns:["start round mix","end round","task","node","chat","state","plug","join","fork","complex mix"],
  28. haveHead:true,
  29. headLabel:true,
  30. headBtns:["new","open","save","undo","redo","reload","print"],//如果haveHead=true,则定义HEAD区的按钮
  31. haveTool:true,
  32. haveGroup:true,
  33. useOperStack:true
  34. };
  35. var remark={
  36. cursor:"选择指针",
  37. direct:"结点连线",
  38. start:"入口结点",
  39. "end":"结束结点",
  40. "task":"任务结点",
  41. node:"自动结点",
  42. chat:"决策结点",
  43. state:"状态结点",
  44. plug:"附加插件",
  45. fork:"分支结点",
  46. "join":"联合结点",
  47. "complex":"复合结点",
  48. group:"组织划分框编辑开关"
  49. };
  50. var demo;
  51. $(function(){
  52. demo=$.createGooFlow($("#demo"),property);
  53. demo.setNodeRemarks(remark);
  54. demo.loadData(jsondata);
  55. //以下是测试导出图片功能
  56. // demo.onPrintClick=function(){
  57. // //0.添加临时元素
  58. // $("body").append('<div id="demo_export" style="position:absolute;top:0;left:0;z-index:-1;width:0px;height:0px;overflow:hidden">'
  59. // +'<div style="color:#15428B;position:absolute;left:0;right:0;width:1160px;height:507px;overflow:hidden;float:none;" class="GooFlow GooFlow_work"></div>'
  60. // +'</div>');
  61. //
  62. // //1.先COPY节点和区块的内容
  63. // var inner = $("#demo").find(".GooFlow_work_inner");
  64. // var divCanvas = $("#demo_export").children("div:eq(0)");
  65. // //复制节点的内容
  66. // inner.children("div").each(function(i){
  67. // var item=$(this);
  68. // if(item.hasClass("GooFlow_item")){
  69. // item.clone().removeAttr("id").css("position","absolute").appendTo(divCanvas);
  70. // }else if(item.hasClass("GooFlow_work_group")){
  71. // item.clone().removeAttr("id").css("position","absolute")
  72. // .attr("xmlns",'http://www.w3.org/1999/xhtml').appendTo(divCanvas);
  73. // }
  74. // });
  75. // html2canvas(divCanvas[0], {
  76. // allowTaint: false, taintTest: false,
  77. // onrendered: function(canvas) {
  78. // //2.在回调方法中,COPY连线内容
  79. // //造出临时的IMAGE
  80. // var context = canvas.getContext('2d');//取得画布的2d绘图上下文
  81. // context.save();
  82. // var strSvg = '<svg xmlns="http://www.w3.org/2000/svg" width="1160" height="507">'
  83. // +'<defs><style type="text/css">text{font-size:14px;line-height:1.42857143;'
  84. // +'font-family:"Microsoft Yahei", "Helvetica Neue", Helvetica, Hiragino Sans GB, WenQuanYi Micro Hei, Arial, sans-serif;'
  85. // +'}</style></defs>' + window.$("<svg>").append(window.$("#draw_demo").clone()).html() +'</svg>'; //COPY连线内容
  86. // var image = null;
  87. // if(!!window.ActiveXObject || "ActiveXObject" in window){//当为IE11及以下版本浏览器时,使用Canvg第三方工具
  88. // image = document.createElement('canvas');
  89. // canvg(image, strSvg);
  90. // }else{
  91. // var image = new Image();
  92. // image.src='data:image/svg+xml,'+ encodeURIComponent(strSvg);
  93. // }
  94. // var tempFunc=function(){
  95. // context.drawImage(image, 0, 0);
  96. // //清除不需要的临时DOM
  97. // $("#demo_export").empty().remove();
  98. // try{
  99. // var blob = canvas.msToBlob();
  100. // //alert("blob2");
  101. // navigator.msSaveBlob(blob, "prettyImage.png");
  102. // }
  103. // catch(e){
  104. // //生成一个下载链接并点击
  105. // var a = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
  106. // a.href = canvas.toDataURL('image/png'); //将画布内的信息导出为png图片数据
  107. // a.download = "prettyImage.png"; //设定下载名称
  108. // document.body.appendChild(a);
  109. // a.click(); //点击触发下载
  110. // document.body.removeChild(a);
  111. // }
  112. // }
  113. //
  114. // if(image.complete|| (!!window.ActiveXObject || "ActiveXObject" in window)) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
  115. // console.log("aaa");
  116. // tempFunc();
  117. // return;// 直接返回,不用再处理onload事件
  118. // }
  119. // image.onload=function(){
  120. // console.log("ccc");
  121. // tempFunc();
  122. // };
  123. // },
  124. // width: 1160,
  125. // height: 507
  126. // });
  127. // }
  128. demo.onPrintClick=function(){demo.exportDiagram("fuckyou");}
  129. //导出图片功能 END
  130. });
  131. </script>
  132. </head>
  133. <body>
  134. <div id="demo" style="margin:10px"></div>
  135. <!--demo.$workArea.width(),demo.$workArea.height(),-->
  136. <div id="fff"></div>
  137. </body>
  138. </html>