Blame view

src/pages/index/index.vue 8.6 KB
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
1
2
3
  <template>
    <view class="container">
    <view class="content skeleton" v-show="showContent">
1003c53e8   Adam   go
4
5
      <view class="header">
        <!-- 搜索-->
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
6
        <view class="searchBar skeleton-rect">
fb748734c   范牧   首页部分逻辑修改
7
8
9
10
11
          <icon
            class="searchIcon"
            type="search"
            size="14"
          ></icon>
c300654f9   范牧   首页部分功能
12
          <input
fb748734c   范牧   首页部分逻辑修改
13
14
15
16
17
            v-model="searchText"
            class="searchIpt"
            placeholder="老花镜"
            confirm-type="search"
            @blur="searchKey"
c300654f9   范牧   首页部分功能
18
          />
1003c53e8   Adam   go
19
20
21
        </view>
  
        <!-- 筛选栏-->
c300654f9   范牧   首页部分功能
22
        <!-- <view class="screenBar">
fb748734c   范牧   首页部分逻辑修改
23
24
25
26
27
          <view
            v-for="item in screenItems"
            :key="item.current"
            @click="onClickItem(item.current)"
          >
1003c53e8   Adam   go
28
29
30
31
32
33
34
            <view
              class="screenItem"
              v-bind:class="{ active: current === item.current }"
              v-if="item.current === 2"
              @click="dropDown"
            >
              {{ item.text }}
fb748734c   范牧   首页部分逻辑修改
35
36
37
38
              <icon
                type="info"
                size="14"
              ></icon>
1003c53e8   Adam   go
39
40
41
42
43
44
45
46
            </view>
            <view
              class="screenItem"
              v-bind:class="{ active: current === item.current }"
              v-if="item.current === 4"
              @click="showDrawer('showRight')"
            >
              {{ item.text }}
fb748734c   范牧   首页部分逻辑修改
47
48
49
50
              <icon
                type="info"
                size="14"
              ></icon>
1003c53e8   Adam   go
51
52
53
54
55
56
57
58
            </view>
            <view v-if="item.current !== 2&&item.current!==4">
              <view
                class="screenItem"
                v-bind:class="{ active: current === item.current }"
              >{{ item.text }}</view>
            </view>
          </view>
fb748734c   范牧   首页部分逻辑修改
59
        </view> -->
1003c53e8   Adam   go
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
      </view>
      <Uni-drawer
        ref="showRight"
        mask="true"
        maskClick="true"
        mode="right"
        :width="320"
        @change="change($event,'showRight')"
      >
        <view class="close">
          <view @click="closeDrawer('showRight')">
            <text class="word-btn-white">关闭</text>
          </view>
        </view>
      </Uni-drawer>
  
      <!-- 筛选菜单-->
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
77
      <view class="content-wrap skeleton-rect">
1003c53e8   Adam   go
78
        <view>
fb748734c   范牧   首页部分逻辑修改
79
          <HMfilterDropdown
c300654f9   范牧   首页部分功能
80
            :filterData="categoryList"
1003c53e8   Adam   go
81
82
            :defaultSelected="filterDropdownValue"
            :updateMenuName="true"
c300654f9   范牧   首页部分功能
83
84
            @search="search"
            @getList="getList"
1003c53e8   Adam   go
85
86
87
            data-format="Object"
          ></HMfilterDropdown>
          <!-- 商品列表 -->
92d01cfd5   Adam   修正订单数据
88
          <!-- 		<scroll-view
967ce241a   喻鹏   合并冲突
89
90
91
92
93
  		  enable-flex
  		  @scrolltolower="handleScrolltolower"
  		  scroll-y
  		  style="height: 1000px;margin-bottom: 20px;"
  		>	 -->
1003c53e8   Adam   go
94
95
          <view class="goods-list">
            <view class="product-list">
fb748734c   范牧   首页部分逻辑修改
96
              <view
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
97
                class="product skeleton-rect"
fb748734c   范牧   首页部分逻辑修改
98
99
100
                v-for="(goods) in goodsList"
                :key="goods.id"
              >
92d01cfd5   Adam   修正订单数据
101
102
103
104
105
                <Card
                  :goods="goods"
                  :scrollTop="scrollTop"
                  :viewHeight="viewHeight"
                ></Card>
1003c53e8   Adam   go
106
107
              </view>
            </view>
83e446d4d   Adam   修正订单数据
108
            <view class="loading-text">
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
109
110
              <text>{{loadedText}}</text>
              <!-- <text v-else>{{loadedText}}</text> -->
83e446d4d   Adam   修正订单数据
111
            </view>
1003c53e8   Adam   go
112
          </view>
92d01cfd5   Adam   修正订单数据
113
          <!-- </scroll-view> -->
