148 lines
5.1 KiB
Vue
148 lines
5.1 KiB
Vue
<template>
|
|
<view>
|
|
<l-painter
|
|
css="width: 640rpx; padding-bottom: 35rpx; background-color: #ffffff; box-shadow: 0 20rpx 58rpx rgba(0,0,0,.15);border-radius: 10rpx;"
|
|
isCanvasToTempFilePath @success="handleSuccess" @fail="handleFail" custom-style="position: fixed; left: 200%">
|
|
<l-painter-view css="padding-left: 40rpx;">
|
|
<l-painter-image :src="config.avatar"
|
|
css="margin-top: 15rpx; width: 72rpx; height: 72rpx; border-radius: 50%;" />
|
|
<l-painter-view css="margin-top: 30rpx; padding-left: 20rpx; display: inline-block">
|
|
<l-painter-text :text="`来自${config.nickname}的分享`"
|
|
css="display: block; padding-bottom: 10rpx; color: #333333; font-size: 28rpx;line-clamp:1;width: 100%;" />
|
|
</l-painter-view>
|
|
<l-painter-image :src="config.image"
|
|
css="object-fit: cover; object-position: center; width: 560rpx; height: 560rpx;margin-top: 15rpx;" />
|
|
|
|
<l-painter-view css="margin-top: 30rpx;">
|
|
<!-- 商品分享海报文字内容 -->
|
|
<l-painter-view :css="`display: ${type == '1' ? 'inline-block' : 'none'}; width: 400rpx;`">
|
|
<l-painter-view
|
|
:css="`vertical-align: bottom; color: #FF2C3C; font-size: 30rpx; line-height: 1em;`">
|
|
<l-painter-text text="¥" css="vertical-align: bottom;font-size: 28rpx;" />
|
|
<l-painter-text :text="price.prev" css="vertical-align: bottom; font-size: 38rpx;" />
|
|
<l-painter-text :text="price.next" css="vertical-align: bottom; font-size: 30rpx;" />
|
|
<l-painter-text :text="marketPrice"
|
|
css="vertical-align: bottom; padding-left: 10rpx;font-size: 28rpx; font-weight: normal; text-decoration: line-through; color: #999999" />
|
|
</l-painter-view>
|
|
<l-painter-view css="margin-top:30rpx;">
|
|
<l-painter-text
|
|
css="line-clamp: 2; color: #333333; line-height: 1.5em;font-size: 30rpx; width: 378rpx; padding-right:22rpx; box-sizing: border-box"
|
|
:text="config.name"></l-painter-text>
|
|
</l-painter-view>
|
|
</l-painter-view>
|
|
|
|
<!-- 砍价分享海报文字内容 -->
|
|
<l-painter-view :css="`display: ${type == '2' ? 'inline-block' : 'none'}; width: 400rpx;`">
|
|
<l-painter-view>
|
|
<l-painter-text
|
|
:css="`line-clamp: 2; color: #FF2C3C; line-height: 1.5em;font-size: 32rpx; width: 375rpx; padding-right:22rpx; box-sizing: border-box`"
|
|
text="我正在参与砍价 还差一步"></l-painter-text>
|
|
</l-painter-view>
|
|
<l-painter-view css="margin-top:8rpx;">
|
|
<l-painter-text
|
|
css="line-clamp: 2; color: #F95F2F; line-height: 1.5em;font-size: 24rpx; width: 378rpx; padding-right:22rpx; box-sizing: border-box"
|
|
text="帮忙砍一刀"></l-painter-text>
|
|
</l-painter-view>
|
|
<l-painter-view css="margin-top:8rpx;">
|
|
<l-painter-text
|
|
css="line-clamp: 2; color: #333333; line-height: 1.5em;font-size: 28rpx; width: 378rpx; padding-right:22rpx; box-sizing: border-box"
|
|
:text="config.name"></l-painter-text>
|
|
</l-painter-view>
|
|
</l-painter-view>
|
|
|
|
<l-painter-view css="display: inline-block;">
|
|
<!-- #ifdef H5 || APP-PLUS -->
|
|
<l-painter-qrcode css="width: 168rpx; height: 168rpx;" :text="link">
|
|
</l-painter-qrcode>
|
|
<!-- #endif -->
|
|
<!-- #ifdef MP -->
|
|
<l-painter-image :src="qrcode" css="width: 168rpx; height: 168rpx;" />
|
|
<!-- #endif -->
|
|
<l-painter-text text="长按识别二维码"
|
|
css="display: block; padding-top: 10rpx; color: #999999;font-size: 24rpx;" />
|
|
</l-painter-view>
|
|
</l-painter-view>
|
|
</l-painter-view>
|
|
</l-painter>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
|
|
import lPainter from '@/components/lime-painter/components/l-painter/l-painter.vue'
|
|
import lPainterImage from '@/components/lime-painter/components/l-painter-image/l-painter-image.vue'
|
|
import lPainterText from '@/components/lime-painter/components/l-painter-text/l-painter-text.vue'
|
|
import lPainterView from '@/components/lime-painter/components/l-painter-view/l-painter-view.vue'
|
|
import lPainterQrcode from '@/components/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue'
|
|
export default {
|
|
name: "share-poster",
|
|
components: {
|
|
lPainter,
|
|
lPainterImage,
|
|
lPainterText,
|
|
lPainterView,
|
|
lPainterQrcode
|
|
},
|
|
props: {
|
|
config: {
|
|
type: Object,
|
|
default: () => ({})
|
|
},
|
|
shareId: {
|
|
type: [Number, String],
|
|
default: ''
|
|
},
|
|
qrcode: {
|
|
type: [String],
|
|
default: ''
|
|
},
|
|
pagePath:{
|
|
type: String,
|
|
default: ''
|
|
},
|
|
link: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
type: {
|
|
type: String,
|
|
default: 'goods'
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
|
|
};
|
|
},
|
|
computed: {
|
|
price() {
|
|
let {
|
|
price
|
|
} = this.config
|
|
console.log(price)
|
|
if (price == undefined) return {}
|
|
price = String(parseFloat(price)).split('.')
|
|
return {
|
|
prev: price[0],
|
|
next: price[1] ? `.${price[1]}` : ''
|
|
}
|
|
},
|
|
marketPrice() {
|
|
return `¥${parseFloat(this.config.marketPrice)}`
|
|
}
|
|
},
|
|
methods: {
|
|
handleSuccess(val) {
|
|
this.$emit('success', val)
|
|
},
|
|
handleFail(err) {
|
|
this.$emit('fail')
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
|
|
</style>
|