yuanyuan 3 лет назад
Родитель
Сommit
8228c8b94f
5 измененных файлов с 466 добавлено и 404 удалено
  1. 1 1
      src/components/product/HotCollect.vue
  2. 232 178
      src/views/DomainName.vue
  3. 231 223
      src/views/Home.vue
  4. 1 1
      src/views/user/AiPage.vue
  5. 1 1
      src/views/user/Rank.vue

+ 1 - 1
src/components/product/HotCollect.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="collect-info" @click="goSearch">
-        <van-image width="46" height="46" radius="8" :src="getImg(changeImgs(info.pic, 600))" />
+        <van-image width="46" height="46" radius="8" :src="getImg(changeImgs(info.pic || [], 600))" />
         <div class="content">
             <div class="text1 van-ellipsis">{{ info.name }}</div>
             <div class="text2">

+ 232 - 178
src/views/DomainName.vue

@@ -1,27 +1,47 @@
 <template>
     <div :class="action != 1 ? 'meta_domain_nameOne' : 'meta_domain_nameTwo'" class="meta_domain_name">
         <van-sticky ref="top" :offset-top="action == 1 ? '' : '0'">
-            <div :class="action != 1 ? 'meta_domain_name_tops' : ''" class="meta_domain_name_top"
-                :style="{ height: heightNumber }">
+            <div
+                :class="action != 1 ? '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" />
@@ -40,20 +60,32 @@
                             <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>
@@ -68,11 +100,21 @@
                     <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=""
@@ -82,8 +124,13 @@
                 </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">
@@ -239,7 +286,11 @@
         <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">
@@ -253,8 +304,10 @@
                 <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>
+                        :class="
+                            item.sold ? 'meta_domain_name_list_con_right_three' : 'meta_domain_name_list_con_right_two'
+                        "
+                    ></div>
                 </div>
             </div>
         </div>
