.vue文件
<template>
<div class="wrap">
<div class="collection_bottom-item" @click="handleShare">
<span><img src="../../assets/icon_certifies1.png" />分享</span>
</div>
<!-- 分享组件 -->
<ShareSheet
v-if="showShareSheet && billImg"
:name="data?.name"
:image="data?.cover_url"
:show="showShare"
:url="pathUrl"
:billImg="billImg"
:canvas="billCanvas"
bill-title="分享"
@handleCancel="showShare = false"
@onSelect="handleSelectShare"
/>
<Bill6
:name="data?.name"
:url="pathUrl"
:issuer_name="data?.issuer_name"
:nick-name="userInfo.nickName"
:uuid="
isGuoList === '1'
? data?.zsw_id
: data?.detail?.uuid
? data?.detail?.uuid
: data?.nft_detail_id
"
:time="
dayjs(data?.mint_time ? data?.mint_time : data?.start_time).format(
'YYYY-MM-DD HH:mm:ss'
)
"
@on-change="handleChangeBill"
/>
<van-overlay class="my-overlay" :show="showoverlay" @click="showoverlay = false">
<van-loading type="spinner">图片海报生成中</van-loading>
</van-overlay>
</div>
</template>
<script lang="ts" setup>
import { computed, ref, watch } from 'vue'
import { store } from '../../store'
import ShareSheet from '../../components/ShareSheet.vue'
import Bill6 from '../../components/Bill/Bill_6.vue'
const showShare = ref(false)
const pathUrl = ref(window.location.origin + '/#/home')
const billImg = ref('')
const billCanvas = ref()
const showoverlay = ref(false)
const showShareSheet = ref(false)
const init = async () => {
await store.dispatch('home/getNeAssetDetail', id)
}
init()
const data = computed(() => store.state.home.meAssetDetail)
const userInfo = computed(() => store.state.login.userInfo)
watch(
() => data.value,