yuanyuan 3 years ago
parent
commit
831cdb615e

+ 23 - 32
src/App.vue

@@ -1,12 +1,6 @@
 <template>
-    <div
-        class="scroll-wrapper"
-        :class="[{ darkTheme: darkTheme }, routeName]"
-        id="scroll-wrapper"
-        ref="scroll"
-        @scroll="scrollEvent"
-        v-if="setting == false"
-    >
+    <div class="scroll-wrapper" :class="[{ darkTheme: darkTheme }, routeName]" id="scroll-wrapper" ref="scroll"
+        @scroll="scrollEvent" v-if="setting == false">
         <app-bar ref="bar"></app-bar>
         <router-view v-slot="{ Component }">
             <keep-alive :include="keeps">
@@ -15,13 +9,8 @@
         </router-view>
         <phone-ver></phone-ver>
         <Transition>
-            <swiper
-                v-if="showSplash"
-                pagination
-                @reachEnd="reachEnd"
-                class="appSwiper"
-                :autoplay="{ delay: 3000, disableOnInteraction: false }"
-            >
+            <swiper v-if="showSplash" pagination @reachEnd="reachEnd" class="appSwiper"
+                :autoplay="{ delay: 3000, disableOnInteraction: false }">
                 <swiper-slide>
                     <img src="https://cdn.raex.vip/image/splash1.jpg" alt="" />
                 </swiper-slide>
@@ -44,14 +33,8 @@
             </swiper>
         </Transition>
     </div>
-    <div
-        class="scroll-wrapper scroll-wrappers"
-        :class="{ darkTheme: darkTheme }"
-        id="scroll-wrapper"
-        ref="scroll"
-        @scroll="scrollEvent"
-        v-else-if="setting == true"
-    >
+    <div class="scroll-wrapper scroll-wrappers" :class="{ darkTheme: darkTheme }" id="scroll-wrapper" ref="scroll"
+        @scroll="scrollEvent" v-else-if="setting == true">
         <app-bar ref="bar"></app-bar>
         <router-view v-slot="{ Component }">
             <keep-alive :include="keeps">
@@ -60,13 +43,8 @@
         </router-view>
         <phone-ver></phone-ver>
         <Transition>
-            <swiper
-                v-if="showSplash"
-                pagination
-                @reachEnd="reachEnd"
-                class="appSwiper"
-                :autoplay="{ delay: 3000, disableOnInteraction: false }"
-            >
+            <swiper v-if="showSplash" pagination @reachEnd="reachEnd" class="appSwiper"
+                :autoplay="{ delay: 3000, disableOnInteraction: false }">
                 <swiper-slide>
                     <img src="https://cdn.raex.vip/image/splash1.jpg" alt="" />
                 </swiper-slide>
