修改详情界面数据获取方式

This commit is contained in:
CounterFire2023 2024-06-25 14:50:43 +08:00
parent 8eeff734be
commit 427ca61d7a
5 changed files with 41 additions and 21 deletions

View File

@ -2,7 +2,7 @@
<div class="cards"> <div class="cards">
<div class="card-top" v-if="nftData"> <div class="card-top" v-if="nftData">
<!-- @click="toDetail" --> <!-- @click="toDetail" -->
<div class="card-img"> <div class="card-img" @click="toDetail">
<img :src="nftData.image" alt="图片"> <img :src="nftData.image" alt="图片">
</div> </div>
<div class="card-name"> <div class="card-name">
@ -96,8 +96,9 @@ const getImageUrl = (name) => {
const toDetail = () => { const toDetail = () => {
// detailData.nftData = toRaw(props.nftData) // detailData.nftData = toRaw(props.nftData)
// router.push('/detail'); // router.push('/detail');
const nftData = toRaw(props.nftData) router.push(`/detail/${props.nftData.contract_address}/${props.nftData.token_id}`)
router.push({name: 'Detail', state: { nftData }}); // const nftData = toRaw(props.nftData)
// router.push({name: 'Detail', state: { nftData }});
} }
// //

View File

@ -66,12 +66,8 @@ const getImageUrl = (name) => {
// //
const toDetail = () => { const toDetail = () => {
// detailData.nftData = toRaw(props.nftData) const _data = toRaw(props.nftData)
// router.push('/detail'); router.push(`/detail/${_data.nft.contract_address}/${_data.nft.token_id}`)
const _nftData = toRaw(props.nftData)
const nftData = _nftData.nft
nftData.event = _nftData.event
router.push({name: 'Detail', state: { nftData}});
} }
// //

View File

@ -43,6 +43,16 @@ const routes = [
canonical: "https://.counterfire.games", canonical: "https://.counterfire.games",
}, },
}, },
{
path: "/detail/:address/:tokenid",
name: "Detail",
component: Detail,
props: true,
meta: {
title: "Counter Fire-Detail",
canonical: "https://.counterfire.games",
},
},
{ {
path: "/assets", path: "/assets",
name: "Assets", name: "Assets",

View File

@ -93,3 +93,8 @@ export const apiDelCartList = async () => {
export const apiClearCartList = async () => { export const apiClearCartList = async () => {
const url = `${API_BASE}/api/shopcart/clear` const url = `${API_BASE}/api/shopcart/clear`
} }
export const nftDetail = async(address, tokenId) => {
const url = `${API_BASE}/api/market/product/goods/${net_id}/${address}/${tokenId}`
return httpGet(url, {})
}

View File

@ -141,19 +141,21 @@
import { ref, toRaw, onMounted } from "vue" import { ref, toRaw, onMounted } from "vue"
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import StarTimer from "@/components/common/starTimer.vue" import StarTimer from "@/components/common/starTimer.vue"
import { apiDetail } from "@/utils/marketplace" import { nftDetail } from "@/utils/marketplace"
import {priceCalculated} from "@/configs/priceCalculate.js" import {priceCalculated} from "@/configs/priceCalculate.js"
import { useDetailStore } from "@/store/detail"
import { BlockChain } from "@/components/chain/BlockChain" import { BlockChain } from "@/components/chain/BlockChain"
import {walletStore} from "@/store/wallet"; import {walletStore} from "@/store/wallet";
const router = useRouter(); const router = useRouter();
const localWalletStore = walletStore() const localWalletStore = walletStore()
const detailData = window.history.state.nftData const props = defineProps({
console.log(detailData) address: String,
const myAddress = localWalletStore.address tokenid: String
const nftAbilities = ref(detailData.detail) })
const detailData = ref(null)
// const detailData = window.history.state.nftData
// console.log(detailData)
// const myAddress = localWalletStore.address
// const nftAbilities = ref(detailData.detail)
// //
const buyNow = async () => { const buyNow = async () => {
@ -227,10 +229,16 @@ const priceWei = (price) => {
} }
const getDetail = async () => { const getDetail = async () => {
let address = localStorage.getItem('assessAddress') // let address = localStorage.getItem('assessAddress')
let res = await apiDetail(address) let { errcode, errmsg, data} = await nftDetail(props.address, props.tokenid)
console.log('getDetail',toRaw(res)) if (errcode) {
nftData.value = res.rows console.log(errmsg)
//TODO::
return
}
const nftData = data.nft
nftData.event = data.event
detailData.value = nftData
} }
onMounted(() => { onMounted(() => {