|  | @@ -1,43 +1,63 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |      <div class="nft">
 | 
	
		
			
				|  |  | -        <div class="title">
 | 
	
		
			
				|  |  | -            <div class="tag">
 | 
	
		
			
				|  |  | -                <img class="logo" :src="saleData.nftProjectAvatar" />
 | 
	
		
			
				|  |  | -                <font class="text">{{ saleData.nftProjectName }}</font>
 | 
	
		
			
				|  |  | -                <img class="tagImg" :src="require('@/assets/img/icon-nft.png')" />
 | 
	
		
			
				|  |  | +        <template v-if="!isLoading">
 | 
	
		
			
				|  |  | +            <div class="title">
 | 
	
		
			
				|  |  | +                <div class="tag">
 | 
	
		
			
				|  |  | +                    <img class="logo" :src="saleData.nftProjectAvatar" />
 | 
	
		
			
				|  |  | +                    <font class="text">{{saleData.nftProjectName}}</font>
 | 
	
		
			
				|  |  | +                    <img class="tagImg" :src=" require('@/assets/img/icon-nft.png') " />
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <div class="share" v-if="!isShare" @click="share">
 | 
	
		
			
				|  |  | +                    <img :src=" require('@/assets/img/icon-ntf-share.png') " />
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  | -            <div class="share" @click="share">
 | 
	
		
			
				|  |  | -                <img :src="require('@/assets/img/icon-ntf-share.png')" />
 | 
	
		
			
				|  |  | +            <div class="content">
 | 
	
		
			
				|  |  | +                <img :src="saleData.windowImagePath" />
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div class="content">
 | 
	
		
			
				|  |  | -            <img :src="saleData.windowImagePath" />
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div class="buy" @click="buy">
 | 
	
		
			
				|  |  | -            <button>Buy NFT</button>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | +            <div class="buy" @click="buy">
 | 
	
		
			
				|  |  | +                <button>Buy NFT</button>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script setup>
 | 
	
		
			
				|  |  |  import { onBeforeMount, ref } from 'vue'
 | 
	
		
			
				|  |  | -import { getTwitterSaleNftProjectInfo } from '@/http/nft'
 | 
	
		
			
				|  |  | +import { getTwitterSaleNftProjectInfo, getNftProjectInfo } from '@/http/nft'
 | 
	
		
			
				|  |  |  import { pageUrl } from "@/http/configAPI.js"
 | 
	
		
			
				|  |  |  import { getChromeStorage } from '@/uilts/chromeExtension.js'
 | 
	
		
			
				|  |  |  const saleData = ref({});
 | 
	
		
			
				|  |  | +const isShare = ref(false);
 | 
	
		
			
				|  |  | +const isLoading = ref(true);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const getSaleInfo = () => {
 | 
	
		
			
				|  |  | -    let urlParams = window.location.search;
 | 
	
		
			
				|  |  | -    let searchParams = new URLSearchParams(urlParams);
 | 
	
		
			
				|  |  | -    let pathname = searchParams.get('pathname');
 | 
	
		
			
				|  |  | -    let pathArr, account;
 | 
	
		
			
				|  |  | -    if (pathname) {
 | 
	
		
			
				|  |  | -        pathname = decodeURIComponent(pathname);
 | 
	
		
			
				|  |  | -        pathname = pathname.slice(1);
 | 
	
		
			
				|  |  | -        pathArr = pathname.split('/');
 | 
	
		
			
				|  |  | -        account = pathArr[0];
 | 
	
		
			
				|  |  | -        getSaleProjectInfo(account);
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +    chrome.tabs.getCurrent((tab) => {
 | 
	
		
			
				|  |  | +        let url = new URL(tab.url);
 | 
	
		
			
				|  |  | +        let pathname = url.pathname;
 | 
	
		
			
				|  |  | +        let pathArr, account;
 | 
	
		
			
				|  |  | +        if (pathname) {
 | 
	
		
			
				|  |  | +            pathname = decodeURIComponent(pathname);
 | 
	
		
			
				|  |  | +            pathname = pathname.slice(1);
 | 
	
		
			
				|  |  | +            pathArr = pathname.split('/');
 | 
	
		
			
				|  |  | +            account = pathArr[0];
 | 
	
		
			
				|  |  | +            getSaleProjectInfo(account);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const getSaleData = (projectId) => {
 | 
	
		
			
				|  |  | +    getNftProjectInfo({
 | 
	
		
			
				|  |  | +        params: {
 | 
	
		
			
				|  |  | +            nftProjectId: projectId
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }).then(res => {
 | 
	
		
			
				|  |  | +        let { data } = res;
 | 
	
		
			
				|  |  | +        if (data !== null) {
 | 
	
		
			
				|  |  | +            // setData
 | 
	
		
			
				|  |  | +            saleData.value = data;
 | 
	
		
			
				|  |  | +            isLoading.value = false;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const getSaleProjectInfo = (account) => {
 | 
	
	
		
			
				|  | @@ -50,6 +70,7 @@ const getSaleProjectInfo = (account) => {
 | 
	
		
			
				|  |  |          if (data !== null) {
 | 
	
		
			
				|  |  |              // setData
 | 
	
		
			
				|  |  |              saleData.value = data;
 | 
	
		
			
				|  |  | +            isLoading.value = false;
 | 
	
		
			
				|  |  |              // postMessage
 | 
	
		
			
				|  |  |              chrome.tabs.getCurrent((tab) => {
 | 
	
		
			
				|  |  |                  chrome.tabs.sendMessage(tab.id, { actionType: "IFRAME_NFT_SHOW_SALE" });
 | 
	
	
		
			
				|  | @@ -60,8 +81,9 @@ const getSaleProjectInfo = (account) => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const share = () => {
 | 
	
		
			
				|  |  |      let url = pageUrl + `/nft/${saleData.value.nftProjectId}`
 | 
	
		
			
				|  |  | +    let content = `#DNFT\r${url}`
 | 
	
		
			
				|  |  |      chrome.tabs.getCurrent((tab) => {
 | 
	
		
			
				|  |  | -        chrome.tabs.sendMessage(tab.id, { actionType: "IFRAME_TWITTER_PUBLISH", publishRes: { srcContent: url } });
 | 
	
		
			
				|  |  | +        chrome.tabs.sendMessage(tab.id, { actionType: "IFRAME_TWITTER_PUBLISH", publishRes: { srcContent: content }  });
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -88,7 +110,15 @@ const buy = () => {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  onBeforeMount(() => {
 | 
	
		
			
				|  |  | -    getSaleInfo()
 | 
	
		
			
				|  |  | +    let urlParams = new URL(window.location.href);
 | 
	
		
			
				|  |  | +    let searchParmas = new URLSearchParams(urlParams.search);
 | 
	
		
			
				|  |  | +    let projectId = searchParmas.get('projectId') || '';
 | 
	
		
			
				|  |  | +    if (projectId) {
 | 
	
		
			
				|  |  | +        isShare.value = true;
 | 
	
		
			
				|  |  | +        getSaleData(projectId)
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +        getSaleInfo()
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  
 |