Commit 6ce43e35 authored by chenqikuai's avatar chenqikuai

Merge branch 'main' of gitlab.33.cn:HF_web/NFT

parents 5226fa5b cd259232
...@@ -70,7 +70,7 @@ const routes: Array<RouteConfig> = [ ...@@ -70,7 +70,7 @@ const routes: Array<RouteConfig> = [
name:'Nftdetail', name:'Nftdetail',
component:()=> import('@/view/NFT/Detail/index.vue'), component:()=> import('@/view/NFT/Detail/index.vue'),
meta:{ meta:{
title: '' title: 'NFT详情'
} }
}, },
{ {
......
...@@ -54,7 +54,7 @@ export class NFTService extends Service { ...@@ -54,7 +54,7 @@ export class NFTService extends Service {
* @param id * @param id
* @returns * @returns
*/ */
async getNFTdetail(id: number){ async getNFTdetail(id: number):Promise<any>{
return await this.service.get(this.router.detail.path+'/'+id,{ return await this.service.get(this.router.detail.path+'/'+id,{
headers: { headers: {
Authorization: this.getAuth(), Authorization: this.getAuth(),
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<app-scrollbar :list='categoryTypes' @tabChange='getDataByCategory'></app-scrollbar> <app-scrollbar :list='categoryTypes' @tabChange='getDataByCategory'></app-scrollbar>
<div class="list-scroll"> <div class="list-scroll">
<app-cardList :data='listData' v-if="listData.length" @itemOnclick='goDetail'></app-cardList> <app-cardList :data='listData' v-if="listData.length" @itemOnclick='goDetail'></app-cardList>
<!-- <van-empty image="error" description="没有找到更多内容" v-else/> --> <van-empty image="/img/empty.png" description="没有找到更多内容" v-else/>
<div class="h-12"></div> <div class="h-12"></div>
</div> </div>
</div> </div>
......
...@@ -2,7 +2,13 @@ ...@@ -2,7 +2,13 @@
<Layout-Child> <Layout-Child>
<div class='w-11/12 mx-auto mt-6'> <div class='w-11/12 mx-auto mt-6'>
<div class='collection-list'> <div class='collection-list'>
<app-collectionCard v-for="i in collectionList" :key="i.id" :colletionData='i' class='mt-3'></app-collectionCard>
<div v-if="collectionList.length>1">
<app-collectionCard :colletionData='i' v-for="i in collectionList" :key="i.id" class='mt-3' @click.native="goDetail(i.id)"></app-collectionCard>
</div>
<div v-else class="mt-12">
<van-empty image="/img/empty.png" description="没有找到更多内容"/>
</div>
</div> </div>
</div> </div>
...@@ -27,6 +33,10 @@ export default Vue.extend({ ...@@ -27,6 +33,10 @@ export default Vue.extend({
// 'app-cell':()=>import('@/components/common/Cell.vue'), // 'app-cell':()=>import('@/components/common/Cell.vue'),
// 'app-btn':()=>import('@/components/common/Btn.vue') // 'app-btn':()=>import('@/components/common/Btn.vue')
}, },
methods:{
goDetail(id:any){
this.$router.push({ name: 'Nftdetail', params: { id: id }})
}
}
}); });
</script> </script>
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<div class="w-11/12 mx-auto mt-6 text-font-white"> <div class="w-11/12 mx-auto mt-6 text-font-white">
<SkeletonNftDetail v-if="false"/> <SkeletonNftDetail v-if="false"/>
<app-collectionCard :colletionData='nftData'></app-collectionCard> <app-collectionCard :colletionData='nftData'></app-collectionCard>
<div class="app-icons mx-auto grid grid-cols-4 my-6"> <div class="app-icons mx-auto grid grid-cols-4 my-6" v-if="isOwner">
<div <div
v-for="(i, index) in apps" v-for="(i, index) in apps"
:key="index" :key="index"
...@@ -153,14 +153,18 @@ export default Vue.extend({ ...@@ -153,14 +153,18 @@ export default Vue.extend({
return { return {
id: this.$route.params.id, id: this.$route.params.id,
apps, apps,
nftData:{}, nftData:{} as any,
collectionData:{}, collectionData:{},
inMyCollection:false inMyCollection:false,
isOwner:false,
user:this.$util.userMsg.getUserMsg() as any
// loading:true // loading:true
}; };
}, },
async created() { async created() {
this.nftData =await this.$service.nftService.getNFTdetail(parseInt(this.id)) this.nftData =await this.$service.nftService.getNFTdetail(parseInt(this.id))
console.log(this.nftData.wallet);
this.nftData.wallet == this.user.wallet? this.isOwner=true:this.isOwner=false
await this.setMyCollection() await this.setMyCollection()
}, },
......
<template> <template>
<Layout-Child> <Layout-Child>
<div class="nft-cardBox w-11/12 mx-auto mt-6"> <div class="nft-cardBox w-11/12 mx-auto mt-6">
<div class="nft-card w-full bg-font-red text-font-white px-5 py-3 rounded-md"> <div
class="nft-card w-full bg-font-red text-font-white px-5 py-3 rounded-md"
>
<div class="w-full flex items-start justify-between mb-12"> <div class="w-full flex items-start justify-between mb-12">
<div>我的NFT(个)</div> <div>我的NFT(个)</div>
<div></div> <div></div>
</div> </div>
<div class='flex items-end justify-between flex-wrap'> <div class="flex items-end justify-between flex-wrap">
<div class=' text-3xl'>{{balance}}</div> <div class="text-3xl">{{ balance }}</div>
<div class=' text-xs'>{{getUserInfo.wallet}}</div> <div class="text-xs">{{ getUserInfo.wallet }}</div>
</div> </div>
</div> </div>
</div> </div>
<div class="container-view w-11/12 mx-auto"> <div class="container-view w-11/12 mx-auto">
<app-scrollbar :list='categoryTypes' @tabChange='getDataByCategory'></app-scrollbar> <app-scrollbar
:list="categoryTypes"
@tabChange="getDataByCategory"
></app-scrollbar>
<div class="myNFT-list-scroll"> <div class="myNFT-list-scroll">
<app-collectionCard v-for="i in listData" :key="i.id" class="mt-3" :colletionData='i'></app-collectionCard> <div v-if="listData.length > 0">
<app-collectionCard
v-for="i in listData"
:key="i.id"
class="mt-3"
:colletionData="i"
@click.native="goDetail(i.id)"
></app-collectionCard>
</div>
<div v-else class="mt-12">
<van-empty image="/img/empty.png" description="没有找到更多内容" />
</div> </div>
</div> </div>
</Layout-Child> </div>
</Layout-Child>
</template> </template>
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from "vue";
export default Vue.extend({ export default Vue.extend({
data(){ data() {
return{ return {
categoryTypes:[] as any[], categoryTypes: [] as any[],
listData:{}, listData: {},
currentCategory:1, currentCategory: 1,
balance:0 balance: 0,
} };
}, },
async created(){ async created() {
this.categoryTypes = await this.$service.nftService.getCategory() this.categoryTypes = await this.$service.nftService.getCategory();
}, },
async mounted() { async mounted() {
let data = await this.$service.nftService.getMyList();
await this.$service.nftService.getMyList(this.currentCategory).then(res=>{ this.balance = data.size;
this.listData = res.list await this.$service.nftService
}) .getMyList(this.currentCategory)
.then((res) => {
this.listData = res.list;
});
},
computed: {
getUserInfo() {
return this.$util.userMsg.getUserMsg();
}, },
computed:{
getUserInfo(){
return this.$util.userMsg.getUserMsg()
}
}, },
methods: { methods: {
async getDataByCategory(item:any){ async getDataByCategory(item: any) {
this.currentCategory = item.data.id this.currentCategory = item.data.id;
await this.$service.nftService.getMyList(this.currentCategory).then(res=>{ await this.$service.nftService
this.listData = res.list .getMyList(this.currentCategory)
this.balance = res.size .then((res) => {
}) this.listData = res.list;
});
}, },
goDetail(id: any) {
this.$router.push({ name: "Nftdetail", params: { id: id } });
}, },
components:{
'Layout-Child':()=>import('@/layout/Child.vue'),
'app-scrollbar':()=>import('@/components/common/ScrollBar.vue'),
'app-collectionCard':()=>import('@/components/CollectionCard.vue')
}, },
components: {
"Layout-Child": () => import("@/layout/Child.vue"),
"app-scrollbar": () => import("@/components/common/ScrollBar.vue"),
"app-collectionCard": () => import("@/components/CollectionCard.vue"),
},
}); });
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment