panhui 3 سال پیش
والد
کامیت
9db34f77c4
2فایلهای تغییر یافته به همراه165 افزوده شده و 13 حذف شده
  1. 150 13
      src/views/search/SearchDetail.vue
  2. 15 0
      src/views/search/SearchResult.vue

+ 150 - 13
src/views/search/SearchDetail.vue

@@ -22,7 +22,7 @@
                     <div v-else @click="onCancel">取消</div>
                 </template>
             </van-search>
-            <van-tabs
+            <!-- <van-tabs
                 v-model:active="sort"
                 :ellipsis="false"
                 line-width="16"
@@ -46,7 +46,7 @@
                         </div>
                     </template>
                 </van-tab>
-            </van-tabs>
+            </van-tabs> -->
             <!-- <van-checkbox
                 v-if="isSearch && source == 'TRANSFER' && !title"
                 @change="getData(true)"
@@ -55,7 +55,7 @@
                 >仅看在售</van-checkbox
             > -->
 
-            <van-button
+            <!-- <van-button
                 @click="changeSort"
                 v-if="isSearch && source == 'TRANSFER' && !title"
                 class="sala"
@@ -66,7 +66,7 @@
                 icon-position="right"
                 round
                 >{{ salable ? '在售中' : salable === false ? '仅展示' : '综合排序' }}</van-button
-            >
+            > -->
         </van-sticky>
 
         <van-action-sheet
@@ -86,7 +86,8 @@
             v-show="isSearch"
         >
             <template v-for="(item, index) in list" :key="index">
-                <product-info dark v-model:info="list[index]" @update:info="init"></product-info>
+                <component :is="com" dark v-model:info="list[index]" @update:info="init" list></component>
+                <!-- <product-info dark v-model:info="list[index]" @update:info="init"></product-info> -->
             </template>
             <van-empty v-if="empty" description="什么都没有搜到哦~" :image="require('@assets/kong_png_wusousuo.png')" />
         </van-list>
@@ -95,12 +96,24 @@
 
 <script>
 import ProductInfo from '../../components/product/productInfo.vue';
+import NewsRecord from '@/components/product/NewsRecord.vue';
+import ActivityRecord from '@/components/product/ActivityRecord.vue';
+import ShowInfo from '@/components/asset/showInfo.vue';
+import CreatorSmall from '@/components/creator/CreatorSmall.vue';
+import CreatorInfo from '@/components/creator/CreatorInfoList.vue';
 import product from '../../mixins/product';
 import list from '../../mixins/list';
 import search from '../../mixins/search';
 export default {
     name: 'productSearch',
-    components: { ProductInfo },
+    components: {
+        NewsRecord,
+        ActivityRecord,
+        ProductInfo,
+        ShowInfo,
+        CreatorSmall,
+        CreatorInfo
+    },
     inject: ['bar', 'setKeeps', 'scrollWrapper', 'changeScroll'],
     mixins: [product, list, search],
     setup() {
@@ -122,7 +135,7 @@ export default {
             type: '',
             source: '',
             minterId: '',
-            url: '/collection/all',
+
             scrollTop: 0,
             sort: 'id,desc',
             sortDes: '',
@@ -183,12 +196,48 @@ export default {
                     })
                 };
             });
