yuanyuan 3 лет назад
Родитель
Сommit
8455a2ef27

+ 1 - 1
.env.development

@@ -1,4 +1,4 @@
-VUE_APP_BASE_URL=https://www.raex.vip/
+VUE_APP_BASE_URL=https://test.raex.vip/
 NODE_ENV=development
 VUE_APP_PUBLIC_PATH=/
 ASSETS_PATH=raex

BIN
src/assets/banquanshichang@3x.png


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


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


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


BIN
src/assets/icon_dingdan@3x.png


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


BIN
src/assets/icon_jiaoyijilu@3x.png


BIN
src/assets/icon_kefuliuyan@3x.png


BIN
src/assets/icon_lingqishangcheng@3x.png


BIN
src/assets/icon_qianbao@3x.png


BIN
src/assets/icon/search@3x.png


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


BIN
src/assets/info_icon_banquanshichang@3x.png


BIN
src/assets/info_icon_paimaixilie@3x.png


BIN
src/assets/info_icon_yanshengping@3x.png


BIN
src/assets/png-hecheng@3x.png


BIN
src/assets/png-yanshengpin@3x.png


BIN
src/assets/png-yipai@3x.png


BIN
src/assets/png-yuanyuzhou@3x.png


+ 1 - 1
src/router/index.js

