Browse Source

店铺tab

cr 4 years ago
parent
commit
c05b4ac3d6
3 changed files with 870 additions and 11 deletions
  1. 50 9
      src/pages/goods/index.vue
  2. 818 0
      src/pages/goods/recommend.vue
  3. 2 2
      src/pages/recommend/index.vue

+ 50 - 9
src/pages/goods/index.vue

@@ -124,8 +124,25 @@
124 124
             </section>
125 125
         </div>
126 126
 
127
+        <div class="tab">
128
+            <div @click="tabClick('1')" :class="{ on: curTab === '1' }">
129
+                店铺
130
+            </div>
131
+            <div @click="tabClick('2')" :class="{ on: curTab === '2' }">
132
+                优选
133
+            </div>
134
+        </div>
135
+
127 136
         <!-- :class="{ dis: categoryDis }" -->
128
-        <category v-if="loginAfter" :loginAfter="loginAfter" ref="category" class="category"></category>
137
+        <category
138
+            v-if="loginAfter && curTab==='1'"
139
+            :loginAfter="loginAfter"
140
+            ref="category"
141
+            class="category"
142
+        ></category>
143
+        <recommend v-if="loginAfter && curTab==='2'"></recommend>
144
+
145
+
129 146
         <wyg-bottom-tab
130 147
             ref="tabbar"
131 148
             :tabIndex="2"
@@ -138,11 +155,12 @@
138 155
 import MyImage from "../../components/image/index";
139 156
 import NavBar2 from "../../components/layout/nav-bar2";
140 157
 import Category from "./category";
158
+import Recommend from "./recommend";
141 159
 import wygBottomTab from "../../components/wyg-bottom-tab/wyg-bottom-tab";
142 160
 
143 161
 export default {
144 162
     name: "",
145
-    components: { MyImage, NavBar2, Category, wygBottomTab },
163
+    components: { MyImage, NavBar2, Category, wygBottomTab,Recommend,Recommend,Recommend },
146 164
     // 数据
147 165
     data() {
148 166
         return {
@@ -150,7 +168,8 @@ export default {
150 168
             navHeight: 0,
151 169
             categoryDis: true,
152 170
             index: 1,
153
-            loginAfter:false,
171
+            loginAfter: false,
172
+            curTab:'1'
154 173
         };
155 174
     },
156 175
     filters: {},
@@ -160,16 +179,16 @@ export default {
160 179
     },
161 180
     async onShow() {
162 181
         await this.fn.init();
163
-        if(!this.activeShop){
182
+        if (!this.activeShop) {
164 183
             this.router.push({
165
-                path:'/pages/index/index',
166
-                isTabBer:true
167
-            })
184
+                path: "/pages/index/index",
185
+                isTabBer: true,
186
+            });
168 187
             return;
169 188
         }
170 189
         this.loginAfter = true;
171 190
         this.getShopData();
172
-        if(this.$refs.category){
191
+        if (this.$refs.category) {
173 192
             this.$refs.category.refresh();
174 193
         }
175 194
         this.$refs.tabbar.setIndex(2);
@@ -239,6 +258,10 @@ export default {
239 258
                 },
240 259
             });
241 260
         },
261
+
262
+        tabClick(v){
263
+            this.curTab = v;
264
+        }
242 265
     },
243 266
     onShareAppMessage() {
244 267
         let url = `/pages/goods/index?uid=${this.user.id}&shopId=${this.activeShop.id}`;
@@ -383,7 +406,7 @@ export default {
383 406
     }
384 407
 }
