dreamzhh

思路:在js中引入生成海报插件,配置posterConfig常量,点击生成海报触发生成海报事件onCreateOtherPoster,海报生成成功后将图片赋值给弹框图片,使海报以弹框形式显示。

中引入生成海报插件,配置posterConfig常量,点击生成海报触发生成海报事件onCreateOtherPoster,海报生成成功后将图片赋值给弹框图片,使海报以弹框形式显示。

步骤:

1、 引入生成海报插件,配置相关数据

 

 

 

2、 点击分享按钮触发toggleAction事件,showàtrue显示底部列表

 

 

//上拉菜单 选项列表 切换显示/隐藏

  toggle(type) {

    this.setData({

      [type]: !this.data[type]

    });

  },

  toggleAction() {

    this.toggle(\'show\');

  },

  //关闭上拉菜单

  onCloseActionSheet() {

    this.setData({

      show: false

    });

  },

  //点击 上拉菜单

  onSelectActionSheet: function(e) {

    var that = this;

    //如果选择了发送给朋友

    if (e.detail.name == "发送给朋友") {

        that.onCloseActionSheet();

    }

    if (e.detail.name == "生成海报") {

      //关闭 上拉列表

      that.onCloseActionSheet();

      //调用生成海报的事件

      that.onCreateOtherPoster();

    }

  },

3、点击生成海报,  onSelectActionSheet判断后触发生成海报事件,重新为海报赋值

 

 

 

 

//生成海报

  onCreateOtherPoster() {

    console.log("生成海报事件")

   //显示 生成中...弹窗提示

    wx.showLoading({

      title: \'生成中...\',

    })

    this.setData({

      posterConfig: posterConfig.jdConfig

    }, () => {

      Poster.create(true); // 入参:true为抹掉重新生成

    });

    this.setData({

      \'posterConfig.images[1].url\': this.data.detail.imgs_url[0],  //重新赋值海报商品图片

      \'posterConfig.texts[2].text\': this.data.detail.goods_name, //重新赋值海报商品标题

      \'posterConfig.texts[3].text[1].text\': \'¥\'+this.data.goods_price  //重新赋值海报商品价格

    }, () => {

      Poster.create(true); // 入参:true为抹掉重新生成

    });

    console.log(this.data.posterConfig.images[1].url)

  }

4、海报生成成功,点击保存图片按钮,保存图片到本地

 

 

 

 

 

附件:海报配置文件代码

const posterConfig = {

  jdConfig: {

    width: 750,

    height: 1000,

    backgroundColor: \'#fff\',

    debug: false,

    preload: true,

    blocks: [{

        width: 690,

        height: 808,

        x: 30,

        y: 183,

        borderWidth: 2,

        borderColor: \'#f0c2a0\',

        borderRadius: 20,

      },

      {

        width: 634,

        height: 74,

        x: 59,

        y: 770,

        backgroundColor: \'#fff\',

        opacity: 0.5,

        zIndex: 100,

      },

    ],

    texts: [{

        x: 113,

        y: 61,

        baseLine: \'middle\',

        text: \'潮汕玛人店\',

        fontSize: 32,

        color: \'#8d8d8d\',

      },

      {

        x: 30,

        y: 113,

        baseLine: \'top\',

        text: \'发现一个好物,推荐给你呀\',

        fontSize: 38,

        color: \'#080808\',

      },

      {

        x: 92,

        y: 810,

        fontSize: 38,

        baseLine: \'middle\',

        text: \'标题\',

        width: 570,

        lineNum: 1,

        color: \'#222\',

        zIndex: 200,

      },

      {

        x: 78,

        y: 895,

        baseLine: \'middle\',

        text: [{

            text: \'\',

            fontSize: 28,

            color: \'#ec1731\',

          },

          {

            text: \'¥99\',

            fontSize: 36,

            color: \'#ec1731\',

            marginLeft: 30,

          }

        ]

      },

      {

        x: 522,

        y: 895,

        baseLine: \'middle\',

        text: \'\',

        fontSize: 28,

        color: \'#929292\',

      },

      {

        x: 106,

        y: 945,

        baseLine: \'middle\',

        text: [{

            text: \'商家发货&售后\',

            fontSize: 28,

            color: \'#929292\',

          },

          {

            text: \'七天退货\',

            fontSize: 28,

            color: \'#929292\',

            marginLeft: 50,

          },

          {

            text: \'运费险\',

            fontSize: 28,

            color: \'#929292\',

            marginLeft: 50,

          },

        ]

      },

      {

        x: 360,

        y: 1065,

        baseLine: \'top\',

        text: \'长按识别小程序码\',

        fontSize: 38,

        color: \'#080808\',

      },

      {

        x: 360,

        y: 1123,

        baseLine: \'top\',

        text: \'超值好货\',

        fontSize: 28,

        color: \'#929292\',

      },

    ],

    images: [{

        width: 62,

        height: 62,

        x: 30,

        y: 30,

        borderRadius: 62,

        url: \'/assets/img/logo1.jpg\', //店铺图片

      },

      {

        width: 645,

        height: 645,

        x: 59,

        y: 210,

        url: \'https://cdn-job1.phpyd.com/uploads/20190329/58f2f95a9ba484eb9ac85d1fe5ff6cc5.jpg\', //海报图

      },

      {

        width: 220,

        height: 220,

        x: 92,

        y: 1020,

        url: \'https://cdn-job1.phpyd.com/uploads/20190403/fd1ab815e67a0ed0ccf22d13829a2b6d.jpg\', //二维码

      }

      // ,

      // {

      //   width: 750,

      //   height: 90,

      //   x: 0,

      //   y: 1244,

      //   url: \'/assets/img/share_bottom.png\', //底部图片

      // }

    ]

 

  },

  demoConfig: {

    width: 750,

    height: 1000,

    backgroundColor: \'#fff\',

    debug: false,

    blocks: [{

      x: 0,

      y: 10,

      width: 750, // 如果内部有文字,由文字宽度和内边距决定

      height: 120,

      paddingLeft: 0,

      paddingRight: 0,

      borderWidth: 10,

      borderColor: \'red\',

      backgroundColor: \'blue\',

      borderRadius: 40,

      text: {

        text: [{

            text: \'金额¥ 1.00\',

            fontSize: 80,

            color: \'yellow\',

            opacity: 1,

            marginLeft: 50,

            marginRight: 10,

          },

          {

            text: \'金额¥ 1.00\',

            fontSize: 20,

            color: \'yellow\',

            opacity: 1,

            marginLeft: 10,

            textDecoration: \'line-through\',

          },

        ],

        baseLine: \'middle\',

      },

    }],

    texts: [{

        x: 0,

        y: 180,

        text: [{

            text: \'长标题长标题长标题长标题长标题长标题长标题长标题长标题\',

            fontSize: 40,

            color: \'red\',

            opacity: 1,

            marginLeft: 0,

            marginRight: 10,

            width: 200,

            lineHeight: 40,

            lineNum: 2,

          },

          {

            text: \'原价¥ 1.00\',

            fontSize: 40,

            color: \'blue\',

            opacity: 1,

            marginLeft: 10,

            textDecoration: \'line-through\',

          },

        ],

        baseLine: \'middle\',

      },

      {

        x: 10,

        y: 330,

        text: \'金额¥ 1.00\',

        fontSize: 80,

        color: \'blue\',

        opacity: 1,

        baseLine: \'middle\',

        textDecoration: \'line-through\',

      },

    ],

    images: [{

        url: \'https://lc-I0j7ktVK.cn-n1.lcfile.com/02bb99132352b5b5dcea.jpg\',

        width: 300,

        height: 300,

        y: 450,

        x: 0,

        // borderRadius: 150,

        // borderWidth: 10,

        // borderColor: \'red\',

      },

      {

        url: \'https://lc-I0j7ktVK.cn-n1.lcfile.com/02bb99132352b5b5dcea.jpg\',

        width: 100,

        height: 100,

        y: 450,

        x: 400,

        borderRadius: 100,

        borderWidth: 10,

      },

    ],

    lines: [{

      startY: 800,

      startX: 10,

      endX: 300,

      endY: 800,

      width: 5,

      color: \'red\',

    }]

 

  }

}

 Git源代码:https://gitee.com/DreamZHH/share_poster.git

分类:

技术点:

相关文章:

  • 2021-12-19
  • 2021-12-19
  • 2021-12-19
  • 2021-12-19
  • 2021-11-28
猜你喜欢
  • 2022-01-23
  • 2021-12-19
  • 2021-12-28
  • 2021-12-19
  • 2021-11-15
  • 2021-12-21
相关资源
相似解决方案