Blame view

src/pages/index/index.vue 7.81 KB
0db291810   BigBoss   “-mcomfirmOder页面
1
  <template>
1003c53e8   Adam   go
2
3
4
5
    <view class="content">
      <view class="header">
        <!-- 搜索-->
        <view class="searchBar">
fb748734c   范牧   首页部分逻辑修改
6
7
8
9
10
          <icon
            class="searchIcon"
            type="search"
            size="14"
          ></icon>
c300654f9   范牧   首页部分功能
11
          <input
fb748734c   范牧   首页部分逻辑修改
12
13
14
15
16
            v-model="searchText"
            class="searchIpt"
            placeholder="老花镜"
            confirm-type="search"
            @blur="searchKey"
c300654f9   范牧   首页部分功能
17
          />
1003c53e8   Adam   go
18
19
20
        </view>
  
        <!-- 筛选栏-->
c300654f9   范牧   首页部分功能
21
        <!-- <view class="screenBar">
fb748734c   范牧   首页部分逻辑修改
22
23
24
25
26
          <view
            v-for="item in screenItems"
            :key="item.current"
            @click="onClickItem(item.current)"
          >
1003c53e8   Adam   go
27
28
29
30
31
32
33
            <view
              class="screenItem"
              v-bind:class="{ active: current === item.current }"
              v-if="item.current === 2"
              @click="dropDown"
            >
              {{ item.text }}
fb748734c   范牧   首页部分逻辑修改
34
35
36
37
              <icon
                type="info"
                size="14"
              ></icon>
1003c53e8   Adam   go
38
39
40
41
42
43
44
45
            </view>
            <view
              class="screenItem"
              v-bind:class="{ active: current === item.current }"
              v-if="item.current === 4"
              @click="showDrawer('showRight')"
            >
              {{ item.text }}
fb748734c   范牧   首页部分逻辑修改
46
47
48
49
              <icon
                type="info"
                size="14"
              ></icon>
1003c53e8   Adam   go
50
51
52
53
54
55
56
57
            </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   范牧   首页部分逻辑修改
58
        </view> -->
1003c53e8   Adam   go
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
      </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>
  
      <!-- 筛选菜单-->
      <view class="content-wrap">
        <view>
fb748734c   范牧   首页部分逻辑修改
78
          <HMfilterDropdown
c300654f9   范牧   首页部分功能
79
            :filterData="categoryList"
1003c53e8   Adam   go
80
81
            :defaultSelected="filterDropdownValue"
            :updateMenuName="true"
c300654f9   范牧   首页部分功能
82
83
            @search="search"
            @getList="getList"
1003c53e8   Adam   go
84
85
86
            data-format="Object"
          ></HMfilterDropdown>
          <!-- 商品列表 -->
92d01cfd5   Adam   修正订单数据
87
          <!-- 		<scroll-view
967ce241a   喻鹏   合并冲突
88
89
90
91
92
  		  enable-flex
  		  @scrolltolower="handleScrolltolower"
  		  scroll-y
  		  style="height: 1000px;margin-bottom: 20px;"
  		>	 -->
1003c53e8   Adam   go
93
94
          <view class="goods-list">
            <view class="product-list">
fb748734c   范牧   首页部分逻辑修改
95
96
97
98
99
              <view
                class="product"
                v-for="(goods) in goodsList"
                :key="goods.id"
              >
92d01cfd5   Adam   修正订单数据
100
101
102
103
104
                <Card
                  :goods="goods"
                  :scrollTop="scrollTop"
                  :viewHeight="viewHeight"
                ></Card>
1003c53e8   Adam   go
105
106
107
108
              </view>
            </view>
            <view class="loading-text">{{loadingText}}</view>
          </view>
92d01cfd5   Adam   修正订单数据
109
          <!-- </scroll-view> -->
1003c53e8   Adam   go
110
111
112
        </view>
      </view>
    </view>
0db291810   BigBoss   “-mcomfirmOder页面
113
114
115
  </template>
  
  <script>
92d01cfd5   Adam   修正订单数据
116
117
118
119
  import UniDrawer from "@/components/UniDrawer/UniDrawer.vue";
  import Card from "@/components/CommodityCard/CommodityCard.vue";
  import HMfilterDropdown from "@/components/HMFilterDropdown/HMFilterDropdown.vue";
  import store from "@/store";
843fce64e   wulunyi   feat(master): 加入 ...
120
  