1003c53e8   Adam   go
114
        </view>
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
115
116
117
118
119
      </view>
  	</view>
  	<!--引用组件-->
  	<skeleton :show="showSkeleton"  ref="skeleton" loading="chiaroscuro" selector="skeleton" bgcolor="#FFF"></skeleton>
  	</view>
0db291810   BigBoss   “-mcomfirmOder页面
120
121
122
  </template>
  
  <script>
92d01cfd5   Adam   修正订单数据
123
124
  import UniDrawer from "@/components/UniDrawer/UniDrawer.vue";
  import Card from "@/components/CommodityCard/CommodityCard.vue";
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
125
126
  import HMfilterDropdown from "@/components/HMFilterDropdown/HMFilterDropdown.vue";
  import skeleton from "@/components/quick-skeleton/quick-skeleton.vue";
92d01cfd5   Adam   修正订单数据
127
  import store from "@/store";
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
128

843fce64e   wulunyi   feat(master): 加入 ...
129
  
1003c53e8   Adam   go
130
131
132
133
  export default {
    components: {
      UniDrawer: UniDrawer,
      HMfilterDropdown: HMfilterDropdown,
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
134
135
      Card: Card,
  	skeleton: skeleton
1003c53e8   Adam   go
136
    },
92d01cfd5   Adam   修正订单数据
137
    data() {
1003c53e8   Adam   go
138
      return {
92d01cfd5   Adam   修正订单数据
139
140
141
        indexArr: "",
        valueArr: "",
        isLoading: true, //初始化加载状态
83e446d4d   Adam   修正订单数据
142
143
        loadingText: "data loading...",
        loadedText: "~~到底啦~~",
1003c53e8   Adam   go
144
        filterDropdownValue: [],
c338b4909   BigBoss   完善页面跳转逻辑
145
        filterData: [],
92d01cfd5   Adam   修正订单数据
146
        searchText: "",
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
147
148
149
150
        scrollTop: 0,
  	  showContent: true,
        viewHeight: uni.getSystemInfoSync().windowHeight,
  	  showSkeleton: false  //骨架屏显示隐藏
92d01cfd5   Adam   修正订单数据
151
      };
1003c53e8   Adam   go
152
    },
92d01cfd5   Adam   修正订单数据
153
154
    onPageScroll({ scrollTop }) {
      // 传入scrollTop值并触发所有easy-loadimage组件下的滚动监听事件
92d01cfd5   Adam   修正订单数据
155
      this.scrollTop = scrollTop;
967ce241a   喻鹏   合并冲突
156
    },
843fce64e   wulunyi   feat(master): 加入 ...
157
    computed: {
92d01cfd5   Adam   修正订单数据
158
      goodsList() {
c300654f9   范牧   首页部分功能
159
        // 也可以从 getters 获取
156736a2e   尹聃   样式修改
160
        // console.log('index-list=====>',this.$store.state.index.list)
92d01cfd5   Adam   修正订单数据
161
        return this.$store.state.index.list;
156736a2e   尹聃   样式修改
162
      },
92d01cfd5   Adam   修正订单数据
163
164
165
      categoryList() {
        return this.$store.state.index.categoryList;
      }
843fce64e   wulunyi   feat(master): 加入 ...
166
    },
1003c53e8   Adam   go
167
    filters: {
92d01cfd5   Adam   修正订单数据
168
169
170
      outData(value) {
        return JSON.stringify(value);
      }
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
171
172
173
174
175
176
    },
    /**
     *  页面载入完成后调用子组件的方法生成预加载效果
     */
    onReady:function(){
  	 this.getInitData()
1003c53e8   Adam   go
177
    },
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
178
179
180
181
182
183
184
    methods: {
  	async getInitData (){
  		this.showSkeleton = true;
  		await Promise.all([store.dispatch("index/category"), store.dispatch("index/list")])
  		this.showSkeleton = false;
  		this.showContent = true
  	},
92d01cfd5   Adam   修正订单数据
185
186
      showDrawer(e) {
        this.$refs[e].open();
1003c53e8   Adam   go
187
      },
92d01cfd5   Adam   修正订单数据
188
189
      getList() {
        store.dispatch("index/list");
83e446d4d   Adam   修正订单数据
190
191
        this.isLoading = false; //TODO:::这里不知道怎么改,请同学帮忙写一下。
        //把data里的isLoading 改为false就可以了
c300654f9   范牧   首页部分功能
192
193
194
195
      },
      // search(params) {
      //   this.$store.index.
      // },
92d01cfd5   Adam   修正订单数据
196
197
      closeDrawer(e) {
        this.$refs[e].close();
1003c53e8   Adam   go
198
      },
92d01cfd5   Adam   修正订单数据
199
200
      change(e, type) {
        this[type] = e;
1003c53e8   Adam   go
201
      },
92d01cfd5   Adam   修正订单数据
202
      onClickItem(e) {
1003c53e8   Adam   go
203
        if (this.current !== e) {
92d01cfd5   Adam   修正订单数据
204
          this.current = e;
1003c53e8   Adam   go
205
206
        }
      },
92d01cfd5   Adam   修正订单数据
207
208
      dropDown() {
        console.log("下拉");
1003c53e8   Adam   go
209
      },
92d01cfd5   Adam   修正订单数据
210
211
212
213
      searchKey(e) {
        const { value: keyword } = e.detail;
        this.keyWords = keyword;
        store.dispatch("index/search", {
c300654f9   范牧   首页部分功能
214
          params: {},
92d01cfd5   Adam   修正订单数据
215
216
          keyword
        });
c300654f9   范牧   首页部分功能
217
      },
fb748734c   范牧   首页部分逻辑修改
218
      // 接收菜单结果
92d01cfd5   Adam   修正订单数据
219
220
221
222
      search(e) {
        const { on, value, selectedData } = e;
        let params = {};
        const selectedPayload = {};
467128613   范牧   筛选逻辑添加
223
        for (const key in selectedData) {
323398550   范牧   若干功能添加
224
          if (Object.prototype.hasOwnProperty.call(selectedData, key)) {
92d01cfd5   Adam   修正订单数据
225
            selectedPayload[key] = selectedData[key].toString();
467128613   范牧   筛选逻辑添加
226
227
          }
        }
fb748734c   范牧   首页部分逻辑修改
228
        if (on[0] === 1) {
7d6833f2c   范牧   地址列表
229
          // 若点击全部
92d01cfd5   Adam   修正订单数据
230
231
          this.searchText = "";
          store.dispatch("index/list");
c300654f9   范牧   首页部分功能
232
        } else {
92d01cfd5   Adam   修正订单数据
233
234
235
236
237
          for (let i = 1; i <= on.length; i++) {
            // on[0]是全部
            if (on[i] === 1) {
              // 若该选项被选中
              if (this.categoryList[i].value === "filter") {
fb748734c   范牧   首页部分逻辑修改
238
                params = {
323398550   范牧   若干功能添加
239
                  ...selectedPayload,
92d01cfd5   Adam   修正订单数据
240
241
                  ...params
                };
fb748734c   范牧   首页部分逻辑修改
242
              } else {
92d01cfd5   Adam   修正订单数据
243
                params[`${this.categoryList[i].value}`] = value[i][0];
fb748734c   范牧   首页部分逻辑修改
244
              }
c300654f9   范牧   首页部分功能
245
246
            }
          }
92d01cfd5   Adam   修正订单数据
247
          store.dispatch("index/search", {
fb748734c   范牧   首页部分逻辑修改
248
            params,
92d01cfd5   Adam   修正订单数据
249
250
            keyword: this.keyWords
          });
c300654f9   范牧   首页部分功能
251
        }
1003c53e8   Adam   go
252
      }
fb748734c   范牧   首页部分逻辑修改
253
    }
92d01cfd5   Adam   修正订单数据
254
  };
