panhui 4 лет назад
Родитель
Сommit
b918cffcab

BIN
src/main/nine-space/src/assets/NO1.png


BIN
src/main/nine-space/src/assets/NO2.png


BIN
src/main/nine-space/src/assets/NO3.png


BIN
src/main/nine-space/src/assets/info_icon_ershoushichang.png


BIN
src/main/nine-space/src/assets/info_icon_jingxuanxilie.png


BIN
src/main/nine-space/src/assets/info_icon_paimaixilie.png


BIN
src/main/nine-space/src/assets/info_icon_zhuzaozhe.png


+ 1 - 0
src/main/nine-space/src/components/LikeButton.vue

@@ -38,6 +38,7 @@ export default {
     display: inline-block;
     color: #949699;
     line-height: 24px;
+    flex-shrink: 0;
 
     img {
         vertical-align: middle;

+ 11 - 11
src/main/nine-space/src/components/Loading.vue

@@ -65,7 +65,7 @@
     animation: spinner 2.5s cubic-bezier(0.75, 0, 0.5, 1) infinite normal;
     width: 50px;
     height: 50px;
-    background-color: #FFB178;
+    background-color: #ffb178;
 }
 
 /* Create shadow and set animation*/
@@ -88,11 +88,11 @@
     50% {
         -webkit-border-radius: 50%;
         -webkit-transform: scale(0.5) rotate(360deg);
-        background-color: #FFFECB;
+        background-color: #fffecb;
     }
     100% {
         -webkit-transform: scale(1) rotate(720deg);
-        background-color: #FFB178;
+        background-color: #ffb178;
     }
 }
 
@@ -100,11 +100,11 @@
     50% {
         -moz-border-radius: 50%;
         -moz-transform: scale(0.5) rotate(360deg);
-        background-color: #FFFECB;
+        background-color: #fffecb;
     }
     100% {
         -moz-transform: scale(1) rotate(720deg);
-        background-color: #FFB178;
+        background-color: #ffb178;
     }
 }
 
@@ -112,11 +112,11 @@
     50% {
         -mos-border-radius: 50%;
         -mos-transform: scale(0.5) rotate(360deg);
-        background-color: #FFFECB;
+        background-color: #fffecb;
     }
     100% {
         -mos-transform: scale(1) rotate(720deg);
-        background-color: #FFB178;
+        background-color: #ffb178;
     }
 }
 
@@ -124,11 +124,11 @@
     50% {
         -o-border-radius: 50%;
         -o-transform: scale(0.5) rotate(360deg);
-        background-color: #FFFECB;
+        background-color: #fffecb;
     }
     100% {
         -o-transform: scale(1) rotate(720deg);
-        background-color: #FFB178;
+        background-color: #ffb178;
     }
 }
 
@@ -136,11 +136,11 @@
     50% {
         border-radius: 50%;
         transform: scale(0.5) rotate(360deg);
-        background-color: #FFFECB;
+        background-color: #fffecb;
     }
     100% {
         transform: scale(1) rotate(720deg);
-        background-color: #FFB178;
+        background-color: #ffb178;
     }
 }
 

+ 5 - 1
src/main/nine-space/src/components/asset/assetInfo.vue

@@ -30,7 +30,7 @@
             <div class="text">
                 <div class="minter">
                     <van-image width="18" height="18" radius="18" :src="info.minterAvatar" fit="cover" />
-                    <span>铸造者</span>
+                    <span class="van-ellipsis">{{ info.minter }}</span>
                 </div>
                 <!-- <van-image width="18" height="18" :radius="100" :src="info.minterAvatar" fit="cover" />
                 <span>{{ info.minter }}</span> -->
@@ -169,8 +169,12 @@ export default {
     color: @text3;
     line-height: 22px;
     align-items: center;
+    overflow: hidden;
     span {
         margin-left: 4px;
     }
+    .van-image {
+        flex-shrink: 0;
+    }
 }
 </style>

+ 8 - 7
src/main/nine-space/src/components/creator/CreatorInfo.vue

@@ -117,7 +117,7 @@ export default {
 <style lang="less" scoped>
 .info {
     display: flex;
-    padding: 24px 16px;
+    padding: 22px 16px;
     position: relative;
 
     .content {
@@ -174,6 +174,7 @@ export default {
                 background-origin: border-box;
                 box-sizing: border-box;
                 background-clip: content-box, border-box;
+                font-size: @font1;
 
                 &.follow {
                     background-image: linear-gradient(@bg, @bg), linear-gradient(135deg, @text3, @text3);
@@ -200,11 +201,11 @@ export default {
 
     .NOImg {
         position: absolute;
-        width: 98px;
-        height: 104px;
+        width: 80px;
+        height: 90px;
         display: block;
-        left: 11px;
-        top: 14px;
+        left: 12px;
+        top: 10px;
     }
 }
 
@@ -213,8 +214,8 @@ export default {
     &::before {
         content: '';
         position: absolute;
-        left: 8px;
-        right: 0;
+        left: 20px;
+        right: 20px;
         top: 0;
         height: 1px;
         background-color: #202122;

+ 1 - 1
src/main/nine-space/src/components/order/OrderInfo.vue

@@ -31,7 +31,7 @@
         </div>
 
         <div class="btns">
-            <van-button color="@text3" @click.prevent="del" plain size="mini" round> 删除订单 </van-button>
+            <van-button color="#939599" @click.prevent="del" plain size="mini" round> 删除订单 </van-button>
         </div>
     </router-link>
 </template>

+ 6 - 1
src/main/nine-space/src/components/product/productInfo.vue

@@ -29,7 +29,7 @@
             <div class="text">
                 <div class="minter">
                     <van-image width="18" height="18" radius="18" :src="info.minterAvatar" fit="cover" />
-                    <span>铸造者</span>
+                    <span class="van-ellipsis">{{ info.minter }}</span>
                 </div>
                 <div class="flex1"></div>
                 <like-button :isLike="info.liked" @click="likeProduct">
@@ -153,6 +153,11 @@ export default {
     color: @text3;
     line-height: 22px;
     align-items: center;
+    margin-right: 10px;
+    overflow: hidden;
+    .van-image {
+        flex-shrink: 0;
+    }
     span {
         margin-left: 4px;
     }

+ 2 - 0
src/main/nine-space/src/mixins/banner.js

@@ -3,6 +3,8 @@ export default {
         goNext(info) {
             if (info.link && info.linkType === 'collection') {
                 this.$router.push(`/productDetail?id=${info.linkContent}`);
+            } else if (info.link && info.linkType === 'user') {
+                this.$router.push(`/creatorDetail?id=${info.linkContent}`);
             }
         }
     }

+ 5 - 0
src/main/nine-space/src/mixins/product.js

@@ -28,6 +28,11 @@ export default {
                     value: 'AUCTION'
                 }
             ],
+            sourceOptions: [
+                { label: '官方', value: 'OFFICIAL' },
+                { label: '用户铸造', value: 'USER' },
+                { label: '二手市场', value: 'TRANSFER' }
+            ],
             picsTypes: [
                 {
                     label: '视频',

+ 8 - 4
src/main/nine-space/src/router/index.js

@@ -42,7 +42,7 @@ function jsapiSign() {
                         });
                     });
                 })
-                .catch(e => {});
+                .catch(e => { });
         }
     }, 200);
 }
