panhui 3 лет назад
Родитель
Сommit
1949b9e855

BIN
src/assets/png-searchAll-bg.png


BIN
src/assets/search-all-newsBg.png


BIN
src/assets/search_sosuo.png


+ 3 - 2
src/mixins/list.js

@@ -6,7 +6,8 @@ export default {
             finished: false,
             page: 0,
             totalElements: 0,
-            size: 20
+            size: 20,
+            isFormData: false
         };
     },
     methods: {
@@ -43,7 +44,7 @@ export default {
                     this.totalElements = Number(res.totalElements);
                 });
             } else {
-                return this.$http.post(this.url, data, { body: 'json' }).then(res => {
+                return this.$http.post(this.url, data, this.isFormData ? {} : { body: 'json' }).then(res => {
                     if (res.first) {
                         this.list = [];
                     }

+ 18 - 0
src/router/index.js

@@ -938,6 +938,24 @@ const routes = [
         meta: {
             menuPage: true
         }
+    },
+    {
+        path: '/searchAll',
+        name: 'searchAll',
+        component: () => import('../views/search/SearchAll.vue'),
+        meta: {
+            menuPage: true,
+            pageType: Page.Every
+        }
+    },
+    {
+        path: '/searchResult',
+        name: 'searchResult',
+        component: () => import('../views/search/SearchResult.vue'),
+        meta: {
+            menuPage: true,
+            pageType: Page.Every
+        }
     }
 ];
 

+ 53 - 31
src/views/domain/Statistics.vue

@@ -23,75 +23,92 @@
             <div class="datas-card">
                 <div class="datas-item">
                     <div class="text1">流通量</div>
-                    <div class="text2">1000</div>
+                    <div class="text2">{{ datas.transferringCount || 0 }}</div>
                 </div>
                 <div class="datas-item">
-                    <div class="text1">流通量</div>
-                    <div class="text2">1000</div>
+                    <div class="text1">寄售中</div>
+                    <div class="text2">{{ datas.consignment || 0 }}</div>
                 </div>
                 <div class="datas-item">
-                    <div class="text1">流通量</div>
-                    <div class="text2">1000</div>
+                    <div class="text1">仅展示</div>
+                    <div class="text2">{{ datas.publicShow || 0 }}</div>
                 </div>
             </div>
         </div>
 
-        <div class="van-list">
-            <div class="collection">
-                <van-image
-                    width="128"
-                    height="128"
-                    fit="cover"
-                    src="https://fastly.jsdelivr.net/npm/@vant/assets/cat.jpeg"
-                />
+        <van-list class="list" v-model:loading="loading" :finished="finished" finished-text="" @load="getData">
+            <div class="collection" v-for="(item, index) in list" :key="index">
+                <van-image width="128" height="128" fit="cover" :src="getImg(changeImgs(item.pic, 600))" />
                 <div class="collection-info">
-                    <div class="text1">北京荣宝网络文物拍卖拍卖北京荣宝网络文物拍卖拍卖</div>
+                    <div class="text1">{{ item.name }}</div>
                     <div class="minter">
-                        <van-image
-                            width="18"
-                            height="18"
-                            fit="cover"
-                            round
-                            src="https://fastly.jsdelivr.net/npm/@vant/assets/cat.jpeg"
-                        />
-                        <span>持有者名称</span>
+                        <van-image width="18" height="18" fit="cover" round :src="item.ownerAvatar" />
+                        <span>{{ item.owner }}</span>
                     </div>
-                    <div class="time">成交时间:2023.03.20</div>
+                    <div class="time">成交时间:{{ item.payTime }}</div>
                     <div class="flex1"></div>
                     <div class="price">
                         <span>成交价</span>
                         <img src="@assets/icon_jiage_lv.png" alt="" />
-                        <span>1000</span>
+                        <span>{{ item.price }}</span>
                     </div>
                 </div>
             </div>
-        </div>
+        </van-list>
     </div>
 </template>
 
 <script>
+import list from '../../mixins/list';
+import product from '../../mixins/product';
 export default {
     data() {
         return {
-            type: '',
+            type: 0,
             typeOptions: [
                 {
                     label: '百家姓',
-                    value: '',
+                    value: 0,
                     type: ''
                 },
                 {
                     label: '字符',
-                    value: 'xingtu',
+                    value: 1,
                     type: ''
                 },
                 {
                     label: '数字',
-                    value: 'metadomainName',
+                    value: 2,
                     type: ''
                 }
-            ]
+            ],
+            datas: {},
+            url: '/order/newestOrder',
+            isFormData: true,
+            size: 2,
+            sort: 'payTime,desc'
         };
+    },
+    mixins: [list, product],
+    mounted() {
+        this.getStatics();
+    },
+    methods: {
+        getStatics() {
+            this.$http
+                .post('/order/domainOrderStatistic', {
+                    type: this.type
+                })
+                .then(res => {
+                    this.datas = res;
+                });
+        },
+        beforeData() {
+            return {
+                type: this.type,
+                sort: this.sort
+            };
+        }
     }
 };
 </script>
@@ -209,12 +226,16 @@ export default {
         .price {
             font-size: 12px;
             font-weight: bold;
-            color: #00fe1e;
             line-height: 12px;
+            color: #00fe1e;
+            .flex();
+            align-items: flex-end;
 
             img {
                 width: 8px;
                 height: 8px;
+                margin-left: 2px;
+                margin-bottom: 1px;
             }
 
             span {
@@ -222,6 +243,7 @@ export default {
                     font-size: 20px;
                     font-family: OSP;
                     font-weight: normal;
+                    line-height: 14px;
                 }
             }
         }

+ 206 - 0
src/views/search/SearchAll.vue

@@ -0,0 +1,206 @@
+<template>
+    <div class="page">
+        <img class="banner" src="@assets/png-searchAll-bg.png" alt="" />
+        <div class="search-box">
+            <van-field
+                class="search"
+                type="text"
+                enterkeyhint="search"
+                v-model="search"
+                placeholder="绿洲宇宙全域搜索,请输入"
+            >
+                <template #right-icon>
+                    <img class="search-right" src="@assets/search_sosuo.png" alt="" />
+                </template>
+            </van-field>
+        </div>
+
+        <div class="hot-content" v-if="historys.length > 0">
+            <div class="title">
+                <span>最近搜索</span>
+                <img src="@assets/icon-delete.png" @click="clear" alt="" />
+            </div>
+            <div class="hot-list">
+                <span v-for="(item, index) in historys" :key="index" @click="getSearch(item)">{{ item }}</span>
+            </div>
+        </div>
+
+        <div class="news-content">
+            <div class="title">绿洲宇宙全域公告</div>
+            <div class="news-list">
+                <div class="news" v-for="(item, index) in news" :key="index">
+                    <div class="news-info">
+                        <div class="text1" :class="[item.obj.subtitle ? 'van-ellipsis' : 'van-multi-ellipsis--l2']">
+                            {{ item.obj.title }}
+                        </div>
+                        <div class="text2 van-ellipsis">{{ item.obj.subtitle }}</div>
+                        <div class="flex1"></div>
+                        <div class="time">{{ getTime(item.obj.createdAt) }}</div>
+                    </div>
+                    <van-image width="160" height="70" radius="8" :src="item.obj.pic" fit="cover" />
+                    <img src="@assets/search-all-newsBg.png" class="news-bg" alt="" />
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import search from '../../mixins/search';
+export default {
+    mixins: [search],
+    data() {
+        return {
+            search: '',
+            news: []
+        };
+    },
+    mounted() {
+        this.getNews();
+    },
+    methods: {
+        getNews() {
+            return this.$http.get('/collection/recommend').then(res => {
+                this.news = res
+                    .filter(item => {
+                        return item.type === 'news';
+                    })
+                    .slice(0, 3);
+                return Promise.resolve();
+            });
+        },
+        getTime(time) {
+            return this.dayjs(time).format('MM月DD hh:mm');
+        }
+    }
+};
+</script>
+
+<style lang="less" scoped>
+.page {
+    background-color: #000;
+    min-height: var(--app-height) !important;
+    position: relative;
+    padding-top: 45.3vw;
+}
+
+.banner {
+    width: 100%;
+    display: block;
+    position: absolute;
+    top: 0;
+    left: 0;
+}
+
+.search-box {
+    padding: 0 20px;
+    .search-right {
+        width: 16px;
+        height: 16px;
+        margin-top: 1px;
+        display: block;
+    }
+
+    .search {
+        background: linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0%, rgba(0, 0, 0, 0.1) 100%);
+        border-radius: 20px;
+        border: 1px solid #ffffff;
+        backdrop-filter: blur(4px);
+        --van-field-input-text-color: #fff;
+        --van-field-placeholder-text-color: #fff;
+        font-family: AlimamaShuHeiTi;
+        --van-cell-vertical-padding: 7px;
+    }
+}
+.hot-content {
+    padding: 24px 20px;
+    .title {
+        .flex();
+        font-size: 16px;
+        font-family: AlimamaShuHeiTi;
+        color: #ffffff;
+        line-height: 24px;
+        img {
+            width: 18px;
+            height: 18px;
+            margin-left: 5px;
+        }
+    }
+
+    .hot-list {
+        span {
+            background: rgba(255, 255, 255, 0.1);
+            border-radius: 4px;
+            font-size: 12px;
+            color: #6f6f70;
+            line-height: 22px;
+            padding: 0 10px;
+            margin: 12px 12px 0 0;
+            display: inline-block;
+        }
+    }
+}
+
+.news-content {
+    padding: 0 20px;
+
+    .news {
+        .flex();
+        align-items: stretch;
+        position: relative;
+        padding: 18px;
+        .van-image {
+            flex-shrink: 0;
+        }
+    }
+    .news + .news {
+        margin-top: 8px;
+    }
+    .title {
+        font-size: 16px;
+        font-family: AlimamaShuHeiTi;
+        color: #ffffff;
+        line-height: 24px;
+    }
+
+    .news-list {
+        padding: 16px 0 50px;
+    }
+
+    .news-info {
+        flex-grow: 1;
+        .flex-col();
+        overflow: hidden;
+
+        .text1 {
+            font-size: 14px;
+            color: #ffffff;
+            line-height: 24px;
+        }
+        .text2 {
+            font-size: 12px;
+            color: #6f6f70;
+            line-height: 24px;
+        }
+        .flex1 {
+            flex-grow: 1;
+        }
+
+        .time {
+            font-size: 12px;
+            color: #6f6f70;
+            line-height: 12px;
+        }
+    }
+
+    .news-bg {
+        position: absolute;
+        top: 0;
+        right: 0;
+        bottom: 0;
+        left: 0;
+        width: 100%;
+        height: 100%;
+    }
+}
+</style>

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

@@ -0,0 +1,11 @@
+<template>
+    <div class="page">
+        
+    </div>
+</template>
+
+<style lang="less" scoped>
+.page {
+    min-height: var(--app-height);
+}
+</style>

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

@@ -4,7 +4,7 @@
             <div class="back-conetnt" @click="goBack">
                 <img src="@assets/icon_fanhui2.png" alt="" />
             </div>
-            <span class="title">绿洲水稻</span>
+            <span class="title">绿洲农耕</span>
         </div>
         <iframe
             class="game"