@@ -570,7 +570,7 @@ const routes = [
         name: 'orders',
         component: () => import('../views/order/Orders.vue'),
         meta: {
-            title: '艺术品订单'
+            title: '我的订单'
         }
     },
     {

+ 156 - 76
src/views/Discover.vue

@@ -36,15 +36,70 @@
         </swiper> -->
 
         <div class="menu">
-            <div class="menu-item menu-left" @click="goHall">
-                <div class="text1">
+            <div class="menu-con menu-cons">
+                <div
+                    class="menu-item_con menu-item_con_one"
+                    @click="$router.push('/hopeMarket')"
+                    v-if="!$store.state.review"
+                >
+                    <img :src="require(`@assets/info_icon_banquanshichang@3x.png`)" alt="" class="menu-item_con_img" />
+                    <div>
+                        <div class="menu-item_con_title">元宇宙物资市场</div>
+                        <div class="menu-item_con_text">买卖你的元宇宙资产</div>
+                    </div>
+                    <img :src="require(`@assets/png-yuanyuzhou@3x.png`)" alt="" class="menu-item_con_bg" />
+                </div>
+                <div class="menu-item_con menu-item_con_two" @click="$router.push('/activityList')">
+                    <img
+                        :src="require(`@assets/info_icon_banquanshichang@3x (1).png`)"
+                        alt=""
+                        class="menu-item_con_img"
+                    />
+                    <div>
+                        <div class="menu-item_con_title">铸造合成中心</div>
+                        <div class="menu-item_con_text">虚实结合,探索未知</div>
+                    </div>
+                    <img src="../assets/png-hecheng@3x.png" alt="" class="menu-item_con_bg" />
+                </div>
+                <!-- <div class="text1">
+                    <img src="../assets/info_icon_yishuzhanguan.png" alt="" />
+                    <span>艺术展览</span>
+                </div>
+                <div class="text2">环球捕猎顶级艺术展览,尽在绿洲宇宙!</div>
+                <img src="../assets/discover/yishuzhanlan-diwen.png" alt="" class="menu-bg" /> -->
+            </div>
+            <div class="menu-con">
+                <div class="menu-item_con menu-item_con_three" @click="this.$toast('升级改版中')">
+                    <img :src="require(`@assets/info_icon_paimaixilie@3x.png`)" alt="" class="menu-item_con_img" />
+                    <div>
+                        <div class="menu-item_con_title">绿洲易拍</div>
+                        <div class="menu-item_con_text">精品元宇宙物资与数字艺术品拍卖商</div>
+                    </div>
+                    <img :src="require(`@assets/png-yipai@3x.png`)" alt="" class="menu-item_con_bg" />
+                </div>
+                <div
+                    class="menu-item_con menu-item_con_four"
+                    @click="
+                        goWin(
+                            'https://shop103867459.m.youzan.com/v2/showcase/homepage?alias=Zp3noaegLR&reft=1649311507717_1652343999681&spm=f.100904662_f.100904662_t.1688564850'
+                        )
+                    "
+                >
+                    <img :src="require(`@assets/info_icon_yanshengping@3x.png`)" alt="" class="menu-item_con_img" />
+                    <div>
+                        <div class="menu-item_con_title">艺术衍生品商城</div>
+                        <div class="menu-item_con_text">最酷炫的艺术衍生品集成店快来pick你的精彩!</div>
+                    </div>
+                    <img src="../assets/png-yanshengpin@3x.png" alt="" class="menu-item_con_bg" />
+                </div>
+                <!-- <div class="text1">
                     <img src="../assets/info_icon_yishuzhanguan.png" alt="" />
                     <span>艺术展览</span>
                 </div>
                 <div class="text2">环球捕猎顶级艺术展览,尽在绿洲宇宙!</div>
-                <img src="../assets/discover/yishuzhanlan-diwen.png" alt="" class="menu-bg" />
+                <img src="../assets/discover/yishuzhanlan-diwen.png" alt="" class="menu-bg" /> -->
             </div>
-            <div class="menu-right">
+            <!-- <div class="menu-right">
                 <div class="menu-item" @click="$router.push('/hopeMarket')" v-if="!$store.state.review">
                     <div class="text1">
                         <img src="../assets/discover/info_icon_banquanshichang.png" alt="" />
@@ -68,10 +123,10 @@
                     <div class="text2">最酷炫的艺术衍生品集成店,快来pick你的精彩!</div>
                     <img src="../assets/shangcheng-diwen.png" alt="" class="menu-bg" />
                 </div>
-            </div>
+            </div> -->
         </div>
 
-        <van-grid :border="false" :column-num="$store.state.review ? 2 : 4">
+        <!-- <van-grid :border="false" :column-num="$store.state.review ? 2 : 4">
             <van-grid-item
                 text="绿洲头条"
                 :to="{
@@ -101,13 +156,13 @@
                 <template v-slot:icon>
                     <img class="grid-img" src="@assets/info_icon_weshoushichang.png" />
                 </template>
-            </van-grid-item>
-            <!-- <van-grid-item text="铸造商店" @click="wait">
+            </van-grid-item> -->
+        <!-- <van-grid-item text="铸造商店" @click="wait">
                 <template v-slot:icon>
                     <img class="grid-img" src="@assets/info_icon_zhuzaoshangdian.png" />
                 </template>
             </van-grid-item> -->
-        </van-grid>
+        <!-- </van-grid> -->
 
         <div class="box" ref="box">
             <van-sticky :offset-top="tabOffSet">
@@ -136,16 +191,17 @@
                 :finished="finished"
                 finished-text=""
                 @load="getList"
-                :class="{ hotList: sort === 'hot' }"
+                :class="{ hotList: sort === 'hot' || sort === 'art_Exhibition' }"
                 :immediate-check="false"
             >
-                <template v-for="(item, index) in list" :key="item.id">
+                <template v-for="(item, index) in showList" :key="item.id">
                     <product-info
                         v-if="sort === 'collection' || sort === 'collection_MY'"
                         v-model:info="list[index]"
                         dark
                     ></product-info>
                     <creator-small v-else-if="sort === 'creator'" v-model:info="list[index]"></creator-small>
+                    <show-info v-else-if="sort === 'art_Exhibition'" v-model:info="list[item.index]" list></show-info>
                     <show-info v-else-if="sort === 'hot'" v-model:info="list[index]" list></show-info>
                 </template>
                 <van-empty
@@ -198,12 +254,16 @@ export default {
                     value: 'collection'
                 },
                 {
-                    label: '机构专区',
+                    label: '艺术机构',
                     value: 'creator'
                 },
                 {
                     label: '个人发布',
                     value: 'collection_MY'
+                },
+                {
+                    label: '艺术展览',
+                    value: 'art_Exhibition'
                 }
             ],
             icons: [
@@ -219,6 +279,23 @@ export default {
     computed: {
         tabOffSet() {
             return Number((this.safeTop || '0').replace('px', '')) + 50;
+        },
+        showList() {
+            if (this.sort === 'art_Exhibition') {
+                let list = [...this.list];
+                return list
+                    .map((item, index) => {
+                        return {
+                            ...item,
+                            index: index
+                        };
+                    })
+                    .filter(item => {
+                        return item.collections && item.collections.length > 0;
+                    });
+            }else{
+                return this.list
+            }
         }
     },
     mounted() {
@@ -348,6 +425,15 @@ export default {
                     type: 'MINTER',
                     del: false
                 };
+            } else if (this.sort === 'art_Exhibition') {
+                url = 'showroom/all';
+                query = {
+                    del: false,
+                    status: 'SUCCESS',
+                    publish: true,
+                    type: ''
+                };
+                sort = 'heats,desc';
             } else if (this.sort === 'hot') {
                 url = 'showroom/all';
                 query = {
@@ -533,76 +619,70 @@ export default {
 }
 
 .menu {
-    .flex();
-    padding: 16px 16px 0;
-    justify-content: space-between;
-    .menu-item {
-        width: calc(50vw - 16px);
-        box-sizing: border-box;
-        position: relative;
-        padding: 8px;
-        background: linear-gradient(132deg, #3dbb00 0%, #01d890 100%);
-        border-radius: 6px 8px 8px;
-
-        .text1 {
-            .flex();
-            img {
-                width: 18px;
-                height: 18px;
+    padding: 16px 16px 26px;
+    .menu-con {
+        display: flex;
+        justify-content: space-between;
+        .menu-item_con {
+            width: calc(50vw - 22.5px);
+            height: 66px;
+            display: flex;
+            position: relative;
+            padding: 0px 10px;
+            box-sizing: border-box;
+            align-items: center;
+            border-radius: 8px;
+            .menu-item_con_img {
+                width: 32px;
+                height: 32px;
+                margin-right: 4px;
             }
-            span {
+            .menu-item_con_title {
                 font-size: 14px;
+                font-family: PingFangSC-Semibold, PingFang SC;
                 font-weight: bold;
                 color: #ffffff;
-                line-height: 24px;
-                margin-left: 2px;
+                line-height: 14px;
+                text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.8);
+                margin-bottom: 4px;
+                position: relative;
+                z-index: 11;
+            }
+            .menu-item_con_text {
+                font-size: 9px;
+                font-family: PingFangSC-Medium, PingFang SC;
+                font-weight: bold;
+                color: rgba(255, 255, 255, 0.8);
+                line-height: 12px;
+                text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.6);
+                position: relative;
+                z-index: 11;
+            }
+            .menu-item_con_bg {
+                position: absolute;
+                width: 100%;
+                height: 100%;
+                top: 0;
+                right: 0;
             }
         }
-
-        .text2 {
-            font-size: 10px;
-            color: rgba(255, 255, 255, 0.8);
-            line-height: 12px;
-            margin-top: 6px;
+        .menu-item_con_one {
+            background: #10e63b;
         }
-
-        .menu-bg {
-            position: absolute;
-            right: 0;
-            top: 0;
-            width: 54px;
-            height: 34px;
-        }
-    }
-    .menu-left + .menu-right {
-        margin-left: 12px;
-    }
-    .menu-left {
-        align-self: stretch;
-        .menu-bg {
-            width: 100%;
-            height: 100%;
+        .menu-item_con_two {
+            background: #c501e6;
         }
-
-        background: linear-gradient(136deg, #0bc734 0%, #0ed0d8 100%);
-    }
-    .menu-right {
-        .menu-item + .menu-item {
-            margin-top: 12px;
+        .menu-item_con_three {
+            background: #f18b1d;
         }
-
-        .menu-item {
-            &:nth-child(1) {
-                background: linear-gradient(132deg, #6c7df9 0%, #87acf0 100%);
-            }
-
-            &:nth-child(2) {
-                background: linear-gradient(132deg, #2f87d7 0%, #0ad2e6 100%);
-            }
+        .menu-item_con_four {
+            background: #1a7bd3;
         }
     }
+    .menu-cons {
+        margin-bottom: 12px;
+    }
 }
-
 .grid-img {
     display: block;
     width: 32px;
@@ -671,15 +751,15 @@ export default {
         color: @prim;
     }
 }
+/deep/.van-tab:last-child{
+    margin-right: 0px !important;
+}
 .casting {
     padding-bottom: 10px;
 }
-.van-tabs {
-    border-top: 2px solid #373b3e;
-}
-/deep/.van-tab {
-    margin-right: 0;
-}
+// .van-tabs {
+//     border-top: 2px solid #373b3e;
+// }
 
 /deep/.van-sticky--fixed {
     background-color: #272b2e;

+ 158 - 55
src/views/Mine.vue

@@ -133,27 +133,29 @@
                 </div>
             </div>
         </div>
-        <driver />
+        <!-- <driver /> -->
         <div class="orderList">
-            <div class="order-info" @click="$router.push('/orders?type=DEFAULT')">
-                <img src="@assets/info_icon_yishuping.png" alt="" />
-                <span>艺术品订单</span>
-            </div>
-            <div class="order-info" @click="$router.push('/activityOrders')">
-                <img src="@assets/info_icon_zhuzaodingdan.png" alt="" />
-                <span>铸造订单</span>
-            </div>
-            <!-- <div class="order-info" @click="$router.push('/auctionOrders')">
+            <div class="orderList_con">
+                <div class="order-info" @click="$router.push('/orders')">
+                    <img src="@assets/icon_dingdan@3x.png" alt="" />
+                    <span>我的订单</span>
+                </div>
+                <div class="order-info" @click="$router.push('/mineWallet')">
+                    <img src="@assets/icon_qianbao@3x.png" alt="" />
+                    <span>我的钱包</span>
+                </div>
+                <!-- <div class="order-info" @click="$router.push('/auctionOrders')">
                 <img src="@assets/info_icon_paimaidingdan.png" alt="" />
                 <span>拍卖订单</span>
             </div> -->
-            <div class="order-info" @click="this.$toast('升级改版中')">
-                <img src="@assets/info_icon_paimaidingdan.png" alt="" />
-                <span>拍卖订单</span>
+                <div class="order-info" @click="$router.push('/mineExchange')" v-if="!$store.state.review">
+                    <img src="@assets/icon_jiaoyijilu@3x.png" alt="" />
+                    <span>交易历史</span>
+                </div>
             </div>
         </div>
-        <driver />
-        <div class="orderList prim">
+        <!-- <driver /> -->
+        <!-- <div class="orderList prim">
             <div class="menu-info" :style="{ width: $store.state.review ? '100%' : '50%' }" @click="wait">
                 <img src="@assets/info_icon_lingqishangcheng.png" alt="" />
                 <span>灵气商城</span>
@@ -164,8 +166,59 @@
                 </van-badge>
                 <span>立即邀请</span>
             </div>
+        </div> -->
+        <div class="menus">
+            <div class="menus_list">
+                <div class="menus_list_con" @click="share" v-if="!$store.state.review">
+                    <div class="menus_list_con_left">
+                        <img src="@assets/icon-yaoqing@3x.png" alt="" class="menus_list_con_left_img" />
+                        <span>邀请好友</span>
+                    </div>
+                    <img src="@assets/icon_inter@3x.png" alt="" class="menus_list_con_right_img" />
+                </div>
+                <div class="menus_list_division" v-if="!$store.state.review">
+                    <div class="menus_list_division_con"></div>
+                </div>
+                <div class="menus_list_con" @click="$router.push('/message')" v-if="!$store.state.review">
+                    <div class="menus_list_con_left">
+                        <img src="@assets/icon_kefuliuyan@3x.png" alt="" class="menus_list_con_left_img" />
+                        <span>在线客服</span>
+                    </div>
+                    <img src="@assets/icon_inter@3x.png" alt="" class="menus_list_con_right_img" />
+                </div>
+                <div class="menus_list_division" v-if="!$store.state.review">
+                    <div class="menus_list_division_con"></div>
+                </div>
+                <div class="menus_list_con" @click="wait">
+                    <div class="menus_list_con_left">
+                        <img src="@assets/icon_lingqishangcheng@3x.png" alt="" class="menus_list_con_left_img" />
+                        <span>灵气商城</span>
+                    </div>
+                    <img src="@assets/icon_inter@3x.png" alt="" class="menus_list_con_right_img" />
+                </div>
+                 <div class="menus_list_division">
+                    <div class="menus_list_division_con"></div>
+                </div>
+                <div class="menus_list_con" @click="$router.push('/about')">
+                    <div class="menus_list_con_left">
+                        <img src="@assets/icon-guanyuwomen@3x.png" alt="" class="menus_list_con_left_img" />
+                        <span>关于我们</span>
+                    </div>
+                    <img src="@assets/icon_inter@3x.png" alt="" class="menus_list_con_right_img" />
+                </div>
+                 <div class="menus_list_division">
+                    <div class="menus_list_division_con"></div>
+                </div>
+                <div class="menus_list_con" @click="$router.push('/security')">
+                    <div class="menus_list_con_left">
+                        <img src="@assets/icon-anquan@3x.png" alt="" class="menus_list_con_left_img" />
+                        <span>设置与安全</span>
+                    </div>
+                    <img src="@assets/icon_inter@3x.png" alt="" class="menus_list_con_right_img" />
+                </div>
+            </div>
         </div>
-        <van-grid class="menus">
+        <!-- <van-grid class="menus">
             <van-grid-item v-if="enableWallet" text="我的钱包" :to="{ path: '/mineWallet' }">
                 <template #icon>
                     <van-icon :name="require('@assets/icon_yinhangka.png')" class="search-icon" />
@@ -195,14 +248,14 @@
                 <template #icon>
                     <van-icon :name="require('@assets/info_icon_jiaoyijilu.png')" class="search-icon" />
                 </template>
-            </van-grid-item>
+            </van-grid-item> -->
             <!-- <van-grid-item text="了解更多" :to="{ path: '/question' }">
                 <template #icon>
                     <van-icon :name="require('@assets/icon_liaojiegengduo.png')" class="search-icon" />
                 </template>
             </van-grid-item> -->
 
-            <van-grid-item text="地址管理" :to="{ path: '/mineAddress' }">
+            <!-- <van-grid-item text="地址管理" :to="{ path: '/mineAddress' }">
                 <template #icon>
                     <van-icon :name="require('@assets/icon_dizhi.png')" class="search-icon" />
                 </template>
@@ -217,9 +270,9 @@
                     <van-icon :name="require('@assets/icon-anquan.png')" class="search-icon" />
                 </template>
             </van-grid-item>
-        </van-grid>
+        </van-grid> -->
 
-        <div class="tabbar-placeholder"></div>
+        <!-- <div class="tabbar-placeholder"></div> -->
         <post ref="post" :info="shareProduct" noButton></post>
         <tuan-rank></tuan-rank>
     </van-pull-refresh>
@@ -256,7 +309,7 @@
             </div>
         </template>
     </van-dialog>
-    <van-dialog :show="turnPrivacy" theme="round-button" className="risk">
+    <van-popup :show="turnPrivacy" position="bottom" :style="{ height: '260px',borderTopLeftRadius: '16px',borderTopRightRadius: '16px'}">
         <div class="wrapper">
             <img
                 :src="require('@assets/icon_close@3x.png')"
@@ -276,8 +329,8 @@
             </div>
         </div>
         <template #footer> </template>
-    </van-dialog>
-    <van-dialog :show="turnOffPrivacy" theme="round-button" className="risk">
+    </van-popup>
+    <van-popup :show="turnOffPrivacy" position="bottom" :style="{ height: '260px',borderTopLeftRadius: '16px',borderTopRightRadius: '16px'}">
         <div class="wrapper">
             <img
                 :src="require('@assets/icon_close@3x.png')"
@@ -297,7 +350,7 @@
             </div>
         </div>
         <template #footer> </template>
-    </van-dialog>
+    </van-popup>
 </template>
 
 <script>
@@ -590,7 +643,8 @@ export default {
 }
 .wrapper {
     height: 260px;
-    width: calc(100vw - 115px);
+    width: calc(100vw);
+    // width: calc(100vw - 115px);
     // width: calc(100vw);
     background: #ffffff;
     border-radius: 16px 16px 0px 0px;
@@ -757,10 +811,19 @@ export default {
     }
 }
 .orderList {
-    .flex();
+    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;
+        padding: 16px 0 14px;
         position: relative;
         width: 33%;
         box-sizing: border-box;
@@ -778,25 +841,25 @@ export default {
             // margin-right: 8px;
         }
         span {
-            font-size: 14px;
-            font-weight: bold;
+            font-size: 13px;
+            font-weight: 400;
             color: #ffffff;
             line-height: 24px;
             margin-top: 4px;
         }
     }
-    .order-info + .order-info {
-        // margin-left: 20px;
-        &::before {
-            content: '';
-            width: 1px;
-            background-color: #373b3e;
-            position: absolute;
-            left: -0.5px;
-            top: 0;
-            bottom: 0;
-        }
-    }
+    // .order-info + .order-info {
+    //     // margin-left: 20px;
+    //     &::before {
+    //         content: '';
+    //         width: 1px;
+    //         background-color: #373b3e;
+    //         position: absolute;
+    //         left: -0.5px;
+    //         top: 0;
+    //         bottom: 0;
+    //     }
+    // }
 
     // /deep/.van-badge__wrapper {
     //     width: 50%;
@@ -1074,7 +1137,7 @@ export default {
                     flex-shrink: 0;
                     white-space: nowrap;
                 }
-                &.authed_con{
+                &.authed_con {
                     width: 90px;
                 }
                 &.authed {
@@ -1112,7 +1175,7 @@ export default {
                     }
                 }
                 &.autheds_con {
-                     width: 90px;
+                    width: 90px;
                     margin-right: 10px;
                     span {
                         color: #39af00;
@@ -1135,25 +1198,65 @@ export default {
     }
 }
 .menus {
+    margin-top: 16px;
+    padding: 0px 16px;
+    box-sizing: border-box;
+    .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;
+                font-family: PingFangSC-Regular, PingFang SC;
+                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;
     // overflow: hidden;
-    &.van-grid {
-        margin: 0;
-    }
+    // &.van-grid {
+    //     margin: 0;
+    // }
 
-    /deep/.van-grid-item__text {
-        color: #fff;
-    }
+    // /deep/.van-grid-item__text {
+    //     color: #fff;
+    // }
 
-    /deep/.van-grid-item__content:after {
-        border-color: #373b3e;
-    }
+    // /deep/.van-grid-item__content:after {
+    //     border-color: #373b3e;
+    // }
 
-    /deep/&.van-hairline--top:after {
-        border-color: #373b3e;
-    }
+    // /deep/&.van-hairline--top:after {
+    //     border-color: #373b3e;
+    // }
 }
 
 /deep/.auth {

+ 133 - 20
src/views/Store.vue

@@ -13,6 +13,9 @@
                         <div class="btn" :class="{ active: active === 'explore' }" @click="changeActive('explore')">
                             我拥有的
                         </div>
+                        <div class="btn" :class="{ active: active === 'likeIt' }" @click="changeActive('likeIt')">
+                            我喜欢的
+                        </div>
                         <div
                             class="btn"
                             v-if="showRoom"
@@ -38,10 +41,10 @@
                         v-if="isLogin && active !== 'coupon'"
                         @click="$router.push('/assetSearch?status=' + status)"
                     >
+                        <div class="search_division"></div>
                         <img src="@assets/svgs/search.svg" alt="" />
                     </div>
                 </div>
-
                 <van-tabs
                     class="darkTabs"
                     v-model:active="type"
@@ -49,6 +52,7 @@
                     line-height="2"
                     :ellipsis="false"
                     @click="changeTab"
+                    v-if="active != 'likeIt'"
                 >
                     <van-tab
                         :title="item.label"
@@ -66,6 +70,31 @@
                         </template>
                     </van-tab>
                 </van-tabs>
+                <van-tabs
+                    class="darkTabs"
+                    v-model:active="type"
+                    line-width="16"
+                    line-height="2"
+                    :ellipsis="false"
+                    @change="change"
+                    v-else-if="active === 'likeIt'"
+                >
+                    <van-tab
+                        :title="item.label"
+                        :name="item.type"
+                        :title-class="item.type === 'select' && sortDes ? sortDes : ''"
+                        :key="index"
+                        v-for="(item, index) in typeOptionLike"
+                    >
+                        <template v-if="item.type === 'select'" #title>
+                            <div class="tab">
+                                <span>{{ item.label }}</span>
+                                <van-icon size="8" name="arrow-up" />
+                                <van-icon size="8" name="arrow-down" />
+                            </div>
+                        </template>
+                    </van-tab>
+                </van-tabs>
             </div>
 
             <!-- <van-button
@@ -91,6 +120,7 @@
             :finished="finished"
             finished-text=""
             @load="getList"
+            v-if="active != 'likeIt'"
         >
             <template v-for="(item, index) in showList" :key="index">
                 <coupon-info :info="item" v-if="active == 'coupon'"></coupon-info>
@@ -140,6 +170,16 @@
             />
             <img src="../assets/icon_zhiding.png" @click="goTop" class="goTop" v-if="bodyScroll > 100" alt="" />
         </van-list>
+        <div class="list" v-else>
+            <template v-for="(item, index) in showListLike" :key="index">
+                <product-info v-model:info="likeList[item.index]" @update:info="init"></product-info>
+            </template>
+            <van-empty
+                v-if="showListLike.length === 0"
+                description="你还没有点赞哦~"
+                :image="require('@assets/kong_png_dianzan.png')"
+            />
+        </div>
         <van-action-sheet
             ref="action"
             v-model:show="showSelect"
@@ -180,6 +220,7 @@ import CouponInfo from '../components/CouponInfo.vue';
 import asset from '../mixins/asset';
 import coupon from '../mixins/coupon';
 import starAssetInfo from '../components/star/assetInfo.vue';
+import ProductInfo from '../components/product/productInfo.vue';
 export default {
     name: 'store',
     mixins: [asset, coupon],
@@ -189,7 +230,8 @@ export default {
         AssetInfoSe,
         CouponInfo,
         ShowInfo,
-        starAssetInfo
+        starAssetInfo,
+        ProductInfo
     },
     data() {
         return {
@@ -198,6 +240,7 @@ export default {
             type: '',
             empty: false,
             list: [],
+            likeList: [],
             label: '全部',
             showSelect: false,
             actions: [{ name: '选项一' }, { name: '选项二' }, { name: '选项三' }],
@@ -215,7 +258,21 @@ export default {
             assetLoading: false,
             assetFinished: false,
             assetPage: 0,
-            assetList: []
+            assetList: [],
+            typeOptionLike: [
+                {
+                    label: '全部',
+                    type: ''
+                },
+                {
+                    label: '收藏品',
+                    type: 'DEFAULT'
+                },
+                {
+                    label: '数字盲盒',
+                    type: 'BLIND_BOX'
+                }
+            ]
         };
     },
     computed: {
@@ -346,6 +403,18 @@ export default {
                 });
             }
         },
+        showListLike() {
+            return [...this.likeList]
+                .map((item, index) => {
+                    return {
+                        ...item,
+                        index
+                    };
+                })
+                .filter(item => {
+                    return !this.type || this.type === item.type;
+                });
+        },
         sort() {
             return 'createdAt,desc';
         },
@@ -507,13 +576,24 @@ export default {
     methods: {
         showMore(asset) {
             console.log(asset);
-
             this.moreTitle = asset.prefixName;
             this.show = true;
             this.assetLoading = true;
             this.getMoreList(true);
             //
         },
+        init() {
+            this.$toast.loading({
+                message: '加载中...',
+                forbidClick: true
+            });
+            this.empty = false;
+            this.$http.get('/collection/myLikes').then(res => {
+                this.likeList = res;
+                this.empty = res.length === 0;
+                this.$toast.clear();
+            });
+        },
         getMoreList(init = false) {
             if (init) {
                 this.assetList = [];
@@ -659,16 +739,21 @@ export default {
             return form;
         },
         changeActive(active) {
-            this.list = [];
-            this.active = active;
-            this.loading = true;
-            setTimeout(() => {
-                this.$nextTick(() => {
-                    this.type = this.typeOptions[0].type;
-                    this.page = 0;
-                    this.getList();
-                });
-            }, 100);
+            if (active === 'likeIt') {
+                this.init();
+                this.active = active;
+            } else {
+                this.list = [];
+                this.active = active;
+                this.loading = true;
+                setTimeout(() => {
+                    this.$nextTick(() => {
+                        this.type = this.typeOptions[0].type;
+                        this.page = 0;
+                        this.getList();
+                    });
+                }, 100);
+            }
         },
         changeTab(info) {
             if (info.name === 'price') {
@@ -688,6 +773,9 @@ export default {
             this.getList().then(() => {
                 this.isLoading = false;
             });
+        },
+        change() {
+            this.$root.$el.scrollTop = 0;
         }
     }
 };
@@ -696,19 +784,26 @@ export default {
 <style lang="less" scoped>
 .top {
     display: flex;
-    padding: 10px 16px;
     background-color: #222426;
+    width: calc(100vw);
     .top-btn {
-        flex-grow: 1;
+        padding: 10px 16px;
+        padding-right: 0px;
+        width: 100%;
+        height: 50px;
+        box-sizing: border-box;
+        overflow-x: auto;
+        display: flex;
+        align-items: center;
         .btn {
             font-size: @font3;
             line-height: 26px;
             display: inline-block;
             vertical-align: text-bottom;
-            color: #fff;
-
+            color: #939599;
+            flex-shrink: 0;
             &.active {
-                color: @prim2;
+                color: #ffffff;
                 font-size: @font3;
                 font-weight: bold;
             }
@@ -718,8 +813,23 @@ export default {
             margin-left: 20px;
         }
     }
-
     .search {
+        width: 50px;
+        height: 50px;
+        display: flex;
+        align-items: center;
+        padding-left: 10px;
+        box-sizing: border-box;
+        background: #222426;
+        position: relative;
+        .search_division {
+            position: absolute;
+            top: 13px;
+            left: 4px;
+            width: 1px;
+            height: 24px;
+            background-color: #272b2e;
+        }
         img {
             display: block;
         }
@@ -751,6 +861,9 @@ export default {
     min-height: var(--app-height);
     box-sizing: border-box;
 }
+.list {
+    padding: 8px;
+}
 .grid-img {
     display: block;
 }

+ 187 - 4
src/views/account/Security.vue

@@ -1,21 +1,116 @@
 <template>
     <div class="page">
-        <div class="title">账户与安全</div>
+        <div class="title">设置与安全</div>
+        <van-cell-group :border="false" style="margin-bottom: 6px">
+            <van-cell title="元宇宙身份证" value="去编辑" :to="{ path: '/setting' }" is-link />
+            <van-cell title="实名认证" value="去认证" @click="goAuth" is-link v-if="authStatus !== '已认证'" />
+            <van-cell title="实名认证" value="已认证" is-link v-if="authStatus == '已认证'" />
+            <van-cell
+                title="隐私设置"
+                value="当前主页开启状态"
+                @click="turnOffPrivacy = true"
+                is-link
+                v-if="userInfo.isPublicShow"
+            />
+            <van-cell
+                title="隐私设置"
+                value="当前主页关闭状态"
+                @click="turnPrivacy = true"
+                is-link
+                v-if="!userInfo.isPublicShow"
+            />
+            <van-cell title="地址管理" :to="{ path: '/mineAddress' }" is-link />
+        </van-cell-group>
         <van-cell-group :border="false">
             <van-cell title="修改登录密码" :to="{ path: '/forget' }" is-link />
             <van-cell title="修改支付密码" :to="{ path: '/tradingPassword' }" is-link />
             <!-- <van-cell title="修改手机号" :to="{ path: '/changePhone' }" is-link /> -->
             <van-cell title="注销账号" @click="cancel" is-link />
         </van-cell-group>
-        <div class="logout">
-            <van-button type="primary" @click="logout" plain block round>退出登录</van-button>
+        <div class="logout" @click="logout">
+            退出登录
+            <!-- <van-button type="primary" @click="logout" plain block round></van-button> -->
         </div>
     </div>
+    <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"
+            />
+            <div class="wrapper_img">
+                <img :src="require('@assets/icon-kechakan@3x.png')" alt="" class="privacy_img" />
+            </div>
+            <div class="wrapper_title">隐私设置</div>
+            <div class="wrapper_tip">关闭后,他人将无法查看你主页的任何信息。</div>
+            <div class="wrapper_division"></div>
+            <div class="wrapper_btn">
+                <div class="wrapper_btn_left" @click="changeShow(false)">关闭主页</div>
+                <div class="wrapper_btn_right" @click="turnOffPrivacy = false">保持开启</div>
+            </div>
+        </div>
+        <template #footer> </template>
+    </van-popup>
+     <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"
+            />
+            <div class="wrapper_img">
+                <img :src="require('@assets/icon-wufachakan.png')" alt="" class="privacy_img" />
+            </div>
+            <div class="wrapper_title">隐私设置</div>
+            <div class="wrapper_tip">当前关闭状态,他人将无法查看你主页的任何信息。</div>
+            <div class="wrapper_division"></div>
+            <div class="wrapper_btn">
+                <div class="wrapper_btn_left" @click="turnPrivacy = false">保持关闭</div>
+                <div class="wrapper_btn_right" @click="changeShow(true)">开启主页</div>
+            </div>
+        </div>
+        <template #footer> </template>
+    </van-popup>
 </template>
 
 <script>
+import { mapState } from 'vuex';
 export default {
+    computed: {
+        ...mapState(['userInfo'])
+    },
+    data() {
+        return {
+            faceAuth: false,
+            turnOffPrivacy: false,
+            turnPrivacy: false
+        };
+    },
+    mounted() {
+        this.$http.get('/sysConfig/get/share_lvzhoushi_num,enable_wallet,enable_face_auth').then(res => {
+            this.faceAuth = res['enable_face_auth'].value === '1';
+        });
+    },
     methods: {
+        goAuth() {
+            if (this.authStatus === '认证中' || this.authStatus === '认证失败') {
+                this.$router.push('/waiting');
+            } else if (this.authStatus === '未认证') {
+                if (this.faceAuth) {
+                    this.$router.push('/faceAuth');
+                } else {
+                    this.$router.push('/verified');
+                }
+            }
+        },
+        changeShow(isPublicShow) {
+            this.turnPrivacy = false;
+            this.turnOffPrivacy = false;
+            this.updateUser({ isPublicShow: isPublicShow });
+        },
         logout() {
             this.$dialog
                 .confirm({
@@ -63,9 +158,97 @@ export default {
     padding: 23px 16px;
 }
 .logout {
-    padding: 50px 30px 50px;
+    padding-top: 99px;
+    font-size: 14px;
+    font-family: PingFangSC-Medium, PingFang SC;
+    font-weight: bold;
+    color: #3ab200;
+    line-height: 24px;
+    text-align: center;
+    background-color: #ffffff;
 }
 .van-button {
     border-width: 1px;
 }
+.wrapper {
+    height: 260px;
+    width: calc(100vw);
+    // width: calc(100vw);
+    background: #ffffff;
+    border-radius: 16px 16px 0px 0px;
+    position: relative;
+    position: absolute;
+    .privacy_off_img {
+        width: 24px;
+        height: 24px;
+        position: absolute;
+        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;
+        font-weight: bold;
+        color: #000000;
+        line-height: 24px;
+        margin-top: 4px;
+        margin-bottom: 8px;
+        text-align: center;
+    }
+    .wrapper_tip {
+        padding: 0px 16px;
+        font-size: 14px;
+        font-family: PingFangSC-Regular, PingFang SC;
+        font-weight: 400;
+        color: #939599;
+        line-height: 20px;
+        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;
+            border-radius: 22px;
+            border: 1px solid #939599;
+            box-sizing: border-box;
+            font-size: 16px;
+            font-family: PingFangSC-Medium, PingFang SC;
+            font-weight: bold;
+            color: #939599;
+            line-height: 38px;
+            text-align: center;
+        }
+        .wrapper_btn_right {
+            width: calc(50vw - 83.5px);
+            height: 38px;
+            background: #3ab200;
+            border-radius: 22px;
+            font-size: 16px;
+            font-family: PingFangSC-Medium, PingFang SC;
+            font-weight: 500;
+            color: #ffffff;
+            line-height: 38px;
+            text-align: center;
+        }
+    }
+}
 </style>

+ 6 - 6
src/views/account/SettingComplete.vue

@@ -68,11 +68,11 @@
             <div class="setting_listTwo">
                 <div class="setting_listTwo_con">
                     <div class="setting_listTwo_con_num">{{ info.nftCount || 0 }}</div>
-                    <div class="setting_listTwo_con_title">持有总量</div>
+                    <div class="setting_listTwo_con_title">NFT总量</div>
                 </div>
                 <div class="setting_listTwo_con">
                     <div class="setting_listTwo_con_num">{{ info.buildCount || 0 }}</div>
-                    <div class="setting_listTwo_con_title">建筑总量</div>
+                    <div class="setting_listTwo_con_title">角色总量</div>
                 </div>
                 <div class="setting_listTwo_con">
                     <div class="setting_listTwo_con_num">{{ info.plotCount || 0 }}</div>
@@ -80,19 +80,19 @@
                 </div>
                 <div class="setting_listTwo_con">
                     <div class="setting_listTwo_con_num">{{ info.fansCount || 0 }}</div>
-                    <div class="setting_listTwo_con_title">粉丝总量</div>
+                    <div class="setting_listTwo_con_title">建筑总量</div>
                 </div>
                 <div class="setting_listTwo_con">
                     <div class="setting_listTwo_con_num">{{ info.reikiCount || 0 }}</div>
-                    <div class="setting_listTwo_con_title">灵气总量</div>
+                    <div class="setting_listTwo_con_title">粉丝总量</div>
                 </div>
                 <div class="setting_listTwo_con">
                     <div class="setting_listTwo_con_num">{{ info.medalCount || 0 }}</div>
-                    <div class="setting_listTwo_con_title">徽章总量</div>
+                    <div class="setting_listTwo_con_title">灵气总量</div>
                 </div>
                 <div class="setting_listTwo_con">
                     <div class="setting_listTwo_con_num">{{ info.personalheatCount || 0 }}</div>
-                    <div class="setting_listTwo_con_title">个人热力值</div>
+                    <div class="setting_listTwo_con_title">徽章总量</div>
                 </div>
             </div>
             <div class="setting_listThree">

+ 85 - 16
src/views/order/Orders.vue

@@ -11,46 +11,75 @@
         <van-sticky ref="top" :offset-top="bar && bar.show ? bar.height : 0">
             <div class="top">
                 <div class="top-btn">
+                    <div class="btn" :class="{ active: type === '' }" @click="changeActive('')">
+                        藏品订单
+                    </div>
                     <div class="btn" :class="{ active: type === 'DEFAULT' }" @click="changeActive('DEFAULT')">
-                        作品订单
+                        铸造订单
                     </div>
-                    <div class="btn" :class="{ active: type === 'BLIND_BOX' }" @click="changeActive('BLIND_BOX')">
-                        盲盒订单
+                    <div class="btn" :class="{ active: type === 'BLI' }" @click="this.$toast('升级改版中')">
+                        绿洲易拍
                     </div>
                 </div>
-                <!-- <div class="search">
-                    <img src="@assets/svgs/search.svg" alt="" />
-                </div> -->
+                <!-- <img src="@assets/icon/search@3x.png" alt="" class="top_img"/> -->
             </div>
 
-            <van-tabs v-model:active="status" :ellipsis="false" line-width="16" line-height="2" @click="changeStatus">
+            <van-tabs
+                v-model:active="status"
+                :ellipsis="false"
+                line-width="16"
+                line-height="2"
+                @click="changeStatus"
+                v-if="type == ''"
+            >
                 <van-tab v-for="(item, index) in tabs" :key="index" :title="item.name" :name="item.status"></van-tab>
             </van-tabs>
+            <van-tabs
+                v-model:active="status"
+                :ellipsis="false"
+                line-width="16"
+                line-height="2"
+                @click="changeStatus"
+                v-if="type == 'DEFAULT'"
+            >
+                <van-tab v-for="(item, index) in tab" :key="index" :title="item.name" :name="item.status"></van-tab>
+            </van-tabs>
         </van-sticky>
 
-        <van-list class="list" v-model:loading="loading" :finished="finished" finished-text="" @load="getData">
+        <van-list class="list" v-model:loading="loading" :finished="finished" finished-text="" @load="getData" v-if="type == ''">
             <order-info @delFn="delFn" v-for="item in list" :key="item.id" :info="item"></order-info>
             <van-empty v-if="empty" description="你还没有订单哦~" :image="require('@assets/kong_png_wudingdan.png')" />
         </van-list>
+        <van-list class="list" v-model:loading="loading" :finished="finished" finished-text="" @load="getData" v-if="type == 'DEFAULT'">
+            <order-info-act
+                @delFn="delFn"
+                v-for="(item, index) in list"
+                :key="item.id"
+                v-model:info="list[index]"
+            ></order-info-act>
+            <van-empty v-if="empty" description="你还没有订单哦~" :image="require('@assets/kong_png_wudingdan.png')" />
+        </van-list>
     </van-pull-refresh>
 </template>
 
 <script>
 import OrderInfo from '../../components/order/OrderInfo.vue';
+import OrderInfoAct from '../../components/order/OrderInfoAct.vue';
 import list from '../../mixins/list';
 export default {
     name: 'discover',
     inject: ['bar'],
     mixins: [list],
     components: {
-        OrderInfo
+        OrderInfo,
+        OrderInfoAct
     },
     data() {
         return {
             active: 'explore',
             stiky: null,
             status: 'PROCESSING,FINISH',
-            type: 'DEFAULT',
+            type: '',
             list: [],
             tabs: [
                 {
@@ -66,6 +95,32 @@ export default {
                     name: '已完成'
                 }
             ],
+            tab: [
+                {
+                    status: 'DELIVERY,PENDING,RECEIVE,AIR_DROP,FINISH',
+                    name: '全部'
+                },
+                {
+                    status: 'PENDING',
+                    name: '待审核'
+                },
+                {
+                    status: 'DELIVERY,',
+                    name: '待发货'
+                },
+                {
+                    status: 'AIR_DROP,',
+                    name: '待空投'
+                },
+                {
+                    status: 'RECEIVE',
+                    name: '待收货'
+                },
+                {
+                    status: 'FINISH',
+                    name: '已完成'
+                }
+            ],
             url: '/order/all'
         };
     },
@@ -82,7 +137,8 @@ export default {
                     status: this.status,
                     type: this.type,
                     hide: false,
-                    del: false
+                    del: false,
+                    companyId: 1
                 }
             };
         },
@@ -110,6 +166,13 @@ export default {
                 }
             });
             this.type = type;
+            if(this.type == 'DEFAULT'){
+                this.url = '/mintOrder/all',
+                this.status = 'DELIVERY,PENDING,RECEIVE,AIR_DROP,FINISH'
+            }else if(this.type == ''){
+                this.url = '/order/all',
+                this.status = 'PROCESSING,FINISH'
+            }
             this.getData(true);
         },
         onRefresh() {
@@ -127,20 +190,26 @@ export default {
     padding: 10px 16px;
     background-color: @bg;
     align-items: center;
+    .top_img{
+        width: 24px;
+        height: 24px;
+    }
     .top-btn {
         flex-grow: 1;
         .flex();
         .btn {
-            font-size: @font3;
-            line-height: 26px;
+            font-size: 16px;
+            font-family: PingFangSC-Regular, PingFang SC;
+            font-weight: 400;
+            color: #939599;
+            line-height: 24px;
             display: inline-block;
             vertical-align: text-bottom;
 
             &.active {
-                color: @prim;
-                font-size: @font3;
+                color: #000000;
                 font-weight: bold;
-                line-height: 30px;
+                line-height: 24px;
             }
         }