@@ -189,7 +189,11 @@ const routes = [
     {
         path: '/about',
         name: 'about',
-        component: () => import('../views/account/About.vue')
+        component: () => import('../views/account/About.vue'),
+        meta: {
+            pageType: Page.Every,
+            title: '第九空间'
+        }
     },
     {
         path: '/connect',
@@ -433,8 +437,8 @@ router.beforeEach((to, from, next) => {
     }
     console.log(to);
 
-    if(to.query.invitor){
-        sessionStorage.setItem('invitor',to.query.invitor)
+    if (to.query.invitor) {
+        sessionStorage.setItem('invitor', to.query.invitor);
     }
 
     if (!store.state.userInfo && to.meta.pageType !== Page.Login) {

+ 60 - 2
src/main/nine-space/src/styles/common/common.less

@@ -126,6 +126,64 @@
     hyphens: auto;
 }
 
-.linear(){
+.linear() {
     background: linear-gradient(135deg, @prim, @warn);
-}
+}
+
+@keyframes flipY {
+    0% {
+        transform: perspective(500px) rotateX(0deg) rotateY(15deg);
+    }
+    50% {
+        transform: perspective(500px) rotateX(0deg) rotateY(-15deg);
+    }
+    100% {
+        transform: perspective(500px) rotateX(0deg) rotateY(15deg);
+    }
+}
+@keyframes flipYLight {
+    0% {
+        left: -100vw;
+        opacity: 0.3;
+        width: 25px;
+    }
+    25% {
+        left: 45vw;
+        opacity: 0;
+        width: 45px;
+    }
+    50% {
+        left: 150vw;
+        opacity: 0.3;
+        width: 25px;
+    }
+    75% {
+        left: 45vw;
+        opacity: 0;
+        width: 45px;
+    }
+    100% {
+        left: -100vw;
+        opacity: 0.3;
+        width: 25px;
+    }
+}
+
+.detail-animate() {
+    animation: flipY 6s ease-in-out infinite;
+    position: relative;
+    &::after {
+        content: '';
+        background-color: #fff;
+        position: absolute;
+        background: #fff;
+        width: 25px;
+        height: 100vw;
+        top: 0;
+        left: 45px;
+        opacity: 0;
+        transform: skewX(-25deg);
+        z-index: 2;
+        animation: flipYLight 6s ease-in-out infinite;
+    }
+}

+ 9 - 44
src/main/nine-space/src/views/Discover.vue

@@ -23,30 +23,14 @@
                     <img class="grid-img" src="../assets/info_icon_jingxuanxilie.png" />
                 </template>
             </van-grid-item>
-            <van-grid-item
-                text="原创系列"
-                :to="{
-                    path: '/productList',
-                    query: {
-                        type: 'DEFAULT'
-                    }
-                }"
-            >
+            <van-grid-item text="二手市场" :to="{ path: '/productList', query: { source: 'TRANSFER' } }">
                 <template v-slot:icon>
-                    <img class="grid-img" src="../assets/info_icon_yuanchangxilie.png" />
+                    <img class="grid-img" src="../assets/info_icon_ershoushichang.png" />
                 </template>
             </van-grid-item>
-            <van-grid-item
-                text="数字盲盒"
-                :to="{
-                    path: '/productList',
-                    query: {
-                        type: 'BLIND_BOX'
-                    }
-                }"
-            >
+            <van-grid-item text="铸造者" :to="{ path: '/creatorList' }">
                 <template v-slot:icon>
-                    <img class="grid-img" src="../assets/info_icon_manghexilie.png" />
+                    <img class="grid-img" src="../assets/info_icon_zhuzaozhe.png" />
                 </template>
             </van-grid-item>
             <van-grid-item text="拍卖系列" @click="wait">
@@ -54,26 +38,11 @@
                     <img class="grid-img" src="../assets/info_icon_paimaixilie.png" />
                 </template>
             </van-grid-item>
-            <van-grid-item text="二手市场" @click="wait">
-                <template v-slot:icon>
-                    <img class="grid-img" src="../assets/info_icon_ershoushichang.png" />
-                </template>
-            </van-grid-item>
-            <van-grid-item text="铸造商店" @click="wait">
+            <!-- <van-grid-item text="铸造商店" @click="wait">
                 <template v-slot:icon>
                     <img class="grid-img" src="../assets/info_icon_zhuzaoshangdian.png" />
                 </template>
-            </van-grid-item>
-            <van-grid-item text="铸造者" :to="{ path: '/creatorList' }">
-                <template v-slot:icon>
-                    <img class="grid-img" src="../assets/info_icon_zhuzaozhe.png" />
-                </template>
-            </van-grid-item>
-            <van-grid-item text="系列活动" @click="wait">
-                <template v-slot:icon>
-                    <img class="grid-img" src="../assets/info_icon_xiliehuodong.png" />
-                </template>
-            </van-grid-item>
+            </van-grid-item> -->
         </van-grid>
 
         <div class="box" v-if="box.length > 0">
@@ -102,18 +71,14 @@
         <div class="casting" v-if="miners.length > 0">
             <page-title title="最受欢迎铸造者" :to="{ path: '/creatorList' }"></page-title>
             <template v-for="(item, index) in miners" :key="index">
-                <creator-info
-                    :rank="index < 3 ? index + 1 : 0"
-                    v-model:info="miners[index]"
-                    size="large"
-                ></creator-info>
+                <creator-info :rank="index < 3 ? index + 1 : 0" v-model:info="miners[index]"></creator-info>
             </template>
         </div>
 
         <div class="box">
             <page-title title="更多藏品" :isLink="false"></page-title>
             <van-list
-                style="padding-bottom: 100px"
+                style="padding-bottom: 100px;"
                 class="box-list"
                 v-model:loading="loading"
                 :finished="finished"
@@ -203,7 +168,7 @@ export default {
                             onShelf: true,
                             del: false
                         },
-                        sort: 'createdAt,desc'
+                        sort: 'sort,desc'
                     },
                     { body: 'json' }
                 )

