首页 > 其他分享 >前端Vue一款基于canvas的精美商品海报生成组件 根据个性化数据生成商品海报图 长按保存图片

前端Vue一款基于canvas的精美商品海报生成组件 根据个性化数据生成商品海报图 长按保存图片

时间:2023-07-05 09:33:06浏览次数:53  
标签:海报 Vue 生成 商品 https uni com

前端Vue一款基于canvas的精美商品海报生成组件 根据个性化数据生成商品海报图 长按保存图片,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13326

效果图如下:

cc-beautyPoster

使用方法


<!-- posterData: 海报数据 -->

<cc-beautyPoster :posterData="posterData"></cc-beautyPoster>

<!-- 海报数据字段 -->

posterData: {

// 用户姓名

name: '小明',

// 用户头像

logo: 'https://cdn.pixabay.com/photo/2014/02/17/10/20/statue-of-liberty-267948_1280.jpg',

// 商品名称

title: '精美时尚苹果手机一部',

// 商品价格

money: '5200.90',

// 商品图片

img: 'https://cdn.pixabay.com/photo/2014/08/05/10/27/iphone-410311_1280.jpg',

// 商品链接

url: 'https://www.apple.com.cn/iphone/'

},

HTML代码实现部分


<template>

<view class="content">

<button style="margin-top: 38px;" @click="openPoster">生成商品海报</button>

<!-- 海报弹框 -->

<uni-popup ref="popup" type="center">

<view class="center_poter" style="margin: 0 auto;" v-if="shows">

<!-- #ifndef MP -->

<image class="close_btn" src="/static/images/goods/close.png" @click="hidePoster">

</image>

<!-- #endif -->

<!-- #ifdef MP -->

<cover-image class="close_btn" src="/static/images/goods/close.png" @click="hidePoster">

</cover-image>

<!-- #endif -->

<!-- posterData: 海报数据 -->

<cc-beautyPoster :posterData="posterData"></cc-beautyPoster>

</view>

</uni-popup>

</view>

</template>

<script>

import uniPopup from '@/components/uni-popup/uni-popup.vue'

export default {

components: {

uniPopup

},

data() {

return {

shows: false,

posterData: {

// 用户姓名

name: '小明',

// 用户头像

logo: 'https://cdn.pixabay.com/photo/2014/02/17/10/20/statue-of-liberty-267948_1280.jpg',

// 商品名称

title: '精美时尚苹果手机一部',

// 商品价格

money: '5200.90',

// 商品图片

img: 'https://cdn.pixabay.com/photo/2014/08/05/10/27/iphone-410311_1280.jpg',

// 商品链接

url: 'https://www.apple.com.cn/iphone/'

},

}

},

methods: {

//生成海报

openPoster() {

this.shows = false

uni.showLoading({

title: '海报绘制中..'

})

this.$refs.popup.open()

setTimeout(() => {

uni.hideLoading()

this.shows = true

}, 400)

},

//关闭海报

hidePoster() {

this.$refs.popup.close()

},

}

}

</script>

<style lang="scss" scoped>

.content {

display: flex;

flex-direction: column;

}

.center_poter {

position: relative;

z-index: 999;

.close_btn {

width: 40upx;

height: 40upx;

background-color: rgba($color: #000000, $alpha: .3);

position: absolute;

top: 5upx;

right: 5upx;

z-index: 500;

padding: 5upx;

border-radius: 6upx;

z-index: 999;

text-align: center;

}

}

</style>

标签:海报,Vue,生成,商品,https,uni,com
From: https://www.cnblogs.com/ccVue/p/17527663.html

相关文章

  • vue2-样式冲突-使用deep修改子组件中的样式
    /deep/样式穿透<template><divclass="left-container"><h3>Left组件</h3><my-count:init="9"></my-count></div></template><script>exportdefault{}</scrip......
  • 从零搭建SpringBoot3一,手动编写一套属于自己风格的代码生成器一键生成系统
    简介虽然java的代码生成工具有很多,可是很多时候不是自己喜欢的风格,改起来比较困难,所以我准备从零和大家一起搭建一套基于springboot3.0的框架,这次就先搞定一套代码生成功能,后续再不断的完善其它我们使用到的三方库:beelt模版引擎,用于生成代码。官网:http://ibeetl.com......
  • vuE初探[230704]
    vue语法初探课前须知知识储备:html、JavaScript、css(node、npm、webpack)课程介绍进阶式:基础:生命周期函数条件循环渲染指令、页面样式修饰语法···组件:全局&局部、数据传递、插槽基础···动画:单组件元素、列表&状态动画、CSS和JS动画···高级扩展语法:Mixin混入、V......
  • Vue02
    1.Vue计算属性和watch监听1.1.计算属性<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><!--引入vue.js--><scriptsrc="node_modules/vue/dist/vue......
  • vue项目中锚点定位bug无效和替代方式
    在vue项目中,使用锚点定位会和router的规则冲突,在项目中的表现就是第一次点击url改变了,但是没有跳转到锚点位置,再次点击才会跳转。所以在vue项目中定义一个方法不适用锚点定位:scrollToSection(id){letsection=document.getElementById(id)if(section){......
  • 解决vue 不是内部或外部命令
    1.输入命令找到npm的配置路径npmconfiglist2.查看此路径下有没有vue.cmd3.如果有vue.cmd,将当前路径复制添加到path环境变量步骤:桌面右击“我的电脑”-属性-高级系统设置-环境变量环境变量两种添加方式:①直接新建-规范取一个变量名-将vue.cmd所在路径复制到变量值......
  • 1043_二叉树的生成和遍历(循环方式)
    1、遍历方法前序遍历(preOrder)对每个节点(子树)、贯彻这个遍历顺序:根->左->右中序遍历(inOrder)左->根->右后序遍历(postOrder)左->右->根层序遍历一层一层、从左到右遍历参考资料:二叉树各种遍历方法递归和循环实现树的层次遍历的几种方法......
  • Vue内置缓存组件keep-alive
    <el-tab-panelabel="周边配套":disabled=!gardenIdname="five"><keep-alive><Surrour:gardenId="gardenId"v-if="activeName==='five'"/></keep-alive>......
  • java、vue基于hutool的aes指定秘钥加密(前后端aes加解密)
     后端代码//加密data对称AESKeybyte[]key=getBytes("._^BV67nW6ck8fwg",16);//秘钥长度最好是16位SymmetricCryptoaes=newSymmetricCrypto(SymmetricAlgorithm.AES,key);Stringjsondata=aes.encryptHex("中国test");System.out.println(jsondata);//......
  • vue 基于 CountUp.js,可用于创建显示数字数据的动画。
    地址:https://github.com/xlsdg/vue-countup-v2Installation$npminstall--savecountup.jsvue-countup-v2Usage<template><divclass="iCountUp"><ICountUp:delay="delay":endVal="endVal"......