• vue 封装原型方法 加 promist .then


    核心代码如下

    /**
     * 2019年5月11日 10:54:32 
     * @xieyishang
     * 封装生成海报js
     */
    
    /**
     * A 海报地址
     * B 是头像二维码地址
     * 第三个参 插入的id节点
     * 
     * 用了pormist 还可以用 .then
     */
    const drawAndShareImage =  (imgA,imgB,dom)=>{//封装生成海报方法~
    
        return new Promise((resolve,reject)=>{
    
                var canvas = document.createElement("canvas");
                canvas.width = 1304;
                canvas.height = 2316;
                var context = canvas.getContext("2d");
                context.rect(0 , 0 , canvas.width , canvas.height);
                context.fillStyle = "#fff";
                context.fill();
                var imageA = new Image();
                imageA.crossOrigin = 'Anonymous';
                imageA.src = imgA;
                imageA.onload = function(){
                    context.drawImage(imageA , 0 , 0 , 1306 , 2316);
                    var imageB = new Image();
                    imageB.crossOrigin = 'Anonymous';
                    imageB.src = imgB;
                    imageB.onload = function(){
                        context.drawImage(imageB , 10 , 2060 , 240 , 240);
                        //var base64 = canvas.toDataURL("image/png");
                        var base64 = canvas.toDataURL("image/jpeg");
                        var img = document.getElementById(dom);
                        // console.log('Hello');
                        img.setAttribute('src' , base64);
            
                        console.log("加载完了~");
    
                        if (dom!=null) {
                            resolve(true);
                        }else {
                            reject(false);
                        }
                    
            
                    }
                }
    
        });
    
    }
     
    export { drawAndShareImage }

    main.js引入

    import {drawAndShareImage } from '@/utils/canvascode';//生成海报方法
    Vue.prototype.$Canvas = drawAndShareImage;//放在原型里面~

    调用

    this.$Canvas(this.shareBannerSRC,this.codeSRC,"shareBoximg").then(val=>{
    console.log("val",val);
    this.shareBox = true;
    this.shareWait = false;
    Toast.clear();
    });
  • 相关阅读:
    telerik:RadGrid 在表格中编辑更新数据
    给已存在的表添加一个新字段
    Microsoft.Office.Interop.Excel 导出Excel
    反射导出 Excel
    aspx页面中获取当前浏览器url
    图片切换效果
    .net错误处理机制(转)
    javascript:void(0)知多少
    30款jQuery常用网页焦点图banner图片切换 下载 (转)
    Html.RenderPartial与Html.RenderAction区别(转)
  • 原文地址:https://www.cnblogs.com/shaozhu520/p/10848627.html
Copyright © 2020-2023  润新知