Blame view

src/pages/index/index.vue 7.07 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
87
88
            data-format="Object"
          ></HMfilterDropdown>
          <!-- 商品列表 -->
          <view class="goods-list">
            <view class="product-list">
fb748734c   范牧   首页部分逻辑修改
89
90
91
92
93
              <view
                class="product"
                v-for="(goods) in goodsList"
                :key="goods.id"
              >
1003c53e8   Adam   go
94
95
96
97
98
99
100
101
                <Card :goods="goods"></Card>
              </view>
            </view>
            <view class="loading-text">{{loadingText}}</view>
          </view>
        </view>
      </view>
    </view>
0db291810   BigBoss   “-mcomfirmOder页面
102
103
104
  </template>
  
  <script>
fb748734c   范牧   首页部分逻辑修改
105
106
107
108
  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): 加入 ...
109
  
1003c53e8   Adam   go
110
111
112
113
114
115
  export default {
    components: {
      UniDrawer: UniDrawer,
      HMfilterDropdown: HMfilterDropdown,
      Card: Card
    },
fb748734c   范牧   首页部分逻辑修改
116
    data () {
1003c53e8   Adam   go
117
      return {
fb748734c   范牧   首页部分逻辑修改
118
119
120
        indexArr: '',
        valueArr: '',
        loadingText: '~~到底了~~',
1003c53e8   Adam   go
121
        filterDropdownValue: [],
c338b4909   BigBoss   完善页面跳转逻辑
122
        filterData: [],
fb748734c   范牧   首页部分逻辑修改
123
124
        searchText: ''
      }
1003c53e8   Adam   go
125
    },
843fce64e   wulunyi   feat(master): 加入 ...
126
    computed: {
fb748734c   范牧   首页部分逻辑修改
127
      goodsList () {
c300654f9   范牧   首页部分功能
128
        // 也可以从 getters 获取
b9fb65756   喻鹏   购物车和推荐产品根据sk_id来对应价格
129
  	  // console.log('index-list=====>',this.$store.state.index.list)
fb748734c   范牧   首页部分逻辑修改
130
        return this.$store.state.index.list
c300654f9   范牧   首页部分功能
131
      },
fb748734c   范牧   首页部分逻辑修改
132
133
134
      categoryList () {
        return this.$store.state.index.categoryList
      }
843fce64e   wulunyi   feat(master): 加入 ...
135
    },
1003c53e8   Adam   go
136
    filters: {
fb748734c   范牧   首页部分逻辑修改
137
138
      outData (value) {
        return JSON.stringify(value)
1003c53e8   Adam   go
139
140
      }
    },
fb748734c   范牧   首页部分逻辑修改
141
142
    onLoad () {
      store.dispatch('index/category')
c300654f9   范牧   首页部分功能
143
      // this.getList();
fb748734c   范牧   首页部分逻辑修改
144
      store.dispatch('index/list')
1003c53e8   Adam   go
145
146
    },
    methods: {
fb748734c   范牧   首页部分逻辑修改
147
148
      showDrawer (e) {
        this.$refs[e].open()
1003c53e8   Adam   go
149
      },
fb748734c   范牧   首页部分逻辑修改
150
151
      getList () {
        store.dispatch('index/list')
c300654f9   范牧   首页部分功能
152
153
154
155
      },
      // search(params) {
      //   this.$store.index.
      // },
fb748734c   范牧   首页部分逻辑修改
156
157
      closeDrawer (e) {
        this.$refs[e].close()
1003c53e8   Adam   go
158
      },
fb748734c   范牧   首页部分逻辑修改
159
160
      change (e, type) {
        this[type] = e
1003c53e8   Adam   go
161
      },
fb748734c   范牧   首页部分逻辑修改
162
      onClickItem (e) {
1003c53e8   Adam   go
163
        if (this.current !== e) {
fb748734c   范牧   首页部分逻辑修改
164
          this.current = e
1003c53e8   Adam   go
165
166
        }
      },
fb748734c   范牧   首页部分逻辑修改
167
168
      dropDown () {
        console.log('下拉')
1003c53e8   Adam   go
169
      },
fb748734c   范牧   首页部分逻辑修改
170
171
172
      searchKey (e) {
        const { value: keyword } = e.detail
        this.keyWords = keyword
c300654f9   范牧   首页部分功能
173
174
        store.dispatch('index/search', {
          params: {},
fb748734c   范牧   首页部分逻辑修改
175
176
          keyword
        })
c300654f9   范牧   首页部分功能
177
      },
fb748734c   范牧   首页部分逻辑修改
178
179
180
      // 接收菜单结果
      search (e) {
        const { on, value, selectedData } = e
c300654f9   范牧   首页部分功能
181
        let params = {}
323398550   范牧   若干功能添加
182
        const selectedPayload = {}
467128613   范牧   筛选逻辑添加
183
        for (const key in selectedData) {
323398550   范牧   若干功能添加
184
185
          if (Object.prototype.hasOwnProperty.call(selectedData, key)) {
            selectedPayload[key] = selectedData[key].toString()
467128613   范牧   筛选逻辑添加
186
187
          }
        }
fb748734c   范牧   首页部分逻辑修改
188
        if (on[0] === 1) {
7d6833f2c   范牧   地址列表
189
          // 若点击全部
fb748734c   范牧   首页部分逻辑修改
190
191
          this.searchText = ''
          store.dispatch('index/list')
c300654f9   范牧   首页部分功能
192
        } else {
fb748734c   范牧   首页部分逻辑修改
193
194
195
          for (let i = 1; i <= on.length; i++) { // on[0]是全部
            if (on[i] === 1) { // 若该选项被选中
              if (this.categoryList[i].value === 'filter') {
fb748734c   范牧   首页部分逻辑修改
196
                params = {
323398550   范牧   若干功能添加
197
                  ...selectedPayload,
fb748734c   范牧   首页部分逻辑修改
198
199
200
201
202
                  ...params
                }
              } else {
                params[`${this.categoryList[i].value}`] = value[i][0]
              }
c300654f9   范牧   首页部分功能
203
204
205
            }
          }
          store.dispatch('index/search', {
fb748734c   范牧   首页部分逻辑修改
206
            params,
c300654f9   范牧   首页部分功能
207
            keyword: this.keyWords
fb748734c   范牧   首页部分逻辑修改
208
          })
c300654f9   范牧   首页部分功能
209
        }
1003c53e8   Adam   go
210
      }
fb748734c   范牧   首页部分逻辑修改
211
    }
0508098fe   BigBoss   首页筛选列表接口获取
212
  
fb748734c   范牧   首页部分逻辑修改
213
  }
0db291810   BigBoss   “-mcomfirmOder页面
214
215
216
  </script>
  
  <style lang="scss">
1003c53e8   Adam   go
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
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
  .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页面
282
  
1003c53e8   Adam   go
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
  .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页面
308
  </style>