+        },
+        url() {
+            if (this.pageType === 'news') {
+                return '/news/all';
+            }
+            if (this.pageType === 'mintActivities') {
+                return '/mintActivity/all';
+            }
+            if (this.pageType === 'minters') {
+                return '/user/all';
+            }
+            if (this.pageType === 'users') {
+                return '/user/all';
+            }
+            if (this.pageType === 'showrooms') {
+                return '/showroom/all';
+            }
+            return '/collection/all';
+        },
+        com() {
+            if (this.pageType === 'news') {
+                return 'NewsRecord';
+            }
+            if (this.pageType === 'mintActivities') {
+                return 'ActivityRecord';
+            }
+            if (this.pageType === 'minters') {
+                return 'CreatorSmall';
+            }
+            if (this.pageType === 'users') {
+                return 'CreatorInfo';
+            }
+            if (this.pageType === 'showrooms') {
+                return 'ShowInfo';
+            }
+            return 'ProductInfo';
         }
     },
     mounted() {
         this.$store.dispatch('getUsedBuy');
-        if (this.$route.query.type) {
-            this.type = this.$route.query.type;
+        if (this.$route.query.pageType) {
+            this.pageType = this.$route.query.pageType;
         }
         if (this.$route.query.source) {
             this.source = this.$route.query.source;
@@ -301,14 +350,81 @@ export default {
             if (sort == 'price') {
                 sort = 'price,' + this.sortDes;
             }
-            let type = this.type;
-            if (!type && !this.showHall) {
-                type = 'DEFAULT,BLIND_BOX';
+            if (this.pageType === 'showrooms') {
+                return {
+                    query: {
+                        del: false,
+                        status: 'SUCCESS',
+                        publish: true,
+                        type: this.type
+                    },
+                    search: this.search,
+                    sort: 'heats,desc'
+                };
+            }
+            if (this.pageType === 'users') {
+                return {
+                    query: {
+                        del: false,
+                        minter: false
+                    },
+                    search: this.search
+                };
+            }
+            if (this.pageType === 'minters') {
+                return {
+                    query: {
+                        del: false,
+                        minter: true
+                    },
+                    search: this.search
+                };
+            }
+            if (this.pageType === 'mintActivities') {
+                return {
+                    query: {
+                        del: false,
+                        companyId: 1
+                    },
+                    search: this.search
+                };
+            }
+            if (this.pageType === 'news') {
+                return {
+                    query: {
+                        onShelf: true,
+                        del: false,
+                        companyId: 1
+                    },
+                    search: this.search
+                };
+            }
+            if (this.pageType === 'pictures') {
+                return {
+                    query: {
+                        onShelf: true,
+                        type: 'PICTURE',
+                        del: false
+                    },
+                    search: this.search,
+                    sort: this.sort === 'id,desc' ? this.sortOptions[this.title] || sort : sort
+                };
+            }
+            if (this.pageType === 'domains') {
+                return {
+                    query: {
+                        onShelf: true,
+                        type: 'DOMAIN',
+                        del: false
+                    },
+                    search: this.search,
+                    sort: this.sort === 'id,desc' ? this.sortOptions[this.title] || sort : sort
+                };
             }
             return {
                 query: {
                     onShelf: true,
-                    type: type,
+                    type: 'DEFAULT,BLIND_BOX',
                     source: this.source,
                     minterId: this.minterId,
                     del: false,
@@ -668,4 +784,25 @@ export default {
         z-index: 2;
     }
 }
+
+.van-list {
+    padding: 8px;
+    --bg2: #2b2b2c;
+    --text0: #fff;
+    --btnplaintBg: rgba(255, 255, 255, 0.08);
+    --btnplaintBorder: rgba(255, 255, 255, 0.08);
+    --border: rgba(255, 255, 255, 0.08);
+    .news-record {
+        border-radius: 0;
+    }
+    .showInfo {
+        background-color: #2b2b2c;
+        border-radius: 12px;
+        margin: 0 8px;
+    }
+    .showInfo + .showInfo {
+        margin-top: 16px;
+    }
+}
+
 </style>

+ 15 - 0
src/views/search/SearchResult.vue

@@ -39,6 +39,7 @@
                                 list
                             ></component>
                         </template>
+                        <div class="more" @click="goDetail()">查看更多</div>
                     </div>
                 </van-tab>
             </van-tabs>
@@ -280,4 +281,18 @@ export default {
     border-radius: 8px;
     overflow: hidden;
 }
+.more {
+    color: #fff;
+    text-align: center;
+    padding: 10px 0;
+    &::before {
+        content: '<<';
+        margin-right: 10px;
+    }
+
+    &::after {
+        content: '>>';
+        margin-left: 10px;
+    }
+}
 </style>