yuanyuan 2 years ago
parent
commit
bad50f1116

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


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


+ 2 - 0
src/styles/theme.less

@@ -1,6 +1,7 @@
 :root {
     --bg: #f5f7fa;
     --bg2: #fff;
+    --bg3: #F5F7FA;
     --border: #f5f7fa;
     --btnplaintBg: #f5f7fa;
     --btnplaintBorder: #f5f7fa;
@@ -25,6 +26,7 @@
 .darkTheme {
     --bg: #000000;
     --bg2: #1c1c1e;
+    --bg3: #2D2D2F;
     --border: #ffffff10;
     --btnplaintBg: #ffffff10;
     --btnplaintBorder: rgba(255, 255, 255, 0);

+ 86 - 89
src/views/DomainName.vue

@@ -1,47 +1,28 @@
 <template>
     <div :class="action != 1 ? 'meta_domain_nameOne' : 'meta_domain_nameTwo'" class="meta_domain_name">
         <van-sticky ref="top" :offset-top="action == 1 ? '' : '0'" :class="action == 3 ? 'learn_more_bg' : ''">
-            <div
-                :class="action == 3 ? 'meta_domain_name_tops' : ''"
-                class="meta_domain_name_top"
-                :style="{ height: heightNumber }"
-            >
+            <div :class="action == 3 ? 'meta_domain_name_tops' : ''" class="meta_domain_name_top"
+                :style="{ height: heightNumber }">
                 <div class="meta_domain_name_top_one" v-if="action == 1">
-                    <img
-                        :src="require('@assets/icon_fanhui@3x (1).png')"
-                        alt=""
-                        class="meta_domain_name_top_img_left"
-                        @click="$router.push('/home')"
-                    />
+                    <img :src="require('@assets/icon_fanhui@3x (1).png')" alt="" class="meta_domain_name_top_img_left"
+                        @click="$router.push('/home')" />
                     <div class="meta_domain_name_top_one_con">
-                        <div
-                            class="meta_domain_name_top_one_con_tip meta_domain_name_top_one_con_tips"
-                            @click="$router.push('/metaDomain')"
-                        >
-                            <img
-                                :src="require('@assets/icon_shangchang@3x.png')"
-                                alt=""
-                                class="meta_domain_name_top_img_right"
-                            />
+                        <div class="meta_domain_name_top_one_con_tip meta_domain_name_top_one_con_tips"
+                            @click="$router.push('/metaDomain')">
+                            <img :src="require('@assets/icon_shangchang@3x.png')" alt=""
+                                class="meta_domain_name_top_img_right" />
                             <div>市场</div>
                         </div>
                         <div class="meta_domain_name_top_one_con_tip" @click="$router.push('/ranking')">
-                            <img
-                                :src="require('@assets/icon_paihang@3x.png')"
-                                alt=""
-                                class="meta_domain_name_top_img_right"
-                            />
+                            <img :src="require('@assets/icon_paihang@3x.png')" alt=""
+                                class="meta_domain_name_top_img_right" />
                             <div>排行</div>
                         </div>
                     </div>
                 </div>
                 <div class="meta_domain_name_top_ones" v-if="action != 1">
-                    <img
-                        :src="require('@assets/icon_fanhui@3x (1).png')"
-                        alt=""
-                        class="meta_domain_name_top_img_left"
-                        @click="fallback"
-                    />
+                    <img :src="require('@assets/icon_fanhui@3x (1).png')" alt="" class="meta_domain_name_top_img_left"
+                        @click="fallback" />
                 </div>
                 <div class="meta_domain_name_top_two" v-if="action == 1">
                     <img :src="require('@assets/png-.NFT@3x.png')" alt="" class="meta_domain_name_top_two_img" />
@@ -60,36 +41,29 @@
                             <div class="meta_domain_name_top_three_con_left_two">.nft</div>
                         </div>
                         <div class="meta_domain_name_top_three_con_right">
-                            <img
-                                :src="require('@assets/icon/search@3x (2).png')"
-                                alt=""
-                                class="meta_domain_name_top_three_con_right_img"
-                            />
+                            <img :src="require('@assets/icon/search@3x (2).png')" alt=""
+                                class="meta_domain_name_top_three_con_right_img" />
                         </div>
                     </div>
                     <div class="meta_domain_name_top_three_con" v-if="action == 2">
                         <div class="meta_domain_name_top_three_con_left">
-                            <van-search
-                                v-model="value"
-                                :maxlength="16"
-                                placeholder="请输入元域名"
-                                left-icon=""
-                                :clearable="false"
-                                @update:model-value="onInput"
-                            />
+                            <van-search v-model="value" :maxlength="16" placeholder="请输入元域名" left-icon="" :clearable="false"
+                                @update:model-value="onInput" />
                             <!-- <div class="meta_domain_name_top_three_con_left_one">请输入元域名</div> -->
                             <div class="meta_domain_name_top_three_con_left_two">.nft</div>
                         </div>
                         <div class="meta_domain_name_top_three_con_right">
-                            <img
-                                :src="require('@assets/icon/search@3x (2).png')"
-                                alt=""
-                                class="meta_domain_name_top_three_con_right_img"
-                            />
+                            <img :src="require('@assets/icon/search@3x (2).png')" alt=""
+                                class="meta_domain_name_top_three_con_right_img" />
                         </div>
                     </div>
                 </div>
-                <van-notice-bar speed="30" v-if="action == 1">
+                <van-notice-bar speed="30" v-if="action == 1" class="van-notice-bar-one">
+                    <div v-for="(item, index) in domainLists" :key="index" class="domainName_list_cons">
+                        恭喜<span>“{{ item.nickName }}”</span>艺术家通过元域名市场购买获得<span>“{{ item.domainName }}”</span>
+                    </div>
+                </van-notice-bar>
+                <van-notice-bar speed="30" v-if="action == 1" class="van-notice-bar-two">
                     <div v-for="(item, index) in domainList" :key="index" class="domainName_list_con">
                         <van-image :src="item.userAvatar" class="domainName_list_con_img" fit="cover" />
                         <div>{{ item.domainName }}&nbsp;&nbsp;已被购买</div>
@@ -100,21 +74,11 @@
                     <div class="learn_more_tip">WHAT IS RID?</div>
                 </div>
                 <div class="meta_domain_name_top_bg" :style="{ height: heightBgNumber }"></div>
-                <van-image
-                    :src="require('@assets/png-bg@3x (3).png')"
-                    width="100%"
-                    height="500px"
-                    fit="fill"
-                    class="meta_domain_name_top_bgimg"
-                    :style="{ transform: 'translateY(' + moreHeight + ')' }"
-                />
+                <van-image :src="require('@assets/png-bg@3x (3).png')" width="100%" height="500px" fit="fill"
+                    class="meta_domain_name_top_bgimg" :style="{ transform: 'translateY(' + moreHeight + ')' }" />
                 <div class="technical_support" v-if="action != 3">
                     <div class="technical_support_con">
-                        <img
-                            :src="require('@assets/logo-huachulian@3x.png')"
-                            alt=""
-                            class="technical_support_img_left"
-                        />
+                        <img :src="require('@assets/logo-huachulian@3x.png')" alt="" class="technical_support_img_left" />
                         <!-- <img
                             :src="require('@assets/logo-mayilianjie@3x.png')"
                             alt=""
@@ -124,13 +88,8 @@
                 </div>
             </div>
         </van-sticky>
-        <van-image
-            :src="require('@assets/png-gengduo@3x.png')"
-            width="100%"
-            fit="fill"
-            class="learn_more_img"
-            v-if="action == 3"
-        />
+        <van-image :src="require('@assets/png-gengduo@3x.png')" width="100%" fit="fill" class="learn_more_img"
+            v-if="action == 3" />
         <!-- <div class="learn_more_list" v-if="action == 3">
             <div class="learn_more_list_con">
                 <div class="learn_more_list_one">
@@ -286,11 +245,7 @@
         <div class="meta_domain_name_list" v-if="action == 2">
             <div class="meta_domain_name_list_con" v-for="(item, index) in list" :key="item.id">
                 <div class="meta_domain_name_list_con_left">
-                    <img
-                        :src="item.sold ? registered : unregistered"
-                        alt=""
-                        class="meta_domain_name_list_con_left_img"
-                    />
+                    <img :src="item.sold ? registered : unregistered" alt="" class="meta_domain_name_list_con_left_img" />
                     <div>
                         <div class="meta_domain_name_list_con_left_one">{{ item.domain }}</div>
                         <div class="meta_domain_name_list_con_left_con">
@@ -303,11 +258,9 @@
                 </div>
                 <div class="meta_domain_name_list_con_right" @click="buy(index)">
                     <div class="meta_domain_name_list_con_right_one">{{ item.sold ? '超链' : '购买' }}</div>
-                    <div
-                        :class="
-                            item.sold ? 'meta_domain_name_list_con_right_three' : 'meta_domain_name_list_con_right_two'
-                        "
-                    ></div>
+                    <div :class="
+                        item.sold ? 'meta_domain_name_list_con_right_three' : 'meta_domain_name_list_con_right_two'
+                    "></div>
                 </div>
             </div>
         </div>
@@ -377,6 +330,7 @@ export default {
             domain: true,
             value: '',
             domainList: [],
+            domainLists: [],
             list: [],
             unregistered: require('@assets/png-da-lv@3x.png'),
             registered: require('@assets/png-da-zi@3x.png'),
@@ -410,7 +364,18 @@ export default {
             .then(res => {
                 this.domainList = res.content;
             })
-            .catch(e => {});
+            .catch(e => { });
+        this.$http
+            .post(
+                '/domainOrder/newestOrder'
+            )
+            .then(res => {
+                res.forEach(item => {
+                    item.domainName = item.domainName.split(' ')[1].trim();
+                });
+                this.domainLists = res;
+            })
+            .catch(e => { });
     },
     watch: {
         value() {
@@ -481,7 +446,7 @@ export default {
                                 this.list = this.list.concat(res);
                             }
                         })
-                        .catch(e => {});
+                        .catch(e => { });
                 } else {
                     this.$toast('只能由数字和字母组成');
                     this.list = [];
@@ -742,6 +707,7 @@ export default {
         }
 
         .meta_domain_name_top_one_con {
+
             // display: flex;
             .meta_domain_name_top_one_con_tip {
                 margin-left: 20px;
@@ -751,6 +717,7 @@ export default {
                 line-height: 17px;
                 text-align: center;
             }
+
             .meta_domain_name_top_one_con_tips {
                 margin-bottom: 12px;
             }
@@ -776,6 +743,7 @@ export default {
             margin-bottom: 54px;
             z-index: 3;
             margin-top: -11px;
+
             .meta_domain_name_top_two_img {
                 width: 220px;
                 height: 100px;
@@ -875,7 +843,7 @@ export default {
         }
 
         /deep/ .van-notice-bar {
-            margin-top: 60px;
+            // margin-top: 60px;
             position: relative;
             z-index: 3;
             background: none !important;
@@ -889,16 +857,36 @@ export default {
                 height: 26px !important;
             }
 
+            .domainName_list_cons {
+                padding: 0px 12px;
+                font-size: 11px;
+                font-weight: 400;
+                background: linear-gradient(90deg,
+                        rgba(226, 116, 249, 0.9) 0%,
+                        rgba(226, 116, 249, 0.4) 48%,
+                        rgba(255, 255, 255, 0.1) 100%);
+                border-radius: 19px;
+                border: 1px solid #f4aeff;
+                backdrop-filter: blur(4px);
+                box-sizing: border-box;
+                display: flex;
+                align-items: center;
+                margin-right: 16px;
+                text-align: center;
+
+                span {
+                    color: #00FE1E;
+                }
+            }
+
             .domainName_list_con {
                 padding: 0px 12px;
                 font-size: 11px;
                 font-weight: 400;
-                background: linear-gradient(
-                    90deg,
-                    rgba(226, 116, 249, 0.9) 0%,
-                    rgba(226, 116, 249, 0.4) 48%,
-                    rgba(255, 255, 255, 0.1) 100%
-                );
+                background: linear-gradient(90deg,
+                        rgba(226, 116, 249, 0.9) 0%,
+                        rgba(226, 116, 249, 0.4) 48%,
+                        rgba(255, 255, 255, 0.1) 100%);
                 border-radius: 19px;
                 border: 1px solid #f4aeff;
                 backdrop-filter: blur(4px);
@@ -916,6 +904,14 @@ export default {
             }
         }
 
+        .van-notice-bar-one {
+            margin-top: 43px;
+        }
+
+        .van-notice-bar-two {
+            margin-top: 16px;
+        }
+
         .learn_more {
             padding-top: calc(var(--safe-top) + 52px);
             text-align: center;
@@ -1158,6 +1154,7 @@ export default {
 /deep/.van-sticky--fixed {
     background-color: transparent;
 }
+
 /deep/ .learn_more_bg {
     background: linear-gradient(90deg, #1b0222 0%, #23042e 100%, #23042e 100%) !important;
 }

+ 100 - 100
src/views/Home.vue

@@ -1,37 +1,19 @@
 <template>
-    <van-pull-refresh
-        class="home filter-gray"
-        success-text="加载成功"
-        success-duration="500"
-        v-model="isLoading"
-        :head-height="80"
-        @refresh="onRefresh"
-        pageType="light"
-    >
+    <van-pull-refresh class="home filter-gray" success-text="加载成功" success-duration="500" v-model="isLoading"
+        :head-height="80" @refresh="onRefresh" pageType="light">
         <div class="filter-bg" :style="{ backgroundImage: `url(${bgImg})` }"></div>
         <div class="welcom">
             <div class="left">
                 <div class="text1">WELCOME</div>
                 <div class="text2" :class="{ text3: isLogin }">{{ isLogin ? `${userInfo.nickname}!` : '探索者!' }}</div>
             </div>
-            <van-image
-                width="38"
-                height="38"
-                :radius="32"
-                :class="{ activeAvatar: isLogin && userInfo.useCollectionPic }"
-                :src="isLogin ? userInfo.avatar : require('@assets/img_default_photo.png')"
-            >
+            <van-image width="38" height="38" :radius="32" :class="{ activeAvatar: isLogin && userInfo.useCollectionPic }"
+                :src="isLogin ? userInfo.avatar : require('@assets/img_default_photo.png')">
             </van-image>
         </div>
 
         <div class="card swiper-card">
-            <swiper
-                pagination
-                :space-between="16"
-                class="mySwiper"
-                :autoplay="{ delay: 3500 }"
-                v-if="banners.length > 0"
-            >
+            <swiper pagination :space-between="16" class="mySwiper" :autoplay="{ delay: 3500 }" v-if="banners.length > 0">
                 <swiper-slide v-for="item in banners" :key="item.id">
                     <product-small :info="item"> </product-small>
                 </swiper-slide>
@@ -39,14 +21,15 @@
             <!-- <img src="@assets/topbg1.png" class="swiper-bg" alt="" /> -->
         </div>
 
-        <img
-            v-if="fuActivity"
-            src="@assets/check/png-rukou.png"
-            alt=""
-            class="fuka animate__animated animate__infinite animate__tada"
-            @click="goCheck"
-        />
-
+        <img v-if="fuActivity" src="@assets/check/png-rukou.png" alt=""
+            class="fuka animate__animated animate__infinite animate__tada" @click="goCheck" />
+        <van-notice-bar :scrollable="false">
+            <img :src="darkTheme ? announcementBlack : announcementWhite" alt="" class="van-notice-bar-img">
+            <van-swipe vertical class="notice-swipe" :autoplay="2000" :touchable="false" :show-indicators="false">
+                <van-swipe-item v-for="(item, index) in domainList" :key="index">恭喜<span>“{{ item.nickName
+                }}”</span>艺术家通过元域名市场购买获得<span>“{{ item.domainName }}”</span></van-swipe-item>
+            </van-swipe>
+        </van-notice-bar>
         <div class="card news">
             <div class="news-title" @click="$router.push('/newsList')">
                 <div class="news-left">
@@ -102,26 +85,16 @@
                 </div>
                 <img class="more" src="@assets/icon_inter.png" alt="" />
             </div>
-            <activity-record
-                v-for="(item, index) in acitivities"
-                :key="index"
-                v-model:info="acitivities[index]"
-                type="light"
-            >
+            <activity-record v-for="(item, index) in acitivities" :key="index" v-model:info="acitivities[index]"
+                type="light">
             </activity-record>
         </div>
 
         <div class="card-list">
-            <div
-                class="card card-hot"
-                :style="{
-                    order: index < 1 ? index + 1 : index + 2,
-                    display: item.name === '新手引导' ? 'none' : 'block'
-                }"
-                v-for="(item, index) in hots"
-                :key="index"
-                @click="goNext(item)"
-            >
+            <div class="card card-hot" :style="{
+                order: index < 1 ? index + 1 : index + 2,
+                display: item.name === '新手引导' ? 'none' : 'block'
+            }" v-for="(item, index) in hots" :key="index" @click="goNext(item)">
                 <van-image :src="item.pic" fit="cover" width="100%" height="110vw" />
                 <div class="hot-top" v-if="index < 2">
                     <div class="text1">{{ item.name }}</div>
@@ -163,35 +136,23 @@
                     <div class="application_market_con_text">应用市场</div>
                     <div class="application_market_con_list">
                         <div @click="download" class="application_market_con_list_con">
-                            <img
-                                :src="require('@assets/10561663573720_.pic_hd2@3x.png')"
-                                alt=""
-                                class="application_market_con_list_con_img"
-                            />
+                            <img :src="require('@assets/10561663573720_.pic_hd2@3x.png')" alt=""
+                                class="application_market_con_list_con_img" />
                             <div class="application_market_con_list_con_text">绿洲电竞链</div>
                         </div>
                         <div @click="wait" class="application_market_con_list_con">
-                            <img
-                                :src="require('@assets/10561663573720_.pic_hd3@3x.png')"
-                                alt=""
-                                class="application_market_con_list_con_img"
-                            />
+                            <img :src="require('@assets/10561663573720_.pic_hd3@3x.png')" alt=""
+                                class="application_market_con_list_con_img" />
                             <div class="application_market_con_list_con_text">元宇宙农业</div>
                         </div>
                         <div @click="organization(1)" class="application_market_con_list_con">
-                            <img
-                                :src="require('@assets/10561663573720_.pic_hd5@3x.png')"
-                                alt=""
-                                class="application_market_con_list_con_img"
-                            />
+                            <img :src="require('@assets/10561663573720_.pic_hd5@3x.png')" alt=""
+                                class="application_market_con_list_con_img" />
                             <div class="application_market_con_list_con_text">艺术机构</div>
                         </div>
                         <div @click="organization(2)" class="application_market_con_list_con">
-                            <img
-                                :src="require('@assets/1091676369057_.pic@3x.png')"
-                                alt=""
-                                class="application_market_con_list_con_img"
-                            />
+                            <img :src="require('@assets/1091676369057_.pic@3x.png')" alt=""
+                                class="application_market_con_list_con_img" />
                             <div class="application_market_con_list_con_text">数字展览</div>
                         </div>
                     </div>
@@ -229,12 +190,8 @@
         </div> -->
         <div class="listSwiper-title">最新数字艺术品</div>
         <div class="listSwiper">
-            <product-large
-                v-for="(item, index) in products"
-                :key="index"
-                v-model:info="products[index].obj"
-                :type="item.type"
-            >
+            <product-large v-for="(item, index) in products" :key="index" v-model:info="products[index].obj"
+                :type="item.type">
             </product-large>
 
             <div class="tips-content">
@@ -242,11 +199,8 @@
                 <a target="_blank" href="https://beian.miit.gov.cn" class="tips1">
                     <span> 粤ICP备2021166549号-1 </span>
                 </a>
-                <a
-                    class="tips2"
-                    target="_blank"
-                    href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=44030302002216"
-                >
+                <a class="tips2" target="_blank"
+                    href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=44030302002216">
                     <img src="@assets/icon.png" alt="" />
                     <p>粤公网安备 44030302002216号</p>
                 </a>
@@ -311,7 +265,7 @@ export default {
         ActivityRecord
     },
     computed: {
-        ...mapState(['userInfo']),
+        ...mapState(['userInfo', 'darkTheme']),
         isNewCollections() {
             let products = [...this.products];
             let flag = false;
@@ -355,6 +309,9 @@ export default {
             hideMore: false,
             hotUsers: [],
             HotCollects: [],
+            domainList: [],
+            announcementWhite: require('@assets/icon-gonggao@3x.png'),
+            announcementBlack: require('@assets/icon-gonggaohei@3x.png'),
             acitivities: [],
             fuActivity: false,
             domainSwitch: false
@@ -383,6 +340,15 @@ export default {
                 ''
             );
         });
+        this.$http.post('/domainOrder/newestOrder').then(res => {
+            res.forEach(item => {
+                item.domainName = item.domainName.split(' ')[1].trim();
+                if(item.nickName.length > 4){
+                    item.nickName = item.nickName.slice(0, 4) + '...';
+                }
+            });
+            this.domainList = res;
+        });
     },
     methods: {
         download() {
@@ -417,22 +383,22 @@ export default {
                 (inIos
                     ? Promise.resolve()
                     : this.$dialog
-                          .confirm({
-                              title: 'RAEX绿洲服务协议和隐私政策',
-                              message: `在您使用我的各项服务之前,请务必审慎阅读、充分理解<a href="javascript:void(0)" onclick="goFetch('/agreement?page=service')" >《用户隐私协议》</a>、<a href="javascript:void(0)" onclick="goFetch('/agreement')" >《隐私政策》</a>的条款。并且我们会申请获取您的设备信息,以向您提供安全风控服务。同时您应特别注意前述协议中免除或者限制我们责任的条款、对您权利进行限制的条款。如您已详细阅读并同意RAEX宇宙用户协议、隐私政策,请点击【同意并继续】开始使用我们的服务。`,
-                              confirmButtonText: '同意并继续',
-                              cancelButtonText: '不同意',
-                              allowHtml: true
-                          })
-                          .then(() => {
-                              return this.$dialog.confirm({
-                                  title: '温馨提示',
-                                  message:
-                                      '收集个人信息为我们向您提供服务所必须哦。我们仅会将您的个人信息用于为您提供服务,若不同意此协议,我们将无法为您提供服务并退出应用。',
-                                  confirmButtonText: '同意',
-                                  cancelButtonText: '不同意'
-                              });
-                          })
+                        .confirm({
+                            title: 'RAEX绿洲服务协议和隐私政策',
+                            message: `在您使用我的各项服务之前,请务必审慎阅读、充分理解<a href="javascript:void(0)" onclick="goFetch('/agreement?page=service')" >《用户隐私协议》</a>、<a href="javascript:void(0)" onclick="goFetch('/agreement')" >《隐私政策》</a>的条款。并且我们会申请获取您的设备信息,以向您提供安全风控服务。同时您应特别注意前述协议中免除或者限制我们责任的条款、对您权利进行限制的条款。如您已详细阅读并同意RAEX宇宙用户协议、隐私政策,请点击【同意并继续】开始使用我们的服务。`,
+                            confirmButtonText: '同意并继续',
+                            cancelButtonText: '不同意',
+                            allowHtml: true
+                        })
+                        .then(() => {
+                            return this.$dialog.confirm({
+                                title: '温馨提示',
+                                message:
+                                    '收集个人信息为我们向您提供服务所必须哦。我们仅会将您的个人信息用于为您提供服务,若不同意此协议,我们将无法为您提供服务并退出应用。',
+                                confirmButtonText: '同意',
+                                cancelButtonText: '不同意'
+                            });
+                        })
                 )
                     .then(() => {
                         window.localStorage.setItem('AppTips', '1');
@@ -441,7 +407,7 @@ export default {
                             window.cordova.plugins.UmengPlugin.init(deviceToken => {
                                 console.log('deviceToken=' + deviceToken);
                             });
-                        } catch (e) {}
+                        } catch (e) { }
                     })
                     .catch(() => {
                         navigator.app.exitApp();
@@ -471,7 +437,7 @@ export default {
                             window.cordova.plugins.UmengPlugin.init(deviceToken => {
                                 console.log('deviceToken=' + deviceToken);
                             });
-                        } catch (e) {}
+                        } catch (e) { }
                     })
                     .catch(() => {
                         navigator.app.exitApp();
@@ -720,6 +686,40 @@ export default {
     background-color: #181818;
 }
 
+/deep/ .van-notice-bar {
+    background: var(--bg2);
+    margin: 16px 16px 0;
+    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
+    border-radius: 16px;
+    padding: 0px 10px;
+
+    .van-notice-bar__content {
+        display: flex;
+        align-items: center;
+    }
+
+    .van-notice-bar-img {
+        width: 18px;
+        height: 18px;
+        margin-right: 8px;
+    }
+
+    .notice-swipe {
+        width: calc(74vw);
+        height: 28px;
+        background: var(--bg3);
+        border-radius: 10px;
+        padding: 0px 10px;
+        font-size: 11px;
+        line-height: 28px;
+        color: var(--text0);
+
+        span {
+            color: #F600FF;
+        }
+    }
+}
+
 .top {
     display: flex;
     padding: 9px 16px;
@@ -838,7 +838,7 @@ export default {
     line-height: 24px;
     padding: 0 16px;
 
-    .tab + .tab {
+    .tab+.tab {
         margin-left: 20px;
     }
 
@@ -1019,7 +1019,7 @@ export default {
         position: relative;
     }
 
-    .swiper-slide + .swiper-slide {
+    .swiper-slide+.swiper-slide {
         &::before {
             content: '';
             height: 1px;
@@ -1134,7 +1134,7 @@ export default {
     --van-grid-item-text-font-size: 12px;
     --van-grid-item-content-padding: 10px 0px 9px;
 
-    /deep/.van-grid-item__icon + .van-grid-item__text {
+    /deep/.van-grid-item__icon+.van-grid-item__text {
         margin-top: 6px;
     }
 

+ 26 - 5
src/views/product/Detail.vue

@@ -461,9 +461,9 @@
                                     <div v-if="info.couponPayment" @click="buy" class="status-texts">
                                         立即兑换
                                     </div>
-                                    <div v-else @click="buy" class="add_to_cart_btn_right">
+                                    <div v-else class="add_to_cart_btn_right">
                                         <div class="add_to_cart_btn_right_cart">加入购物车</div>
-                                        <div class="add_to_cart_btn_right_buy">立即购买</div>
+                                        <div class="add_to_cart_btn_right_buy" @click="buy">立即购买</div>
                                     </div>
                                 </div> -->
                             </div>
@@ -475,8 +475,9 @@
                         <!-- <div class="add_to_cart_btn_left">
                             <img :src="require('@assets/icon_gouwuchebtn@3x.png')" alt="" class="add_to_cart_btn_img">
                             <div class="add_to_cart_btn_text">购物车</div>
-                        </div> -->
-                        <!-- <div class="status-texts">仅展示</div> -->
+                            <div class="shopping_cart_number">11</div>
+                        </div>
+                        <div class="status-texts">仅展示</div> -->
                         <div class="status-text">仅展示</div>
                     </div>
                 </template>
@@ -2061,6 +2062,25 @@ export default {
     padding: 0px 16px;
     box-sizing: border-box;
 
+    .add_to_cart_btn_left {
+        position: relative;
+
+        .shopping_cart_number {
+            width: 19px;
+            height: 14px;
+            background: #FF4F50;
+            border-radius: 8px;
+            font-size: 10px;
+            font-weight: bold;
+            color: #FFFFFF;
+            line-height: 14px;
+            text-align: center;
+            position: absolute;
+            right: -7px;
+            top: 0
+        }
+    }
+
     .add_to_cart_btn_img {
         width: 24px;
         height: 24px;
@@ -2520,4 +2540,5 @@ export default {
     left: 16px;
     top: calc(var(--safe-top) + 16px);
     z-index: 90;
-}</style>
+}
+</style>