@@ -259,28 +237,37 @@ export default {
 <style lang="less" scoped>
 .scroll-content {
     box-sizing: border-box;
+
     // padding-top: 46px;
     &.index {
         background-color: #0f0f0f;
     }
 }
+
 .scroll-wrapper {
     background-color: @bg;
+
     &.digitalOrganization {
         background: #272b2e;
     }
+
     &.store {
         background-color: #0f0f0f;
     }
-    &.quotationRecord{
+
+    &.quotationRecord {
         background: #0F0F0F;
     }
+
     &.ranking {
         background: #010225;
     }
-    &.metaDomain {
+
+    &.metaDomain,
+    &.shoppingCart {
         background: #000000;
     }
+
     &.home {
         background-color: var(--bg);
     }
@@ -326,9 +313,11 @@ export default {
         background-color: #181818;
     }
 }
+
 .scroll-wrappers {
     background-color: #272b2e;
 }
+
 .appSwiper {
     position: fixed;
     width: 100vw;
@@ -344,6 +333,7 @@ export default {
     transition: opacity 0.8s ease-in-out;
     background-color: #000;
     --swiper-theme-color: #fff;
+
     .swiper-slide {
         img {
             width: 100%;
@@ -371,6 +361,7 @@ export default {
         right: 30px;
     }
 }
+
 .v-enter-active,
 .v-leave-active {
     transition: opacity 0.5s ease;

BIN
src/assets/icon-shuoming@3x.png


BIN
src/assets/icon_gouwuche@3x.png


BIN
src/assets/icon_gouxuan_huise@3x (1).png


BIN
src/assets/icon_gouxuan_pre@3x (2).png


BIN
src/assets/icon_jiage@3x (3).png


BIN
src/assets/icon_jiage@3x (4).png


+ 11 - 6
src/router/index.js

@@ -81,10 +81,8 @@ const routes = [{
                 name: 'home',
                 component: () =>
                     store.state.starPage ?
-                    import('../views/StarMap.vue') :
-                    store.state.hopeMarket ?
-                    import('../views/product/HopeMarket.vue') :
-                    import('../views/Home.vue'),
+                    import('../views/StarMap.vue') : store.state.hopeMarket ?
+                    import('../views/product/HopeMarket.vue') : import('../views/Home.vue'),
                 meta: {
                     pageType: Page.Every,
                     menuPage: true
@@ -771,6 +769,14 @@ const routes = [{
         component: () => import('../views/user/Wallet.vue'),
         meta: {}
     },
+    {
+        path: '/shoppingCart',
+        name: 'shoppingCart',
+        component: () => import('../views/user/ShoppingCart.vue'),
+        meta: {
+            menuPage: true
+        }
+    },
     {
         path: '/minePoint',
         name: 'minePoint',
@@ -897,8 +903,7 @@ const routes = [{
 
 const router = createRouter({
     history: process.env.VUE_APP_CORDOVA === 'true' ?
-        createWebHashHistory() :
-        createWebHistory(process.env.VUE_APP_PUBLIC_PATH),
+        createWebHashHistory() : createWebHistory(process.env.VUE_APP_PUBLIC_PATH),
     routes,
     scrollBehavior(to, from, savedPosition) {
         return {

+ 2 - 1
src/views/Discover.vue

@@ -440,7 +440,8 @@ export default {
             } else if (this.sort === 'domain') {
                 url = '/collection/all';
                 query = {
-                    type: 'DOMAIN'
+                    type: 'DOMAIN',
+                    onShelf: true
                 };
                 if (this.domainClassify == 1) {
                     sort = 'createdAt,desc';

+ 3 - 3
src/views/DomainName.vue

@@ -456,8 +456,8 @@ export default {
                     this.list = [];
                 });
             } else {
-                let matching = /^[A-Za-z0-9_\u4e00-\u9fa5]+$/;
-                // let matching = /^[A-Za-z0-9]+$/;
+                // let matching = /^[A-Za-z0-9_\u4e00-\u9fa5]+$/;
+                let matching = /^[A-Za-z0-9]+$/;
                 if (matching.test(value)) {
                     this.$http
                         .post('/domainOrder/search', {
@@ -483,7 +483,7 @@ export default {
                         })
                         .catch(e => {});
                 } else {
-                    this.$toast('只能由数字和字母、中文组成');
+                    this.$toast('只能由数字和字母组成');
                     this.list = [];
                 }
             }

+ 114 - 83
src/views/Mine.vue

@@ -1,20 +1,8 @@
 <template>
-    <van-pull-refresh
-        success-text="加载成功"
-        success-duration="500"
-        class="mine"
-        v-model="isLoading"
-        @refresh="onRefresh"
-    >
+    <van-pull-refresh success-text="加载成功" success-duration="500" class="mine" v-model="isLoading" @refresh="onRefresh">
         <div class="userInfo" v-if="isLogin">
-            <van-image
-                width="100%"
-                height="52vw"
-                :src="userInfo.bg ? userInfo.bg : require('@assets/creatorBg.png')"
-                loading-icon=""
-                fit="cover"
-                class="top-img"
-            />
+            <van-image width="100%" height="52vw" :src="userInfo.bg ? userInfo.bg : require('@assets/creatorBg.png')"
+                loading-icon="" fit="cover" class="top-img" />
             <!-- <template v-if="publishShow">
                 <div class="yinsi" v-if="userInfo.isPublicShow" @click="turnOffPrivacy = true">
                     <img src="@assets/icon-kaiqiyinsi@3x.png" alt="" />
@@ -29,15 +17,10 @@
             </div> -->
             <div class="userInfo-content">
                 <div class="userInfo-top">
-                    <van-image
-                        radius="100"
-                        width="150"
-                        height="150"
-                        :src="userInfo.avatar ? userInfo.avatar : require('@assets/img_default_photo.png')"
-                        fit="cover"
+                    <van-image radius="100" width="150" height="150"
+                        :src="userInfo.avatar ? userInfo.avatar : require('@assets/img_default_photo.png')" fit="cover"
                         :class="{ activeAvatar: isLogin && userInfo.useCollectionPic }"
-                        @click="$router.push('/SettingComplete')"
-                    />
+                        @click="$router.push('/SettingComplete')" />
                     <div class="text">
                         <div class="text1">
                             <span class="van-ellipsis" style="max-width: 120px">{{ userInfo.nickname }}</span>
@@ -59,11 +42,8 @@
                                 <img :src="require('@assets/icon-weidianliang@3x.png')" alt="" />
                                 <span>
                                     去点亮
-                                    <img
-                                        :src="require('@assets/icon-xialajiantou@3x (1).png')"
-                                        alt=""
-                                        class="autheds_img"
-                                    />
+                                    <img :src="require('@assets/icon-xialajiantou@3x (1).png')" alt=""
+                                        class="autheds_img" />
                                 </span>
                             </div>
                             <div class="auth-imgs autheds_con" v-else>
@@ -79,12 +59,8 @@
                     {{ info.autograph }}
                 </div>
                 <div class="sub-right" v-if="userInfo && userInfo.intro && userInfo.intro.length > 50">
-                    <img
-                        @click="showMore = !showMore"
-                        :class="{ subAll: showMore }"
-                        src="../assets/icon-xialajiantou.png"
-                        alt=""
-                    />
+                    <img @click="showMore = !showMore" :class="{ subAll: showMore }" src="../assets/icon-xialajiantou.png"
+                        alt="" />
                 </div>
 
                 <div class="btns">
@@ -104,24 +80,12 @@
             </div>
         </div>
         <div class="userInfo" v-else>
-            <van-image
-                width="100%"
-                height="52vw"
-                :src="require('@assets/creatorBg.png')"
-                loading-icon=""
-                fit="cover"
-                class="top-img"
-            />
+            <van-image width="100%" height="52vw" :src="require('@assets/creatorBg.png')" loading-icon="" fit="cover"
+                class="top-img" />
             <div class="userInfo-content">
                 <div class="userInfo-top" @click="$router.push('/login')">
-                    <van-image
-                        round
-                        width="150"
-                        height="150"
-                        :src="require('@assets/img_default_photo.png')"
-                        fit="cover"
-                        @click="$router.push('/login')"
-                    />
+                    <van-image round width="150" height="150" :src="require('@assets/img_default_photo.png')" fit="cover"
+                        @click="$router.push('/login')" />
 
                     <div class="text">
                         <div class="text1" @click="$router.push('/login')">点击登录</div>
@@ -141,6 +105,10 @@
                     <img src="@assets/icon_qianbao@3x.png" alt="" />
                     <span>我的钱包</span>
                 </div>
+                <!-- <div class="order-info" @click="$router.push('/shoppingCart')">
+                    <img src="@assets/icon_gouwuche@3x.png" alt="" />
+                    <span>购物车</span>
+                </div> -->
                 <!-- <div class="order-info" @click="$router.push('/auctionOrders')">
                 <img src="@assets/info_icon_paimaidingdan.png" alt="" />
                 <span>拍卖订单</span>
@@ -317,27 +285,15 @@
         </div>
         <template #footer>
             <div class="toiIlluminate_Three">
-                <img
-                    :src="require('@assets/icon_fenxiang_close@3x.png')"
-                    alt=""
-                    class="toiIlluminate_imgThree"
-                    @click="illuminateShow = false"
-                />
+                <img :src="require('@assets/icon_fenxiang_close@3x.png')" alt="" class="toiIlluminate_imgThree"
+                    @click="illuminateShow = false" />
             </div>
         </template>
     </van-dialog>
-    <van-popup
-        :show="turnPrivacy"
-        position="bottom"
-        :style="{ height: '260px', borderTopLeftRadius: '16px', borderTopRightRadius: '16px' }"
-    >
+    <van-popup :show="turnPrivacy" position="bottom"
+        :style="{ height: '260px', borderTopLeftRadius: '16px', borderTopRightRadius: '16px' }">
         <div class="wrapper">
-            <img
-                :src="require('@assets/icon_close@3x.png')"
-                alt=""
-                class="privacy_off_img"
-                @click="turnPrivacy = false"
-            />
+            <img :src="require('@assets/icon_close@3x.png')" alt="" class="privacy_off_img" @click="turnPrivacy = false" />
             <div class="wrapper_img">
                 <img :src="require('@assets/icon-wufachakan.png')" alt="" class="privacy_img" />
             </div>
@@ -351,18 +307,11 @@
         </div>
         <template #footer> </template>
     </van-popup>
-    <van-popup
-        :show="turnOffPrivacy"
-        position="bottom"
-        :style="{ height: '260px', borderTopLeftRadius: '16px', borderTopRightRadius: '16px' }"
-    >
+    <van-popup :show="turnOffPrivacy" position="bottom"
+        :style="{ height: '260px', borderTopLeftRadius: '16px', borderTopRightRadius: '16px' }">
         <div class="wrapper">
-            <img
-                :src="require('@assets/icon_close@3x.png')"
-                alt=""
-                class="privacy_off_img"
-                @click="turnOffPrivacy = false"
-            />
+            <img :src="require('@assets/icon_close@3x.png')" alt="" class="privacy_off_img"
+                @click="turnOffPrivacy = false" />
             <div class="wrapper_img">
                 <img :src="require('@assets/icon-kechakan@3x.png')" alt="" class="privacy_img" />
             </div>
@@ -595,6 +544,7 @@ export default {
     background: #ffffff;
     position: relative;
     border-radius: 8px;
+
     .toiIlluminate_imgOne {
         width: 96px;
         height: 100px;
@@ -602,6 +552,7 @@ export default {
         right: 0px;
         top: 0px;
     }
+
     .toiIlluminate_imgTwo {
         width: 40px;
         height: 129px;
@@ -609,6 +560,7 @@ export default {
         left: 0px;
         bottom: 0px;
     }
+
     .risk-box_id {
         padding-top: 30px;
         padding-left: 20px;
@@ -618,11 +570,13 @@ export default {
         color: #000000;
         line-height: 34px;
         position: relative;
+
         .risk-box_id_one {
             position: relative;
             z-index: 2002;
             margin-bottom: 30px;
         }
+
         .risk-box_id_two {
             width: 84px;
             height: 14px;
@@ -633,6 +587,7 @@ export default {
             bottom: 0px;
         }
     }
+
     .risk-box_tip {
         padding-left: 20px;
         margin-bottom: 12px;
@@ -642,9 +597,11 @@ export default {
         color: #939599;
         line-height: 20px;
     }
+
     .risk-box_title {
         margin-bottom: 10px;
     }
+
     .risk-box_title_con {
         font-size: 14px;
         font-family: PingFangSC-Regular, PingFang SC;
@@ -655,6 +612,7 @@ export default {
         padding-right: 20px;
         position: relative;
     }
+
     .risk-box_title_con::after {
         content: '';
         width: 6px;
@@ -665,12 +623,14 @@ export default {
         top: 6px;
         left: 18px;
     }
+
     .to_illuminate {
         margin-top: 40px;
         padding: 0px 20px;
         margin-bottom: 10px;
         position: relative;
         z-index: 2002;
+
         .to_illuminate_con {
             height: 38px;
             background: #3ab200;
@@ -683,6 +643,7 @@ export default {
             text-align: center;
         }
     }
+
     .perfect_tip {
         font-size: 12px;
         font-family: PingFangSC-Regular, PingFang SC;
@@ -693,6 +654,7 @@ export default {
         padding-bottom: 14px;
     }
 }
+
 .wrapper {
     height: 260px;
     width: calc(100vw);
@@ -701,6 +663,7 @@ export default {
     background: #ffffff;
     border-radius: 16px 16px 0px 0px;
     position: relative;
+
     .privacy_off_img {
         width: 24px;
         height: 24px;
@@ -708,15 +671,18 @@ export default {
         top: 16px;
         right: 16px;
     }
+
     .wrapper_img {
         display: flex;
         justify-content: center;
+
         .privacy_img {
             width: 64px;
             height: 64px;
             padding-top: 22px;
         }
     }
+
     .wrapper_title {
         font-size: 16px;
         font-family: PingFangSC-Medium, PingFang SC;
@@ -727,6 +693,7 @@ export default {
         margin-bottom: 8px;
         text-align: center;
     }
+
     .wrapper_tip {
         padding: 0px 16px;
         font-size: 14px;
@@ -737,16 +704,19 @@ export default {
         text-align: center;
         margin-bottom: 28px;
     }
+
     .wrapper_division {
         width: 100%;
         height: 1px;
         background: #f2f4f5;
         margin-bottom: 9px;
     }
+
     .wrapper_btn {
         padding: 0px 16px;
         display: flex;
         justify-content: space-between;
+
         .wrapper_btn_left {
             width: calc(50vw - 83.5px);
             height: 38px;
@@ -760,6 +730,7 @@ export default {
             line-height: 38px;
             text-align: center;
         }
+
         .wrapper_btn_right {
             width: calc(50vw - 83.5px);
             height: 38px;
@@ -774,16 +745,19 @@ export default {
         }
     }
 }
+
 .toiIlluminate_Three {
     display: flex;
     justify-content: center;
     padding-top: 70px;
+
     // transform: translateY(70px);
     .toiIlluminate_imgThree {
         width: 40px;
         height: 40px;
     }
 }
+
 .mine {
     background-color: #272b2e;
     padding-top: 0 !important;
@@ -812,6 +786,7 @@ export default {
             font-weight: bold;
             color: @text0;
             line-height: 24px;
+
             img {
                 width: 18px;
                 height: 18px;
@@ -842,6 +817,7 @@ export default {
 /deep/ .title {
     padding: 12px 12px 6px;
     border-bottom: 1px solid @bg3;
+
     .van-cell__title {
         span {
             font-size: @font3;
@@ -862,17 +838,20 @@ export default {
         line-height: 28px;
     }
 }
+
 .orderList {
     width: 100%;
     padding: 0px 16px;
     box-sizing: border-box;
     margin-top: 2px;
+
     .orderList_con {
         width: 100%;
         background: #2d3134;
         border-radius: 4px;
         .flex();
     }
+
     // padding: 0 12px;
     .order-info {
         padding: 16px 0 14px;
@@ -887,11 +866,13 @@ export default {
             .flex();
             width: 132px;
         }
+
         img {
             width: 28px;
             height: 28px;
             // margin-right: 8px;
         }
+
         span {
             font-size: 13px;
             font-weight: 400;
@@ -900,6 +881,7 @@ export default {
             margin-top: 4px;
         }
     }
+
     // .order-info + .order-info {
     //     // margin-left: 20px;
     //     &::before {
@@ -928,8 +910,10 @@ export default {
         }
     }
 }
+
 .orderList {
     .flex();
+
     // padding: 0 12px;
     .menu-info {
         padding: 16px 0;
@@ -943,11 +927,13 @@ export default {
             .flex();
             width: 132px;
         }
+
         img {
             width: 28px;
             height: 28px;
             margin-right: 8px;
         }
+
         span {
             font-size: 14px;
             font-weight: bold;
@@ -955,7 +941,9 @@ export default {
             line-height: 24px;
         }
     }
-    .menu-info + .menu-info {
+
+    .menu-info+.menu-info {
+
         // margin-left: 20px;
         &::before {
             content: '';
@@ -983,6 +971,7 @@ export default {
         }
     }
 }
+
 .grid-img {
     display: block;
 }
@@ -999,6 +988,7 @@ export default {
         margin-top: 4px;
         white-space: nowrap;
     }
+
     .van-grid-item__content {
         padding: 4.2vw 2.1vw;
     }
@@ -1026,12 +1016,14 @@ export default {
     height: 28px;
     // margin-right: 10px;
     display: block;
+
     /deep/.van-icon__image {
         width: 28px;
         height: 28px;
         display: block;
     }
 }
+
 .userInfo {
     padding-top: 52vw;
     // border-bottom: 1px solid @bg2;
@@ -1044,6 +1036,7 @@ export default {
         left: 0;
         z-index: 1;
         overflow: visible;
+
         &::after {
             content: '';
             position: absolute;
@@ -1056,11 +1049,13 @@ export default {
         }
     }
 }
+
 .userInfo-content {
     padding: 0 16px;
     z-index: 2;
     position: relative;
     transform: translateY(-103px);
+
     .sub {
         font-size: 12px;
         color: @text3;
@@ -1073,6 +1068,7 @@ export default {
         .flex();
         margin-top: 4px;
         justify-content: center;
+
         img {
             width: 18px;
             height: 18px;
@@ -1085,7 +1081,7 @@ export default {
         }
     }
 
-    .sub-right > div {
+    .sub-right>div {
         font-size: 12px;
         color: @text0;
         line-height: 17px;
@@ -1102,12 +1098,14 @@ export default {
             .flex-col();
             align-items: center;
             padding: 16px 0;
+
             .text1 {
                 font-size: 18px;
                 color: #fff;
                 line-height: 24px;
                 font-weight: bold;
             }
+
             .text2 {
                 font-size: 12px;
                 color: @text3;
@@ -1117,12 +1115,14 @@ export default {
         }
     }
 }
+
 .userInfo-top {
     display: flex;
     align-items: center;
     transform: translateX(-5px);
     position: relative;
     flex-direction: column;
+
     .van-image {
         // border: 5px solid @bg;
         flex-shrink: 0;
@@ -1135,6 +1135,7 @@ export default {
         display: flex;
         flex-direction: column;
         align-items: center;
+
         .text1 {
             font-size: 24px;
             font-weight: bold;
@@ -1150,6 +1151,7 @@ export default {
             //     vertical-align: middle;
             // }
         }
+
         .text2 {
             font-size: 14px;
             color: #949699;
@@ -1157,6 +1159,7 @@ export default {
             display: flex;
             align-items: center;
             margin-top: 5px;
+
             img {
                 display: block;
                 margin-left: 6px;
@@ -1165,15 +1168,18 @@ export default {
 
         .icons {
             .flex();
+
             .auth-imgs {
                 .flex();
                 transform: translateX(15px);
+
                 img {
                     width: 28px;
                     height: 28px;
                     position: relative;
                     z-index: 1;
                 }
+
                 span {
                     display: block;
                     width: 60px;
@@ -1189,11 +1195,14 @@ export default {
                     flex-shrink: 0;
                     white-space: nowrap;
                 }
+
                 &.authed_con {
                     width: 90px;
                 }
+
                 &.authed {
                     width: 90px;
+
                     span {
                         color: #418bff;
                         background: #e8f3ff;
@@ -1202,10 +1211,12 @@ export default {
                         white-space: nowrap;
                     }
                 }
+
                 &.autheds {
                     position: relative;
                     width: 90px;
                     margin-right: 5px;
+
                     span {
                         display: block;
                         width: 50px;
@@ -1217,6 +1228,7 @@ export default {
                         flex-shrink: 0;
                         white-space: nowrap;
                     }
+
                     .autheds_img {
                         position: absolute;
                         right: 0px;
@@ -1226,9 +1238,11 @@ export default {
                         height: 16px;
                     }
                 }
+
                 &.autheds_con {
                     width: 90px;
                     margin-right: 10px;
+
                     span {
                         color: #39af00;
                         background: #f3ffed;
@@ -1249,29 +1263,35 @@ export default {
         height: 20px;
     }
 }
+
 .menus {
     margin-top: 16px;
     padding: 0px 16px;
     box-sizing: border-box;
     padding-bottom: 100px;
+
     .menus_list {
         width: 100%;
         padding: 16px 0px;
         background: #2d3134;
         border-radius: 4px;
+
         .menus_list_division {
             padding: 14px 16px;
+
             .menus_list_division_con {
                 height: 1px;
                 background: rgba(255, 255, 255, 0.06);
             }
         }
+
         .menus_list_con {
             padding-left: 16px;
             padding-right: 12px;
             display: flex;
             justify-content: space-between;
             align-items: center;
+
             .menus_list_con_left {
                 display: flex;
                 font-size: 13px;
@@ -1279,18 +1299,21 @@ export default {
                 font-weight: 400;
                 color: #ffffff;
                 line-height: 24px;
+
                 .menus_list_con_left_img {
                     width: 24px;
                     height: 24px;
                     margin-right: 12px;
                 }
             }
+
             .menus_list_con_right_img {
                 width: 24px;
                 height: 24px;
             }
         }
     }
+
     // margin: 0 16px;
     // background-color: @bg;
     // border-radius: 8px;
@@ -1313,16 +1336,20 @@ export default {
 }
 
 /deep/.auth {
-    color: @text3!important;
+    color: @text3 !important;
     padding: 0 10px;
     margin-left: 6px;
+
     .van-button__content {
         .flex();
+
         .van-icon__image {
             display: block;
         }
+
         font-weight: normal;
     }
+
     height: 24px;
 }
 
@@ -1343,16 +1370,19 @@ export default {
     top: calc(var(--safe-top) + 16px);
     .flex();
     z-index: 20;
+
     img {
         width: 20px;
         height: 20px;
     }
+
     span {
         font-size: 12px;
         color: #ffffff;
         line-height: 12px;
         margin-left: 4px;
     }
+
     // width: 72px;
     // height: 24px;
     // background: #272b2e;
@@ -1370,10 +1400,12 @@ export default {
     // padding: 0 11px;
     // height: 24px;
     .flex();
+
     img {
         width: 20px;
         height: 20px;
     }
+
     span {
         font-size: 12px;
         color: #ffffff;
@@ -1384,5 +1416,4 @@ export default {
     &.not {
         background: #ff4f50;
     }
-}
-</style>
+}</style>

+ 10 - 9
src/views/Store.vue

@@ -237,14 +237,14 @@ export default {
                     name: '审核中',
                     type: 'underReview'
                 },
-                {
-                    name: '我的出价',
-                    type: 'myBid'
-                },
-                {
-                    name: '收到的报价',
-                    type: 'receiveQuotation'
-                }
+                // {
+                //     name: '我的出价',
+                //     type: 'myBid'
+                // },
+                // {
+                //     name: '收到的报价',
+                //     type: 'receiveQuotation'
+                // }
             ],
             typeOptionLike: [
                 {
@@ -902,7 +902,7 @@ export default {
 .metadomainName_list {
     padding: 16px 15px 20px 16px;
     display: flex;
-    justify-content: space-between;
+    // justify-content: space-between;
     background: #0F0F0F;
 
     .metadomainName_list_cons {
@@ -915,6 +915,7 @@ export default {
         font-size: 12px;
         font-weight: 400;
         color: rgba(147, 149, 153, 0.6);
+        margin-right: 20px;
     }
 
     .metadomainName_list_con {

+ 11 - 7
src/views/product/MetaDomain.vue

@@ -232,10 +232,14 @@ export default {
                 }
             ],
             characteristicList: [
-                {
-                    name: '中文',
-                    type: 'RIDC'
-                },
+                // {
+                //     name: '百家姓',
+                //     type: 'RIDCX'
+                // },
+                // {
+                //     name: '中文',
+                //     type: 'RIDC'
+                // },
                 {
                     name: '二位数字',
                     type: 'RIDN2'
@@ -306,15 +310,15 @@ export default {
         },
         getSearch(value) {
             this.search = this.value;
-            let matching = /^[A-Za-z0-9_\u4e00-\u9fa5]+$/;
-            // let matching = /^[A-Za-z0-9]+$/;
+            // let matching = /^[A-Za-z0-9_\u4e00-\u9fa5]+$/;
+            let matching = /^[A-Za-z0-9]+$/;
             if (matching.test(this.search)) {
                 this.getList(true);
             } else {
                 if (this.search == '') {
                     this.refreash();
                 } else {
-                    this.$toast('只能由数字和字母、中文组成');
+                    this.$toast('只能由数字和字母组成');
                 }
             }
         },

+ 513 - 0
src/views/user/ShoppingCart.vue

@@ -0,0 +1,513 @@
+<template>
+    <div class="shopping_cart">
+        <van-sticky>
+            <div class="padding-safe-top">
+                <div class="shopping_cart_top_one">
+                    <img :src="require('@assets/icon-back@3x.png')" alt="" class="shopping_cart_top_one_img"
+                        @click="$router.back()">
+                    购物车
+                    <div class="shopping_cart_top_one_btn" v-if="active == 'ALL'">管理</div>
+                    <div class="shopping_cart_top_one_btns" v-else>完成</div>
+                </div>
+                <div class="shopping_cart_top_two">
+                    <div class="shopping_cart_top_two_con" :class="{ active: active === 'ALL' }"
+                        @click="changeActive('ALL')">
+                        全部(10)
+                        <div class="shopping_cart_top_two_con_one" v-if="active == 'ALL'"></div>
+                    </div>
+                    <div class="shopping_cart_top_two_con" :class="{ active: active === 'SELLOUT' }"
+                        @click="changeActive('SELLOUT')">
+                        售罄(2)
+                        <div class="shopping_cart_top_two_con_two" v-if="active == 'SELLOUT'"></div>
+                    </div>
+                    <div class="shopping_cart_top_two_con">
+                        <img :src="require('@assets/icon-shuoming@3x.png')" alt="" class="shopping_cart_top_two_con_img">
+                        <div>说明</div>
+                    </div>
+                </div>
+            </div>
+        </van-sticky>
+        <!-- <van-pull-refresh v-if="collectionList.length == 0" success-text="加载成功" success-duration="500" class="search"
+            v-model="isLoading" :head-height="80" @refresh="onRefresh">
+            <van-list style="padding-bottom: 100px" class="box-list" v-model:loading="loading" :finished="finished"
+                finished-text="">
+                <van-empty :image="require('@assets/empty_img_asset_dark.png')" v-if="empty" description="没有任何藏品哦~" />
+            </van-list>
+        </van-pull-refresh> -->
+        <div class="box-list">
+            <div class="box-list_con" v-for="(item, index) in collectionList" :key="index" @click="settle(index)">
+                <img :src="item.check ? select : unchecked" alt="" class="box-list_con_check">
+                <van-image width="80" height="80" :src="item.img" fit="contain" radius="8" />
+                <div v-if="item.type == 'DOMAIN'" class="box-list_con_right">
+                    <div class="box-list_con_right_top">
+                        <img :src="require('@assets/png-da-zi@3x.png')" alt="" class="box-list_con_right_top_img">
+                        <div class="box-list_con_right_top_title">
+                            <div class="box-list_con_right_top_title_name"
+                                :class="active == 'SELLOUT' ? 'box-list_con_right_top_title_names' : ''">{{ item.name }}
+                            </div>
+                            <div class="box-list_con_right_top_title_time">剩余时长&nbsp;{{ item.endTime }}</div>
+                        </div>
+                    </div>
+                    <div class="box-list_con_right_bottom" v-if="active == 'ALL'">
+                        <img :src="require('@assets/icon_jiage@3x (4).png')" alt=""
+                            class="box-list_con_right_bottom_price_img">
+                        <div class="box-list_con_right_bottom_price">{{ item.price }}</div>
+                    </div>
+                    <div class="box-list_con_right_bottom_noBuy" v-else>藏品已售罄不能购买</div>
+                </div>
+                <div v-else class="box-list_con_right_two">
+                    <div class="box-list_con_right_two_name"
+                        :class="active == 'SELLOUT' ? 'box-list_con_right_two_names' : ''">{{ item.name }}</div>
+                    <div class="box-list_con_right_two_information">
+                        <van-image width="14" height="14" :src="item.myImg" fit="cover" radius="100" />
+                        <div class="box-list_con_right_two_information_name">{{ item.myName }}</div>
+                    </div>
+                    <div class="box-list_con_right_bottom" v-if="active == 'ALL'">
+                        <img :src="require('@assets/icon_jiage@3x (4).png')" alt=""
+                            class="box-list_con_right_bottom_price_img">
+                        <div class="box-list_con_right_bottom_price">{{ item.price }}</div>
+                    </div>
+                    <div class="box-list_con_right_bottom_noBuy" v-else>藏品已售罄不能购买</div>
+                </div>
+            </div>
+        </div>
+        <div class="shopping_cart_btn">
+            <div class="shopping_cart_btn_left" @click="checkAll">
+                <img :src="checkAllStatus ? select : unchecked" alt="" class="shopping_cart_btn_left_img">
+                <div>全选</div>
+            </div>
+            <div class="shopping_cart_btn_right" v-if="active == 'ALL'">
+                <div class="shopping_cart_btn_right_one">合计</div>
+                <div class="shopping_cart_btn_right_two">
+                    <img :src="require('@assets/icon_jiage@3x (3).png')" alt="" class="shopping_cart_btn_right_two_img">
+                    <div>{{ price }}</div>
+                </div>
+                <div class="shopping_cart_btn_right_three">
+                    结算<span v-if="totalSettlement != 0">({{ totalSettlement }})</span>
+                </div>
+            </div>
+            <div class="shopping_cart_btn_right" v-else>
+                <div class="shopping_cart_btn_right_three">
+                    删除<span v-if="totalSettlement != 0">({{ totalSettlement }})</span>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            active: 'ALL',
+            loading: false,
+            finished: false,
+            select: require('@assets/icon_gouxuan_pre@3x (2).png'),
+            unchecked: require('@assets/icon_gouxuan_huise@3x (1).png'),
+            collectionList: [
+                {
+                    type: 'DOMAIN',
+                    check: false,
+                    img: require('@assets/1091676369057_.pic@3x.png'),
+                    name: 'R.nft',
+                    endTime: '188天7时13分',
+                    price: 1000
+                },
+                {
+                    type: 'Collection',
+                    check: false,
+                    img: require('@assets/10561663573720_.pic_hd4@3x.png'),
+                    myImg: require('@assets/1091676369057_.pic@3x.png'),
+                    name: '游戏《百分之一》精美的礼物',
+                    myName: '持有者名称',
+                    endTime: '188天7时13分',
+                    price: 199
+                },
+            ],
+            price: 0,
+            checkAllStatus: false,
+            totalSettlement: 0,
+            page: 0
+        }
+    },
+    methods: {
+        changeActive(title) {
+            this.active = title
+        },
+        checkAll() {
+            this.checkAllStatus = !this.checkAllStatus
+            if (this.checkAllStatus) {
+                this.price = 0
+                this.totalSettlement = this.collectionList.length
+                this.collectionList.forEach(item => {
+                    item.check = true
+                    this.price += Number(item.price)
+                })
+            } else {
+                this.price = 0
+                this.totalSettlement = 0
+                this.collectionList.forEach(item => {
+                    item.check = false
+                })
+            }
+        },
+        settle(index) {
+            this.collectionList[index].check = !this.collectionList[index].check
+            let newCollectionList = this.collectionList.filter(item => item.check == true)
+            if (this.collectionList.length == newCollectionList.length) {
+                this.checkAllStatus = true
+            } else {
+                this.checkAllStatus = false
+            }
+            this.$nextTick(() => {
+                this.totalSettlement = newCollectionList.length
+                this.price = 0
+                for (let i = 0; i <= newCollectionList.length; i++) {
+                    this.price += Number(newCollectionList[i].price)
+                }
+            });
+        },
+        getList(isFirst = false) {
+            if (isFirst) {
+                this.page = 0;
+                this.collectionList = [];
+            }
+            this.loading = true;
+            this.finished = false;
+            this.empty = false;
+            let query = {
+                type: 'DOMAIN'
+            };
+            let sort = 'likes,desc';
+            let url = 'collection/all';
+            return this.$http
+                .post(
+                    url,
+                    {
+                        page: this.page,
+                        size: 20,
+                        query: query,
+                        sort: sort,
+                        search: this.search
+                    },
+                    { body: 'json' }
+                )
+                .then(res => {
+                    if (res.first) {
+                        this.collectionList = [];
+                        this.page = 0;
+                    }
+                    this.collectionList = [...this.collectionList, ...res.content];
+                    this.empty = res.empty;
+                    this.loading = false;
+                    this.finished = res.last;
+                    if (!this.finished) {
+                        this.page = this.page + 1;
+                    }
+                });
+        },
+        onRefresh() {
+            this.getList(true).then(() => {
+                this.isLoading = false;
+            });
+        }
+    }
+}
+</script>
+<style lang="less" scoped>
+.shopping_cart {
+    background: #000000;
+
+    .shopping_cart_top_one {
+        height: 50px;
+        position: relative;
+        font-size: 16px;
+        font-weight: bold;
+        color: #FFFFFF;
+        line-height: 50px;
+        text-align: center;
+        background: #161414;
+
+        .shopping_cart_top_one_img {
+            width: 24px;
+            height: 24px;
+            position: absolute;
+            top: 13px;
+            left: 16px;
+        }
+
+        .shopping_cart_top_one_btn {
+            font-size: 14px;
+            font-weight: 400;
+            color: #FFFFFF;
+            line-height: 24px;
+            position: absolute;
+            top: 13px;
+            right: 16px;
+        }
+
+        .shopping_cart_top_one_btns {
+            font-size: 14px;
+            font-weight: 400;
+            color: #00FE1E;
+            line-height: 24px;
+            position: absolute;
+            top: 13px;
+            right: 16px;
+        }
+    }
+
+    .shopping_cart_top_two {
+        height: 50px;
+        background: #161414;
+        padding: 0px 16px;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+
+        .shopping_cart_top_two_con {
+            display: flex;
+            align-items: center;
+            font-size: 14px;
+            font-weight: 400;
+            color: #939599;
+            position: relative;
+        }
+
+        .shopping_cart_top_two_con_one {
+            width: 28px;
+            height: 2px;
+            background: #00FE1E;
+            border-radius: 2px;
+            position: absolute;
+            left: 12px;
+            bottom: -5px;
+        }
+
+        .shopping_cart_top_two_con_two {
+            width: 28px;
+            height: 2px;
+            background: #00FE1E;
+            border-radius: 2px;
+            position: absolute;
+            left: 9px;
+            bottom: -5px;
+        }
+
+        .shopping_cart_top_two_con_img {
+            width: 18px;
+            height: 18px;
+            margin-right: 4px;
+        }
+
+        .active {
+            font-weight: 500;
+            color: #00FE1E;
+        }
+    }
+
+    .search {
+        padding-bottom: 50px;
+        margin-top: 16px;
+        z-index: 1;
+        position: relative;
+    }
+
+    .box-list {
+        width: 100%;
+        padding: 0px 16px;
+        box-sizing: border-box;
+        padding-bottom: 50px;
+        margin-top: 16px;
+
+        .box-list_con {
+            padding: 10px;
+            box-sizing: border-box;
+            background: #161414;
+            border-radius: 8px;
+            margin-bottom: 16px;
+            display: flex;
+            align-items: center;
+
+            .box-list_con_check {
+                width: 24px;
+                height: 24px;
+                margin-right: 10px;
+            }
+
+            .box-list_con_right {
+                margin-left: 10px;
+
+                .box-list_con_right_top {
+                    display: flex;
+                    padding-top: 4px;
+                    align-items: center;
+                    margin-bottom: 15px;
+
+                    .box-list_con_right_top_img {
+                        width: 10px;
+                        height: 38px;
+                        margin-right: 6px;
+                    }
+
+                    .box-list_con_right_top_title_name {
+                        width: calc(47vw);
+                        font-size: 14px;
+                        font-weight: bold;
+                        color: #FFFFFF;
+                        line-height: 24px;
+                        margin-bottom: 2px;
+                        overflow: hidden;
+                        white-space: nowrap;
+                        text-overflow: ellipsis;
+                    }
+
+                    .box-list_con_right_top_title_names {
+                        color: #939599;
+                    }
+
+                    .box-list_con_right_top_title_time {
+                        max-width: 114px;
+                        height: 17px;
+                        background: #1E1E1E;
+                        border-radius: 2px;
+                        text-align: center;
+                        font-size: 10px;
+                        font-weight: 400;
+                        color: #939599;
+                        line-height: 17px;
+                    }
+                }
+            }
+
+            .box-list_con_right_two {
+                margin-left: 10px;
+
+                .box-list_con_right_two_name {
+                    width: calc(52vw);
+                    font-size: 14px;
+                    font-weight: bold;
+                    color: #FFFFFF;
+                    line-height: 24px;
+                    margin-bottom: 4px;
+                    overflow: hidden;
+                    white-space: nowrap;
+                    text-overflow: ellipsis;
+                }
+
+                .box-list_con_right_two_names {
+                    color: #939599;
+                }
+
+                .box-list_con_right_two_information {
+                    display: flex;
+                    align-items: center;
+                    margin-bottom: 13px;
+
+                    .box-list_con_right_two_information_name {
+                        margin-left: 3px;
+                        font-size: 10px;
+                        font-weight: 400;
+                        color: #939599;
+                        line-height: 17px;
+                    }
+                }
+            }
+
+            .box-list_con_right_bottom {
+                display: flex;
+
+                .box-list_con_right_bottom_price_img {
+                    width: 8px;
+                    height: 8px;
+                    margin-right: 1px;
+                    padding-top: 5px;
+                }
+
+                .box-list_con_right_bottom_price {
+                    font-size: 20px;
+                    font-family: OSP-DIN, OSP;
+                    font-weight: normal;
+                    color: #00FE1E;
+                    line-height: 14px;
+                }
+            }
+
+            .box-list_con_right_bottom_noBuy {
+                font-size: 10px;
+                font-weight: 400;
+                color: #939599;
+                line-height: 17px;
+            }
+        }
+    }
+
+    .shopping_cart_btn {
+        width: 100%;
+        position: fixed;
+        bottom: 0;
+        height: 56px;
+        padding: 0px 16px;
+        box-sizing: border-box;
+        background: #161414;
+        box-shadow: 0px -1px 2px 0px rgba(0, 0, 0, 0.04);
+        display: flex;
+        justify-content: space-between;
+
+        .shopping_cart_btn_left {
+            display: flex;
+            align-items: center;
+            font-size: 14px;
+            color: #939599;
+
+            .shopping_cart_btn_left_img {
+                width: 24px;
+                height: 24px;
+                margin-right: 2px;
+            }
+        }
+
+        .shopping_cart_btn_right {
+            display: flex;
+            align-items: center;
+
+            .shopping_cart_btn_right_one {
+                font-size: 14px;
+                font-weight: bold;
+                color: #FFFFFF;
+                margin-right: 5px;
+            }
+
+            .shopping_cart_btn_right_two {
+                font-size: 32px;
+                font-family: OSP-DIN, OSP;
+                font-weight: normal;
+                color: #00FE1E;
+                display: flex;
+                margin-right: 11px;
+
+                .shopping_cart_btn_right_two_img {
+                    width: 11px;
+                    height: 11px;
+                    padding-top: 16px;
+                }
+            }
+
+            .shopping_cart_btn_right_three {
+                width: 120px;
+                height: 38px;
+                background: #00FE1E;
+                border-radius: 22px;
+                font-size: 16px;
+                font-weight: bold;
+                color: #0B0B0B;
+                line-height: 38px;
+                text-align: center;
+
+                span {
+                    font-weight: 400;
+                    color: rgba(0, 0, 0, 0.8);
+                }
+            }
+        }
+    }
+}</style>