@@ -314,153 +367,153 @@
 <script>
 import { mapState } from 'vuex';
 export default {
-	data() {
-		return {
-			action: 1,
-			heightNumber: '500px',
-			paddingTop: 0,
-			heightBgNumber: '260px',
-			moreHeight: 0,
-			domain: true,
-			value: '',
-			domainList: [],
-			list: [],
-			unregistered: require('@assets/png-da-lv@3x.png'),
-			registered: require('@assets/png-da-zi@3x.png'),
-			timeId: 0
-		};
-	},
-	computed: {
-		...mapState(['userInfo']),
-		// endTime() {
-		// 	return this.list.forEach(item => {
-		// 		if (item.endTime) {
-		// 			let d = Math.floor(item.endTime / 24 / 3600);
-		// 			item.endTime = d;
-		// 		}
-		// 	});
-		// }
-	},
-	mounted() {
-		this.$http
-			.post(
-				'/domainOrder/all',
-				{
-					query: {
-						orderStatus: 'FINISH'
-					},
-					size: 50,
-					sort: 'createdAt,desc'
-				},
-				{ body: 'json' }
-			)
-			.then(res => {
-				this.domainList = res.content;
-			})
-			.catch(e => {});
-	},
-	watch: {
-		value() {
-			this.$nextTick(() => {
-				if (this.value == '') {
-					this.list = [];
-				}
-			});
-		}
-	},
-	methods: {
-		onInput() {
-			if (this.timeId) {
-				clearTimeout(this.timeId);
-				this.timeId = 0;
-			}
-			this.timeId = setTimeout(() => {
-				this.getSearch(this.value);
-			}, 500);
-		},
-		pad(n, width, z) {
-			z = z || '0';
-			n = n + '';
-			return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
-		},
-		change() {
-			this.heightNumber = 'calc(var(--safe-top) + 180px)';
-			this.action = 2;
-			this.paddingTop = 'calc(var(--safe-top) + 70px)';
-			this.heightBgNumber = 'calc(var(--safe-top) + 100px)';
-			this.moreHeight = 'calc(var(--safe-top) - 320px)';
-		},
-		learnMore() {
-			this.action = 3;
-			this.heightNumber = 'calc(var(--safe-top) + 180px)';
-			this.heightBgNumber = 'calc(var(--safe-top) + 100px)';
-			this.moreHeight = 'calc(var(--safe-top) - 320px)';
-		},
-		getSearch(value) {
-			this.value = value.toLowerCase();
-			if (value == '') {
-				this.$nextTick(() => {
-					this.list = [];
-				});
-			} else {
-				let matching = /^[A-Za-z0-9]+$/;
-				if (matching.test(value)) {
-					this.$http
-						.post('/domainOrder/search', {
-							domain: value
-						})
-						.then(res => {
-							if (this.value === value.toLowerCase()) {
-								this.list = [];
-								res.forEach(item => {
-									if (item.endTime) {
-										item.endTime = this.dayjs(item.endTime).diff(this.dayjs(), 'second');
-										item.endTime =
-											Math.floor(item.endTime / 24 / 3600) +
-											'天' +
-											this.pad(parseInt(item.endTime / 3600) % 24, 2) +
-											'时' +
-											this.pad(parseInt(item.endTime / 60) % 60, 2) +
-											'分';
-									}
-								});
-								this.list = this.list.concat(res);
-							}
-						})
-						.catch(e => {});
-				} else {
-					this.$toast('只能由数字和字母组成');
-					this.list = [];
-				}
-			}
-		},
-		buy(index) {
-			if (!this.list[index].sold) {
-				this.$router.push({
-					path: '/domainSubmit',
-					query: {
-						domain: this.list[index].domain
-					}
-				});
-			} else {
-				this.$toast('持有人超链暂未开启');
-			}
-		},
-		fallback() {
-			if (this.action == '3') {
-				this.action = 1;
-				this.heightNumber = '500px';
-				this.heightBgNumber = '260px';
-				this.moreHeight = 0;
-			} else if (this.action == '2') {
-				this.action = 1;
-				this.paddingTop = 0;
-				this.heightNumber = '500px';
-				this.heightBgNumber = '260px';
-				this.moreHeight = 0;
-			}
-		}
-	}
+    data() {
+        return {
+            action: 1,
+            heightNumber: '500px',
+            paddingTop: 0,
+            heightBgNumber: '260px',
+            moreHeight: 0,
+            domain: true,
+            value: '',
+            domainList: [],
+            list: [],
+            unregistered: require('@assets/png-da-lv@3x.png'),
+            registered: require('@assets/png-da-zi@3x.png'),
+            timeId: 0
+        };
+    },
+    computed: {
+        ...mapState(['userInfo'])
+        // endTime() {
+        // 	return this.list.forEach(item => {
+        // 		if (item.endTime) {
+        // 			let d = Math.floor(item.endTime / 24 / 3600);
+        // 			item.endTime = d;
+        // 		}
+        // 	});
+        // }
+    },
+    mounted() {
+        this.$http
+            .post(
+                '/domainOrder/all',
+                {
+                    query: {
+                        orderStatus: 'FINISH'
+                    },
+                    size: 50,
+                    sort: 'createdAt,desc'
+                },
+                { body: 'json' }
+            )
+            .then(res => {
+                this.domainList = res.content;
+            })
+            .catch(e => {});
+    },
+    watch: {
+        value() {
+            this.$nextTick(() => {
+                if (this.value == '') {
+                    this.list = [];
+                }
+            });
+        }
+    },
+    methods: {
+        onInput() {
+            if (this.timeId) {
+                clearTimeout(this.timeId);
+                this.timeId = 0;
+            }
+            this.timeId = setTimeout(() => {
+                this.getSearch(this.value);
+            }, 500);
+        },
+        pad(n, width, z) {
+            z = z || '0';
+            n = n + '';
+            return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
+        },
+        change() {
+            this.heightNumber = 'calc(var(--safe-top) + 180px)';
+            this.action = 2;
+            this.paddingTop = 'calc(var(--safe-top) + 70px)';
+            this.heightBgNumber = 'calc(var(--safe-top) + 100px)';
+            this.moreHeight = 'calc(var(--safe-top) - 320px)';
+        },
+        learnMore() {
+            this.action = 3;
+            this.heightNumber = 'calc(var(--safe-top) + 180px)';
+            this.heightBgNumber = 'calc(var(--safe-top) + 100px)';
+            this.moreHeight = 'calc(var(--safe-top) - 320px)';
+        },
+        getSearch(value) {
+            this.value = value.toLowerCase();
+            if (value == '') {
+                this.$nextTick(() => {
+                    this.list = [];
+                });
+            } else {
+                let matching = /^[A-Za-z0-9]+$/;
+                if (matching.test(value)) {
+                    this.$http
+                        .post('/domainOrder/search', {
+                            domain: value
+                        })
+                        .then(res => {
+                            if (this.value === value.toLowerCase()) {
+                                this.list = [];
+                                res.forEach(item => {
+                                    if (item.endTime) {
+                                        item.endTime = this.dayjs(item.endTime).diff(this.dayjs(), 'second');
+                                        item.endTime =
+                                            Math.floor(item.endTime / 24 / 3600) +
+                                            '天' +
+                                            this.pad(parseInt(item.endTime / 3600) % 24, 2) +
+                                            '时' +
+                                            this.pad(parseInt(item.endTime / 60) % 60, 2) +
+                                            '分';
+                                    }
+                                });
+                                this.list = this.list.concat(res);
+                            }
+                        })
+                        .catch(e => {});
+                } else {
+                    this.$toast('只能由数字和字母组成');
+                    this.list = [];
+                }
+            }
+        },
+        buy(index) {
+            if (!this.list[index].sold) {
+                this.$router.push({
+                    path: '/domainSubmit',
+                    query: {
+                        domain: this.list[index].domain
+                    }
+                });
+            } else {
+                this.$toast('持有人超链暂未开启');
+            }
+        },
+        fallback() {
+            if (this.action == '3') {
+                this.action = 1;
+                this.heightNumber = '500px';
+                this.heightBgNumber = '260px';
+                this.moreHeight = 0;
+            } else if (this.action == '2') {
+                this.action = 1;
+                this.paddingTop = 0;
+                this.heightNumber = '500px';
+                this.heightBgNumber = '260px';
+                this.moreHeight = 0;
+            }
+        }
+    }
 };
 </script>
 <style lang="less" scoped>