+ 1 - 1
src/main/nine-space/src/views/Home.vue

@@ -80,7 +80,7 @@ export default {
                             onShelf: true,
                             del: false
                         },
-                        sort: 'createdAt,desc'
+                        sort: 'sort,desc'
                     },
                     { body: 'json' }
                 )

+ 12 - 5
src/main/nine-space/src/views/Mine.vue

@@ -16,7 +16,12 @@
                         <div class="text1 van-ellipsis">
                             <span>{{ userInfo.nickname }}</span>
 
-                            <img v-if="authStatus === '已认证'" src="../assets/renzheng_icon_pre.png" alt="" />
+                            <img
+                                @click="$router.push('/verifiedSuc')"
+                                v-if="authStatus === '已认证'"
+                                src="../assets/renzheng_icon_pre.png"
+                                alt=""
+                            />
                         </div>
                         <div class="text2">
                             <span>
@@ -43,7 +48,7 @@
                     </div>
                     <van-button
                         plain
-                        color="@text3"
+                        color="#939599"
                         size="mini"
                         :icon="require('../assets/renzheng_icon.png')"
                         round
@@ -73,14 +78,14 @@
                 <div class="text2">立即登录获取精彩服务</div>
             </div>
         </div>
-        <van-cell class="title" title="我的订单" :border="false" is-link value="查看全部" :to="{ path: '/orders' }" />
+        <van-cell class="title" title="我的订单" :border="false" />
 
         <div class="orderList">
             <div class="order-info" @click="$router.push('/orders?type=DEFAULT')">
                 <img src="../assets/info_icon_shangpindingdan.png" alt="" />
                 <span>商品订单</span>
             </div>
-            <div class="order-info" @click="$router.push('/orders?type=BLIND_BOX')">
+            <div class="order-info" @click="wait">
                 <img src="../assets/info_icon_zhuzaodingdan.png" alt="" />
                 <span>铸造订单</span>
             </div>
@@ -124,7 +129,7 @@
                     <van-icon :name="require('../assets/icon-guanyuwomen.png')" class="search-icon" />
                 </template>
             </van-grid-item>
-            <van-grid-item text="账号与安全">
+            <van-grid-item text="账号与安全" :to="{ path: '/security' }">
                 <template #icon>
                     <van-icon :name="require('../assets/icon-anquan.png')" class="search-icon" />
                 </template>