385 408
 .shop-other {
386
-    margin-top: px(60);
409
+    margin-top: px(40);
387 410
     .discount {
388 411
         display: flex;
389 412
         justify-content: space-between;
@@ -575,4 +598,22 @@ export default {
575 598
         pointer-events: none;
576 599
     }
577 600
 }
601
+.tab {
602
+    display: flex;
603
+    justify-content: center;
604
+    padding: px(60) 0;
605
+    div {
606
+        font-size: px(48);
607
+        margin: 0 px(150);
608
+        text-align: center;
609
+        height: px(100);
610
+        line-height: px(100);
611
+        padding: 0 px(20);
612
+        border-bottom: px(4) solid transparent;
613
+    }
614
+    .on {
615
+        color: #27a34f;
616
+        border-color: #27a34f;
617
+    }
618
+}
578 619
 </style>

+ 818 - 0
src/pages/goods/recommend.vue

@@ -0,0 +1,818 @@
1
+<template>
2
+    <div class="page-main page_red" :style="{ height: pageH }">
3
+        <div class="page__content">
4
+            <div class="page__box">
5
+                <scroll-view class="category" :scroll-y="true">
6
+                    <ul class="category__list">
7
+                        <li
8
+                            class="category__item"
9
+                            :class="{
10
+                                'category__item--active': categoryId === 'all',
11
+                            }"
12
+                            @click="setCategory('all')"
13
+                        >
14
+                            全部
15
+                        </li>
16
+                        <li
17
+                            class="category__item"
18
+                            :class="{
19
+                                'category__item--active':
20
+                                    categoryId === item.id,
21
+                            }"
22
+                            v-for="(item, index) in categoryList"
23
+                            :key="index"
24
+                            @click="setCategory(item)"
25
+                        >
26
+                            {{ item.name }}
27
+                        </li>
28
+                    </ul>
29
+                </scroll-view>
30
+                <div class="page__right">
31
+                    <div class="goods">
32
+                        <scroll-view
33
+                            class="goods__scroll"
34
+                            :scroll-y="true"
35
+                            @scrolltolower="getMoreList"
36
+                        >
37
+                            <ul class="shop-list">
38
+                                <li
39
+                                    class="shop-item"
40
+                                    v-for="item of dataList"
41
+                                    :key="item.aid"
42
+                                >
43
+                                    <div class="info" @click="jumpList(item)">
44
+                                        <image
45
+                                            mode="aspectFill"
46
+                                            :src="item.brandLogo"
47
+                                            class="shop-img"
48
+                                        ></image>
49
+                                        <div class="r">
50
+                                            <div class="main">
51
+                                                <div class="name">
52
+                                                    {{ item.brandName }}
53
+                                                </div>
54
+                                                <div class="other">
55
+                                                    <span class="tag"
56
+                                                        >{{
57
+                                                            item.onlineProductCount
58
+                                                        }}款</span
59
+                                                    >
60
+
61
+                                                    <span class="date"
62
+                                                        >{{
63
+                                                            item.beginTime
64
+                                                                | timestampToDate(
65
+                                                                    "yy/MM/dd"
66
+                                                                )
67
+                                                        }}
68
+                                                        —
69
+                                                        {{
70
+                                                            item.endTime
71
+                                                                | timestampToDate(
72
+                                                                    "yy/MM/dd"
73
+                                                                )
74
+                                                        }}</span
75
+                                                    >
76
+                                                </div>
77
+                                            </div>
78
+                                            <span class="btn">进入会场</span>
79
+                                        </div>
80
+                                    </div>
81
+                                    <div class="good-list">
82
+                                        <section
83
+                                            class="good-item"
84
+                                            v-for="good of item.prods"
85
+                                            :key="good.pid"
86
+                                            @click="jumpDetail(good)"
87
+                                        >
88
+                                            <div class="box">
89
+                                                <image
90
+                                                    mode="widthFix"
91
+                                                    :src="good.pictureUrls[0]"
92
+                                                    class="good-img"
93
+                                                ></image>
94
+                                                <div class="good-name">
95
+                                                    {{ good.name }}
96
+                                                </div>
97
+                                                <div class="price">
98
+                                                    ¥{{
99
+                                                        good.minPrice
100
+                                                            | minuteToRmb2
101
+                                                    }}
102
+                                                </div>
103
+                                                <div
104
+                                                    class="tag-price"
105
+                                                    v-if="
106
+                                                        good.maxPrice &&
107
+                                                        good.maxPrice !==
108
+                                                            good.minPrice
109
+                                                    "
110
+                                                >
111
+                                                    ¥{{
112
+                                                        good.maxPrice
113
+                                                            | minuteToRmb2
114
+                                                    }}
115
+                                                </div>
116
+                                            </div>
117
+                                        </section>
118
+                                    </div>
119
+                                </li>
120
+                            </ul>
121
+                            <div
122
+                                class="more-text"
123
+                                v-if="dataList.length && !isHaveMore"
124
+                            >
125
+                                - 没有更多商品了 -
126
+                            </div>
127
+                            <div
128
+                                class="null"
129
+                                v-if="loading && !dataList.length"
130
+                            >
131
+                                <img
132
+                                    class="null__img"
133
+                                    src="/static/common/goods_null.jpg"
134
+                                    alt
135
+                                />
136
+                                <div class="null__title">
137
+                                    抱歉!没有找到相关商品~
138
+                                </div>
139
+                            </div>
140
+                        </scroll-view>
141
+                    </div>
142
+                </div>
143
+            </div>
144
+        </div>
145
+    </div>
146
+</template>
147
+
148
+<script>
149
+import MyImage from "../../components/image/index";
150
+export default {
151
+    name: "",
152
+    components: { MyImage },
153
+    props: {
154
+        loginAfter: {
155
+            type: Boolean,
156
+            default: false,
157
+        },
158
+    },
159
+    // 数据
160
+    data() {
161
+        return {
162
+            categoryId: "",
163
+            categoryList: [],
164
+            page: 1, // 页码
165
+            dataList: [],
166
+            isHaveMore: true, // 是否有更多数据
167
+            loading: false, // 是否加载完成
168
+            cartList: [],
169
+
170
+            goods: null, // 详情数据 加入购物车时用
171
+            cartNum: 0, // 购物车数量
172
+            categoryAllVisible: false, // 分类全部显示
173
+            shopId: "", //店铺id
174
+            index: 1,
175
+            pageH: "90vh",
176
+        };
177
+    },
178
+
179
+    async created() {
180
+        this.initHeight();
181
+        this.refresh();
182
+    },
183
+
184
+    // onPullDownRefresh() {
185
+    //     this.getCategory();
186
+    //     this.getList();
187
+    //     this.$refs.shopCart.refresh();
188
+    // },
189
+
190
+    // 函数
191
+    methods: {
192
+        refresh() {
193
+            this.categoryId = "";
194
+            this.subCategoryId = "";
195
+            this.getCategory();
196
+        },
197
+
198
+        initHeight() {
199
+            let menuButtonObject = uni.getMenuButtonBoundingClientRect();
200
+            uni.getSystemInfo({
201
+                success: (res) => {
202
+                    // this.navTaberHeight = res.screenWidth?44/(res.screenWidth/750):88;
203
+                    let statusBarHeight = res.statusBarHeight || 20;
204
+                    let navHeight =
205
+                        statusBarHeight +
206
+                        menuButtonObject.height +
207
+                        (menuButtonObject.top - statusBarHeight) * 2;
208
+                    this.pageH = innerHeight - navHeight - navHeight + "px";
209
+                },
210
+            });
211
+        },
212
+
213
+        // 获取商品分类
214
+        getCategory() {
215
+            const self = this;
216
+            this.api.get("/Product/GetCateList").then((res) => {
217
+                let data = JSON.parse(res.data);
218
+                for (let item of data) {
219
+                    item.id = item.categoryId;
220
+                }
221
+                this.categoryList = data;
222
+                if (!self.categoryId) {
223
+                    self.categoryId = this.categoryList[0].id || "";
224
+                }
225
+            });
226
+        },
227
+
228
+        // 设置商品分类
229
+        setCategory(val) {
230
+            const self = this;
231
+
232
+            self.categoryId = val.id;
233
+            this.categoryAllVisible = false;
234
+        },
235
+
236
+        // 获取列表
237
+        getList() {
238
+            const self = this;
239
+            uni.showLoading({
240
+                title: "加载中...",
241
+            });
242
+            self.page = 1;
243
+            let sendData = {
244
+                pageIndex: self.page,
245
+            };
246
+            if (this.categoryId !== "all") {
247
+                sendData.cateId = this.categoryId;
248
+            }
249
+            self.api.get("/Product/GetActivityList", sendData).then((res) => {
250
+                uni.hideLoading();
251
+                uni.stopPullDownRefresh();
252
+                let data = JSON.parse(res.data.list);
253
+                if (data.length) {
254
+                    self.page++;
255
+                } else {
256
+                    self.isHaveMore = false;
257
+                }
258
+
259
+                self.dataList = data;
260
+                self.loading = true;
261
+                uni.hideLoading();
262
+            });
263
+        },
264
+
265
+        // 获取更多商品
266
+        getMoreList() {
267
+            const self = this;
268
+
269
+            let sendData = {
270
+                pageIndex: self.page,
271
+            };
272
+            if (this.categoryId !== "all") {
273
+                sendData.cateId = this.categoryId;
274
+            }
275
+            self.api
276
+                .get("/Product/GetActivityList",sendData)
277
+                .then((res) => {
278
+                    let data = JSON.parse(res.data.list);
279
+                    if (data.length) {
280
+                        self.page++;
281
+                    } else {
282
+                        self.isHaveMore = false;
283
+                    }
284
+
285
+                    self.dataList = self.dataList.concat(data);
286
+                });
287
+        },
288
+
289
+        jumpList(item) {
290
+            console.log(item);
291
+            this.router.push({
292
+                path: "/pages/recommend/list",
293
+                query: {
294
+                    aid: item.activityNo,
295
+                },
296
+            });
297
+        },
298
+
299
+        jumpDetail(good) {
300
+            this.router.push({
301
+                path: "/pages/recommend/detail",
302
+                query: {
303
+                    goodsId: good.pid,
304
+                },
305
+            });
306
+        },
307
+    },
308
+
309
+    // 数据计算
310
+    computed: {
311
+        // 判断主题  1:红色  2:绿色
312
+        theme() {
313
+            return this.$store.state.common.theme;
314
+        },
315
+        user() {
316
+            return this.$store.state.user;
317
+        },
318
+    },
319
+
320
+    // 数据监听
321
+    watch: {
322
+        categoryId(val) {
323
+            const self = this;
324
+
325
+            if (val) {
326
+                self.getList();
327
+            }
328
+        },
329
+    },
330
+};
331
+</script>
332
+
333
+<style>
334
+.page-main {
335
+    height: 100vh;
336
+    background-color: #fff;
337
+    display: flex;
338
+    flex-direction: column;
339
+}
340
+</style>
341
+
342
+<style lang="scss" scoped>
343
+.page {
344
+    &__top {
345
+        display: flex;
346
+        justify-content: space-between;
347
+        align-items: center;
348
+        height: px(145);
349
+        padding: 0 px(50);
350
+        background-color: #fff;
351
+        // box-shadow: 0 px(-5) px(10) #333;
352
+    }
353
+
354
+    &__content {
355
+        position: relative;
356
+        flex: 1;
357
+        margin-top: px(5);
358
+    }
359
+
360
+    &__box {
361
+        position: absolute;
362
+        top: 0;
363
+        left: 0;
364
+        right: 0;
365
+        bottom: 0;
366
+        z-index: 1;
367
+        display: flex;
368
+        justify-content: space-between;
369
+    }
370
+
371
+    &__right {
372
+        display: flex;
373
+        flex-direction: column;
374
+        flex: 1;
375
+        position: relative;
376
+    }
377
+}
378
+
379
+.search {
380
+    display: flex;
381
+    align-items: center;
382
+    width: px(890);
383
+    height: px(86);
384
+    padding: 0 px(35);
385
+    background-color: #f8f8f8;
386
+    border-radius: px(43);
387
+
388
+    &__icon {
389
+        margin-top: px(10);
390
+        font-size: px(60);
391
+        color: #999;
392
+    }
393
+
394
+    &__text {
395
+        margin-left: px(15);
396
+        font-size: px(36);
397
+        color: #999;
398
+    }
399
+}
400
+
401
+.service {
402
+    display: flex;
403
+    flex-direction: column;
404
+    justify-content: center;
405
+    align-items: center;
406
+
407
+    &__icon {
408
+        font-size: px(50);
409
+        color: #666;
410
+    }
411
+
412
+    &__text {
413
+        font-size: px(30);
414
+        color: #666;
415
+    }
416
+}
417
+
418
+.category {
419
+    width: px(225);
420
+    height: 100%;
421
+    background-color: #f8f6f7;
422
+
423
+    &__item {
424
+        position: relative;
425
+        display: flex;
426
+        justify-content: center;
427
+        font-size: px(40);
428
+        color: #888;
429
+        background-color: #f8f6f7;
430
+        padding: px(60) 0;
431
+
432
+        &--active {
433
+            // font-weight: 700;
434
+            color: #333;
435
+            background-color: #fff;
436
+            &:before {
437
+                content: "";
438
+                position: absolute;
439
+                top: 50%;
440
+                left: 0;
441
+                z-index: 1;
442
+                display: block;
443
+                width: px(8);
444
+                height: 100%;
445
+                transform: translateY(-50%);
446
+                border-radius: px(4);
447
+                background-color: #27a34f;
448
+            }
449
+        }
450
+    }
451
+}
452
+
453
+.category-sub {
454
+    position: relative;
455
+    height: px(130);
456
+    background-color: #fff;
457
+    margin-right: px(140);
458
+    margin-left: px(20);
459
+    &__scroll {
460
+        position: absolute;
461
+        top: 0;
462
+        bottom: 0;
463
+        left: 0;
464
+        right: 0;
465
+        z-index: 1;
466
+    }
467
+
468
+    &__list {
469
+        display: flex;
470
+        align-items: center;
471
+        height: 100%;
472
+    }
473
+
474
+    &__toggle {
475
+        position: absolute;
476
+        top: 0;
477
+        right: px(-140);
478
+        z-index: 2;
479
+        width: px(140);
480
+        height: 100%;
481
+        display: flex;
482
+        justify-content: center;
483
+        align-items: center;
484
+        font-size: px(30);
485
+        transform: rotate(90deg);
486
+        &.active {
487
+            transform: rotate(-90deg);
488
+        }
489
+    }
490
+
491
+    &__item {
492
+        position: relative;
493
+        display: flex;
494
+        align-items: center;
495
+        justify-content: center;
496
+        flex: none;
497
+        height: 100%;
498
+        font-size: px(34);
499
+        width: px(220);
500
+        color: #333;
501
+        height: px(70);
502
+        border-radius: px(35);
503
+        background-color: #f6f6f6;
504
+        border: 1px solid #f6f6f6;
505
+        color: #888;
506
+        margin: 0 px(10);
507
+        &--active {
508
+            color: #262626;
509
+            background-color: rgba(39, 163, 79, 0.2);
510
+            border: 1px solid #27a34f;
511
+            color: #27a34f;
512
+        }
513
+    }
514
+}
515
+
516
+.category-sub-all {
517
+    position: absolute;
518
+    top: 0;
519
+    left: 0;
520
+    bottom: 0;
521
+    width: 100%;
522
+    z-index: 10;
523
+    margin-top: px(130);
524
+    &__bg {
525
+        width: 100%;
526
+        height: 100%;
527
+        background-color: rgba(0, 0, 0, 0.3);
528
+    }
529
+    &__scroll {
530
+        position: absolute;
531
+        top: 0;
532
+        left: 0;
533
+        right: 0;
534
+        bottom: 0;
535
+        z-index: 10;
536
+    }
537
+    &__list {
538
+        display: flex;
539
+        flex-wrap: wrap;
540
+        background-color: #fff;
541
+        padding: px(60) px(40);
542
+    }
543
+    &__item {
544
+        display: flex;
545
+        align-items: center;
546
+        justify-content: center;
547
+        flex: none;
548
+        height: 100%;
549
+        font-size: px(34);
550
+        width: px(220);
551
+        color: #333;
552
+        height: px(70);
553
+        border-radius: px(35);
554
+        background-color: #f6f6f6;
555
+        border: 1px solid #f6f6f6;
556
+        color: #888;
557
+        margin: 0 px(20) px(30);
558
+        flex-shrink: 0;
559
+        &--active {
560
+            color: #262626;
561
+            background-color: rgba(39, 163, 79, 0.2);
562
+            border: 1px solid #27a34f;
563
+            color: #27a34f;
564
+        }
565
+    }
566
+}
567
+
568
+.goods {
569
+    position: relative;
570
+    flex: 1;
571
+    border-top: 1px solid #f6f6f6;
572
+
573
+    &__scroll {
574
+        position: absolute;
575
+        top: 0;
576
+        bottom: 0;
577
+        left: 0;
578
+        right: 0;
579
+        z-index: 1;
580
+        background-color: #fff;
581
+    }
582
+}
583
+
584
+.menu {
585
+    display: flex;
586
+    justify-content: space-between;
587
+    align-items: center;
588
+    height: px(110);
589
+    margin-bottom: px(5);
590
+    padding: 0 px(85);
591
+    background-color: #fff;
592
+    // box-shadow: 0 px(-5) px(10) #333;
593
+
594
+    &__item {
595
+        display: flex;
596
+        align-items: center;
597
+    }
598
+
599
+    &__text {
600
+        font-size: px(36);
601
+        color: #888;
602
+    }
603
+
604
+    &__item--active &__text {
605
+        color: #27a34f;
606
+    }
607
+
608
+    &__sort {
609
+        margin-left: px(15);
610
+
611
+        &:before {
612
+            display: block;
613
+            content: "";
614
+            width: 0;
615
+            height: 0;
616
+            margin-bottom: px(10);
617
+            border-width: px(12);
618
+            border-style: solid;
619
+            border-color: transparent transparent #ccc transparent;
620
+        }
621
+
622
+        &:after {
623
+            display: block;
624
+            content: "";
625
+            width: 0;
626
+            height: 0;
627
+            border-width: px(12);
628
+            border-style: solid;
629
+            border-color: #ccc transparent transparent transparent;
630
+        }
631
+
632
+        &--up:before {
633
+            border-color: transparent transparent #27a34f transparent;
634
+        }
635
+
636
+        &--down:after {
637
+            border-color: #27a34f transparent transparent transparent;
638
+        }
639
+    }
640
+}
641
+
642
+.more-text {
643
+    display: flex;
644
+    justify-content: center;
645
+    padding-bottom: px(60);
646
+    font-size: px(34);
647
+    color: #999;
648
+}
649
+
650
+.null {
651
+    display: flex;
652
+    flex-direction: column;
653
+    justify-content: center;
654
+    align-items: center;
655
+    padding-top: px(115);
656
+
657
+    &__img {
658
+        width: px(576);
659
+        height: px(281);
660
+    }
661
+
662
+    &__title {
663
+        margin-top: px(60);
664
+        font-size: px(40);
665
+        color: #666;
666
+    }
667
+}
668
+
669
+.page_red {
670
+    /deep/ {
671
+        .category {
672
+            &__item {
673
+                &--active {
674
+                    &:before {
675
+                        background-color: #27a34f;
676
+                    }
677
+                }
678
+            }
679
+        }
680
+        .category-sub {
681
+            &__item {
682
+                &--active {
683
+                    background-color: rgba(39, 163, 79, 0.2);
684
+                    border: 1px solid #27a34f;
685
+                    color: #27a34f;
686
+                }
687
+            }
688
+        }
689
+        .category-sub-all {
690
+            &__item {
691
+                &--active {
692
+                    color: #262626;
693
+                    background-color: rgba(39, 163, 79, 0.2);
694
+                    border: 1px solid #27a34f;
695
+                    color: #27a34f;
696
+                }
697
+            }
698
+        }
699
+        .goods {
700
+            &__add-text {
701
+                background-color: #27a34f;
702
+            }
703
+            &__add {
704
+                background-color: #27a34f;
705
+                box-shadow: px(1) px(2) px(6) #27a34f;
706
+            }
707
+        }
708
+
709
+        .menu {
710
+            .menu__item--active .menu__text {
711
+                color: #27a34f;
712
+            }
713
+
714
+            &__sort {
715
+                &--up:before {
716
+                    border-color: transparent transparent #27a34f transparent;
717
+                }
718
+
719
+                &--down:after {
720
+                    border-color: #27a34f transparent transparent transparent;
721
+                }
722
+            }
723
+        }
724
+    }
725
+}
726
+
727
+.shop-list {
728
+    .shop-item {
729
+        padding: px(30);
730
+        background-color: #fff;
731
+        & ~ .shop-item {
732
+            margin-top: px(30);
733
+        }
734
+        .info {
735
+            display: flex;
736
+            justify-content: space-between;
737
+            .shop-img {
738
+                width: px(120);
739
+                height: px(120);
740
+                margin-right: px(30);
741
+                border: 1px solid #fafafa;
742
+                flex-shrink: 0;
743
+            }
744
+            .r {
745
+                width: 100%;
746
+                display: flex;
747
+                justify-content: space-between;
748
+                align-items: center;
749
+                .main {
750
+                    width: 100%;
751
+                }
752
+                .btn {
753
+                    color: #fff;
754
+                    background-color: $color;
755
+                    padding: px(10) px(20);
756
+                    flex-shrink: 0;
757
+                    font-size: px(38);
758
+                }
759
+                .name {
760
+                    font-size: px(40);
761
+                    @include omits(2);
762
+                }
763
+                .other {
764
+                    margin-top: px(10);
765
+                }
766
+                .tag {
767
+                    height: px(44);
768
+                    font-size: px(32);
769
+                    line-height: px(44);
770
+                    padding: 0 px(8);
771
+                    display: inline-block;
772
+                    margin-right: px(15);
773
+                    color: $color;
774
+                    border: 1px solid $color;
775
+                    border-radius: px(5);
776
+                }
777
+                .date {
778
+                    margin-top: px(6);
779
+                    display: block;
780
+                    font-size: px(38);
781
+                    color: #666;
782
+                }
783
+            }
784
+        }
785
+    }
786
+    .good-list {
787
+        margin: px(30) px(20) 0;
788
+        display: flex;
789
+        .good-item {
790
+            width: 33.333333%;
791
+            padding: 0 px(20);
792
+        }
793
+        .good-img {
794
+            width: 100%;
795
+            /deep/ img {
796
+                width: 100%;
797
+            }
798
+        }
799
+        .good-name {
800
+            margin-top: px(20);
801
+            font-size: px(40);
802
+            @include omits(2);
803
+        }
804
+        .price {
805
+            margin-top: px(20);
806
+            color: $color;
807
+            font-size: px(42);
808
+        }
809
+        .tag-price {
810
+            margin-top: px(10);
811
+            color: #999;
812
+            line-height: 1;
813
+            font-size: px(36);
814
+            text-decoration: line-through;
815
+        }
816
+    }
817
+}
818
+</style>

+ 2 - 2
src/pages/recommend/index.vue

@@ -1,9 +1,9 @@
1 1
 <template>
2 2
     <div class="page tabbar-page">
3
-        <section class="search">
3
+        <!-- <section class="search">
4 4
             <i class="iconfont iconsearch search-icon"></i>
5 5
             <input type="text" class="input" placeholder="搜索店铺" />
6
-        </section>
6
+        </section> -->
7 7
 
8 8
         <scroll-view class="cate-list" :scroll-x="true">
9 9
             <ul class="list-main">