@@ -696,7 +749,7 @@ export default {
                 line-height: 17px;
                 text-align: center;
             }
-            .meta_domain_name_top_one_con_tips{
+            .meta_domain_name_top_one_con_tips {
                 margin-bottom: 12px;
             }
         }
@@ -838,10 +891,12 @@ export default {
                 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);
@@ -1102,4 +1157,3 @@ export default {
     background-color: transparent;
 }
 </style>
-

+ 231 - 223
src/views/Home.vue

@@ -8,149 +8,143 @@
     	@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>
-                                            </div>
-
-                                            <div class="card swiper-card"> 
-                                                <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>
-                                                </swiper>
-                                                <!-- <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"
-                                            /> 
-
-                                            <div class="card news"> 
-                                                <div class="news-title" @click="$router.push('/newsList')"> 
-                                                    <div class="news-left"> 
-                                                        <div class="text1"> 绿洲头条新闻 </div>
-                                                        <div class="text2"> 快来了解绿洲宇宙新动态 </div>
-                                                    </div>
-                                                    <img class="more" src="@assets/icon_inter.png" alt="" /> 
-                                                </div>
-                                                <news-record
-                                                    v-for="(item, index) in news"
-                                                    :key="index"
-                                                    v-model:info="news[index].obj"
-                                                    type="light"
-                                                > </news-record>
-                                            </div>
-
-                                            <div class="card card-hot" @click="$router.push('/auction')"> 
-                                                <van-image :src="require('../assets/paimaiBg.png')" fit="cover" width="100%" height="110vw" /> 
-                                            </div>
-
-                                            <div class="short-list"> 
-                                                <div class="short-info" @click="$router.push('/starMap')"> 
-                                                    <img src="@assets/1.png" alt="" class="short-img" /> 
-                                                    <div class="short-content"> 
-                                                        <div class="text1"> 链上星图 </div>
-                                                        <div class="text2 van-ellipsis"> 属于你的元宇宙物资铸造中心 </div>
-                                                    </div>
-                                                </div>
-                                                <div class="short-info" @click="$router.push('/auction')"> 
-                                                    <img src="@assets/2.png" alt="" class="short-img" /> 
-                                                    <div class="short-content"> 
-                                                        <div class="text1"> 绿洲易拍 </div>
-                                                        <div class="text2 van-ellipsis"> 精品元宇宙物资与数字艺术品拍卖 </div>
-                                                    </div>
-                                                </div>
-                                                <div class="short-info" @click="domain"> 
-                                                    <img src="@assets/3.png" alt="" class="short-img" /> 
-                                                    <div class="short-content"> 
-                                                        <div class="text1"> 元宇宙域名 </div>
-                                                        <div class="text2 van-ellipsis"> 属于你的元宇宙标识 </div>
-                                                    </div>
-                                                </div>
-                                                <div class="short-info" @click="$router.push('/hopeMarket')"> 
-                                                    <img src="@assets/4.png" alt="" class="short-img" /> 
-                                                    <div class="short-content"> 
-                                                        <div class="text1"> 元宇宙物资 </div>
-                                                        <div class="text2 van-ellipsis"> 买卖你的元宇宙资产 </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-
-                                            <div class="card news" style="margin-top: 0px"> 
-                                                <div class="news-title" @click="$router.push('/activityList')"> 
-                                                    <div class="news-left"> 
-                                                        <div class="text1"> 铸造中心 </div>
-                                                        <div class="text2"> 让你的数字商品更有价值 </div>
-                                                    </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>
-                                            </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)"
-                                            > 
-                                                <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>
-                                                    <div class="text2"> {{ item.remark }} </div>
-                                                </div>
-                                                <div class="hot-bottom" v-else> 
-                                                    <div class="text1"> {{ item.name }} </div>
-                                                    <div class="text2"> {{ item.remark }} </div>
-                                                </div>
-                                            </div>
-                                                <div class="card news" v-if="HotCollects.length > 0 && !$store.state.reviewPay">
-                                                    <div class="news-title"> 
-                                                        <div class="news-left"> 
-                                                            <div class="text1"> 热力IP </div>
-                                                            <div class="text2"> 一周最热IP排名 </div>
-                                                        </div>
-                                                    </div>
-                                                    <div class="rank-list"> 
-                                                        <div class="rankSwiper"> 
-                                                            <hot-collect
-                                                                v-for="(item, index) in HotCollects"
-                                                                :key="index"
-                                                                :index="index"
-                                                                :info="item"
-                                                            > </hot-collect>
-                                                        </div>
-                                                        <!-- <swiper
+            <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>
+            </div>
+
+            <div class="card swiper-card"> 
+                <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>
+                </swiper>
+                <!-- <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"
+            /> 
+
+            <div class="card news"> 
+                <div class="news-title" @click="$router.push('/newsList')"> 
+                    <div class="news-left"> 
+                        <div class="text1"> 绿洲头条新闻 </div>
+                        <div class="text2"> 快来了解绿洲宇宙新动态 </div>
+                    </div>
+                    <img class="more" src="@assets/icon_inter.png" alt="" /> 
+                </div>
+                <news-record v-for="(item, index) in news" :key="index" v-model:info="news[index].obj" type="light"> 
+                </news-record>
+            </div>
+
+            <div class="card card-hot" @click="$router.push('/auction')"> 
+                <van-image :src="require('../assets/paimaiBg.png')" fit="cover" width="100%" height="110vw" /> 
+            </div>
+
+            <div class="short-list"> 
+                <div class="short-info" @click="$router.push('/starMap')"> 
+                    <img src="@assets/1.png" alt="" class="short-img" /> 
+                    <div class="short-content"> 
+                        <div class="text1"> 链上星图 </div>
+                        <div class="text2 van-ellipsis"> 属于你的元宇宙物资铸造中心 </div>
+                    </div>
+                </div>
+                <div class="short-info" @click="$router.push('/auction')"> 
+                    <img src="@assets/2.png" alt="" class="short-img" /> 
+                    <div class="short-content"> 
+                        <div class="text1"> 绿洲易拍 </div>
+                        <div class="text2 van-ellipsis"> 精品元宇宙物资与数字艺术品拍卖 </div>
+                    </div>
+                </div>
+                <div class="short-info" @click="domain"> 
+                    <img src="@assets/3.png" alt="" class="short-img" /> 
+                    <div class="short-content"> 
+                        <div class="text1"> 元宇宙域名 </div>
+                        <div class="text2 van-ellipsis"> 属于你的元宇宙标识 </div>
+                    </div>
+                </div>
+                <div class="short-info" @click="$router.push('/hopeMarket')"> 
+                    <img src="@assets/4.png" alt="" class="short-img" /> 
+                    <div class="short-content"> 
+                        <div class="text1"> 元宇宙物资 </div>
+                        <div class="text2 van-ellipsis"> 买卖你的元宇宙资产 </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="card news" style="margin-top: 0px"> 
+                <div class="news-title" @click="$router.push('/activityList')"> 
+                    <div class="news-left"> 
+                        <div class="text1"> 铸造中心 </div>
+                        <div class="text2"> 让你的数字商品更有价值 </div>
+                    </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>
+            </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)"
+                > 
+                    <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>
+                        <div class="text2"> {{ item.remark }} </div>
+                    </div>
+                    <div class="hot-bottom" v-else> 
+                        <div class="text1"> {{ item.name }} </div>
+                        <div class="text2"> {{ item.remark }} </div>
+                    </div>
+                </div>
+                <div class="card news" v-if="HotCollects.length > 0 && !$store.state.reviewPay">
+                    <div class="news-title"> 
+                        <div class="news-left"> 
+                            <div class="text1"> 热力IP </div>
+                            <div class="text2"> 一周最热IP排名 </div>
+                        </div>
+                    </div>
+                    <div class="rank-list"> 
+                        <div class="rankSwiper"> 
+                            <hot-collect v-for="(item, index) in HotCollects" :key="index" :index="index" :info="item"> 
+                            </hot-collect>
+                        </div>
+                        <!-- <swiper
                         class="rankSwiper"
                         @reachEnd="reachEnd"
                         @slidePrevTransitionStart="slidePrevTransitionStart"
