panhui 4 gadi atpakaļ
vecāks
revīzija
0ac500276e
30 mainītis faili ar 390 papildinājumiem un 100 dzēšanām
  1. BIN
      src/main/nine-space/src/assets/icon_gouxuan.png
  2. BIN
      src/main/nine-space/src/assets/png-biaokuag-01.png
  3. BIN
      src/main/nine-space/src/assets/png-biaokuag-02.png
  4. BIN
      src/main/nine-space/src/assets/renzheng-icon-geren-pre.png
  5. BIN
      src/main/nine-space/src/assets/renzheng-icon-geren.png
  6. BIN
      src/main/nine-space/src/assets/renzheng-icon-qiye-pre.png
  7. BIN
      src/main/nine-space/src/assets/renzheng-icon-qiye.png
  8. 1 1
      src/main/nine-space/src/components/AppBar.vue
  9. 2 4
      src/main/nine-space/src/components/creator/CreatorInfo.vue
  10. 1 1
      src/main/nine-space/src/components/order/OrderInfo.vue
  11. 9 5
      src/main/nine-space/src/components/product/HashCode.vue
  12. 33 0
      src/main/nine-space/src/components/product/ProductTitle.vue
  13. 14 0
      src/main/nine-space/src/components/product/productInfo.vue
  14. 15 1
      src/main/nine-space/src/components/product/productLarge.vue
  15. 3 0
      src/main/nine-space/src/mixins/product.js
  16. 8 0
      src/main/nine-space/src/styles/app.less
  17. 9 18
      src/main/nine-space/src/views/Home.vue
  18. 18 1
      src/main/nine-space/src/views/Submit.vue
  19. 109 8
      src/main/nine-space/src/views/account/Authentication.vue
  20. 36 13
      src/main/nine-space/src/views/asset/Detail.vue
  21. 5 1
      src/main/nine-space/src/views/asset/GiveSearch.vue
  22. 6 2
      src/main/nine-space/src/views/asset/Search.vue
  23. 34 18
      src/main/nine-space/src/views/creator/Detail.vue
  24. 18 1
      src/main/nine-space/src/views/creator/List.vue
  25. 5 2
      src/main/nine-space/src/views/creator/Search.vue
  26. 23 14
      src/main/nine-space/src/views/product/Detail.vue
  27. 29 1
      src/main/nine-space/src/views/product/List.vue
  28. 10 7
      src/main/nine-space/src/views/product/Search.vue
  29. 1 1
      src/main/nine-space/src/views/user/Point.vue
  30. 1 1
      src/main/nine-space/src/views/user/Wallet.vue

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


BIN
src/main/nine-space/src/assets/png-biaokuag-01.png


BIN
src/main/nine-space/src/assets/png-biaokuag-02.png


BIN
src/main/nine-space/src/assets/renzheng-icon-geren-pre.png


BIN
src/main/nine-space/src/assets/renzheng-icon-geren.png


BIN
src/main/nine-space/src/assets/renzheng-icon-qiye-pre.png


BIN
src/main/nine-space/src/assets/renzheng-icon-qiye.png


+ 1 - 1
src/main/nine-space/src/components/AppBar.vue

@@ -39,7 +39,7 @@ export default {
             actions: [
                 { text: '首页', icon: require('../assets/menu1.png'), value: '/home' },
                 { text: '发现', icon: require('../assets/menu2.png'), value: '/discover' },
-                { text: '柜子', icon: require('../assets/menu3.png'), value: '/store' },
+                { text: '藏品室', icon: require('../assets/menu3.png'), value: '/store' },
                 { text: '我的', icon: require('../assets/menu4.png'), value: '/mine' }
             ]
         };

+ 2 - 4
src/main/nine-space/src/components/creator/CreatorInfo.vue

@@ -36,7 +36,6 @@
                     <span>{{ info.sales }}</span>
                 </div>
                 <van-button
-                    v-if="!isFollow"
                     @click.prevent="follow"
                     :class="{ follow: info.follow }"
                     plain
@@ -44,7 +43,7 @@
                     size="mini"
                     round
                 >
-                    {{ info.follow ? '已关注' : '关注' }}
+                    {{ info.follow ? (isFollow ? '互相关注' : '已关注') : '关注' }}
                 </van-button>
             </div>
         </div>
