开门红图片分享功能

This commit is contained in:
mengxiaolong
2020-12-02 15:57:59 +08:00
parent 65bd7e067a
commit 346f7b4a07

View File

@@ -5,22 +5,29 @@
<van-image height="200" :src="$assetsUrl + pic.picUrl" @click="prevImg(pic)" /> <van-image height="200" :src="$assetsUrl + pic.picUrl" @click="prevImg(pic)" />
</van-grid-item> </van-grid-item>
</van-grid> </van-grid>
<van-image-preview id="preview" v-model="isPrevShow" :images="images" />
<van-button class="share-btn" v-show="isPrevShow" type="danger" block @click="shareImg">分享</van-button>
</div> </div>
</template> </template>
<script> <script>
import { Grid, GridItem, Image as VanImage, ImagePreview } from 'vant' import { Grid, GridItem, Image as VanImage, ImagePreview } from 'vant'
import { getSchemePics } from '@/api/ebiz/goodStart' import { getSchemePics } from '@/api/ebiz/goodStart'
import Vue from 'vue'
// 全局注册
Vue.use(ImagePreview)
export default { export default {
components: { components: {
[Grid.name]: Grid, [Grid.name]: Grid,
[GridItem.name]: GridItem, [GridItem.name]: GridItem,
[VanImage.name]: VanImage, [VanImage.name]: VanImage
[ImagePreview.name]: ImagePreview
}, },
data() { data() {
return { return {
pics: [] isPrevShow: false,
pics: [],
images: []
} }
}, },
created() { created() {
@@ -37,7 +44,31 @@ export default {
} }
}, },
prevImg(pic) { prevImg(pic) {
ImagePreview([this.$assetsUrl + pic.picUrl]) this.isPrevShow = true
this.images = [this.$assetsUrl + pic.picUrl]
},
shareImg() {
const img = this.getImageBase64()
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: {
shareType: '1',
img
}
})
},
getImageBase64() {
const img = document.querySelector('#preview .van-image__img')
img.setAttribute('crossOrigin', 'anonymous')
var canvas = document.createElement('canvas')
canvas.width = img.width
canvas.height = img.height
var ctx = canvas.getContext('2d')
ctx.drawImage(img, 0, 0, img.width, img.height)
var dataURL = canvas.toDataURL('image/png')
canvas = null
return dataURL
} }
} }
} }
@@ -51,4 +82,14 @@ export default {
/deep/ .van-grid-item__content { /deep/ .van-grid-item__content {
padding: 5px; padding: 5px;
} }
.share-btn {
position: fixed;
bottom: 0;
z-index: 10000;
}
/deep/ .van-image-preview__image {
bottom: auto;
}
</style> </style>