@@ -162,32 +156,48 @@
                            <rank-info :index="index" v-model:info="hotUsers[index]"> </rank-info> 
                         </swiper-slide>
                     </swiper> -->
-                                                    </div>
-                                                </div>
-                                                <div class="application_market"> 
-                                                    <div class="application_market_con"> 
-                                                        <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"> 
-                                                                <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"> 
-                                                                <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"> 
-                                                                <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"> 
-                                                                <div class="application_market_con_list_con_text"> 数字展览 </div>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                                <!-- <div class="card news" style="order: 2" v-if="hotUsers.length > 0">
+                    </div>
+                </div>
+                <div class="application_market"> 
+                    <div class="application_market_con"> 
+                        <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"
+                                /> 
+                                <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"
+                                /> 
+                                <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"
+                                /> 
+                                <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"
+                                /> 
+                                <div class="application_market_con_list_con_text"> 数字展览 </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <!-- <div class="card news" style="order: 2" v-if="hotUsers.length > 0">
                 <div class="news-title"> 
                     <div class="news-left"> 
                         <div class="text1"> 热力探索 </div>
@@ -202,14 +212,14 @@
                     </div>
                 </div>
             </div> -->
-                                            </div>
+            </div>
 
-                                            <!-- <div class="tabs" v-if="!empty"> 
+            <!-- <div class="tabs" v-if="!empty"> 
             <div class="tab" :class="{ active: active === 0 }" @click="active = 0"> 数字艺术品 </div>
             <div class="tab" :class="{ active: active === 1 }" @click="active = 1"> 产品新闻端 </div>
         </div> -->
 