@@ -128,7 +127,6 @@ export default {
 
         .text1 {
             font-size: @font2;
-            font-weight: bold;
             color: #ffffff;
             line-height: 24px;
         }
@@ -148,7 +146,7 @@ export default {
             .sale {
                 display: flex;
                 align-items: center;
-                font-size: @font2;
+                font-size: @font1;
                 line-height: 24px;
 
                 .font_family {

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

@@ -20,7 +20,7 @@
                 <div class="name van-multi-ellipsis--l2">
                     {{ info.name }}
                 </div>
-                <div class="text">编号:{{ info.collectionId }}</div>
+                <div class="text">编号:{{ info.id }}</div>
                 <div class="flex1"></div>
                 <div class="price">¥{{ info.price }}</div>
             </div>

+ 9 - 5
src/main/nine-space/src/components/product/HashCode.vue

@@ -6,16 +6,20 @@
         <div class="page-text" v-if="info.txHash">
             <div class="text-info">
                 <span class="text1">Hash地址:</span>
-                <span class="van-ellipsis">{{ info.txHash }}</span>
+                <span class="flex1"></span>
                 <img @click="copy(info.txHash)" src="../../assets/svgs/copy_icon.svg" alt="" />
+                <span class="van-ellipsis">{{ info.txHash }}</span>
             </div>
             <div class="text-info">
-                <span class="text1">区块高度: </span> <span>{{ info.blockNumber }}</span>
+                <span class="text1">区块高度: </span>
+                <span class="flex1"></span>
+                <span>{{ info.blockNumber }}</span>
             </div>
             <div class="text-info">
                 <span class="text1">令牌ID: </span>
-                <span class="van-ellipsis">{{ info.tokenId }}</span>
+                <span class="flex1"></span>
                 <img @click="copy(info.tokenId)" src="../../assets/svgs/copy_icon.svg" alt="" />
+                <span class="van-ellipsis">{{ info.tokenId }}</span>
             </div>
         </div>
         <div v-else class="textName">铸造者未设置</div>
@@ -88,7 +92,7 @@ export default {
 }
 .page-text {
     font-size: @font2;
-    color: #ffffff;
+    color: @text3;
     line-height: 28px;
     word-break: break-all;
     // margin-top: 10px;
@@ -113,7 +117,7 @@ export default {
             width: 18px;
             height: 18px;
             flex-shrink: 0;
-            margin-left: 5px;
+            margin-right: 6px;
         }
     }
 }

+ 33 - 0
src/main/nine-space/src/components/product/ProductTitle.vue

@@ -0,0 +1,33 @@
+<template>
+    <div class="product-title">
+        <span><slot></slot></span>
+        <img class="img1" src="../../assets/png-biaokuag-01.png" alt="" />
+        <img class="img2" src="../../assets/png-biaokuag-02.png" alt="" />
+    </div>
+</template>
+
+<script>
+export default {};
+</script>
+
+<style lang="less" scoped>
+.product-title {
+    font-size: @font4;
+    color: #ffffff;
+    line-height: 44px;
+    padding: 0 20px;
+    position: relative;
+    img {
+        width: 20px;
+        height: 44px;
+        position: absolute;
+        top: 0;
+        &.img1 {
+            left: 0;
+        }
+        &.img2 {
+            right: 0;
+        }
+    }
+}
+</style>

+ 14 - 0
src/main/nine-space/src/components/product/productInfo.vue

@@ -36,6 +36,7 @@
                     {{ info.likes }}
                 </like-button>
             </div>
+            <div class="sold" v-if="isSold">已售馨</div>
         </div>
     </router-link>
 </template>
@@ -86,6 +87,7 @@ export default {
     display: inline-block;
     border-radius: 8px;
     overflow: hidden;
+    position: relative;
 
     .van-image {
         overflow: hidden;
@@ -162,4 +164,16 @@ export default {
         margin-left: 4px;
     }
 }
+.sold {
+    background-color: #303133;
+    font-size: @font1;
+    color: #939599;
+    padding: 0 6px;
+    border-radius: 13px;
+    line-height: 24px;
+    position: absolute;
+    top: 6px;
+    left: 6px;
+    z-index: 5;
+}
 </style>

+ 15 - 1
src/main/nine-space/src/components/product/productLarge.vue

@@ -41,8 +41,10 @@
             <span>即将开售:{{ time }}</span>
         </div>
 
+        <div class="sold" v-if="isSold">已售馨</div>
+
         <img class="bg" src="../../assets/png-diwen.png" alt="" />
-        <img class="top-bg" src="../../assets/collecbg.png" alt="" />
+        <img class="top-bg" v-if="time" src="../../assets/collecbg.png" alt="" />
     </router-link>
 </template>
 
@@ -219,4 +221,16 @@ export default {
     font-size: @font2;
     color: #fff;
 }
+.sold {
+    background-color: #303133;
+    font-size: @font1;
+    color: #939599;
+    padding: 0 17px;
+    border-radius: 13px;
+    line-height: 24px;
+    position: absolute;
+    top: 16px;
+    left: 16px;
+    z-index: 3;
+}
 </style>

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

@@ -54,6 +54,9 @@ export default {
             } else {
                 return false;
             }
+        },
+        isSold() {
+            return this.info.sale === this.info.total
         }
     },
     methods: {

+ 8 - 0
src/main/nine-space/src/styles/app.less

@@ -127,3 +127,11 @@ input:-webkit-autofill {
     width: 235px;
     height: 170px;
 }
+
+.van-tab {
+    color: @text3 !important;
+    &.van-tab--active {
+        color: @prim !important;
+        font-weight: bold;
+    }
+}

+ 9 - 18
src/main/nine-space/src/views/Home.vue

@@ -8,7 +8,7 @@
             :autoplay="{ delay: 3500 }"
             v-if="banners.length > 0"
         >
-            <swiper-slide v-for="item in products" :key="item.id">
+            <swiper-slide v-for="item in banners" :key="item.id">
                 <product-small :info="item"></product-small>
             </swiper-slide>
         </swiper>
@@ -63,29 +63,20 @@ export default {
                 message: '加载中...',
                 forbidClick: true
             });
-            this.getBanner();
             this.getProduct().then(res => {
+                this.banners = res;
+            });
+            this.getProduct('LIST').then(res => {
                 this.products = res;
             });
         },
-        getProduct(type = '') {
+        getProduct(type = 'BANNER') {
             return this.$http
-                .post(
-                    '/collection/all',
-                    {
-                        page: 0,
-                        size: 4,
-                        query: {
-                            type: type,
-                            onShelf: true,
-                            del: false
-                        },
-                        sort: 'sort,desc'
-                    },
-                    { body: 'json' }
-                )
+                .get('/collection/recommend', {
+                    type: type
+                })
                 .then(res => {
-                    return Promise.resolve(res.content);
+                    return Promise.resolve(res);
                 });
         },
         getBanner() {

+ 18 - 1
src/main/nine-space/src/views/Submit.vue

@@ -22,6 +22,7 @@
                 <div class="text2">¥{{ gas }}</div>
             </div>
             <div
+                v-if="couponList.length > 0"
                 class="info"
                 :class="{ not: !couponInfo }"
                 @click="$router.push('/couponList?collectionId=' + info.id)"
@@ -94,7 +95,8 @@ export default {
             bottom: null,
             orderId: 0,
             gas: 1,
-            inWeixin
+            inWeixin,
+            couponList: []
         };
     },
     computed: {
@@ -164,6 +166,21 @@ export default {
         this.bottom = this.$refs.bottom;
     },
     methods: {
+        getCouponList() {
+            this.$http
+                .post(
+                    '/userCoupon/all',
+                    {
+                        query: { userId: this.$store.state.userInfo.id, used: false }
+                    },
+                    { body: 'json' }
+                )
+                .then(res => {
+                    this.couponList = [...res.content].filter(item => {
+                        return this.checkTime(item) && this.checkUse(item, this.collectionId);
+                    });
+                });
+        },
         submit() {
             this.$toast.loading('加载中');
             let url = '/order/create?collectionId=' + this.$route.query.id + '&qty=1';

+ 109 - 8
src/main/nine-space/src/views/account/Authentication.vue

@@ -2,12 +2,8 @@
     <div class="container">
         <div class="title">实名认证请选择</div>
         <div class="name">账户实名认证后不能修改,<span>请使用本人身份信息完成认证</span></div>
-        <div class="box" @click="$router.push('/verified')">
-            <img
-                class="img"
-                src="https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com/image/2021-11-11-10-16-06dTNltVml.png"
-                alt=""
-            />
+        <!-- <div class="box" @click="$router.push('/verified')">
+            <img class="img" :src="require(`../../assets/renzheng-icon-geren.png`)" alt="" />
             <div class="text">个人认证</div>
             <div class="btn">下一步</div>
         </div>
@@ -19,6 +15,25 @@
             />
             <div class="text">企业认证</div>
             <div class="btn">下一步</div>
+        </div> -->
+
+        <div class="auth-list">
+            <div
+                class="auth"
+                :class="{ active: chooseIndex === index }"
+                v-for="(item, index) in authOptions"
+                :key="index"
+                @click="chooseIndex = index"
+            >
+                <img :src="chooseIndex === index ? item.imgPre : item.img" alt="" class="img1" />
+                <span class="text1">{{ item.title }}</span>
+                <img v-if="chooseIndex === index" src="../../assets/icon_gouxuan_pre.png" alt="" class="img2" />
+                <img v-else src="../../assets/icon_gouxuan.png" alt="" class="img2" />
+            </div>
+        </div>
+
+        <div class="btn-content">
+            <van-button type="primary" block round @click="next">下一步</van-button>
         </div>
     </div>
 </template>
@@ -26,10 +41,32 @@
 <script>
 export default {
     data() {
-        return {};
+        return {
+            chooseIndex: 0,
+            authOptions: [
+                {
+                    img: require(`../../assets/renzheng-icon-geren.png`),
+                    imgPre: require(`../../assets/renzheng-icon-geren-pre.png`),
+                    title: '个人认证'
+                },
+                {
+                    img: require(`../../assets/renzheng-icon-qiye.png`),
+                    imgPre: require(`../../assets/renzheng-icon-qiye-pre.png`),
+                    title: '企业认证'
+                }
+            ]
+        };
     },
     computed: {},
-    methods: {}
+    methods: {
+        next() {
+            if (this.chooseIndex) {
+                this.$router.push('/verifiedSucs');
+            } else {
+                this.$router.push('/verified');
+            }
+        }
+    }
 };
 </script>
 
@@ -90,4 +127,68 @@ export default {
         }
     }
 }
+
+.auth-list {
+    padding: 20px 30px;
+    .auth {
+        .flex();
+        position: relative;
+        background: #1f2021;
+        height: 88px;
+        padding: 0 30px;
+        border-radius: 8px;
+        .img1 {
+            width: 38px;
+            height: 38px;
+        }
+        .text1 {
+            font-size: @font2;
+            color: @text3;
+            line-height: 24px;
+            margin-left: 16px;
+        }
+        .img2 {
+            width: 24px;
+            height: 24px;
+            position: absolute;
+            right: -12px;
+            top: 50%;
+            transform: translateY(-50%);
+        }
+        * {
+            z-index: 2;
+        }
+
+        &.active {
+            background: linear-gradient(135deg, rgba(253, 251, 96, 1), rgba(255, 143, 62, 1));
+            .text1 {
+                color: #fff;
+            }
+        }
+
+        &::after {
+            content: '';
+            position: absolute;
+            left: 1px;
+            top: 1px;
+            right: 1px;
+            bottom: 1px;
+            background: #1f2021;
+            z-index: 0;
+            border-radius: 8px;
+        }
+    }
+    .auth + .auth {
+        margin-top: 30px;
+    }
+}
+.btn-content {
+    margin: 40px 48px;
+    .van-button {
+        background: linear-gradient(135deg, #fdfb60 0%, #ff8f3e 100%);
+        color: #333230;
+        font-size: @font2;
+        border-width: 0px;
+    }
+}
 </style>

+ 36 - 13
src/main/nine-space/src/views/asset/Detail.vue

@@ -69,13 +69,14 @@
 
         <div class="info">
             <div class="info-title">
-                <div class="detail-name">
+                <!-- <div class="detail-name">
                     <span>{{ info.name }}</span>
                     <img src="../../assets/svgs/png-biaotikuang-01.svg" alt="" />
                     <img src="../../assets/svgs/png-biaotikuang-02.svg" alt="" />
                     <img src="../../assets/svgs/png-biaotikuang-03.svg" alt="" />
                     <img src="../../assets/svgs/png-biaotikuang-04.svg" alt="" />
-                </div>
+                </div> -->
+                <product-title>{{ info.name }}</product-title>
             </div>
             <div class="price-line">
                 <template v-if="info.consignment">
@@ -119,13 +120,21 @@
                         <div class="page-title"><img src="../../assets/fenxiang-icon.png" alt="" />用户信息</div>
                     </template>
                     <div class="user">
-                        <van-cell class="creator">
+                        <van-cell
+                            class="creator"
+                            :to="{
+                                path: '/creatorDetail',
+                                query: {
+                                    id: info.minterId
+                                }
+                            }"
+                        >
                             <template #icon>
                                 <van-image
                                     width="40"
                                     height="40"
                                     class="user-img"
-                                    :src="info.minterAvatar"
+                                    :src="info.minterAvatar || require('../../assets/svgs/img_default_photo.svg')"
                                     fit="cover"
                                     radius="100"
                                 />
@@ -200,7 +209,7 @@
                         </div>
                     </template>
                     <div class="prive" v-if="init.length > 0">
-                        <div class="prive1" v-for="(item, index) in init" :key="index">
+                        <div class="prive1" :class="{ opened: item.opened }" v-for="(item, index) in init" :key="index">
                             <img v-if="!item.opened" class="img" :src="item.icon[0]" alt="" />
                             <div style="margin-top: 4px;" v-if="item.icon[2]">
                                 <img v-if="item.opened" class="img" :src="item.icon[2]" alt="" />
@@ -394,6 +403,7 @@ import { ImagePreview } from 'vant';
 import Vue from 'vue';
 import { Dialog } from 'vant';
 import HashCode from '../../components/product/HashCode.vue';
+import ProductTitle from '../../components/product/ProductTitle.vue';
 // install Swiper modules
 SwiperCore.use([Pagination]);
 
@@ -402,7 +412,8 @@ export default {
         Swiper,
         SwiperSlide,
         Post,
-        HashCode
+        HashCode,
+        ProductTitle
     },
 
     mixins: [asset, product],
@@ -851,11 +862,11 @@ export default {
     .van-cell__title {
         margin-left: 12px;
         .text1 {
-            font-size: 16px;
+            font-size: @font1;
             line-height: 24px;
         }
         .text2 {
-            font-size: 12px;
+            font-size: @font1;
             color: @text3;
             line-height: 22px;
         }
@@ -1057,7 +1068,7 @@ export default {
         align-items: center;
         // margin-top: 12px;
         .text1 {
-            font-size: @font2;
+            font-size: @font1;
             font-weight: bold;
             color: #ffffff;
             line-height: 28px;
@@ -1072,6 +1083,7 @@ export default {
             text-align: center;
             color: #ffffff;
             position: relative;
+            font-size: @font1;
             margin-left: 0;
             * {
                 position: relative;
@@ -1106,9 +1118,15 @@ export default {
             }
         }
         .text4 {
-            color: #fdfb60;
+            color: #ffffff;
+            line-height: 22px;
+            background: linear-gradient(135deg, #fdfb60 0%, #ff8f3e 100%);
+            -webkit-background-clip: text;
+            -webkit-text-fill-color: transparent;
             &.prim {
                 color: @text3;
+                background: transparent;
+                -webkit-text-fill-color: @text3;
             }
         }
         .text5 {
@@ -1148,12 +1166,17 @@ export default {
             background: #202122;
             color: @text3;
         }
+
+        &.opened {
+            background: @bg;
+            border: 1px solid #303133;
+        }
     }
     .prive2 {
         font-size: @font1;
         text-align: center;
         margin-left: 2px;
-        color: #303133;
+        color: @text3;
     }
     .img {
         text-align: center;
@@ -1277,8 +1300,8 @@ export default {
     }
 }
 .status {
-    font-size: @font4;
-    font-weight: bold;
+    font-size: @font3;
+    // font-weight: bold;
     color: #fdfb60;
     line-height: 24px;
 }

+ 5 - 1
src/main/nine-space/src/views/asset/GiveSearch.vue

@@ -36,7 +36,11 @@
                     <linear-com class="btn">赠送</linear-com>
                 </div>
             </div>
-            <van-empty v-if="empty" description="没有任何藏品哦~" />
+            <van-empty
+                :image="require('../../assets/kong_png_yongyoude  (1).png')"
+                v-if="empty"
+                description="没有任何藏品哦~"
+            />
         </van-list>
     </div>
 </template>

+ 6 - 2
src/main/nine-space/src/views/asset/Search.vue

@@ -10,8 +10,11 @@
                 autofocus
                 :left-icon="require('../../assets/svgs/icon-sosuo.svg')"
                 @search="getSearch"
-                @cancel="$router.go(-1)"
-            />
+            >
+                <template #action>
+                    <div @click="getSearch(search)">搜索</div>
+                </template>
+            </van-search>
         </van-sticky>
 
         <van-list
@@ -88,6 +91,7 @@ export default {
             };
         },
         getSearch(search) {
+            console.log(search);
             this.search = search;
             this.getData(true);
         }

+ 34 - 18
src/main/nine-space/src/views/creator/Detail.vue

@@ -6,8 +6,8 @@
                 <div class="userInfo-top">
                     <van-image
                         round
-                        width="79"
-                        height="79"
+                        width="70"
+                        height="70"
                         :src="info.avatar || require('../../assets/svgs/img_default_photo.svg')"
                         fit="cover"
                         @click="$router.push('/setting')"
@@ -15,7 +15,10 @@
                     <img class="rank-icon" :src="rankInfo.img1" v-if="rankInfo.img1" alt="" />
 
                     <div class="text">
-                        <div class="text1 van-ellipsis">{{ info.nickname }}</div>
+                        <div class="text1">
+                            <span class="van-ellipsis">{{ info.nickname }}</span>
+                            <img v-if="info.authStatus === 'SUCCESS'" src="../../assets/renzheng_icon_pre.png" alt="" />
+                        </div>
                         <div class="text2">
                             <span>{{ info.id }}</span>
                             <img @click="copy" src="../../assets/svgs/copy_icon.svg" alt="" />
@@ -24,7 +27,7 @@
                 </div>
 
                 <div class="sub">
-                    {{ info.intro }}
+                    {{ info.intro || '该铸造者什么都没留下~' }}
                 </div>
 
                 <div class="btns">
@@ -83,7 +86,11 @@
             <template v-for="(item, index) in list" :key="index">
                 <product-info v-model:info="list[index]"></product-info
             ></template>
-            <van-empty v-if="empty" description="没有任何收藏品哦~" />
+            <van-empty
+                v-if="empty"
+                :image="require('../../assets/kong_png_yongyoude  (1).png')"
+                description="没有任何收藏品哦~"
+            />
         </div>
     </div>
 </template>
@@ -238,12 +245,12 @@ export default {
     padding: 0 16px;
     z-index: 2;
     position: relative;
-    transform: translateY(-8px);
+    transform: translateY(-16px);
     .sub {
         font-size: 14px;
         color: @text3;
         line-height: 22px;
-        padding: 16px 0;
+        padding: 6px 0;
     }
 
     .btns {
@@ -257,13 +264,13 @@ export default {
             align-items: center;
             justify-content: flex-end;
             .text1 {
-                font-size: 16px;
+                font-size: @font2;
                 color: #ffffff;
                 line-height: 24px;
                 margin-left: 6px;
             }
             .text2 {
-                font-size: 14px;
+                font-size: @font2;
                 color: @text3;
                 line-height: 24px;
             }
@@ -271,6 +278,7 @@ export default {
 
         /deep/.van-button {
             width: 70px;
+            font-size: @font1;
             .van-icon__image {
                 display: block;
                 width: 18px;
@@ -300,32 +308,41 @@ export default {
     display: flex;
     align-items: center;
     position: relative;
+    transform: translateX(-5px);
     .van-image {
         border: 5px solid @bg;
         flex-shrink: 0;
     }
 
     .rank-icon {
-        width: 90px;
+        width: 80px;
+        height: 90px;
         display: block;
         height: auto;
         position: absolute;
-        top: -5px;
-        left: 0px;
+        top: -8px;
+        left: 1px;
     }
 
     .text {
         margin: 0 40px 0 12px;
         overflow: hidden;
         .text1 {
-            font-size: 24px;
+            font-size: @font3;
             font-weight: bold;
             color: #ffffff;
-            line-height: 34px;
+            line-height: 24px;
+            .flex();
+
+            img {
+                width: 18px;
+                height: 18px;
+                margin-left: 10px;
+            }
         }
         .text2 {
-            font-size: 16px;
-            color: #949699;
+            font-size: @font2;
+            color: @text3;
             line-height: 24px;
             display: flex;
             align-items: center;
@@ -346,13 +363,12 @@ export default {
     background-color: @bg3;
     .menu-item {
         font-size: 16px;
-        font-weight: bold;
         color: @text3;
         line-height: 24px;
         margin-right: 30px;
         &.active {
             color: @prim;
-            font-size: 18px;
+            font-weight: bold;
         }
     }
 }

+ 18 - 1
src/main/nine-space/src/views/creator/List.vue

@@ -3,6 +3,7 @@
         <van-sticky ref="top" :offset-top="bar.value.show ? 46 : 0">
             <div class="top">
                 <div class="name">铸造者</div>
+                <img src="../../assets/icon-sosuo.png" @click="$router.push('/creatorSearch')" alt="" class="search" />
             </div>
             <van-tabs v-model:active="sort" :ellipsis="false" line-width="16" line-height="2" @change="getData(true)">
                 <van-tab
@@ -28,7 +29,11 @@
             <template v-for="(item, index) in list" :key="index">
                 <creator-info v-model:info="list[index]"></creator-info>
             </template>
-            <van-empty v-if="empty" description="没有任何藏品哦~" />
+            <van-empty
+                :image="require('../../assets/kong_png_yongyoude  (1).png')"
+                v-if="empty"
+                description="没有任何藏品哦~"
+            />
         </van-list>
     </div>
 </template>
@@ -89,12 +94,20 @@ export default {
     height: 50px;
     display: flex;
     align-items: center;
+    position: relative;
     .name {
         font-size: @font3;
         font-weight: bold;
         color: @prim;
         line-height: 30px;
     }
+    .search {
+        width: 24px;
+        height: 24px;
+        position: absolute;
+        right: 16px;
+        top: 13px;
+    }
 }
 
 // /deep/.van-tab {
@@ -132,6 +145,10 @@ export default {
 /deep/.van-tabs__nav {
     padding-left: 16px;
 }
+/deep/ .van-tabs__line {
+    bottom: 20px;
+}
+
 /deep/.van-tab--active {
     .tab {
         .van-icon-arrow-up {

+ 5 - 2
src/main/nine-space/src/views/creator/Search.vue

@@ -10,8 +10,11 @@
                 autofocus
                 :left-icon="require('../../assets/svgs/icon-sosuo.svg')"
                 @search="getSearch"
-                @cancel="$router.go(-1)"
-            />
+            >
+                <template #action>
+                    <div @click="getSearch(search)">搜索</div>
+                </template>
+            </van-search>
         </van-sticky>
         <van-list
             class="list"

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

@@ -43,13 +43,7 @@
 
         <div class="info">
             <div class="info-title">
-                <div class="detail-name">
-                    <span>{{ info.name }}</span>
-                    <img src="../../assets/svgs/png-biaotikuang-01.svg" alt="" />
-                    <img src="../../assets/svgs/png-biaotikuang-02.svg" alt="" />
-                    <img src="../../assets/svgs/png-biaotikuang-03.svg" alt="" />
-                    <img src="../../assets/svgs/png-biaotikuang-04.svg" alt="" />
-                </div>
+                <product-title>{{ info.name }}</product-title>
             </div>
             <div class="name" v-if="info.salable && startTime">
                 <div class="name1">首发抢购倒计时</div>
@@ -57,7 +51,7 @@
             </div>
 
             <div class="price-line" v-if="info.salable">
-                <div class="flex1" v-if="info.number"></div>
+                <div class="text" v-if="info.number">编号 {{ info.number }}</div>
                 <div class="text" v-if="info.salable && info.total > 0">
                     <span>已售 {{ info.sale }}</span>
                     <span>剩余 {{ info.stock }}</span>
@@ -65,7 +59,7 @@
             </div>
             <!-- <div class="title">{{ info.name }}</div> -->
             <div class="info-bottom">
-                <span class="text1" v-if="info.number"> 编号 {{ info.number }} </span>
+                <!-- <span class="text1" v-if="info.number"> 编号 {{ info.number }} </span> -->
                 <!-- <van-button
           v-if="info.type !== 'DEFAULT'"
           type="primary"
@@ -100,7 +94,13 @@
                             }"
                         >
                             <template #icon>
-                                <van-image width="32" height="32" :src="info.minterAvatar" fit="cover" radius="100" />
+                                <van-image
+                                    width="32"
+                                    height="32"
+                                    :src="info.minterAvatar || require('../../assets/svgs/img_default_photo.svg')"
+                                    fit="cover"
+                                    radius="100"
+                                />
                             </template>
                             <template #title>
                                 <div class="text1">{{ info.minter }}</div>
@@ -287,13 +287,15 @@ import { ImagePreview } from 'vant';
 SwiperCore.use([Pagination]);
 import product from '../../mixins/product';
 import HashCode from '../../components/product/HashCode.vue';
+import ProductTitle from '../../components/product/ProductTitle.vue';
 
 export default {
     components: {
         Swiper,
         SwiperSlide,
         Post,
-        HashCode
+        HashCode,
+        ProductTitle
     },
     mixins: [product],
     data() {
@@ -532,7 +534,7 @@ export default {
     .price-line {
         display: flex;
         justify-content: center;
-        margin-top: 12px;
+        margin-top: 4px;
         .sub {
             flex-grow: 1;
             margin-left: 5px;
@@ -554,11 +556,18 @@ export default {
         .text {
             font-size: @font1;
             color: @text3;
-            line-height: 16px;
-            span {
+            line-height: 26px;
+            background-color: #202122;
+            border-radius: 4px;
+            padding: 0 10px;
+
+            span + span {
                 margin-left: 10px;
             }
         }
+        .text + .text {
+            margin-left: 10px;
+        }
     }
 
     .title {

+ 29 - 1
src/main/nine-space/src/views/product/List.vue

@@ -3,6 +3,7 @@
         <van-sticky ref="top" :offset-top="bar.value.show ? 46 : 0">
             <div class="top">
                 <div class="name">{{ pageName }}</div>
+                <img src="../../assets/icon-sosuo.png" alt="" @click="goSearch" class="search" />
             </div>
             <van-tabs v-model:active="sort" :ellipsis="false" line-width="16" line-height="2" @change="getData(true)">
                 <van-tab
@@ -30,7 +31,11 @@
                 <product-info v-model:info="list[index]" @update:info="init"></product-info>
             </template>
 
-            <van-empty v-if="empty" description="没有任何藏品哦~" />
+            <van-empty
+                :image="require('../../assets/kong_png_yongyoude  (1).png')"
+                v-if="empty"
+                description="没有任何藏品哦~"
+            />
         </van-list>
     </div>
 </template>
@@ -97,6 +102,16 @@ export default {
                 },
                 sort: this.sort
             };
+        },
+        goSearch() {
+            let url = '/productSearch';
+            if (this.type) {
+                url += '?type=' + this.type;
+            }
+            if (this.source) {
+                url += '?source=' + this.source;
+            }
+            this.$router.push(url);
         }
     }
 };
@@ -116,12 +131,21 @@ export default {
     height: 50px;
     display: flex;
     align-items: center;
+    position: relative;
     .name {
         font-size: @font3;
         font-weight: bold;
         color: @prim;
         line-height: 30px;
     }
+
+    .search {
+        width: 24px;
+        height: 24px;
+        position: absolute;
+        right: 16px;
+        top: 13px;
+    }
 }
 // /deep/.van-tab {
 // flex-grow: 0;
@@ -158,6 +182,10 @@ export default {
 /deep/.van-tabs__nav {
     padding-left: 16px;
 }
+/deep/ .van-tabs__line {
+    bottom: 20px;
+}
+
 /deep/.van-tab--active {
     .tab {
         .van-icon-arrow-up {

+ 10 - 7
src/main/nine-space/src/views/product/Search.vue

@@ -10,8 +10,11 @@
                 autofocus
                 :left-icon="require('../../assets/svgs/icon-sosuo.svg')"
                 @search="getSearch"
-                @cancel="$router.go(-1)"
-            />
+            >
+                <template #action>
+                    <div @click="getSearch(search)">搜索</div>
+                </template>
+            </van-search>
         </van-sticky>
         <van-list
             class="list"
@@ -49,19 +52,18 @@ export default {
             search: '',
             stiky: null,
             type: '',
+            source: '',
             minterId: '',
             url: '/collection/all'
         };
     },
-    computed: {
-        pageName() {
-            return 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;
+        }
         if (this.$route.query.minterId) {
             this.minterId = this.$route.query.minterId;
         }
@@ -72,6 +74,7 @@ export default {
                 query: {
                     onShelf: true,
                     type: this.type,
+                    source: this.source,
                     minterId: this.minterId,
                     del: false
                 },

+ 1 - 1
src/main/nine-space/src/views/user/Point.vue

@@ -42,7 +42,7 @@
                 <div class="text3">-320</div>
             </div> -->
             <lottie :options="defaultOptions" :height="50" :width="400" v-on:animCreated="handleAnimation" />
-            <van-empty description="暂时没有任何记录哦~" />
+            <van-empty :image="require('../../assets/kong_png_yongyoude  (1).png')" description="暂时没有任何记录哦~" />
         </div>
     </div>
 </template>

+ 1 - 1
src/main/nine-space/src/views/user/Wallet.vue

@@ -45,7 +45,7 @@
                 </div>
                 <div class="text3">-320</div>
             </div> -->
-            <van-empty description="暂时没有任何记录哦~" />
+            <van-empty :image="require('../../assets/kong_png_yongyoude  (1).png')" description="暂时没有任何记录哦~" />
         </div>
     </div>
 </template>