185 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			185 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
 | 
						|
<template>
 | 
						|
    <view>
 | 
						|
        <backIcon></backIcon>
 | 
						|
        <view class="shareImg" @click="show = true">
 | 
						|
            <u-icon name="more-dot-fill" size="24" color="#fff">
 | 
						|
            </u-icon>
 | 
						|
        </view>
 | 
						|
        <view class="contain" v-if="specialArea == 7" id="myImage">
 | 
						|
            <img class="bgPic" src="@/static/images/shareBg.jpg" alt="">
 | 
						|
            <img class="qrImg" :src="shareImg" alt="">
 | 
						|
            <view class="mem">{{ memberCode }}</view>
 | 
						|
            <img class="btImg2" src="@/static/images/btnShare.png" @click="show = true" alt="">
 | 
						|
        </view>
 | 
						|
        <view class="contain1" v-if="specialArea == 21" id="myImage">
 | 
						|
            <img class="bgPic" src="@/static/images/hai.jpeg" alt="">
 | 
						|
            <img class="qrImg" :src="shareImg" alt="">
 | 
						|
            <view class="mem">{{ memberCode }}</view>
 | 
						|
            <img class="btImg" src="@/static/images/btnShare.png" @click="show = true" alt="">
 | 
						|
        </view>
 | 
						|
        <u-action-sheet :actions="list" @select='checkList' :safeAreaInsetBottom="true" @close='closeList' :closeOnClickOverlay="true" :show="show"></u-action-sheet>
 | 
						|
    </view>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
import * as api from '@/config/goods'
 | 
						|
import html2canvas from 'html2canvas'
 | 
						|
import backIcon from '@/components/backIcon.vue'
 | 
						|
export default {
 | 
						|
    components: {
 | 
						|
        backIcon,
 | 
						|
    },
 | 
						|
    data() {
 | 
						|
        return {
 | 
						|
            specialArea: '',
 | 
						|
            shareImg: '',
 | 
						|
            list: [{
 | 
						|
                    name: '保存图片',
 | 
						|
                    id: 0,
 | 
						|
                },
 | 
						|
                {
 | 
						|
                    name:  '取消',
 | 
						|
                    id: 1,
 | 
						|
                },
 | 
						|
            ],
 | 
						|
            memberCode:'',
 | 
						|
            show: false,
 | 
						|
        }
 | 
						|
    },
 | 
						|
    onLoad(options) {
 | 
						|
        this.specialArea = options.specialArea
 | 
						|
        this.memberCode = uni.getStorageSync('User').memberCode
 | 
						|
        this.getQr()
 | 
						|
        let titLabel = ''
 | 
						|
        if (this.specialArea == 7) {
 | 
						|
            titLabel = '海粉分享'
 | 
						|
        } else {
 | 
						|
            titLabel = '免费注册'
 | 
						|
        }
 | 
						|
        uni.setNavigationBarTitle({
 | 
						|
            title: titLabel,
 | 
						|
            success: () => {},
 | 
						|
        })
 | 
						|
    },
 | 
						|
    methods: {
 | 
						|
        closeList() {
 | 
						|
            this.show = false
 | 
						|
        },
 | 
						|
        checkList(e) {
 | 
						|
            if (e.id == 1) {
 | 
						|
                this.closeList()
 | 
						|
            } else {
 | 
						|
                this.saveImage()
 | 
						|
                this.closeList()
 | 
						|
            }
 | 
						|
        },
 | 
						|
        getQr() {
 | 
						|
            let url
 | 
						|
            if (this.specialArea == 7) {
 | 
						|
                url = api.fansCode
 | 
						|
            } else {
 | 
						|
                url = api.shareCode
 | 
						|
            }
 | 
						|
            url().then((res) => {
 | 
						|
                this.shareImg = 'data:image/png;base64,' + res.data.dataStr
 | 
						|
            })
 | 
						|
        },
 | 
						|
        saveImage() {
 | 
						|
            const options = {
 | 
						|
                backgroundColor: null,
 | 
						|
                scale: window.devicePixelRatio,
 | 
						|
                dpi: 300
 | 
						|
            }
 | 
						|
            html2canvas(document.querySelector('#myImage'), options).then(
 | 
						|
                (canvas) => {
 | 
						|
                    let url = canvas.toDataURL('image/png')
 | 
						|
                    let a = document.createElement('a')
 | 
						|
                    a.href = url
 | 
						|
                    a.setAttribute('download', 'sharePost')
 | 
						|
                    a.click()
 | 
						|
                }
 | 
						|
            )
 | 
						|
        },
 | 
						|
    },
 | 
						|
}
 | 
						|
</script>
 | 
						|
 | 
						|
<style lang="scss" scoped>
 | 
						|
.contain {
 | 
						|
    // background: url('@/static/images/shareBg.png') no-repeat;
 | 
						|
    // background-size: 100% 100%;
 | 
						|
    // background-position: 50% 50%;
 | 
						|
    height: 100vh;
 | 
						|
    // width: 100%;
 | 
						|
    .qrImg {
 | 
						|
        width: 320rpx;
 | 
						|
        height: 320rpx;
 | 
						|
        position: absolute;
 | 
						|
        bottom: 18%;
 | 
						|
        left: 50%;
 | 
						|
        transform: translateX(-50%);
 | 
						|
    }
 | 
						|
    .mem{
 | 
						|
      position: absolute;
 | 
						|
        bottom: 15%;
 | 
						|
        left: 50%;
 | 
						|
        font-size: 18px;
 | 
						|
        font-weight: 500;
 | 
						|
        transform: translateX(-50%);
 | 
						|
    }
 | 
						|
    .btImg2{
 | 
						|
       width: 300rpx;
 | 
						|
    height: 100rpx;
 | 
						|
        position: absolute;
 | 
						|
        bottom: 9%;
 | 
						|
        left: 50%;
 | 
						|
        transform: translateX(-50%);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
.contain1 {
 | 
						|
    // background: url('@/static/images/hai.jpeg') no-repeat;
 | 
						|
    // background-size: 100% 100%;
 | 
						|
    // background-position: 50% 50%;
 | 
						|
    height: 100vh;
 | 
						|
    // width: 100%;
 | 
						|
    .qrImg {
 | 
						|
        width: 320rpx;
 | 
						|
        height: 320rpx;
 | 
						|
        position: absolute;
 | 
						|
        bottom: 35%;
 | 
						|
        left: 50%;
 | 
						|
        transform: translateX(-50%);
 | 
						|
    }
 | 
						|
    .mem{
 | 
						|
      position: absolute;
 | 
						|
        bottom: 31%;
 | 
						|
        left: 50%;
 | 
						|
        font-size: 18px;
 | 
						|
        font-weight: 500;
 | 
						|
        transform: translateX(-50%);
 | 
						|
    }
 | 
						|
    .btImg{
 | 
						|
      width: 300rpx;
 | 
						|
    height: 100rpx;
 | 
						|
        position: absolute;
 | 
						|
        bottom: 24%;
 | 
						|
        left: 50%;
 | 
						|
        transform: translateX(-50%);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
.bgPic {
 | 
						|
    width: 100%;
 | 
						|
    height: 100%;
 | 
						|
}
 | 
						|
 | 
						|
.shareImg {
 | 
						|
    position: fixed;
 | 
						|
    margin: 14rpx 24rpx;
 | 
						|
    z-index: 9999;
 | 
						|
    right: 20rpx;
 | 
						|
    top: 5rpx;
 | 
						|
}
 | 
						|
</style> |