-                                            <!-- <div class="list-top"> 
+            <!-- <div class="list-top"> 
             <van-badge :dot="isNewCollections" :offset="[-35, 15]"> 
                 <div class="text1" :class="{ active: active === 0 }" @click="changeActive(0)"> 数字文创 </div>
             </van-badge>
@@ -217,50 +227,50 @@
                 <div class="text1" :class="{ active: active === 1 }" @click="changeActive(1)"> 绿洲头条 </div>
             </van-badge>
         </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>
-
-                                                <div class="tips-content"> 
-                                                    <div class="tips"> 【华储艺术品中心(深圳)有限公司】 </div>
-                                                    <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"
-                                                    > 
-                                                        <img src="@assets/icon.png" alt="" /> 
-                                                        <p> 粤公网安备 44030302002216号 </p> </a
-                                                    >
-                                                </div>
-                                            </div>
-                                            <img src="../assets/png-zhiding.png" @click="goTop" class="goTop" v-if="bodyScroll > 200" alt="" />
-                                        </van-pull-refresh>
+            <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>
+
+                <div class="tips-content"> 
+                    <div class="tips"> 【华储艺术品中心(深圳)有限公司】 </div>
+                    <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"
+                    > 
+                        <img src="@assets/icon.png" alt="" /> 
+                        <p> 粤公网安备 44030302002216号 </p>
+                    </a>
+                </div>
+            </div>
+            <img src="../assets/png-zhiding.png" @click="goTop" class="goTop" v-if="bodyScroll > 200" alt="" />
+        </van-pull-refresh>
     <van-dialog v-model:show="riskShow" theme="round-button" className="risk"> 