0db291810   BigBoss   “-mcomfirmOder页面
255
256
257
  </script>
  
  <style lang="scss">
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
258
  .content,.container {
1003c53e8   Adam   go
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: #f7f6f6;
  }
  .header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: #f7f6f6;
    height: 178rpx;
    width: 100%;
    z-index: 999;
    position: fixed;
    top: 0;
    left: 0;
  }
  .searchBar {
    width: 670rpx;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    padding: 0rpx 16rpx;
    border: 1px solid #ff6b4a;
    border-radius: 8rpx;
    background-color: #ffffff;
  }
  
  .searchIpt {
    height: 68rpx;
    width: 670rpx;
    padding: 16rpx;
    font-size: 28rpx;
    box-sizing: border-box;
  }
  .screenBar {
    width: 670rpx;
    height: 110rpx;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    color: #333333;
    font-size: 32rpx;
  }
  .active {
    color: #ff6b4a;
  }
  .screenItem {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .content-wrap {
    width: 100%;
    background-color: #ffffff;
  }
  
  .HMfilterDropdown {
    top: 178rpx !important;
  }
0db291810   BigBoss   “-mcomfirmOder页面
323
  
1003c53e8   Adam   go
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
  .goods-list {
    padding-top: 286rpx;
    .loading-text {
      width: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      height: 30px;
      color: #979797;
      font-size: 12px;
    }
    .product-list {
      width: 92%;
      padding: 0 4% 3vw 4%;
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      .product {
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
342
343
        width: 48%;
  	  min-height: 120rpx;
1003c53e8   Adam   go
344
345
346
347
348
349
        margin: 0 0 20rpx 0;
        background: #ffffff;
        border: 1px solid #f2f2f2;
      }
    }
  }
0db291810   BigBoss   “-mcomfirmOder页面
350
  </style>