<template>
<view class="goodsposter">
<view class="goodsposter_cen">
<view class="goodsposter_cen_t">
<canvas canvasId="goodsci" id="goodsci" type="2d" @error="canvasIdErrorCallback"></canvas>
</view>
<view class="goodsposter_cen_b">
<view class="goodsposter_cen_b_i" @click="onDownloadPoster">
下载海报
</view>
<view class="goodsposter_cen_b_i">
分享海报
</view>
</view>
</view>
</view>
</template>
<script setup>
import { onMounted, ref, reactive, defineProps, getCurrentInstance, nextTick } from 'vue'
const {proxy} = getCurrentInstance()
const props = defineProps({
info: {
type: Object
}
})
onMounted(()=>{
let ctx = uni.createCanvasContext("goodsci",proxy)
console.log("这是canvas",ctx)
ctx.setFillStyle('red')
ctx.fillRect(10, 10, 150, 75)
ctx.draw()
})
const onDownloadPoster=()=>{
}
const canvasIdErrorCallback=(e)=>{
console.error(e.detail.errMsg)
}
</script>
<style scoped lang="scss">
.goodsposter {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 100;
&_cen {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 80%;
background-color: #fff;
border-radius: 10rpx;
&_t {
padding: 20rpx;
text-align: center;
// canvas {
// width: 100%;
// height: auto;
// }
}
&_b {
display: flex;
justify-content: space-around;
padding: 20rpx;
&_i {
flex-grow: 1;
text-align: center;
color: $text-act-color;
}
}
}
}
</style>
1 个回复
DCloud_UNI_yuhe
uni 上的方法在微信上就是使用对应的微信方法,如果有问题请参照这个解决方法