-                                            <div class="risk-box"> 
-                                                <img src="@assets/png-bg.png" class="risk-bg" alt="" /> 
-                                                <div class="risk-content"> 
-                                                    <div class="text1"> 官方公告 </div>
-                                                    <div class="text2"> ANNOUNCEMENT </div>
-                                                    <div class="text3"> 
-                                                        RAEX绿洲宇宙的探索者:法律许可范围内,最终解释权归RAEX绿洲宇宙平台所有,RAEX绿洲宇宙平台有权对宣传内容进行修改、调整,敬请留意最新宣传资料或公告通知。华储艺术品中心(深圳)有限公司进行拍卖的数字艺术品及RAEX绿洲宇宙平台发售的数字艺术品仅具备收藏欣赏、版权价值。RAEX绿洲宇宙发售的数字艺术品首发价格为官方指导价,版权市场拍卖价格均为数字艺术品持有者自行决定,平台不干涉拍卖价格,对发行的艺术品二手市场价格不构成任何指导建议。平台严禁未满22周岁以及超过55周岁的用户注册平台账号及使用相关功能,请各位探索者理性消费,仔细阅读相关权益,切勿盲从、轻信他人谣言,杜绝恶意炒作,远离一切非法行为,切实维护自身财产安全,共同营造健康数字艺术品生态。
-                                                    </div>
-                                                </div>
-                                            </div>
-                                            <template #footer> 
-                                                <div class="risk-footer"> 
-                                                    <van-button block color="#E85C58" @click="riskShow = false"> 我已知晓 </van-button>
-                                                </div>
-                                            </template>
-                                        </van-dialog>
+            <div class="risk-box"> 
+                <img src="@assets/png-bg.png" class="risk-bg" alt="" /> 
+                <div class="risk-content"> 
+                    <div class="text1"> 官方公告 </div>
+                    <div class="text2"> ANNOUNCEMENT </div>
+                    <div class="text3"> 
+                        RAEX绿洲宇宙的探索者:法律许可范围内,最终解释权归RAEX绿洲宇宙平台所有,RAEX绿洲宇宙平台有权对宣传内容进行修改、调整,敬请留意最新宣传资料或公告通知。华储艺术品中心(深圳)有限公司进行拍卖的数字艺术品及RAEX绿洲宇宙平台发售的数字艺术品仅具备收藏欣赏、版权价值。RAEX绿洲宇宙发售的数字艺术品首发价格为官方指导价,版权市场拍卖价格均为数字艺术品持有者自行决定,平台不干涉拍卖价格,对发行的艺术品二手市场价格不构成任何指导建议。平台严禁未满22周岁以及超过55周岁的用户注册平台账号及使用相关功能,请各位探索者理性消费,仔细阅读相关权益,切勿盲从、轻信他人谣言,杜绝恶意炒作,远离一切非法行为,切实维护自身财产安全,共同营造健康数字艺术品生态。
+                    </div>
+                </div>
+            </div>
+            <template #footer> 
+                <div class="risk-footer"> 
+                    <van-button block color="#E85C58" @click="riskShow = false"> 我已知晓 </van-button>
+                </div>
+            </template>
+        </van-dialog>
 </template>
 
 <script>
@@ -375,9 +385,9 @@ export default {
 		});
 	},
 	methods: {
-        download(){
-            document.location.href = 'https://yags.raex.vip/h5/home'
-        },
+		download() {
+			document.location.href = 'https://yags.raex.vip/h5/home';
+		},
 		organization(value) {
 			this.$router.push({
 				path: '/digitalOrganization',
@@ -521,11 +531,8 @@ export default {
 				.then(res => {
 					res.forEach(item => {
 						item.name = item.name.split('#')[0].trim();
-                        if(item.pic == null){
-                            item.pic = []
-                        }
 					});
-					this.HotCollects = res.slice(0, 5);    
+					this.HotCollects = res.slice(0, 5);
 					return Promise.resolve();
 				})
 				.catch(() => {
@@ -1286,4 +1293,5 @@ export default {
     top: calc(120px + var(--safe-top));
     left: 14px;
     z-index: 20;
-}</style>
+}
+</style>

+ 1 - 1
src/views/user/AiPage.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="page" :style="{ backgroundImage: `url(${require('@/assets/bgBody.png')})` }">
+    <div class="page">
         <van-sticky>
             <div class="padding-safe-top">
                 <van-nav-bar title="ChatGPT小助手" left-text="" right-text="" left-arrow @click-left="$router.go(-1)" />

+ 1 - 1
src/views/user/Rank.vue

@@ -17,7 +17,7 @@
                         <span>持仓总值排名</span>
                     </div>
                 </div>
-                <div class="tab-item" :class="{ prim: active === 1 }" @click="wait">
+                <div class="tab-item" :class="{ prim: active === 1 }" @click="changeRare(1)">
                     <img v-if="active === 1" src="@assets/png-middle-bg.png" class="bg" alt="" />
                     <div class="text">
                         <span>一周购买力排行</span>