;(function () {
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
    try {
      var info = gen[key](arg)
      var value = info.value
    } catch (error) {
      reject(error)
      return
    }
    if (info.done) {
      resolve(value)
    } else {
      Promise.resolve(value).then(_next, _throw)
    }
  }
  function _asyncToGenerator(fn) {
    return function () {
      var self = this,
        args = arguments
      return new Promise(function (resolve, reject) {
        var gen = fn.apply(self, args)
        function _next(value) {
          asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'next', value)
        }
        function _throw(err) {
          asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'throw', err)
        }
        _next(undefined)
      })
    }
  }
  var __vite_style__ = document.createElement('style')
  __vite_style__.innerHTML =
    '._filter-top_1vale_1{height:.98667rem;font-size:.37333rem;color:#666;transition:color cubic-bezier(.075,.82,.165,1);background:#ffffff}._filter-top_1vale_1 .van-col{display:flex;align-items:center;justify-content:center}._filter-top_1vale_1 ._active_1vale_13{color:#333;font-weight:500}._filter-top_1vale_1 ._filterBtn_1vale_17{color:#333}._filterTagWrap_1vale_20{display:flex;padding:.16rem 0 0 .37333rem;flex-wrap:wrap}._filterTagWrap_1vale_20 ._filterTag_1vale_20{border:.02667rem solid var(--van-primary-color)!important;color:var(--van-primary-color)!important;border-radius:.32rem;font-size:.32rem;background-color:#f7f8f9;padding:.10667rem .26667rem;margin-right:.21333rem;margin-bottom:.21333rem;font-weight:500}._filter-productCategory_1vale_36{font-size:.37333rem;color:#666}._filter-productCategory_1vale_36 .van-tab{padding:0}._filter-productCategory_1vale_36 .van-tabs__line{display:none!important}._filter-productCategory_1vale_36 .van-col{height:.98667rem;display:flex;align-items:center;justify-content:center}._filter-productCategory_1vale_36 ._filter-tag_1vale_52{padding:.13333rem .26667rem;height:80%;border-radius:.53333rem;display:flex;justify-content:center;align-items:center;margin:0 .13333rem;min-width:1.33333rem}._filter-productCategory_1vale_36 ._filter-tag-checked_1vale_62{background:var(--van-primary);color:#fff}._filterSort_1vale_66{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-left:.13333rem}._filterSort_1vale_66 ._icon-active_1vale_73{color:#01C1B5}._filterSort_1vale_66 ._iconSort_1vale_76{margin-top:-.13333rem;margin-left:-.02667rem}._loading_1wy15_1{height:.8rem;display:flex;justify-content:center;align-items:center}._titlePopup_1wy15_7{padding:.48rem;text-align:center;color:#000;font-weight:500;font-size:.48rem}._title_1wy15_7{color:#333;font-size:.37333rem;line-height:.53333rem;padding-left:.42667rem;font-weight:500}._radio-group_1wy15_21{display:flex;flex-wrap:wrap;margin-top:.37333rem}._radio_1wy15_21{margin-right:.26667rem;margin-bottom:.21333rem}._radio_1wy15_21 .van-radio__icon{display:none}._radio_1wy15_21 .van-tag{box-sizing:border-box;font-size:.37333rem;display:flex;align-items:center;justify-content:center;border-radius:.42667rem;padding:.16rem .32rem;border:.02667rem solid transparent;height:.85333rem;line-height:.85333rem;min-width:2.13333rem}._radio_1wy15_21 .van-tag--default{color:#999}._radio_1wy15_21 .van-tag--primary{background-color:#f7f8f9;border:.02667rem solid var(--van-primary);color:var(--van-primary)}._radio_1wy15_21 .van-radio__label{margin-left:0}._filterAction_1wy15_57{padding:.29333rem .42667rem;display:flex;align-items:center}._filterAction_1wy15_57 .van-button{flex:1;height:1.12rem;line-height:1.12rem}\n'
  document.head.appendChild(__vite_style__)
  System.register(
    [
      './vendor-legacy.09f20d09.js',
      './index-legacy.637f35563.js',
      './index-legacy.f25f109a10.js',
      './index-legacy.f25f109a3.js',
      './index-legacy.637f3556.js',
      './index-legacy.637f35562.js',
      './index-legacy.7eb04225.js',
      './index-legacy.f72eae88.js',
      './index-legacy.595c24c3.js',
      './index-legacy.f25f109a.js',
      './index-legacy.637f35565.js',
      './index-legacy.f25f109a14.js',
      './index-legacy.f25f109a17.js',
      './index-legacy.f25f109a6.js',
      './index-legacy.b67c6e0d.js',
      './index-legacy.f25f109a2.js',
      './index-legacy.f25f109a12.js',
      './icon-sell-out-legacy.ae9d997a.js',
      './shop-mall-legacy.42d570fe.js',
      './index-legacy.f25f109a5.js'
    ],
    function (exports) {
      'use strict'
      var defineComponent,
        createVNode,
        Loading,
        createTextVNode,
        Cell,
        RadioGroup,
        Radio,
        Tag,
        isVNode,
        Divider,
        Button,
        Sticky,
        Row,
        Col,
        Icon,
        Tabs,
        Tab,
        Popup,
        TabList,
        ColSearch,
        iconFilter,
        request
      return {
        setters: [
          function (module) {
            defineComponent = module.d
            createVNode = module.a
            Loading = module.L
            createTextVNode = module.j
            Cell = module.C
            RadioGroup = module.ac
            Radio = module.ad
            Tag = module.U
            isVNode = module.x
            Divider = module.aw
            Button = module.B
            Sticky = module.S
            Row = module.z
            Col = module.A
            Icon = module.K
            Tabs = module.v
            Tab = module.w
            Popup = module.P
          },
          function () {},
          function () {},
          function () {},
          function () {},
          function () {},
          function (module) {
            TabList = module.T
          },
          function (module) {
            ColSearch = module.C
            iconFilter = module.i
          },
          function (module) {
            request = module.r
          },
          function () {},
          function () {},
          function () {},
          function () {},
          function () {},
          function () {},
          function () {},
          function () {},
          function () {},
          function () {},
          function () {}
        ],
        execute: function execute() {
          var active = '_active_1vale_13'
          var filterBtn = '_filterBtn_1vale_17'
          var filterTagWrap = '_filterTagWrap_1vale_20'
          var filterTag = '_filterTag_1vale_20'
          var filterSort = '_filterSort_1vale_66'
          var iconSort = '_iconSort_1vale_76'
          var styles$1 = {
            'filter-top': '_filter-top_1vale_1',
            active: active,
            filterBtn: filterBtn,
            filterTagWrap: filterTagWrap,
            filterTag: filterTag,
            'filter-productCategory': '_filter-productCategory_1vale_36',
            'filter-tag': '_filter-tag_1vale_52',
            'filter-tag-checked': '_filter-tag-checked_1vale_62',
            filterSort: filterSort,
            'icon-active': '_icon-active_1vale_73',
            iconSort: iconSort
          }
          var loading = '_loading_1wy15_1'
          var titlePopup = '_titlePopup_1wy15_7'
          var title = '_title_1wy15_7'
          var radio = '_radio_1wy15_21'
          var filterAction = '_filterAction_1wy15_57'
          var styles = {
            loading: loading,
            titlePopup: titlePopup,
            title: title,
            'radio-group': '_radio-group_1wy15_21',
            radio: radio,
            filterAction: filterAction
          }
          function _isSlot(s) {
            return (
              typeof s === 'function' ||
              (Object.prototype.toString.call(s) === '[object Object]' &&
                !isVNode(s))
            )
          }
          var init = function init() {
            return {
              productCategorySmallVoList: null,
              productAttributeCategoryList: null,
              brandList: null
            }
          }
          var GoodsFilterList = defineComponent({
            name: 'goods-filter-list',
            props: {
              setFilter: {
                type: Function,
                default: function _default(item) {}
              },
              cateGoryId: { type: Number, default: 0 }
            },
            data: function data() {
              return {
                dataShow: true, // 判断是否有数据
                loading: false,
                brandList: [],
                productAttributeCategoryList: [],
                productCategorySmallVoList: [],
                params: init()
              }
            },
            mounted: function mounted() {
              this.getFilterList()
            },
            methods: {
              getFilterList: function getFilterList() {
                var _this = this
                return _asyncToGenerator(
                  /*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
                    var res,
                      _ref,
                      _ref$brandList,
                      brandList,
                      _ref$productAttribute,
                      productAttributeCategoryList,
                      _ref$productCategoryS,
                      productCategorySmallVoList,
                      i
                    return regeneratorRuntime.wrap(
                      function _callee$(_context) {
                        while (1) {
                          switch ((_context.prev = _context.next)) {
                            case 0:
                              _this.loading = true
                              _context.prev = 1
                              _context.next = 4
                              return request.get(
                                '/api-mall-portal/product/search/condition'
                              )
                            case 4:
                              res = _context.sent
                              _this.dataShow = res.code === 200
                              ;(_ref = res.data || {}),
                                (_ref$brandList = _ref.brandList),
                                (brandList =
                                  _ref$brandList === void 0
                                    ? []
                                    : _ref$brandList),
                                (_ref$productAttribute =
                                  _ref.productAttributeCategoryList),
                                (productAttributeCategoryList =
                                  _ref$productAttribute === void 0
                                    ? []
                                    : _ref$productAttribute),
                                (_ref$productCategoryS =
                                  _ref.productCategorySmallVoList),
                                (productCategorySmallVoList =
                                  _ref$productCategoryS === void 0
                                    ? []
                                    : _ref$productCategoryS)
                              _this.brandList = brandList
                              _this.productAttributeCategoryList =
                                productAttributeCategoryList
                              _this.productCategorySmallVoList =
                                productCategorySmallVoList
                              if (_this.cateGoryId) {
                                i = productCategorySmallVoList.findIndex(
                                  function (n) {
                                    return n.id == _this.cateGoryId
                                  }
                                )
                                _this.params.productCategorySmallVoList =
                                  i > -1 ? i : null
                              }
                              _context.next = 16
                              break
                            case 13:
                              _context.prev = 13
                              _context.t0 = _context['catch'](1)
                              _this.dataShow = false
                            case 16:
                              _this.loading = false
                            case 17:
                            case 'end':
                              return _context.stop()
                          }
                        }
                      },
                      _callee,
                      null,
                      [[1, 13]]
                    )
                  })
                )()
              }, // 筛选条件
              onFilterClick: function onFilterClick() {
                this.setFilter({
                  productCategory:
                    this.productCategorySmallVoList[
                      this.params.productCategorySmallVoList
                    ],
                  productAttributeCategory:
                    this.productAttributeCategoryList[
                      this.params.productAttributeCategoryList
                    ],
                  brand: this.brandList[this.params.brandList]
                })
              },
              setParams: function setParams(key) {
                this.params[key] = null
              }
            },
            render: function render() {
              var _this2 = this
              return createVNode('div', null, [
                this.loading &&
                  createVNode('div', { class: styles.loading }, [
                    createVNode(Loading, { color: 'var(--van-primary)' }, null)
                  ]),
                createVNode('div', { class: styles.filterWrap }, [
                  createVNode('div', { class: styles.titlePopup }, [
                    createTextVNode('\u7B5B\u9009')
                  ]),
                  Object.keys(this.params).map(function (key) {
                    return createVNode(
                      Cell,
                      { border: false },
                      {
                        title: function title() {
                          return createVNode('div', null, [
                            key === 'productCategorySmallVoList'
                              ? '商品分类'
                              : key === 'productAttributeCategoryList'
                              ? '商品类型'
                              : '品牌'
                          ])
                        },
                        label: function label() {
                          var _slot
                          return createVNode(
                            RadioGroup,
                            {
                              class: styles['radio-group'],
                              modelValue: _this2.params[key],
                              'onUpdate:modelValue':
                                function onUpdateModelValue(val) {
                                  return (_this2.params[key] = val)
                                }
                            },
                            _isSlot(
                              (_slot = _this2[key].map(function (item, index) {
                                var isActive = index === _this2.params[key]
                                var type = isActive ? 'primary' : 'default'
                                return createVNode(
                                  Radio,
                                  {
                                    class: styles.radio,
                                    name: index,
                                    onClick: function onClick() {}
                                  },
                                  {
                                    default: function _default() {
                                      return [
                                        createVNode(
                                          Tag,
                                          { size: 'large', type: type },
                                          {
                                            default: function _default() {
                                              return [item.name]
                                            }
                                          }
                                        )
                                      ]
                                    }
                                  }
                                )
                              }))
                            )
                              ? _slot
                              : {
                                  default: function _default() {
                                    return [_slot]
                                  }
                                }
                          )
                        }
                      }
                    )
                  }),
                  createVNode(Divider, { style: { margin: '0' } }, null),
                  createVNode('div', { class: styles.filterAction }, [
                    createVNode(
                      Button,
                      {
                        round: true,
                        style: { marginRight: '8px' },
                        onClick: function onClick() {
                          return (_this2.params = init())
                        }
                      },
                      {
                        default: function _default() {
                          return [createTextVNode('\u91CD\u7F6E')]
                        }
                      }
                    ),
                    createVNode(
                      Button,
                      {
                        round: true,
                        type: 'primary',
                        style: { marginLeft: '8px' },
                        onClick: function onClick() {
                          return _this2.onFilterClick()
                        }
                      },
                      {
                        default: function _default() {
                          return [createTextVNode('\u786E\u8BA4')]
                        }
                      }
                    )
                  ])
                ])
              ])
            }
          })
          var index = exports(
            'default',
            defineComponent({
              name: 'goods-list',
              data: function data() {
                var query = this.$route.query
                return {
                  tabListShow: query.id ? false : true,
                  typeId: 0,
                  filterActive: 0,
                  filterListShow: false,
                  productCategory: {
                    active: 0,
                    name: query.tag || '',
                    id: Number(query.id) || 0,
                    children: []
                  },
                  productAttributeCategory: { children: [], name: '', id: 0 },
                  brand: { name: '', id: 0 },
                  keyword: '',
                  autofocus: false
                }
              },
              computed: {
                getProductAttributeCategory:
                  function getProductAttributeCategory() {
                    if (this.productCategory.id) {
                      if (this.productCategory.children) {
                        var child =
                          this.productCategory.children[
                            this.productCategory.active
                          ] || {}
                        return child.id || ''
                      }
                      this.productCategory.id
                    }
                    return 0
                  }
              },
              mounted: function mounted() {
                var _this3 = this
                return _asyncToGenerator(
                  /*#__PURE__*/ regeneratorRuntime.mark(function _callee2() {
                    var res
                    return regeneratorRuntime.wrap(
                      function _callee2$(_context2) {
                        while (1) {
                          switch ((_context2.prev = _context2.next)) {
                            case 0:
                              _this3.$nextTick(function () {
                                if (_this3.$route.query.input === 'focus') {
                                  var input = document.querySelector(
                                    '.van-field__control'
                                  )
                                  input.focus()
                                }
                              })
                              if (!_this3.productCategory.id) {
                                _context2.next = 11
                                break
                              }
                              _context2.prev = 2
                              _context2.next = 5
                              return request.get(
                                '/api-mall-portal/product/search/condition'
                              )
                            case 5:
                              res = _context2.sent
                              if (res.code === 200) {
                                _this3.setFilter({
                                  productCategory:
                                    res.data.productCategorySmallVoList.find(
                                      function (n) {
                                        return (
                                          n.id === _this3.productCategory.id
                                        )
                                      }
                                    ),
                                  productAttributeCategory: undefined,
                                  brand: undefined
                                })
                              }
                              _context2.next = 11
                              break
                            case 9:
                              _context2.prev = 9
                              _context2.t0 = _context2['catch'](2)
                            case 11:
                              _this3.tabListShow = true
                            case 12:
                            case 'end':
                              return _context2.stop()
                          }
                        }
                      },
                      _callee2,
                      null,
                      [[2, 9]]
                    )
                  })
                )()
              },
              methods: {
                onFilter: function onFilter(n) {
                  var _this4 = this
                  if (this.filterActive === 3 && n === 3) n = 4
                  if (this.filterActive === 4 && n === 3) n = 3
                  if (this.filterActive === n) return
                  this.filterActive = n
                  this.$nextTick(function () {
                    _this4.onSearch()
                  })
                },
                setFilter: function setFilter(_ref2) {
                  var _this5 = this
                  var productCategory = _ref2.productCategory,
                    productAttributeCategory = _ref2.productAttributeCategory,
                    brand = _ref2.brand // console.log(productCategory.active)
                  if (productCategory && productCategory.active === undefined) {
                    productCategory.active = 0
                  }
                  this.productCategory = productCategory
                    ? productCategory
                    : { id: 0, name: '' }
                  this.productAttributeCategory = productAttributeCategory
                    ? productAttributeCategory
                    : { id: 0, name: '' }
                  this.brand = brand ? brand : { id: 0, name: '' }
                  this.$nextTick(function () {
                    _this5.onSearch()
                    _this5.filterListShow = false
                  })
                },
                onToggleTag: function onToggleTag() {
                  var _this6 = this
                  var tabList = this.$refs.tabList
                  if (tabList.loading) return // this.productCategory.active = i
                  this.$nextTick(function () {
                    _this6.onSearch()
                  })
                },
                onClearTag: function onClearTag(key) {
                  var _this7 = this
                  this[key] = { id: 0, name: '' }
                  var goodsFilter = this.$refs.goodsFilter
                  if (goodsFilter) {
                    if (key === 'productCategory') {
                      goodsFilter.setParams('productCategorySmallVoList')
                    } else if (key === 'productAttributeCategory') {
                      goodsFilter.setParams('productAttributeCategoryList')
                    } else {
                      goodsFilter.setParams('brandList')
                    }
                  }
                  this.$nextTick(function () {
                    _this7.onSearch()
                  })
                },
                onSearch: function onSearch() {
                  var tabList = this.$refs.tabList
                  tabList.onSearch()
                },
                searchBtn: function searchBtn(keyword) {
                  var _this8 = this
                  this.keyword = keyword
                  console.log(this.keyword)
                  this.$nextTick(function () {
                    _this8.onSearch()
                  })
                }
              },
              render: function render() {
                var _this9 = this
                return createVNode('div', null, [
                  createVNode(Sticky, null, {
                    default: function _default() {
                      return [
                        createVNode(
                          ColSearch,
                          {
                            modelValue: _this9.keyword,
                            onSearch: _this9.searchBtn
                          },
                          null
                        ),
                        createVNode(
                          Row,
                          { class: styles$1['filter-top'], align: 'center' },
                          {
                            default: function _default() {
                              return [
                                createVNode(
                                  Col,
                                  {
                                    span: 6,
                                    class:
                                      _this9.filterActive === 0
                                        ? styles$1.active
                                        : '',
                                    onClick: function onClick() {
                                      return _this9.onFilter(0)
                                    }
                                  },
                                  {
                                    default: function _default() {
                                      return [
                                        createTextVNode(
                                          '\u7EFC\u5408\u6392\u5E8F'
                                        )
                                      ]
                                    }
                                  }
                                ),
                                createVNode(
                                  Col,
                                  {
                                    span: 6,
                                    class:
                                      _this9.filterActive === 3 ||
                                      _this9.filterActive === 4
                                        ? styles$1.active
                                        : '',
                                    onClick: function onClick() {
                                      return _this9.onFilter(3)
                                    }
                                  },
                                  {
                                    default: function _default() {
                                      return [
                                        createTextVNode('\u4EF7\u683C'),
                                        createVNode(
                                          'div',
                                          { class: styles$1.filterSort },
                                          [
                                            createVNode(
                                              Icon,
                                              {
                                                class:
                                                  _this9.filterActive === 3
                                                    ? styles$1['icon-active']
                                                    : '',
                                                style: {
                                                  transform: 'rotate(-90deg)'
                                                },
                                                name: 'play',
                                                size: 12
                                              },
                                              null
                                            ),
                                            createVNode(
                                              Icon,
                                              {
                                                class: [
                                                  styles$1.iconSort,
                                                  _this9.filterActive === 4
                                                    ? [styles$1['icon-active']]
                                                    : ''
                                                ],
                                                style: {
                                                  transform: 'rotate(90deg)'
                                                },
                                                name: 'play',
                                                size: 12
                                              },
                                              null
                                            )
                                          ]
                                        )
                                      ]
                                    }
                                  }
                                ),
                                createVNode(
                                  Col,
                                  {
                                    style: { marginLeft: 'auto' },
                                    span: 6,
                                    class: styles$1.filterBtn,
                                    onClick: function onClick() {
                                      return (_this9.filterListShow = true)
                                    }
                                  },
                                  {
                                    default: function _default() {
                                      return [
                                        createTextVNode('\u7B5B\u9009'),
                                        createVNode(
                                          Icon,
                                          { name: iconFilter, size: 18 },
                                          null
                                        )
                                      ]
                                    }
                                  }
                                )
                              ]
                            }
                          }
                        ),
                        _this9.productCategory.id &&
                        _this9.productCategory.children &&
                        _this9.productCategory.children.length
                          ? createVNode(
                              Tabs,
                              {
                                class: styles$1['filter-productCategory'],
                                shrink: true,
                                ellipsis: false,
                                active: _this9.productCategory.active,
                                'onUpdate:active': function onUpdateActive(
                                  $event
                                ) {
                                  return (_this9.productCategory.active =
                                    $event)
                                },
                                onChange: function onChange() {
                                  return _this9.onToggleTag()
                                }
                              },
                              {
                                default: function _default() {
                                  return [
                                    _this9.productCategory &&
                                      _this9.productCategory.children.map(
                                        function (n, i) {
                                          return createVNode(
                                            Tab,
                                            { name: i, title: n.name },
                                            {
                                              title: function title() {
                                                return createVNode(
                                                  'div',
                                                  {
                                                    class: [
                                                      styles$1['filter-tag'],
                                                      _this9.productCategory
                                                        .active === i
                                                        ? styles$1[
                                                            'filter-tag-checked'
                                                          ]
                                                        : ''
                                                    ]
                                                  },
                                                  [n.name]
                                                )
                                              }
                                            }
                                          )
                                        }
                                      )
                                  ]
                                }
                              }
                            )
                          : null
                      ]
                    }
                  }),
                  createVNode('div', { class: styles$1.filterTagWrap }, [
                    this.productAttributeCategory.id
                      ? createVNode(
                          Tag,
                          {
                            class: styles$1.filterTag,
                            closeable: true,
                            onClose: function onClose() {
                              return _this9.onClearTag(
                                'productAttributeCategory'
                              )
                            }
                          },
                          {
                            default: function _default() {
                              return [_this9.productAttributeCategory.name]
                            }
                          }
                        )
                      : '',
                    this.brand.id
                      ? createVNode(
                          Tag,
                          {
                            class: styles$1.filterTag,
                            closeable: true,
                            onClose: function onClose() {
                              return _this9.onClearTag('brand')
                            }
                          },
                          {
                            default: function _default() {
                              return [_this9.brand.name]
                            }
                          }
                        )
                      : ''
                  ]),
                  this.tabListShow
                    ? createVNode(
                        TabList,
                        {
                          ref: 'tabList',
                          typeId: Number(this.getProductAttributeCategory),
                          productAttributeCategoryId:
                            this.productAttributeCategory.id,
                          brandId: this.brand.id,
                          sort: this.filterActive,
                          keyword: this.keyword
                        },
                        null
                      )
                    : null,
                  createVNode(
                    Popup,
                    {
                      show: this.filterListShow,
                      closeable: true,
                      position: 'bottom',
                      round: true,
                      onClose: function onClose() {
                        _this9.filterListShow = false
                      }
                    },
                    {
                      default: function _default() {
                        return [
                          createVNode(
                            GoodsFilterList,
                            {
                              cateGoryId: _this9.productCategory.id,
                              ref: 'goodsFilter',
                              setFilter: _this9.setFilter
                            },
                            null
                          )
                        ]
                      }
                    }
                  )
                ])
              }
            })
          )
        }
      }
    }
  )
})()