1003c53e8   Adam   go
121
122
123
124
  export default {
    components: {
      UniDrawer: UniDrawer,
      HMfilterDropdown: HMfilterDropdown,
92d01cfd5   Adam   修正订单数据
125
      Card: Card
1003c53e8   Adam   go
126
    },
92d01cfd5   Adam   修正订单数据
127
    data() {
1003c53e8   Adam   go
128
      return {
92d01cfd5   Adam   修正订单数据
129
130
131
132
        indexArr: "",
        valueArr: "",
        isLoading: true, //初始化加载状态
        loadingText: "~~一开始应该是加载中。。。。等数据传完后,更新为到底了~~",
1003c53e8   Adam   go
133
        filterDropdownValue: [],
c338b4909   BigBoss   完善页面跳转逻辑
134
        filterData: [],
92d01cfd5   Adam   修正订单数据
135
136
137
138
        searchText: "",
        scrollTop: 0,
        viewHeight: uni.getSystemInfoSync().windowHeight
      };
1003c53e8   Adam   go
139
    },
92d01cfd5   Adam   修正订单数据
140
141
142
143
144
    onPageScroll({ scrollTop }) {
      // 传入scrollTop值并触发所有easy-loadimage组件下的滚动监听事件
  
      this.scrollTop = scrollTop;
      console.log("pagescroll====>", this.viewHeight);
967ce241a   喻鹏   合并冲突
145
    },
843fce64e   wulunyi   feat(master): 加入 ...
146
    computed: {
92d01cfd5   Adam   修正订单数据
147
      goodsList() {
c300654f9   范牧   首页部分功能
148
        // 也可以从 getters 获取
156736a2e   尹聃   样式修改
149
        // console.log('index-list=====>',this.$store.state.index.list)
92d01cfd5   Adam   修正订单数据
150
        return this.$store.state.index.list;
156736a2e   尹聃   样式修改
151
      },
92d01cfd5   Adam   修正订单数据
152
153
154
      categoryList() {
        return this.$store.state.index.categoryList;
      }
843fce64e   wulunyi   feat(master): 加入 ...
155
    },
1003c53e8   Adam   go
156
    filters: {
92d01cfd5   Adam   修正订单数据
157
158
159
      outData(value) {
        return JSON.stringify(value);
      }
1003c53e8   Adam   go
160
    },
92d01cfd5   Adam   修正订单数据
161
162
    onLoad() {
      store.dispatch("index/category");
c300654f9   范牧   首页部分功能
163
      // this.getList();
92d01cfd5   Adam   修正订单数据
164
      store.dispatch("index/list");
1003c53e8   Adam   go
165
166
    },
    methods: {
92d01cfd5   Adam   修正订单数据
167
168
      showDrawer(e) {
        this.$refs[e].open();
1003c53e8   Adam   go
169
      },
92d01cfd5   Adam   修正订单数据
170
171
      getList() {
        store.dispatch("index/list");
c300654f9   范牧   首页部分功能
172
173
174
175
      },
      // search(params) {
      //   this.$store.index.
      // },
92d01cfd5   Adam   修正订单数据
176
177
      closeDrawer(e) {
        this.$refs[e].close();
1003c53e8   Adam   go
178
      },
92d01cfd5   Adam   修正订单数据
179
180
      change(e, type) {
        this[type] = e;
1003c53e8   Adam   go
181
      },
92d01cfd5   Adam   修正订单数据
182
      onClickItem(e) {
1003c53e8   Adam   go
183
        if (this.current !== e) {
92d01cfd5   Adam   修正订单数据
184
          this.current = e;
1003c53e8   Adam   go
185
186
        }
      },
92d01cfd5   Adam   修正订单数据
187
188
      dropDown() {
        console.log("下拉");
1003c53e8   Adam   go
189
      },
92d01cfd5   Adam   修正订单数据
190
191
192
193
      searchKey(e) {
        const { value: keyword } = e.detail;
        this.keyWords = keyword;
        store.dispatch("index/search", {
c300654f9   范牧   首页部分功能
194
          params: {},
92d01cfd5   Adam   修正订单数据
195
196
          keyword
        });
c300654f9   范牧   首页部分功能
197
      },
fb748734c   范牧   首页部分逻辑修改
198
      // 接收菜单结果
92d01cfd5   Adam   修正订单数据
199
200
201
202
      search(e) {
        const { on, value, selectedData } = e;
        let params = {};
        const selectedPayload = {};
467128613   范牧   筛选逻辑添加
203
        for (const key in selectedData) {
323398550   范牧   若干功能添加
204
          if (Object.prototype.hasOwnProperty.call(selectedData, key)) {
92d01cfd5   Adam   修正订单数据
205
            selectedPayload[key] = selectedData[key].toString();
467128613   范牧   筛选逻辑添加
206
207
          }
        }
fb748734c   范牧   首页部分逻辑修改
208
        if (on[0] === 1) {
7d6833f2c   范牧   地址列表
209
          // 若点击全部
92d01cfd5   Adam   修正订单数据
210
211
          this.searchText = "";
          store.dispatch("index/list");
c300654f9   范牧   首页部分功能
212
        } else {
92d01cfd5   Adam   修正订单数据
213
214
215
216
217
          for (let i = 1; i <= on.length; i++) {
            // on[0]是全部
            if (on[i] === 1) {
              // 若该选项被选中
              if (this.categoryList[i].value === "filter") {
fb748734c   范牧   首页部分逻辑修改
218
                params = {
323398550   范牧   若干功能添加
219
                  ...selectedPayload,
92d01cfd5   Adam   修正订单数据
220
221
                  ...params
                };
fb748734c   范牧   首页部分逻辑修改
222
              } else {
92d01cfd5   Adam   修正订单数据
223
                params[`${this.categoryList[i].value}`] = value[i][0];
fb748734c   范牧   首页部分逻辑修改
224
              }
c300654f9   范牧   首页部分功能
225
226
            }
          }
92d01cfd5   Adam   修正订单数据
227
          store.dispatch("index/search", {
fb748734c   范牧   首页部分逻辑修改
228
            params,
92d01cfd5   Adam   修正订单数据
229
230
            keyword: this.keyWords
          });
c300654f9   范牧   首页部分功能
231
        }
1003c53e8   Adam   go
232
      }
fb748734c   范牧   首页部分逻辑修改
233
    }
92d01cfd5   Adam   修正订单数据
234
  };
0db291810   BigBoss   “-mcomfirmOder页面
235
236
237
  </script>
  
  <style lang="scss">
1003c53e8   Adam   go
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
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
  .content {
    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页面
303
  
1003c53e8   Adam   go
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
  .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 {
        width: 48%;
        margin: 0 0 20rpx 0;
        background: #ffffff;
        border: 1px solid #f2f2f2;
      }
    }
  }
0db291810   BigBoss   “-mcomfirmOder页面
329
  </style>