Blame view

src/pages/index/index.vue 7.01 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 获取
fb748734c   范牧   首页部分逻辑修改
129
        return this.$store.state.index.list
c300654f9   范牧   首页部分功能
130
      },
fb748734c   范牧   首页部分逻辑修改
131
132
133
      categoryList () {
        return this.$store.state.index.categoryList
      }
843fce64e   wulunyi   feat(master): 加入 ...
134
    },
1003c53e8   Adam   go
135
    filters: {
fb748734c   范牧   首页部分逻辑修改
136
137
      outData (value) {
        return JSON.stringify(value)
1003c53e8   Adam   go
138
139
      }
    },
fb748734c   范牧   首页部分逻辑修改
140
141
    onLoad () {
      store.dispatch('index/category')
c300654f9   范牧   首页部分功能
142
      // this.getList();
fb748734c   范牧   首页部分逻辑修改
143
      store.dispatch('index/list')
1003c53e8   Adam   go
144
145
    },
    methods: {
fb748734c   范牧   首页部分逻辑修改
146
147
      showDrawer (e) {
        this.$refs[e].open()
1003c53e8   Adam   go
148
      },
fb748734c   范牧   首页部分逻辑修改
149
150
      getList () {
        store.dispatch('index/list')
c300654f9   范牧   首页部分功能
151
152
153
154
      },
      // search(params) {
      //   this.$store.index.
      // },
fb748734c   范牧   首页部分逻辑修改
155
156
      closeDrawer (e) {
        this.$refs[e].close()
1003c53e8   Adam   go
157
      },
fb748734c   范牧   首页部分逻辑修改
158
159
      change (e, type) {
        this[type] = e
1003c53e8   Adam   go
160
      },
fb748734c   范牧   首页部分逻辑修改
161
      onClickItem (e) {
1003c53e8   Adam   go
162
        if (this.current !== e) {
fb748734c   范牧   首页部分逻辑修改
163
          this.current = e
1003c53e8   Adam   go
164
165
        }
      },
fb748734c   范牧   首页部分逻辑修改
166
167
      dropDown () {
        console.log('下拉')
1003c53e8   Adam   go
168
      },
fb748734c   范牧   首页部分逻辑修改
169
170
171
      searchKey (e) {
        const { value: keyword } = e.detail
        this.keyWords = keyword
c300654f9   范牧   首页部分功能
172
173
        store.dispatch('index/search', {
          params: {},
fb748734c   范牧   首页部分逻辑修改
174
175
          keyword
        })
c300654f9   范牧   首页部分功能
176
      },
fb748734c   范牧   首页部分逻辑修改
177
178
179
      // 接收菜单结果
      search (e) {
        const { on, value, selectedData } = e
c300654f9   范牧   首页部分功能
180
        let params = {}
323398550   范牧   若干功能添加
181
        const selectedPayload = {}
467128613   范牧   筛选逻辑添加
182
        for (const key in selectedData) {
323398550   范牧   若干功能添加
183
184
          if (Object.prototype.hasOwnProperty.call(selectedData, key)) {
            selectedPayload[key] = selectedData[key].toString()
467128613   范牧   筛选逻辑添加
185
186
          }
        }
fb748734c   范牧   首页部分逻辑修改
187
        if (on[0] === 1) {
7d6833f2c   范牧   地址列表
188
          // 若点击全部
fb748734c   范牧   首页部分逻辑修改
189
190
          this.searchText = ''
          store.dispatch('index/list')
c300654f9   范牧   首页部分功能
191
        } else {
fb748734c   范牧   首页部分逻辑修改
192
193
194
          for (let i = 1; i <= on.length; i++) { // on[0]是全部
            if (on[i] === 1) { // 若该选项被选中
              if (this.categoryList[i].value === 'filter') {
fb748734c   范牧   首页部分逻辑修改
195
                params = {
323398550   范牧   若干功能添加
196
                  ...selectedPayload,
fb748734c   范牧   首页部分逻辑修改
197
198
199
200
201
                  ...params
                }
              } else {
                params[`${this.categoryList[i].value}`] = value[i][0]
              }
c300654f9   范牧   首页部分功能
202
203
204
            }
          }
          store.dispatch('index/search', {
fb748734c   范牧   首页部分逻辑修改
205
            params,
c300654f9   范牧   首页部分功能
206
            keyword: this.keyWords
fb748734c   范牧   首页部分逻辑修改
207
          })
c300654f9   范牧   首页部分功能
208
        }
1003c53e8   Adam   go
209
      }
fb748734c   范牧   首页部分逻辑修改
210
    }
0508098fe   BigBoss   首页筛选列表接口获取
211
  
fb748734c   范牧   首页部分逻辑修改
212
  }
0db291810   BigBoss   “-mcomfirmOder页面
213
214
215
  </script>
  
  <style lang="scss">
1003c53e8   Adam   go
216
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
  .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页面
281
  
1003c53e8   Adam   go
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
  .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页面
307
  </style>