| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- /*
 
-  * 专门负责导出流程图文件并让用户下载的扩展包方法,需要依赖:
 
-  * ../plugin/promise.min.js
 
-  * ../plugin/html2canvas.min.js
 
-  * ../plugin/canvg.js (当必须在IE11及以下版本的IE浏览器上运行时)
 
-  */
 
- GooFlow.prototype.exportDiagram = function (fileName) {
 
-     // 0.添加临时元素
 
- 	var width = this.$workArea.width();
 
- 	var height = this.$workArea.height();
 
-     $('body').append('<div id="demo_export" style="position:absolute;top:0;left:0;z-index:-1;width:0px;height:0px;overflow:hidden">' +
 
-         '<div style="color:#15428B;position:absolute;left:0;right:0;width:' + width + 'px;height:' + height + 'px;overflow:hidden;float:none;" class="GooFlow GooFlow_work"></div>' +
 
-         '</div>');
 
-     // 1.先COPY节点和区块的内容
 
-     var inner = $('#demo').find('.GooFlow_work_inner');
 
-     var divCanvas = $('#demo_export').children('div:eq(0)');
 
-     // 复制节点的内容
 
-     inner.children('div').each(function (i) {
 
-         var item = $(this);
 
-         if (item.hasClass('GooFlow_item')) {
 
-             item.clone().removeAttr('id').css('position', 'absolute').appendTo(divCanvas);
 
-         } else if (item.hasClass('GooFlow_work_group')) {
 
-             item.clone().removeAttr('id').css('position', 'absolute')
 
-                 .attr('xmlns', 'http://www.w3.org/1999/xhtml').appendTo(divCanvas);
 
-         }
 
-     });
 
-     html2canvas(divCanvas[0], {
 
-         allowTaint: false,
 
-         taintTest: false,
 
-         onrendered: function (canvas) {
 
-             // 2.在回调方法中,COPY连线内容
 
-             // 造出临时的IMAGE
 
-             var context = canvas.getContext('2d');// 取得画布的2d绘图上下文
 
-             context.save();
 
-             var strSvg = '<svg xmlns="http://www.w3.org/2000/svg" width="1160" height="507">' +
 
-                 '<defs><style type="text/css">text{font-size:14px;line-height:1.42857143;' +
 
-                 'font-family:"Microsoft Yahei", "Helvetica Neue", Helvetica, Hiragino Sans GB, WenQuanYi Micro Hei, Arial, sans-serif;' +
 
-                 '}</style></defs>' + window.$('<svg>').append(window.$('#draw_demo').clone()).html() + '</svg>'; // COPY连线内容
 
-             var image = null;
 
-             if (!!window.ActiveXObject || 'ActiveXObject' in window) { // 当为IE11及以下版本浏览器时,使用Canvg第三方工具
 
-                 image = document.createElement('canvas');
 
-                 canvg(image, strSvg);
 
-             } else {
 
-                 var image = new Image();
 
-                 image.src = 'data:image/svg+xml,' + encodeURIComponent(strSvg);
 
-             }
 
-             var tempFunc = function () {
 
-                 context.drawImage(image, 0, 0);
 
-                 // 清除不需要的临时DOM
 
-                 $('#demo_export').empty().remove();
 
-                 try {
 
-                     var blob = canvas.msToBlob();
 
-                     // alert("blob2");
 
-                     navigator.msSaveBlob(blob, 'prettyImage.png');
 
-                 } catch (e) {
 
-                     // 生成一个下载链接并点击
 
-                     var a = document.createElementNS('http://www.w3.org/1999/xhtml', 'a')
 
-                     a.href = canvas.toDataURL('image/png'); // 将画布内的信息导出为png图片数据
 
-                     a.download = fileName + '.png'; // 设定下载名称
 
-                     document.body.appendChild(a);
 
-                     a.click(); // 点击触发下载
 
-                     document.body.removeChild(a);
 
-                 }
 
-             }
 
-             if (image.complete || (!!window.ActiveXObject || 'ActiveXObject' in window)) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
 
-                 // console.log("image.complete|| IE11");
 
-                 tempFunc();
 
-                 return;// 直接返回,不用再处理onload事件
 
-             }
 
-             image.onload = function () {
 
-                 // console.log("image.onload");
 
-                 tempFunc();
 
-             };
 
-         },
 
-         width: width,
 
-         height: height
 
-     });
 
- }
 
 
  |