Cat.Web/Cat.Admin.Web/wwwroot/wf/wfcore/GooFlow.export.js

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*
 * 专门负责导出流程图文件并让用户下载的扩展包方法,需要依赖:
 * ../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="'+width+'" height="'+height+'">'
                +'<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";  //设定下载名称
后面还有 41 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。