You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
	
	
		
		
			
	
    
		
			
				
					
						                                                                                                                                                                                                   | 
						 | 
						<!-- 全局分享弹框 --><template>  <view>    <su-popup :show="state.showShareGuide" :showClose="false" @close="onCloseGuide" />    <view v-if="state.showShareGuide" class="guide-wrap">      <image class="guide-image" :src="sheep.$url.static('/static/img/shop/share/share_guide.png')" />    </view>
    <su-popup :show="show" round="10" :showClose="false" @close="closeShareModal">      <!-- 分享 tools -->      <view class="share-box">        <view class="share-list-box ss-flex">          <!-- 操作 ①:发送给微信好友 -->          <button            v-if="shareConfig.methods.includes('forward')"            class="share-item share-btn ss-flex-col ss-col-center"            open-type="share"            @tap="onShareByForward"          >            <image class="share-img" :src="sheep.$url.static('/static/img/shop/share/share_wx.png')" mode="" />            <text class="share-title">微信好友</text>          </button>
          <!-- 操作 ②:生成海报图片 -->          <button            v-if="shareConfig.methods.includes('poster')"            class="share-item share-btn ss-flex-col ss-col-center"            @tap="onShareByPoster"          >            <image              class="share-img"              :src="sheep.$url.static('/static/img/shop/share/share_poster.png')"              mode=""            />            <text class="share-title">生成海报</text>          </button>
          <!-- 操作 ③:生成链接 -->          <button            v-if="shareConfig.methods.includes('link')"            class="share-item share-btn ss-flex-col ss-col-center"            @tap="onShareByCopyLink"          >            <image class="share-img" :src="sheep.$url.static('/static/img/shop/share/share_link.png')" mode="" />            <text class="share-title">复制链接</text>          </button>        </view>        <view class="share-foot ss-flex ss-row-center ss-col-center" @tap="closeShareModal">          取消        </view>      </view>    </su-popup>
    <!-- 分享海报,对应操作 ② -->    <canvas-poster      ref="SharePosterRef"      :show="state.showPosterModal"      :shareInfo="shareInfo"      @close="state.showPosterModal = false"    />  </view></template><script setup>  /**   * 分享弹窗   */  import { ref, unref, reactive, computed } from 'vue';  import sheep from '@/sheep';  import canvasPoster from './canvas-poster/index.vue';  import { closeShareModal, showAuthModal } from '@/sheep/hooks/useModal';
  const show = computed(() => sheep.$store('modal').share);  const shareConfig = computed(() => sheep.$store('app').platform.share);  const SharePosterRef = ref('');
  const props = defineProps({    shareInfo: {      type: Object,      default() {},    },  });
  const state = reactive({    showShareGuide: false, // H5 的指引
    showPosterModal: false, // 海报弹窗
  });
  // 操作 ②:生成海报分享
  const onShareByPoster = () => {    closeShareModal();    if (!sheep.$store('user').isLogin) {      showAuthModal();      return;    }    unref(SharePosterRef).getPoster();    state.showPosterModal = true;  };
  // 操作 ①:直接转发分享
  const onShareByForward = () => {    closeShareModal();
    // #ifdef H5
    if (['WechatOfficialAccount', 'H5'].includes(sheep.$platform.name)) {      state.showShareGuide = true;      return;    }    // #endif
    // #ifdef APP-PLUS
    uni.share({      provider: 'weixin',      scene: 'WXSceneSession',      type: 0,      href: props.shareInfo.link,      title: props.shareInfo.title,      summary: props.shareInfo.desc,      imageUrl: props.shareInfo.image,      success: (res) => {        console.log('success:' + JSON.stringify(res));      },      fail: (err) => {        console.log('fail:' + JSON.stringify(err));      },    });    // #endif
  };
  // 操作 ③:复制链接分享
  const onShareByCopyLink = () => {    sheep.$helper.copyText(props.shareInfo.link);    closeShareModal();  };
  function onCloseGuide() {    state.showShareGuide = false;  }</script>
<style lang="scss" scoped>  .guide-image {    right: 30rpx;    top: 0;    position: fixed;    width: 580rpx;    height: 430rpx;    z-index: 10080;  }
  // 分享tool
  .share-box {    background: $white;    width: 750rpx;    border-radius: 30rpx 30rpx 0 0;    padding-top: 30rpx;
    .share-foot {      font-size: 24rpx;      color: $gray-b;      height: 80rpx;      border-top: 1rpx solid $gray-e;    }
    .share-list-box {      .share-btn {        background: none;        border: none;        line-height: 1;        padding: 0;
        &::after {          border: none;        }      }
      .share-item {        flex: 1;        padding-bottom: 20rpx;
        .share-img {          width: 70rpx;          height: 70rpx;          background: $gray-f;          border-radius: 50%;          margin-bottom: 20rpx;        }
        .share-title {          font-size: 24rpx;          color: $dark-6;        }      }    }  }</style>
  |