@@ -396,6 +401,7 @@ export default {
 .userInfo-top {
     display: flex;
     align-items: center;
+    transform: translateX(-5px);
     .van-image {
         border: 5px solid @bg;
         flex-shrink: 0;
@@ -409,6 +415,7 @@ export default {
             font-weight: bold;
             color: #ffffff;
             line-height: 24px;
+            .flex();
             img {
                 width: 18px;
                 height: 18px;

+ 1 - 1
src/main/nine-space/src/views/Store.vue

@@ -120,7 +120,7 @@ export default {
                         value: ''
                     },
                     {
-                        label: '售',
+                        label: '售',
                         value: 'ON_SALE'
                     },
                     {

+ 28 - 51
src/main/nine-space/src/views/asset/Detail.vue

@@ -79,7 +79,10 @@
             </div>
             <div class="price-line">
                 <template v-if="info.consignment">
-                    <div class="price"><i class="font_family icon-icon_jiage"></i>{{ info.sellPrice || 0 }}</div>
+                    <div class="price">
+                        <img src="../../assets/jiage_huang.png" alt="" />
+                        <span>{{ info.sellPrice || 0 }}</span>
+                    </div>
                     <div class="sub" v-if="info.royalties">
                         含 <span>{{ info.royalties }}%</span> 版税
                     </div>
@@ -111,7 +114,7 @@
 
         <div class="goods">
             <van-collapse v-model="activeNames">
-                <van-collapse-item name="01" class="goods-info">
+                <van-collapse-item name="1" class="goods-info">
                     <template #title>
                         <div class="page-title"><img src="../../assets/fenxiang-icon.png" alt="" />用户信息</div>
                     </template>
@@ -151,14 +154,14 @@
                     </div>
                 </van-collapse-item>
 
-                <van-collapse-item name="4" class="goods-info">
+                <van-collapse-item name="2" class="goods-info">
                     <template #title>
                         <div class="page-title"><img src="../../assets/icon-miaoshu.png" alt="" />作品描述</div>
                     </template>
                     <div v-if="info.detail" class="page-text page-detail" v-html="info.detail"></div>
                     <div v-else class="textName">铸造者未设置</div>
                 </van-collapse-item>
-                <van-collapse-item name="002" class="goods-info">
+                <van-collapse-item name="3" class="goods-info">
                     <template #title>
                         <div class="page-title"><img src="../../assets/icon-lianshangxinxi.png" alt="" />类型</div>
                     </template>
@@ -169,7 +172,7 @@
                         <div v-else class="text5">铸造者未设置</div>
                     </div>
                 </van-collapse-item>
-                <van-collapse-item name="00" class="goods-info init">
+                <van-collapse-item name="4" class="goods-info init">
                     <template #title>
                         <div class="page-title">
                             <img src="../../assets/qiaoqiaohua-icon-weidakai.png" alt="" /> 悄悄话<span
@@ -188,7 +191,7 @@
                         <div class="text5" v-else>铸造者未设置</div>
                     </div>
                 </van-collapse-item>
-                <van-collapse-item name="0" class="goods-info">
+                <van-collapse-item name="5" class="goods-info">
                     <template #title>
                         <div class="titleIcon page-title">
                             <img src="../../assets/icon-lianshangxinxi(1).png" alt="" />持有特权<span
@@ -214,7 +217,7 @@
                     </div>
                     <div v-if="init.length === 0" class="tips">铸造者未设置</div>
                 </van-collapse-item>
-                <van-collapse-item name="1" class="goods-info">
+                <van-collapse-item name="6" class="goods-info">
                     <template #title>
                         <div class="page-title">
                             <img src="../../assets/icon-lianshangxinxi(2).png" alt="" />商品特性
@@ -228,23 +231,13 @@
                     </div>
                     <div v-else class="textName">铸造者未设置</div>
                 </van-collapse-item>
-                <van-collapse-item name="2" class="goods-info">
+                <hash-code :info="info"></hash-code>
+                <van-collapse-item name="8" class="goods-info">
                     <template #title>
                         <div class="page-title">
-                            <img src="../../assets/icon-lianshangxinxi(3).png" alt="" />链上信息
+                            <img src="../../assets/info_icon_jiaoyijilu1.png" alt="" />交易记录
                         </div>
                     </template>
-                    <div class="page-text" v-if="info.txHash || info.blockNumber || info.tokenId">
-                        Hash地址:{{ info.txHash }}<br />
-                        区块高度: {{ info.blockNumber }}<br />
-                        令牌ID: {{ info.tokenId }}
-                    </div>
-                    <div v-else class="textName">铸造者未设置</div>
-                </van-collapse-item>
-                <van-collapse-item name="5" class="goods-info">
-                    <template #title>
-                        <div class="page-title"><img src="../../assets/info_icon_jiaoyijilu.png" alt="" />交易记录</div>
-                    </template>
                     <div v-if="list.length > 0">
                         <div class="user-detail" v-for="item in list" :key="item.id">
                             <div class="text1 van-ellipsis">{{ item.fromUser || '保密' }}</div>
@@ -400,6 +393,7 @@ import { mapState } from 'vuex';
 import { ImagePreview } from 'vant';
 import Vue from 'vue';
 import { Dialog } from 'vant';
+import HashCode from '../../components/product/HashCode.vue';
 // install Swiper modules
 SwiperCore.use([Pagination]);
 
@@ -407,13 +401,14 @@ export default {
     components: {
         Swiper,
         SwiperSlide,
-        Post
+        Post,
+        HashCode
     },
 
     mixins: [asset, product],
     data() {
         return {
-            activeNames: ['01', '4'],
+            activeNames: ['1', '2', '3', '4', '5', '6', 'hashCode', '8'],
             info: {},
             liked: false,
             show2: false,
@@ -778,16 +773,17 @@ export default {
     box-sizing: border-box;
 
     .price {
-        font-size: @font4;
+        font-size: 32px;
         font-family: OSP;
         color: #fdfb60;
-        line-height: 36px;
+        line-height: 32px;
         transform: translateY(3px);
+        .flex();
 
-        .font_family {
-            font-size: 8px;
-            line-height: 24px;
-            vertical-align: middle;
+        img {
+            width: 10px;
+            height: 11px;
+            margin-top: 10px;
         }
     }
 
@@ -797,7 +793,7 @@ export default {
         .sub {
             flex-grow: 1;
             margin-left: 5px;
-            font-size: 14px;
+            font-size: @font1;
             color: #949699;
             line-height: 16px;
             span {
@@ -805,8 +801,8 @@ export default {
             }
         }
 
-        .text {
-            font-size: 14px;
+        .text1 {
+            font-size: @font1;
             color: @text3;
             line-height: 16px;
             span {
@@ -909,29 +905,11 @@ export default {
     }
 }
 
-@keyframes flipY {
-    0% {
-        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
-    }
-    27% {
-        transform: perspective(500px) rotateX(0deg) rotateY(15deg);
-    }
-    50% {
-        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
-    }
-    73% {
-        transform: perspective(500px) rotateX(0deg) rotateY(-15deg);
-    }
-    100% {
-        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
-    }
-}
-
 /deep/ .mySwiper {
     width: calc(100vw - 120px);
     height: calc(100vw - 120px);
     z-index: 1;
-    animation: flipY 6s linear infinite;
+    .detail-animate();
 
     .swiper-pagination {
         bottom: 22px;
@@ -1540,7 +1518,6 @@ export default {
     background-color: #131313 !important;
 }
 
-
 .user-detail {
     .flex();
     width: 100%;

+ 14 - 41
src/main/nine-space/src/views/product/Detail.vue

@@ -82,7 +82,7 @@
         <!-- </template> -->
         <div class="goods">
             <van-collapse v-model="activeNames">
-                <van-collapse-item name="01" class="goods-info">
+                <van-collapse-item name="1" class="goods-info">
                     <template #title>
                         <div class="page-title">
                             <img src="../../assets/fenxiang-icon.png" alt="" />
@@ -134,7 +134,7 @@
                     </div>
                 </van-collapse-item>
 
-                <van-collapse-item name="4" class="goods-info">
+                <van-collapse-item name="2" class="goods-info">
                     <template #title>
                         <div class="page-title"><img src="../../assets/icon-miaoshu.png" alt="" />作品描述</div>
                     </template>
@@ -152,7 +152,7 @@
                     </swiper>
                     <div v-if="info.detail" class="page-text page-detail" v-html="info.detail"></div>
                 </van-collapse-item>
-                <van-collapse-item name="002" class="goods-info top1">
+                <van-collapse-item name="3" class="goods-info top1">
                     <template #title>
                         <div class="page-title"><img src="../../assets/icon-lianshangxinxi.png" alt="" /> 类型</div>
                     </template>
@@ -163,7 +163,7 @@
                         <div v-else class="tips">铸造者未设置</div>
                     </div>
                 </van-collapse-item>
-                <van-collapse-item name="00" class="goods-info">
+                <van-collapse-item name="4" class="goods-info">
                     <template #title>
                         <div class="page-title">
                             <img src="../../assets/qiaoqiaohua-icon-weidakai.png" alt="" /> 悄悄话<span
@@ -179,7 +179,7 @@
                     </div>
                     <div class="tips" v-else>铸造者未设置</div>
                 </van-collapse-item>
-                <van-collapse-item name="0" class="goods-info">
+                <van-collapse-item name="5" class="goods-info">
                     <template #title>
                         <div class="titleIcon page-title">
                             <img src="../../assets/icon-lianshangxinxi(1).png" alt="" />
@@ -197,7 +197,7 @@
                     </div>
                     <div v-if="init.length === 0" class="tips">铸造者未设置</div>
                 </van-collapse-item>
-                <van-collapse-item name="1" class="goods-info">
+                <van-collapse-item name="6" class="goods-info">
                     <template #title>
                         <div class="page-title">
                             <img src="../../assets/icon-lianshangxinxi(2).png" alt="" />商品特性
@@ -211,24 +211,13 @@
                     </div>
                     <div v-else class="textName">铸造者未设置</div>
                 </van-collapse-item>
-
-                <van-collapse-item name="2" class="goods-info">
+                <hash-code :info="info"></hash-code>
+                <van-collapse-item name="8" class="goods-info">
                     <template #title>
                         <div class="page-title">
-                            <img src="../../assets/icon-lianshangxinxi(3).png" alt="" />链上信息
+                            <img src="../../assets/info_icon_jiaoyijilu1.png" alt="" />交易记录
                         </div>
                     </template>
-                    <div class="page-text" v-if="info.txHash || info.blockNumber || info.tokenId">
-                        Hash地址:{{ info.txHash }}<br />
-                        区块高度: {{ info.blockNumber }}<br />
-                        令牌ID: {{ info.tokenId }}
-                    </div>
-                    <div v-else class="textName">铸造者未设置</div>
-                </van-collapse-item>
-                <van-collapse-item name="5" class="goods-info">
-                    <template #title>
-                        <div class="page-title"><img src="../../assets/info_icon_jiaoyijilu.png" alt="" />交易记录</div>
-                    </template>
                     <div v-if="list.length > 0">
                         <div class="content" v-for="item in list" :key="item.id">
                             <!-- <img class="img" :src="list.avatar" alt="" /> -->
@@ -297,12 +286,14 @@ import { ImagePreview } from 'vant';
 // install Swiper modules
 SwiperCore.use([Pagination]);
 import product from '../../mixins/product';
+import HashCode from '../../components/product/HashCode.vue';
 
 export default {
     components: {
         Swiper,
         SwiperSlide,
-        Post
+        Post,
+        HashCode
     },
     mixins: [product],
     data() {
@@ -315,7 +306,7 @@ export default {
             init: [],
             init2: null,
             list: [],
-            activeNames: ['01', '4']
+            activeNames: ['1', '2', '3', '4', '5', '6', 'hashCode', '8']
         };
     },
     computed: {
@@ -943,24 +934,6 @@ export default {
     background-color: @bg;
 }
 
-@keyframes flipY {
-    0% {
-        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
-    }
-    27% {
-        transform: perspective(500px) rotateX(0deg) rotateY(15deg);
-    }
-    50% {
-        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
-    }
-    73% {
-        transform: perspective(500px) rotateX(0deg) rotateY(-15deg);
-    }
-    100% {
-        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
-    }
-}
-
 .detail-top {
     position: relative;
     .detail-info {
@@ -980,7 +953,7 @@ export default {
     .mySwiper {
         border-radius: 8px;
         border: 2px solid #ffffff;
-        animation: flipY 6s linear infinite;
+        .detail-animate();
         .swiper-slide {
             display: flex;
             align-items: center;

+ 9 - 3
src/main/nine-space/src/views/product/List.vue

@@ -12,7 +12,7 @@
                     "
                     :title-class="item.type === 'select' && sort === item.value[0] ? '' : 'asc'"
                     :key="index"
-                    v-for="(item, index) in sourceOptions"
+                    v-for="(item, index) in selectOptions"
                 >
                     <template v-if="item.type === 'select'" #title>
                         <div class="tab">
@@ -49,7 +49,8 @@ export default {
             empty: false,
             sort: 'id,desc',
             type: '',
-            sourceOptions: [
+            source: '',
+            selectOptions: [
                 {
                     label: '全部',
                     value: 'id,desc'
@@ -73,19 +74,24 @@ export default {
     },
     computed: {
         pageName() {
-            return this.getLabelName(this.type, this.typeOptions);
+            return this.getLabelName(this.source, this.sourceOptions) || this.getLabelName(this.type, this.typeOptions);
         }
     },
     mounted() {
         if (this.$route.query.type) {
             this.type = this.$route.query.type;
         }
+
+        if (this.$route.query.source) {
+            this.source = this.$route.query.source;
+        }
     },
     methods: {
         beforeData() {
             return {
                 query: {
                     type: this.type,
+                    source: this.source,
                     onShelf: true,
                     del: false
                 },