Blame view

src/pages/index/index.vue 8.7 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">
e40e790a3   吉鹏   首页bug修改
109
110
              <text v-if="isLoading==true">{{loadingText}}</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
        loadingText: "data loading...",
e40e790a3   吉鹏   首页bug修改
143
        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)
e40e790a3   吉鹏   首页bug修改
161
162
163
164
165
166
        let list =  this.$store.state.index.list;
  	  if(list.length == 0){
  		 this.isLoading = false;
  	  }
  	  this.scrollTop = 0.1;
  	  return list
156736a2e   尹聃   样式修改
167
      },
92d01cfd5   Adam   修正订单数据
168
169
170
      categoryList() {
        return this.$store.state.index.categoryList;
      }
843fce64e   wulunyi   feat(master): 加入 ...
171
    },
1003c53e8   Adam   go
172
    filters: {
92d01cfd5   Adam   修正订单数据
173
174
175
      outData(value) {
        return JSON.stringify(value);
      }
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
176
177
178
179
180
181
    },
    /**
     *  页面载入完成后调用子组件的方法生成预加载效果
     */
    onReady:function(){
  	 this.getInitData()
1003c53e8   Adam   go
182
    },
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
183
184
185
186
187
188
189
    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   修正订单数据
190
191
      showDrawer(e) {
        this.$refs[e].open();
1003c53e8   Adam   go
192
      },
92d01cfd5   Adam   修正订单数据
193
194
      getList() {
        store.dispatch("index/list");
83e446d4d   Adam   修正订单数据
195
196
        this.isLoading = false; //TODO:::这里不知道怎么改,请同学帮忙写一下。
        //把data里的isLoading 改为false就可以了
c300654f9   范牧   首页部分功能
197
198
199
200
      },
      // search(params) {
      //   this.$store.index.
      // },
92d01cfd5   Adam   修正订单数据
201
202
      closeDrawer(e) {
        this.$refs[e].close();
1003c53e8   Adam   go
203
      },
92d01cfd5   Adam   修正订单数据
204
205
      change(e, type) {
        this[type] = e;
1003c53e8   Adam   go
206
      },
92d01cfd5   Adam   修正订单数据
207
      onClickItem(e) {
1003c53e8   Adam   go
208
        if (this.current !== e) {
92d01cfd5   Adam   修正订单数据
209
          this.current = e;
1003c53e8   Adam   go
210
211
        }
      },
92d01cfd5   Adam   修正订单数据
212
213
      dropDown() {
        console.log("下拉");
1003c53e8   Adam   go
214
      },
92d01cfd5   Adam   修正订单数据
215
216
217
218
      searchKey(e) {
        const { value: keyword } = e.detail;
        this.keyWords = keyword;
        store.dispatch("index/search", {
c300654f9   范牧   首页部分功能
219
          params: {},
92d01cfd5   Adam   修正订单数据
220
221
          keyword
        });
c300654f9   范牧   首页部分功能
222
      },
fb748734c   范牧   首页部分逻辑修改
223
      // 接收菜单结果
92d01cfd5   Adam   修正订单数据
224
225
226
227
      search(e) {
        const { on, value, selectedData } = e;
        let params = {};
        const selectedPayload = {};
467128613   范牧   筛选逻辑添加
228
        for (const key in selectedData) {
323398550   范牧   若干功能添加
229
          if (Object.prototype.hasOwnProperty.call(selectedData, key)) {
92d01cfd5   Adam   修正订单数据
230
            selectedPayload[key] = selectedData[key].toString();
467128613   范牧   筛选逻辑添加
231
232
          }
        }
fb748734c   范牧   首页部分逻辑修改
233
        if (on[0] === 1) {
7d6833f2c   范牧   地址列表
234
          // 若点击全部
92d01cfd5   Adam   修正订单数据
235
236
          this.searchText = "";
          store.dispatch("index/list");
c300654f9   范牧   首页部分功能
237
        } else {
92d01cfd5   Adam   修正订单数据
238
239
240
241
242
          for (let i = 1; i <= on.length; i++) {
            // on[0]是全部
            if (on[i] === 1) {
              // 若该选项被选中
              if (this.categoryList[i].value === "filter") {
fb748734c   范牧   首页部分逻辑修改
243
                params = {
323398550   范牧   若干功能添加
244
                  ...selectedPayload,
92d01cfd5   Adam   修正订单数据
245
246
                  ...params
                };
fb748734c   范牧   首页部分逻辑修改
247
              } else {
92d01cfd5   Adam   修正订单数据
248
                params[`${this.categoryList[i].value}`] = value[i][0];
fb748734c   范牧   首页部分逻辑修改
249
              }
c300654f9   范牧   首页部分功能
250
251
            }
          }
92d01cfd5   Adam   修正订单数据
252
          store.dispatch("index/search", {
fb748734c   范牧   首页部分逻辑修改
253
            params,
92d01cfd5   Adam   修正订单数据
254
255
            keyword: this.keyWords
          });
c300654f9   范牧   首页部分功能
256
        }
1003c53e8   Adam   go
257
      }
fb748734c   范牧   首页部分逻辑修改
258
    }
92d01cfd5   Adam   修正订单数据
259
  };
0db291810   BigBoss   “-mcomfirmOder页面
260
261
262
  </script>
  
  <style lang="scss">
53bcba4f8   吉鹏   文件分包,首页添加骨架屏幕
263
  .content,.container {
1003c53e8   Adam   go
264
265
266
267
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
1003c53e8   Adam   go
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
323
324
325
326
  }
  .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页面
327
  
1003c53e8   Adam   go
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
  .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   吉鹏   文件分包,首页添加骨架屏幕
346
347
        width: 48%;
  	  min-height: 120rpx;
1003c53e8   Adam   go
348
349
350
351
352
353
        margin: 0 0 20rpx 0;
        background: #ffffff;
        border: 1px solid #f2f2f2;
      }
    }
  }
0db291810   BigBoss   “-mcomfirmOder页面
354
  </style>