exports.ids = [52,3,5,6,7,8,9];
exports.modules = {

/***/ 146:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return on; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return off; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return once; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return hasClass; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addClass; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return removeClass; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getStyle; });
/* unused harmony export setStyle */
/* unused harmony export isScroll */
/* unused harmony export getScrollContainer */
/* unused harmony export isInContainer */
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
/* istanbul ignore next */



const isServer = vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer;
const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
const MOZ_HACK_REGEXP = /^moz([A-Z])/;
const ieVersion = isServer ? 0 : Number(document.documentMode);

/* istanbul ignore next */
const trim = function(string) {
  return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
};
/* istanbul ignore next */
const camelCase = function(name) {
  return name.replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {
    return offset ? letter.toUpperCase() : letter;
  }).replace(MOZ_HACK_REGEXP, 'Moz$1');
};

/* istanbul ignore next */
const on = (function() {
  if (!isServer && document.addEventListener) {
    return function(element, event, handler) {
      if (element && event && handler) {
        element.addEventListener(event, handler, false);
      }
    };
  } else {
    return function(element, event, handler) {
      if (element && event && handler) {
        element.attachEvent('on' + event, handler);
      }
    };
  }
})();

/* istanbul ignore next */
const off = (function() {
  if (!isServer && document.removeEventListener) {
    return function(element, event, handler) {
      if (element && event) {
        element.removeEventListener(event, handler, false);
      }
    };
  } else {
    return function(element, event, handler) {
      if (element && event) {
        element.detachEvent('on' + event, handler);
      }
    };
  }
})();

/* istanbul ignore next */
const once = function(el, event, fn) {
  var listener = function() {
    if (fn) {
      fn.apply(this, arguments);
    }
    off(el, event, listener);
  };
  on(el, event, listener);
};

/* istanbul ignore next */
function hasClass(el, cls) {
  if (!el || !cls) return false;
  if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');
  if (el.classList) {
    return el.classList.contains(cls);
  } else {
    return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;
  }
};

/* istanbul ignore next */
function addClass(el, cls) {
  if (!el) return;
  var curClass = el.className;
  var classes = (cls || '').split(' ');

  for (var i = 0, j = classes.length; i < j; i++) {
    var clsName = classes[i];
    if (!clsName) continue;

    if (el.classList) {
      el.classList.add(clsName);
    } else if (!hasClass(el, clsName)) {
      curClass += ' ' + clsName;
    }
  }
  if (!el.classList) {
    el.setAttribute('class', curClass);
  }
};

/* istanbul ignore next */
function removeClass(el, cls) {
  if (!el || !cls) return;
  var classes = cls.split(' ');
  var curClass = ' ' + el.className + ' ';

  for (var i = 0, j = classes.length; i < j; i++) {
    var clsName = classes[i];
    if (!clsName) continue;

    if (el.classList) {
      el.classList.remove(clsName);
    } else if (hasClass(el, clsName)) {
      curClass = curClass.replace(' ' + clsName + ' ', ' ');
    }
  }
  if (!el.classList) {
    el.setAttribute('class', trim(curClass));
  }
};

/* istanbul ignore next */
const getStyle = ieVersion < 9 ? function(element, styleName) {
  if (isServer) return;
  if (!element || !styleName) return null;
  styleName = camelCase(styleName);
  if (styleName === 'float') {
    styleName = 'styleFloat';
  }
  try {
    switch (styleName) {
      case 'opacity':
        try {
          return element.filters.item('alpha').opacity / 100;
        } catch (e) {
          return 1.0;
        }
      default:
        return (element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null);
    }
  } catch (e) {
    return element.style[styleName];
  }
} : function(element, styleName) {
  if (isServer) return;
  if (!element || !styleName) return null;
  styleName = camelCase(styleName);
  if (styleName === 'float') {
    styleName = 'cssFloat';
  }
  try {
    var computed = document.defaultView.getComputedStyle(element, '');
    return element.style[styleName] || computed ? computed[styleName] : null;
  } catch (e) {
    return element.style[styleName];
  }
};

/* istanbul ignore next */
function setStyle(element, styleName, value) {
  if (!element || !styleName) return;

  if (typeof styleName === 'object') {
    for (var prop in styleName) {
      if (styleName.hasOwnProperty(prop)) {
        setStyle(element, prop, styleName[prop]);
      }
    }
  } else {
    styleName = camelCase(styleName);
    if (styleName === 'opacity' && ieVersion < 9) {
      element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';
    } else {
      element.style[styleName] = value;
    }
  }
};

const isScroll = (el, vertical) => {
  if (isServer) return;

  const determinedDirection = vertical !== null && vertical !== undefined;
  const overflow = determinedDirection
    ? vertical
      ? getStyle(el, 'overflow-y')
      : getStyle(el, 'overflow-x')
    : getStyle(el, 'overflow');

  return overflow.match(/(scroll|auto|overlay)/);
};

const getScrollContainer = (el, vertical) => {
  if (isServer) return;

  let parent = el;
  while (parent) {
    if ([window, document, document.documentElement].includes(parent)) {
      return window;
    }
    if (isScroll(parent, vertical)) {
      return parent;
    }
    parent = parent.parentNode;
  }

  return parent;
};

const isInContainer = (el, container) => {
  if (isServer || !el || !container) return false;

  const elRect = el.getBoundingClientRect();
  let containerRect;

  if ([window, document, document.documentElement, null, undefined].includes(container)) {
    containerRect = {
      top: 0,
      right: window.innerWidth,
      bottom: window.innerHeight,
      left: 0
    };
  } else {
    containerRect = container.getBoundingClientRect();
  }

  return elRect.top < containerRect.bottom &&
    elRect.bottom > containerRect.top &&
    elRect.right > containerRect.left &&
    elRect.left < containerRect.right;
};


/***/ }),

/***/ 147:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ isFirefox; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ kebabCase; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ rafThrottle; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ isMac; });

// UNUSED EXPORTS: noop, hasOwn, toObject, getValueByPath, getPropByPath, generateId, valueEquals, escapeRegexpString, arrayFindIndex, arrayFind, coerceTruthyValueToArray, isIE, isEdge, autoprefixer, capitalize, looseEqual, arrayEquals, isEqual, isEmpty, objToArray

// EXTERNAL MODULE: external "vue"
var external_vue_ = __webpack_require__(0);
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);

// CONCATENATED MODULE: ./node_modules/element-ui/src/utils/types.js


function isString(obj) {
  return Object.prototype.toString.call(obj) === '[object String]';
}

function isObject(obj) {
  return Object.prototype.toString.call(obj) === '[object Object]';
}

function isHtmlElement(node) {
  return node && node.nodeType === Node.ELEMENT_NODE;
}

/**
 *  - Inspired:
 *    https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js
 */
let isFunction = (functionToCheck) => {
  var getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
};

if ( true && typeof Int8Array !== 'object' && (external_vue_default.a.prototype.$isServer || typeof document.childNodes !== 'function')) {
  isFunction = function(obj) {
    return typeof obj === 'function' || false;
  };
}



const isUndefined = (val)=> {
  return val === void 0;
};

const isDefined = (val) => {
  return val !== undefined && val !== null;
};

// CONCATENATED MODULE: ./node_modules/element-ui/src/utils/util.js



const util_hasOwnProperty = Object.prototype.hasOwnProperty;

function noop() {};

function hasOwn(obj, key) {
  return util_hasOwnProperty.call(obj, key);
};

function extend(to, _from) {
  for (let key in _from) {
    to[key] = _from[key];
  }
  return to;
};

function toObject(arr) {
  var res = {};
  for (let i = 0; i < arr.length; i++) {
    if (arr[i]) {
      extend(res, arr[i]);
    }
  }
  return res;
};

const getValueByPath = function(object, prop) {
  prop = prop || '';
  const paths = prop.split('.');
  let current = object;
  let result = null;
  for (let i = 0, j = paths.length; i < j; i++) {
    const path = paths[i];
    if (!current) break;

    if (i === j - 1) {
      result = current[path];
      break;
    }
    current = current[path];
  }
  return result;
};

function getPropByPath(obj, path, strict) {
  let tempObj = obj;
  path = path.replace(/\[(\w+)\]/g, '.$1');
  path = path.replace(/^\./, '');

  let keyArr = path.split('.');
  let i = 0;
  for (let len = keyArr.length; i < len - 1; ++i) {
    if (!tempObj && !strict) break;
    let key = keyArr[i];
    if (key in tempObj) {
      tempObj = tempObj[key];
    } else {
      if (strict) {
        throw new Error('please transfer a valid prop path to form item!');
      }
      break;
    }
  }
  return {
    o: tempObj,
    k: keyArr[i],
    v: tempObj ? tempObj[keyArr[i]] : null
  };
};

const generateId = function() {
  return Math.floor(Math.random() * 10000);
};

const valueEquals = (a, b) => {
  // see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript
  if (a === b) return true;
  if (!(a instanceof Array)) return false;
  if (!(b instanceof Array)) return false;
  if (a.length !== b.length) return false;
  for (let i = 0; i !== a.length; ++i) {
    if (a[i] !== b[i]) return false;
  }
  return true;
};

const escapeRegexpString = (value = '') => String(value).replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');

// TODO: use native Array.find, Array.findIndex when IE support is dropped
const arrayFindIndex = function(arr, pred) {
  for (let i = 0; i !== arr.length; ++i) {
    if (pred(arr[i])) {
      return i;
    }
  }
  return -1;
};

const arrayFind = function(arr, pred) {
  const idx = arrayFindIndex(arr, pred);
  return idx !== -1 ? arr[idx] : undefined;
};

// coerce truthy value to array
const coerceTruthyValueToArray = function(val) {
  if (Array.isArray(val)) {
    return val;
  } else if (val) {
    return [val];
  } else {
    return [];
  }
};

const isIE = function() {
  return !external_vue_default.a.prototype.$isServer && !isNaN(Number(document.documentMode));
};

const isEdge = function() {
  return !external_vue_default.a.prototype.$isServer && navigator.userAgent.indexOf('Edge') > -1;
};

const isFirefox = function() {
  return !external_vue_default.a.prototype.$isServer && !!window.navigator.userAgent.match(/firefox/i);
};

const autoprefixer = function(style) {
  if (typeof style !== 'object') return style;
  const rules = ['transform', 'transition', 'animation'];
  const prefixes = ['ms-', 'webkit-'];
  rules.forEach(rule => {
    const value = style[rule];
    if (rule && value) {
      prefixes.forEach(prefix => {
        style[prefix + rule] = value;
      });
    }
  });
  return style;
};

const kebabCase = function(str) {
  const hyphenateRE = /([^-])([A-Z])/g;
  return str
    .replace(hyphenateRE, '$1-$2')
    .replace(hyphenateRE, '$1-$2')
    .toLowerCase();
};

const capitalize = function(str) {
  if (!isString(str)) return str;
  return str.charAt(0).toUpperCase() + str.slice(1);
};

const looseEqual = function(a, b) {
  const isObjectA = isObject(a);
  const isObjectB = isObject(b);
  if (isObjectA && isObjectB) {
    return JSON.stringify(a) === JSON.stringify(b);
  } else if (!isObjectA && !isObjectB) {
    return String(a) === String(b);
  } else {
    return false;
  }
};

const arrayEquals = function(arrayA, arrayB) {
  arrayA = arrayA || [];
  arrayB = arrayB || [];

  if (arrayA.length !== arrayB.length) {
    return false;
  }

  for (let i = 0; i < arrayA.length; i++) {
    if (!looseEqual(arrayA[i], arrayB[i])) {
      return false;
    }
  }

  return true;
};

const isEqual = function(value1, value2) {
  if (Array.isArray(value1) && Array.isArray(value2)) {
    return arrayEquals(value1, value2);
  }
  return looseEqual(value1, value2);
};

const isEmpty = function(val) {
  // null or undefined
  if (val == null) return true;

  if (typeof val === 'boolean') return false;

  if (typeof val === 'number') return !val;

  if (val instanceof Error) return val.message === '';

  switch (Object.prototype.toString.call(val)) {
    // String or Array
    case '[object String]':
    case '[object Array]':
      return !val.length;

    // Map or Set or File
    case '[object File]':
    case '[object Map]':
    case '[object Set]': {
      return !val.size;
    }
    // Plain Object
    case '[object Object]': {
      return !Object.keys(val).length;
    }
  }

  return false;
};

function rafThrottle(fn) {
  let locked = false;
  return function(...args) {
    if (locked) return;
    locked = true;
    window.requestAnimationFrame(_ => {
      fn.apply(this, args);
      locked = false;
    });
  };
}

function objToArray(obj) {
  if (Array.isArray(obj)) {
    return obj;
  }
  return isEmpty(obj) ? [] : [obj];
}

const isMac = function() {
  return !external_vue_default.a.prototype.$isServer && /macintosh|mac os x/i.test(navigator.userAgent);
};


/***/ }),

/***/ 148:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony default export */ __webpack_exports__["a"] = (function(target) {
  for (let i = 1, j = arguments.length; i < j; i++) {
    let source = arguments[i] || {};
    for (let prop in source) {
      if (source.hasOwnProperty(prop)) {
        let value = source[prop];
        if (value !== undefined) {
          target[prop] = value;
        }
      }
    }
  }

  return target;
});;


/***/ }),

/***/ 149:
/***/ (function(module, exports) {

// Exports
module.exports = {

};


/***/ }),

/***/ 150:
/***/ (function(module, exports) {

// Exports
module.exports = {

};


/***/ }),

/***/ 151:
/***/ (function(module, exports) {

// Exports
module.exports = {

};


/***/ }),

/***/ 152:
/***/ (function(module, exports) {

module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAI+SURBVHgB7ZjrUcMwDIAVjv+wAR6hG5ANYIOGCcgGzQgwQdMJgAmaTtAwQbJB0wmEhB3i+OLEefRxXL47XQO2ZdWSJaUAMzOXxYORIKKgD2EZLjzPS+FSkHFb7GZNcg/nhjYN0J0IBnILw1lqz18khTHOp/aknhdwbgz3ioZxoY0nMJAbuHKcXUyn8Ax1VwntOaTxJheXPBhxmNPtjmEq0O229mULU8Anh6fD79rfxcW6q2KSHYzDhyoDiK7JfdPMbmzs0Knxx9J1/v+5xV2oeOKbfkeyoZNOYAJGGYiyxr6ShFCPVS6DOciYZWNzGEhvF7NRJKFKEweSyDCuRKixDGWaCvAUTQPWmwLe6GBJGYkynOenljm8dq/9HcAY1GnFaIc3jJryGcpazGuzlvVrbKjjrsatWoxK0CHJarqeO77oCvqAzb1e6cLBcaRO1RYCfh9FkeEG98X9jP3Q9oma5tlusd6ZHKfKaToq9Ry1f+XOi1Fejr+YgxOB9Qsk+qw1WywfJoZ0LjT9e9u8tkStdy0+TE+oPW+gL1h/pzjg0Hxl1525uNdaizmIaeE7yAsz9cs363wB2VwUY2r1xWn96QOrFuoRZEMgQKYDlm+Sz7YUpJJ6oNb7UG8q2Cu7Lh2NSlGWOVtTYJKhrA4LFVssPsnbAB3CxcDIooQ3y3E45foU7YavXU+wpKy/wpizUN84w25+Gws0ajhWdVnX4Zv2eBYjOUelLrGBVZzqL/U5yBiLSUfhqoPmhjAzc2X8ANlXpn4kNgy3AAAAAElFTkSuQmCC"

/***/ }),

/***/ 153:
/***/ (function(module, exports) {

module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIuSURBVHgB7ViBVcIwEL36HIANzAY6QkfACewGsgHdgDIBbGA3ACcQJyhOgBucd3LBcC9JU8Di8/W/91+lTe5+7idpI8CAAQOiyOBKQMQRXXLiA/FObn8QN8R1lmWf0DdYFHFCXGEcDfEJ+oIImxJ32A35bSBgTpcp7MvPVnC5N3JlG7b2N1mxiQmjyzNxInEsOM47sSauOR5bKu0L4kzajTNPUBZWQjdshTbxVgb3pITx/TlxGZpjlN/QpZGfc/2wUCVeEytiTdycYJEF9yulQlFQm6XTb6wtfnD+rmmUj54AnMQo2qlwr5rzdFgSq5RVKe7ZxcG217pBrkbeSFUNJAL3C8Kc0Geh8ppQ41IaaKGLLkk7iMtVvqY1j4yo8AhFEdo6lxKEcY6ZpxCmSxwICF3BGeDJ74lZtQ481kCsPwBOE8Z2rpSwN9zvu506vnDlnOdGAh2CQgcEhH1vPSmdDYbRiNidumcgAQFhjEVqDG0dB6sxDN5EUzbbkDDe+HPoAjze+9hGu48VEhClgpOWOHblX0aYCu6+XmaexKMWYVP0vwbPE6aSNE7gcUKfkI32vWvgksBjq2sID2SK/mo1mPhBcKpA90umUqJiX8GXsTFBoDsPJ46oXcTG36lWQGCJcbCoqpdqBQSOVBWtqLXY31+1YhChvGAMDPgH8J3qcvg5F/SNVzqHLN0bRwLx+Mh3LTy6h6Ub9fBvrFQHPosL2P9T5xrgo2YJAwYMSMcXcTKvNRWzt4wAAAAASUVORK5CYII="

/***/ }),

/***/ 154:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Card_vue_vue_type_style_index_0_id_19cd839b_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(149);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Card_vue_vue_type_style_index_0_id_19cd839b_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Card_vue_vue_type_style_index_0_id_19cd839b_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Card_vue_vue_type_style_index_0_id_19cd839b_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Card_vue_vue_type_style_index_0_id_19cd839b_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 155:
/***/ (function(module, exports) {

// Exports
module.exports = {

};


/***/ }),

/***/ 157:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/Card.vue?vue&type=template&id=19cd839b&scoped=true
var render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c('nuxt-link', {
    staticClass: "card",
    attrs: {
      "to": {
        name: 'product-code',
        params: {
          code: _vm.cardData.product_code
        }
      }
    }
  }, [_c('figure', [_c('div', {
    staticClass: "card-img"
  }, [_c('el-image', {
    staticClass: "card-img-1",
    staticStyle: {
      "width": "100%",
      "height": "100%"
    },
    attrs: {
      "src": _vm.comImg,
      "fit": "cover"
    }
  }), _vm._v(" "), _vm.cardData.co2_uk_air && _vm.cardData.co2_uk_sea ? _c('div', {
    staticClass: "co2-info"
  }, [_c('img', {
    staticClass: "co2-icon",
    attrs: {
      "src": __webpack_require__(152),
      "alt": "CO2"
    }
  }), _vm._v(" "), _c('span', [_vm._v(_vm._s(_vm.cardData.co2_uk_sea || 0) + " kg")]), _vm._v(" "), _c('div'), _vm._v(" "), _c('img', {
    staticClass: "co2-icon",
    attrs: {
      "src": __webpack_require__(153),
      "alt": "CO2"
    }
  }), _vm._v(" "), _c('span', [_vm._v(_vm._s(_vm.cardData.co2_uk_air || 0) + " kg")])]) : _vm._e(), _vm._v(" "), _vm.comBestIcon ? _c('img', {
    staticClass: "best_icon",
    attrs: {
      "src": _vm.comBestIcon
    }
  }) : _vm._e(), _vm._v(" "), _c('div', {
    staticClass: "cycle_icon"
  }, _vm._l(_vm.cardData.cycle_icon, function (item, index) {
    return _c('img', {
      key: index,
      attrs: {
        "src": item.images
      }
    });
  }), 0)], 1), _vm._v(" "), _vm.showPricing ? _c('p', {
    staticClass: "show-pricing"
  }, [_vm._v("Pricing")]) : _vm._e(), _vm._v(" "), _c('figcaption', {
    staticClass: "card-info"
  }, [_vm.cardData.product_name && _vm.cardData.product_name.length > 40 ? [_c('el-tooltip', {
    attrs: {
      "content": _vm.cardData.product_name,
      "placement": "top-start"
    }
  }, [_c('h1', [_vm._v(_vm._s(_vm.cardData.product_name))])])] : [_c('h1', [_vm._v(_vm._s(_vm.cardData.product_name))])], _vm._v(" "), _c('p', {
    staticClass: "card-info-point"
  }, [_vm._v(_vm._s(_vm.cardData.product_code))]), _vm._v(" "), _c('div', {
    staticClass: "card-info-icon"
  }, _vm._l(_vm.cardData.icon, function (item, index) {
    return _c('img', {
      key: index,
      attrs: {
        "src": item.url
      }
    });
  }), 0)], 2)])]);
};
var staticRenderFns = [];

// CONCATENATED MODULE: ./components/Card.vue?vue&type=template&id=19cd839b&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/Card.vue?vue&type=script&lang=js
/* harmony default export */ var Cardvue_type_script_lang_js = ({
  props: {
    cardData: {},
    showPricing: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {};
  },
  computed: {
    comImg() {
      var _this$cardData$main;
      return this.$utils.generateResizedImageUrl((_this$cardData$main = this.cardData.main) === null || _this$cardData$main === void 0 ? void 0 : _this$cardData$main.image, 300);
    },
    comBestIcon() {
      var _this$cardData$collec;
      const bestSeller = (_this$cardData$collec = this.cardData.collection_detail) === null || _this$cardData$collec === void 0 ? void 0 : _this$cardData$collec.find(item => item.name === "Best Seller");
      return bestSeller ? bestSeller.img : '';
    }
  },
  methods: {
    goProduct(cardData) {
      this.$router.push({
        name: "product-code",
        params: {
          code: cardData.product_code
        }
      });
      // let routeData = this.$router.resolve({
      //   name: "product-code",
      //   params:{ code: cardData.product_code },
      // });
      // window.open(routeData.href, '_blank');
    }
  }
});
// CONCATENATED MODULE: ./components/Card.vue?vue&type=script&lang=js
 /* harmony default export */ var components_Cardvue_type_script_lang_js = (Cardvue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/Card.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(154)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  components_Cardvue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  injectStyles,
  "19cd839b",
  "31b9daa8"
  
)

/* harmony default export */ var Card = __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 161:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/custom-el-slider/button.vue?vue&type=template&id=09a28971
var render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c('div', {
    ref: "button",
    staticClass: "el-slider__button-wrapper",
    class: {
      hover: _vm.hovering,
      dragging: _vm.dragging
    },
    style: _vm.wrapperStyle,
    attrs: {
      "tabindex": "0"
    },
    on: {
      "mouseenter": _vm.handleMouseEnter,
      "mouseleave": _vm.handleMouseLeave,
      "mousedown": _vm.onButtonDown,
      "touchstart": _vm.onButtonDown,
      "focus": _vm.handleMouseEnter,
      "blur": _vm.handleMouseLeave,
      "keydown": [function ($event) {
        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "left", 37, $event.key, ["Left", "ArrowLeft"])) return null;
        if ('button' in $event && $event.button !== 0) return null;
        return _vm.onLeftKeyDown.apply(null, arguments);
      }, function ($event) {
        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "right", 39, $event.key, ["Right", "ArrowRight"])) return null;
        if ('button' in $event && $event.button !== 2) return null;
        return _vm.onRightKeyDown.apply(null, arguments);
      }, function ($event) {
        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "down", 40, $event.key, ["Down", "ArrowDown"])) return null;
        $event.preventDefault();
        return _vm.onLeftKeyDown.apply(null, arguments);
      }, function ($event) {
        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "up", 38, $event.key, ["Up", "ArrowUp"])) return null;
        $event.preventDefault();
        return _vm.onRightKeyDown.apply(null, arguments);
      }]
    }
  }, [_c('el-tooltip', {
    ref: "tooltip",
    attrs: {
      "placement": "top",
      "popper-class": _vm.tooltipClass,
      "disabled": !_vm.showTooltip
    }
  }, [_c('span', {
    attrs: {
      "slot": "content"
    },
    slot: "content"
  }, [_vm._v(_vm._s(_vm.formatValue))]), _vm._v(" "), _c('div', {
    staticClass: "el-slider__button",
    class: {
      hover: _vm.hovering,
      dragging: _vm.dragging
    }
  })])], 1);
};
var staticRenderFns = [];

// CONCATENATED MODULE: ./components/custom-el-slider/button.vue?vue&type=template&id=09a28971

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/custom-el-slider/button.vue?vue&type=script&lang=js
// import ElTooltip from 'element-ui/packages/tooltip'
/* harmony default export */ var buttonvue_type_script_lang_js = ({
  name: 'ElSliderButton',
  components: {
    // ElTooltip,
  },
  props: {
    value: {
      type: Number,
      default: 0
    },
    vertical: {
      type: Boolean,
      default: false
    },
    tooltipClass: String,
    marks: Object
  },
  data() {
    return {
      hovering: false,
      dragging: false,
      isClick: false,
      startX: 0,
      currentX: 0,
      startY: 0,
      currentY: 0,
      startPosition: 0,
      newPosition: null,
      oldValue: this.value
    };
  },
  computed: {
    disabled() {
      return this.$parent.sliderDisabled;
    },
    max() {
      return this.$parent.max;
    },
    min() {
      return this.$parent.min;
    },
    step() {
      return this.$parent.step;
    },
    showTooltip() {
      return this.$parent.showTooltip;
    },
    precision() {
      return this.$parent.precision;
    },
    currentPosition() {
      if (this.marks) {
        // 同父组件index中barSize的计算逻辑. 直接从那边抄过来的. 不要在这里改, 在index改完再抄过来.
        // 注意父组件的 this.firstValue, 这里是 this.value
        const marks = Object.keys(this.marks).map(Number);
        // 找出目标值位于marks的那个档位, 即 即将到达哪一个'档'
        const index = marks.findIndex(i => this.value < i);
        if (index === -1) return '100%';
        // 经过后一个档位之后占总进度条的比例 + (当前值超出后一个档位的差值 / 前一个档位与后一个档位的差值) / (进度被marks划分成的档位数量)
        // 上述公式要除档位数量是因为, 当前值与档位差值占单个档位区间的百分比 !== 单个区间值占总进度条的百分比
        const value = (index - 1) / (marks.length - 1) + (this.value - marks[index - 1]) / (marks[index] - marks[index - 1]) / (marks.length - 1);
        return value > 1 ? '100%' : `${value * 100}%`;
      } else {
        // 这里是原本的逻辑. 没有传marks的.
        return `${(this.value - this.min) / (this.max - this.min) * 100}%`;
      }
    },
    enableFormat() {
      return this.$parent.formatTooltip instanceof Function;
    },
    formatValue() {
      return this.enableFormat && this.$parent.formatTooltip(this.value) || this.value;
    },
    wrapperStyle() {
      return this.vertical ? {
        bottom: this.currentPosition
      } : {
        left: this.currentPosition
      };
    }
  },
  watch: {
    dragging(val) {
      this.$parent.dragging = val;
    }
  },
  methods: {
    displayTooltip() {
      this.$refs.tooltip && (this.$refs.tooltip.showPopper = true);
    },
    hideTooltip() {
      this.$refs.tooltip && (this.$refs.tooltip.showPopper = false);
    },
    handleMouseEnter() {
      this.hovering = true;
      this.displayTooltip();
    },
    handleMouseLeave() {
      this.hovering = false;
      this.hideTooltip();
    },
    onButtonDown(event) {
      if (this.disabled) return;
      event.preventDefault();
      this.onDragStart(event);
      window.addEventListener('mousemove', this.onDragging);
      window.addEventListener('touchmove', this.onDragging);
      window.addEventListener('mouseup', this.onDragEnd);
      window.addEventListener('touchend', this.onDragEnd);
      window.addEventListener('contextmenu', this.onDragEnd);
    },
    onLeftKeyDown() {
      if (this.disabled) return;
      this.newPosition = parseFloat(this.currentPosition) - this.step / (this.max - this.min) * 100;
      this.setPosition(this.newPosition);
      this.$parent.emitChange();
    },
    onRightKeyDown() {
      if (this.disabled) return;
      this.newPosition = parseFloat(this.currentPosition) + this.step / (this.max - this.min) * 100;
      this.setPosition(this.newPosition);
      this.$parent.emitChange();
    },
    onDragStart(event) {
      this.dragging = true;
      this.isClick = true;
      if (event.type === 'touchstart') {
        event.clientY = event.touches[0].clientY;
        event.clientX = event.touches[0].clientX;
      }
      if (this.vertical) {
        this.startY = event.clientY;
      } else {
        this.startX = event.clientX;
      }
      this.startPosition = parseFloat(this.currentPosition);
      this.newPosition = this.startPosition;
    },
    onDragging(event) {
      if (this.dragging) {
        this.isClick = false;
        this.displayTooltip();
        this.$parent.resetSize();
        let diff = 0;
        if (event.type === 'touchmove') {
          event.clientY = event.touches[0].clientY;
          event.clientX = event.touches[0].clientX;
        }
        if (this.vertical) {
          this.currentY = event.clientY;
          diff = (this.startY - this.currentY) / this.$parent.sliderSize * 100;
        } else {
          this.currentX = event.clientX;
          diff = (this.currentX - this.startX) / this.$parent.sliderSize * 100;
        }
        this.newPosition = this.startPosition + diff;
        this.setPosition(this.newPosition);
      }
    },
    onDragEnd() {
      if (this.dragging) {
        /*
         * 防止在 mouseup 后立即触发 click，导致滑块有几率产生一小段位移
         * 不使用 preventDefault 是因为 mouseup 和 click 没有注册在同一个 DOM 上
         */
        setTimeout(() => {
          this.dragging = false;
          this.hideTooltip();
          if (!this.isClick) {
            this.setPosition(this.newPosition);
            this.$parent.emitChange();
          }
        }, 0);
        window.removeEventListener('mousemove', this.onDragging);
        window.removeEventListener('touchmove', this.onDragging);
        window.removeEventListener('mouseup', this.onDragEnd);
        window.removeEventListener('touchend', this.onDragEnd);
        window.removeEventListener('contextmenu', this.onDragEnd);
      }
    },
    setPosition(newPosition) {
      if (newPosition === null || isNaN(newPosition)) return;
      if (newPosition < 0) {
        newPosition = 0;
      } else if (newPosition > 100) {
        newPosition = 100;
      }
      const lengthPerStep = 100 / ((this.max - this.min) / this.step);
      const steps = Math.round(newPosition / lengthPerStep);
      let value = steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min;
      if (this.marks) {
        // 处理传递marks时的逻辑. 没有传marks的保持原样.
        // 有marks时无视原计算逻辑. 重新赋值
        const marks = Object.keys(this.marks).map((current, index, arr) => {
          return {
            value: Number(current),
            perc: 100 * index / (arr.length - 1)
          };
        });

        // 找出目标值位于marks的那个档位, 即 即将到达哪一个'档'
        if (newPosition === 100) {
          value = marks[marks.length - 1].value;
        } else {
          const index = marks.findIndex(item => item.perc > newPosition);

          // 后一个区间的代表值 + ((区间数量 * 超出后一个区间的百分比值 / 100) * 所处区间的值差)
          if (index === -1) {
            // 在最后一个区间
            value = marks[marks.length - 2].value + (marks.length - 1) * ((newPosition - marks[marks.length - 2].perc) / 100 * (marks[marks.length - 1].value - marks[marks.length - 2].value));
          } else {
            value = marks[index - 1].value + (marks.length - 1) * ((newPosition - marks[index - 1].perc) / 100 * (marks[index].value - marks[index - 1].value));
          }
        }
      }
      value = parseFloat(value.toFixed(this.precision));
      this.$emit('input', value);
      this.$nextTick(() => {
        this.displayTooltip();
        this.$refs.tooltip && this.$refs.tooltip.updatePopper();
      });
      if (!this.dragging && this.value !== this.oldValue) {
        this.oldValue = this.value;
      }
    }
  }
});
// CONCATENATED MODULE: ./components/custom-el-slider/button.vue?vue&type=script&lang=js
 /* harmony default export */ var custom_el_slider_buttonvue_type_script_lang_js = (buttonvue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/custom-el-slider/button.vue





/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  custom_el_slider_buttonvue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  null,
  null,
  "195be077"
  
)

/* harmony default export */ var custom_el_slider_button = __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 162:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/custom-el-slider/marker.vue?vue&type=template&id=2674734e
var render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c('div', {
    staticClass: "el-slider__marks-text",
    staticStyle: {},
    on: {
      "click": function ($event) {
        $event.stopPropagation();
        return _vm.onMarkClick.apply(null, arguments);
      }
    }
  }, [_vm._ssrNode(_vm._ssrEscape("\n  " + _vm._s(_vm.label) + "\n"))]);
};
var staticRenderFns = [];

// CONCATENATED MODULE: ./components/custom-el-slider/marker.vue?vue&type=template&id=2674734e

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/custom-el-slider/marker.vue?vue&type=script&lang=js
/* harmony default export */ var markervue_type_script_lang_js = ({
  name: 'ElMarker',
  props: {
    mark: {
      type: [String, Object]
    }
  },
  data() {
    return {
      label: ''
    };
  },
  mounted() {
    this.label = typeof this.mark === 'string' ? this.mark : this.mark.label;
  },
  methods: {
    onMarkClick(e) {
      this.$emit('click');
    }
  }
});
// CONCATENATED MODULE: ./components/custom-el-slider/marker.vue?vue&type=script&lang=js
 /* harmony default export */ var custom_el_slider_markervue_type_script_lang_js = (markervue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/custom-el-slider/marker.vue





/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  custom_el_slider_markervue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  null,
  null,
  "4678897f"
  
)

/* harmony default export */ var marker = __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 166:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/custom-el-slider/index.vue?vue&type=template&id=69805dd0
var render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c('div', {
    staticClass: "el-slider",
    class: {
      'is-vertical': _vm.vertical,
      'el-slider--with-input': _vm.showInput
    },
    attrs: {
      "role": "slider",
      "aria-valuemin": _vm.min,
      "aria-valuemax": _vm.max,
      "aria-orientation": _vm.vertical ? 'vertical' : 'horizontal',
      "aria-disabled": _vm.sliderDisabled
    }
  }, [_vm.showInput && !_vm.range ? _c('el-input-number', {
    ref: "input",
    staticClass: "el-slider__input",
    attrs: {
      "step": _vm.step,
      "disabled": _vm.sliderDisabled,
      "controls": _vm.showInputControls,
      "min": _vm.min,
      "max": _vm.max,
      "debounce": _vm.debounce,
      "size": _vm.inputSize
    },
    on: {
      "change": _vm.emitChange
    },
    model: {
      value: _vm.firstValue,
      callback: function ($$v) {
        _vm.firstValue = $$v;
      },
      expression: "firstValue"
    }
  }) : _vm._e(), _vm._ssrNode(" "), _vm._ssrNode("<div" + _vm._ssrClass("el-slider__runway", {
    'show-input': _vm.showInput,
    disabled: _vm.sliderDisabled
  }) + _vm._ssrStyle(null, _vm.runwayStyle, null) + ">", "</div>", [_vm._ssrNode("<div class=\"el-slider__bar\"" + _vm._ssrStyle(null, _vm.barStyle, null) + "></div> "), _c('slider-button', {
    ref: "button1",
    attrs: {
      "vertical": _vm.vertical,
      "marks": _vm.marks,
      "tooltip-class": _vm.tooltipClass
    },
    model: {
      value: _vm.firstValue,
      callback: function ($$v) {
        _vm.firstValue = $$v;
      },
      expression: "firstValue"
    }
  }), _vm._ssrNode(" "), _vm.range ? _c('slider-button', {
    ref: "button2",
    attrs: {
      "vertical": _vm.vertical,
      "marks": _vm.marks,
      "tooltip-class": _vm.tooltipClass
    },
    model: {
      value: _vm.secondValue,
      callback: function ($$v) {
        _vm.secondValue = $$v;
      },
      expression: "secondValue"
    }
  }) : _vm._e(), _vm._ssrNode(" " + _vm._ssrList(_vm.stops, function (item, key) {
    return "<div class=\"el-slider__stop\"" + _vm._ssrStyle(null, _vm.getStopStyle(item), {
      display: _vm.showStops ? '' : 'none'
    }) + "></div>";
  }) + " "), _vm.markList.length > 0 ? [_vm._ssrNode("<div>" + _vm._ssrList(_vm.markList, function (item, key) {
    return "<div class=\"el-slider__stop el-slider__marks-stop\"" + _vm._ssrStyle(null, _vm.getStopStyle(item.position), null) + "></div>";
  }) + "</div> "), _vm._ssrNode("<div class=\"el-slider__marks\">", "</div>", _vm._l(_vm.markList, function (item, key) {
    return _c('slider-marker', {
      key: key,
      style: _vm.getStopStyle(item.position),
      attrs: {
        "mark": item.mark
      },
      on: {
        "click": function ($event) {
          return _vm.onMarkClick(key);
        }
      }
    });
  }), 1)] : _vm._e()], 2)], 2);
};
var staticRenderFns = [];

// CONCATENATED MODULE: ./components/custom-el-slider/index.vue?vue&type=template&id=69805dd0

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/element-ui/packages/input-number/src/input-number.vue?vue&type=template&id=5655cc82
var input_numbervue_type_template_id_5655cc82_render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c('div', {
    class: ['el-input-number', _vm.inputNumberSize ? 'el-input-number--' + _vm.inputNumberSize : '', {
      'is-disabled': _vm.inputNumberDisabled
    }, {
      'is-without-controls': !_vm.controls
    }, {
      'is-controls-right': _vm.controlsAtRight
    }],
    on: {
      "dragstart": function ($event) {
        $event.preventDefault();
      }
    }
  }, [_vm.controls ? _c('span', {
    directives: [{
      name: "repeat-click",
      rawName: "v-repeat-click",
      value: _vm.decrease,
      expression: "decrease"
    }],
    staticClass: "el-input-number__decrease",
    class: {
      'is-disabled': _vm.minDisabled
    },
    attrs: {
      "role": "button"
    },
    on: {
      "keydown": function ($event) {
        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) return null;
        return _vm.decrease.apply(null, arguments);
      }
    }
  }, [_vm._ssrNode("<i" + _vm._ssrClass(null, `el-icon-${_vm.controlsAtRight ? 'arrow-down' : 'minus'}`) + "></i>")]) : _vm._e(), _vm._ssrNode(" "), _vm.controls ? _c('span', {
    directives: [{
      name: "repeat-click",
      rawName: "v-repeat-click",
      value: _vm.increase,
      expression: "increase"
    }],
    staticClass: "el-input-number__increase",
    class: {
      'is-disabled': _vm.maxDisabled
    },
    attrs: {
      "role": "button"
    },
    on: {
      "keydown": function ($event) {
        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) return null;
        return _vm.increase.apply(null, arguments);
      }
    }
  }, [_vm._ssrNode("<i" + _vm._ssrClass(null, `el-icon-${_vm.controlsAtRight ? 'arrow-up' : 'plus'}`) + "></i>")]) : _vm._e(), _vm._ssrNode(" "), _c('el-input', {
    ref: "input",
    attrs: {
      "value": _vm.displayValue,
      "placeholder": _vm.placeholder,
      "disabled": _vm.inputNumberDisabled,
      "size": _vm.inputNumberSize,
      "max": _vm.max,
      "min": _vm.min,
      "name": _vm.name,
      "label": _vm.label
    },
    on: {
      "blur": _vm.handleBlur,
      "focus": _vm.handleFocus,
      "input": _vm.handleInput,
      "change": _vm.handleInputChange
    },
    nativeOn: {
      "keydown": [function ($event) {
        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "up", 38, $event.key, ["Up", "ArrowUp"])) return null;
        $event.preventDefault();
        return _vm.increase.apply(null, arguments);
      }, function ($event) {
        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "down", 40, $event.key, ["Down", "ArrowDown"])) return null;
        $event.preventDefault();
        return _vm.decrease.apply(null, arguments);
      }]
    }
  })], 2);
};
var input_numbervue_type_template_id_5655cc82_staticRenderFns = [];

// CONCATENATED MODULE: ./node_modules/element-ui/packages/input-number/src/input-number.vue?vue&type=template&id=5655cc82

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/element-ui/packages/input/src/input.vue?vue&type=template&id=17e57c08
var inputvue_type_template_id_17e57c08_render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c('div', {
    class: [_vm.type === 'textarea' ? 'el-textarea' : 'el-input', _vm.inputSize ? 'el-input--' + _vm.inputSize : '', {
      'is-disabled': _vm.inputDisabled,
      'is-exceed': _vm.inputExceed,
      'el-input-group': _vm.$slots.prepend || _vm.$slots.append,
      'el-input-group--append': _vm.$slots.append,
      'el-input-group--prepend': _vm.$slots.prepend,
      'el-input--prefix': _vm.$slots.prefix || _vm.prefixIcon,
      'el-input--suffix': _vm.$slots.suffix || _vm.suffixIcon || _vm.clearable || _vm.showPassword
    }],
    on: {
      "mouseenter": function ($event) {
        _vm.hovering = true;
      },
      "mouseleave": function ($event) {
        _vm.hovering = false;
      }
    }
  }, [_vm.type !== 'textarea' ? [_vm.$slots.prepend ? _vm._ssrNode("<div class=\"el-input-group__prepend\">", "</div>", [_vm._t("prepend")], 2) : _vm._e(), _vm._ssrNode(" " + (_vm.type !== 'textarea' ? "<input" + _vm._ssrAttr("tabindex", _vm.tabindex) + _vm._ssrAttr("type", _vm.showPassword ? _vm.passwordVisible ? 'text' : 'password' : _vm.type) + _vm._ssrAttr("disabled", _vm.inputDisabled) + _vm._ssrAttr("readonly", _vm.readonly) + _vm._ssrAttr("autocomplete", _vm.autoComplete || _vm.autocomplete) + _vm._ssrAttr("aria-label", _vm.label) + _vm._ssrAttrs(_vm.$attrs) + " class=\"el-input__inner\">" : "<!---->") + " "), _vm.$slots.prefix || _vm.prefixIcon ? _vm._ssrNode("<span class=\"el-input__prefix\">", "</span>", [_vm._t("prefix"), _vm._ssrNode(" " + (_vm.prefixIcon ? "<i" + _vm._ssrClass("el-input__icon", _vm.prefixIcon) + "></i>" : "<!---->"))], 2) : _vm._e(), _vm._ssrNode(" "), _vm.getSuffixVisible() ? _vm._ssrNode("<span class=\"el-input__suffix\">", "</span>", [_vm._ssrNode("<span class=\"el-input__suffix-inner\">", "</span>", [!_vm.showClear || !_vm.showPwdVisible || !_vm.isWordLimitVisible ? [_vm._t("suffix"), _vm._ssrNode(" " + (_vm.suffixIcon ? "<i" + _vm._ssrClass("el-input__icon", _vm.suffixIcon) + "></i>" : "<!---->"))] : _vm._e(), _vm._ssrNode(" " + (_vm.showClear ? "<i class=\"el-input__icon el-icon-circle-close el-input__clear\"></i>" : "<!---->") + " " + (_vm.showPwdVisible ? "<i class=\"el-input__icon el-icon-view el-input__clear\"></i>" : "<!---->") + " " + (_vm.isWordLimitVisible ? "<span class=\"el-input__count\"><span class=\"el-input__count-inner\">" + _vm._ssrEscape("\n            " + _vm._s(_vm.textLength) + "/" + _vm._s(_vm.upperLimit) + "\n          ") + "</span></span>" : "<!---->"))], 2), _vm._ssrNode(" " + (_vm.validateState ? "<i" + _vm._ssrClass("el-input__icon", ['el-input__validateIcon', _vm.validateIcon]) + "></i>" : "<!---->"))], 2) : _vm._e(), _vm._ssrNode(" "), _vm.$slots.append ? _vm._ssrNode("<div class=\"el-input-group__append\">", "</div>", [_vm._t("append")], 2) : _vm._e()] : _vm._ssrNode("<textarea" + _vm._ssrAttr("tabindex", _vm.tabindex) + _vm._ssrAttr("disabled", _vm.inputDisabled) + _vm._ssrAttr("readonly", _vm.readonly) + _vm._ssrAttr("autocomplete", _vm.autoComplete || _vm.autocomplete) + _vm._ssrAttr("aria-label", _vm.label) + _vm._ssrAttrs(_vm.$attrs) + " class=\"el-textarea__inner\"" + _vm._ssrStyle(null, _vm.textareaStyle, null) + "></textarea>"), _vm._ssrNode(" " + (_vm.isWordLimitVisible && _vm.type === 'textarea' ? "<span class=\"el-input__count\">" + _vm._ssrEscape(_vm._s(_vm.textLength) + "/" + _vm._s(_vm.upperLimit)) + "</span>" : "<!---->"))], 2);
};
var inputvue_type_template_id_17e57c08_staticRenderFns = [];

// CONCATENATED MODULE: ./node_modules/element-ui/packages/input/src/input.vue?vue&type=template&id=17e57c08

// CONCATENATED MODULE: ./node_modules/element-ui/src/mixins/emitter.js
function broadcast(componentName, eventName, params) {
  this.$children.forEach(child => {
    var name = child.$options.componentName;

    if (name === componentName) {
      child.$emit.apply(child, [eventName].concat(params));
    } else {
      broadcast.apply(child, [componentName, eventName].concat([params]));
    }
  });
}
/* harmony default export */ var emitter = ({
  methods: {
    dispatch(componentName, eventName, params) {
      var parent = this.$parent || this.$root;
      var name = parent.$options.componentName;

      while (parent && (!name || name !== componentName)) {
        parent = parent.$parent;

        if (parent) {
          name = parent.$options.componentName;
        }
      }
      if (parent) {
        parent.$emit.apply(parent, [eventName].concat(params));
      }
    },
    broadcast(componentName, eventName, params) {
      broadcast.call(this, componentName, eventName, params);
    }
  }
});

// EXTERNAL MODULE: ./node_modules/element-ui/src/utils/util.js + 1 modules
var util = __webpack_require__(147);

// CONCATENATED MODULE: ./node_modules/element-ui/src/mixins/migrating.js

/**
 * Show migrating guide in browser console.
 *
 * Usage:
 * import Migrating from 'element-ui/src/mixins/migrating';
 *
 * mixins: [Migrating]
 *
 * add getMigratingConfig method for your component.
 *  getMigratingConfig() {
 *    return {
 *      props: {
 *        'allow-no-selection': 'allow-no-selection is removed.',
 *        'selection-mode': 'selection-mode is removed.'
 *      },
 *      events: {
 *        selectionchange: 'selectionchange is renamed to selection-change.'
 *      }
 *    };
 *  },
 */
/* harmony default export */ var migrating = ({
  mounted() {
    if (true) return;
    if (!this.$vnode) return;
    const { props = {}, events = {} } = this.getMigratingConfig();
    const { data, componentOptions } = this.$vnode;
    const definedProps = data.attrs || {};
    const definedEvents = componentOptions.listeners || {};

    for (let propName in definedProps) {
      propName = Object(util["c" /* kebabCase */])(propName); // compatible with camel case
      if (props[propName]) {
        console.warn(`[Element Migrating][${this.$options.name}][Attribute]: ${props[propName]}`);
      }
    }

    for (let eventName in definedEvents) {
      eventName = Object(util["c" /* kebabCase */])(eventName); // compatible with camel case
      if (events[eventName]) {
        console.warn(`[Element Migrating][${this.$options.name}][Event]: ${events[eventName]}`);
      }
    }
  },
  methods: {
    getMigratingConfig() {
      return {
        props: {},
        events: {}
      };
    }
  }
});

// CONCATENATED MODULE: ./node_modules/element-ui/packages/input/src/calcTextareaHeight.js
let hiddenTextarea;

const HIDDEN_STYLE = `
  height:0 !important;
  visibility:hidden !important;
  overflow:hidden !important;
  position:absolute !important;
  z-index:-1000 !important;
  top:0 !important;
  right:0 !important
`;

const CONTEXT_STYLE = [
  'letter-spacing',
  'line-height',
  'padding-top',
  'padding-bottom',
  'font-family',
  'font-weight',
  'font-size',
  'text-rendering',
  'text-transform',
  'width',
  'text-indent',
  'padding-left',
  'padding-right',
  'border-width',
  'box-sizing'
];

function calculateNodeStyling(targetElement) {
  const style = window.getComputedStyle(targetElement);

  const boxSizing = style.getPropertyValue('box-sizing');

  const paddingSize = (
    parseFloat(style.getPropertyValue('padding-bottom')) +
    parseFloat(style.getPropertyValue('padding-top'))
  );

  const borderSize = (
    parseFloat(style.getPropertyValue('border-bottom-width')) +
    parseFloat(style.getPropertyValue('border-top-width'))
  );

  const contextStyle = CONTEXT_STYLE
    .map(name => `${name}:${style.getPropertyValue(name)}`)
    .join(';');

  return { contextStyle, paddingSize, borderSize, boxSizing };
}

function calcTextareaHeight(
  targetElement,
  minRows = 1,
  maxRows = null
) {
  if (!hiddenTextarea) {
    hiddenTextarea = document.createElement('textarea');
    document.body.appendChild(hiddenTextarea);
  }

  let {
    paddingSize,
    borderSize,
    boxSizing,
    contextStyle
  } = calculateNodeStyling(targetElement);

  hiddenTextarea.setAttribute('style', `${contextStyle};${HIDDEN_STYLE}`);
  hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';

  let height = hiddenTextarea.scrollHeight;
  const result = {};

  if (boxSizing === 'border-box') {
    height = height + borderSize;
  } else if (boxSizing === 'content-box') {
    height = height - paddingSize;
  }

  hiddenTextarea.value = '';
  let singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;

  if (minRows !== null) {
    let minHeight = singleRowHeight * minRows;
    if (boxSizing === 'border-box') {
      minHeight = minHeight + paddingSize + borderSize;
    }
    height = Math.max(minHeight, height);
    result.minHeight = `${ minHeight }px`;
  }
  if (maxRows !== null) {
    let maxHeight = singleRowHeight * maxRows;
    if (boxSizing === 'border-box') {
      maxHeight = maxHeight + paddingSize + borderSize;
    }
    height = Math.min(maxHeight, height);
  }
  result.height = `${ height }px`;
  hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);
  hiddenTextarea = null;
  return result;
};

// EXTERNAL MODULE: ./node_modules/element-ui/src/utils/merge.js
var merge = __webpack_require__(148);

// CONCATENATED MODULE: ./node_modules/element-ui/src/utils/shared.js
function isDef(val) {
  return val !== undefined && val !== null;
}
function isKorean(text) {
  const reg = /([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi;
  return reg.test(text);
}

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/element-ui/packages/input/src/input.vue?vue&type=script&lang=js





/* harmony default export */ var inputvue_type_script_lang_js = ({
  name: 'ElInput',
  componentName: 'ElInput',
  mixins: [emitter, migrating],
  inheritAttrs: false,
  inject: {
    elForm: {
      default: ''
    },
    elFormItem: {
      default: ''
    }
  },
  data() {
    return {
      textareaCalcStyle: {},
      hovering: false,
      focused: false,
      isComposing: false,
      passwordVisible: false
    };
  },
  props: {
    value: [String, Number],
    size: String,
    resize: String,
    form: String,
    disabled: Boolean,
    readonly: Boolean,
    type: {
      type: String,
      default: 'text'
    },
    autosize: {
      type: [Boolean, Object],
      default: false
    },
    autocomplete: {
      type: String,
      default: 'off'
    },
    /** @Deprecated in next major version */
    autoComplete: {
      type: String,
      validator(val) {
         false && false;
        return true;
      }
    },
    validateEvent: {
      type: Boolean,
      default: true
    },
    suffixIcon: String,
    prefixIcon: String,
    label: String,
    clearable: {
      type: Boolean,
      default: false
    },
    showPassword: {
      type: Boolean,
      default: false
    },
    showWordLimit: {
      type: Boolean,
      default: false
    },
    tabindex: String
  },
  computed: {
    _elFormItemSize() {
      return (this.elFormItem || {}).elFormItemSize;
    },
    validateState() {
      return this.elFormItem ? this.elFormItem.validateState : '';
    },
    needStatusIcon() {
      return this.elForm ? this.elForm.statusIcon : false;
    },
    validateIcon() {
      return {
        validating: 'el-icon-loading',
        success: 'el-icon-circle-check',
        error: 'el-icon-circle-close'
      }[this.validateState];
    },
    textareaStyle() {
      return Object(merge["a" /* default */])({}, this.textareaCalcStyle, {
        resize: this.resize
      });
    },
    inputSize() {
      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
    },
    inputDisabled() {
      return this.disabled || (this.elForm || {}).disabled;
    },
    nativeInputValue() {
      return this.value === null || this.value === undefined ? '' : String(this.value);
    },
    showClear() {
      return this.clearable && !this.inputDisabled && !this.readonly && this.nativeInputValue && (this.focused || this.hovering);
    },
    showPwdVisible() {
      return this.showPassword && !this.inputDisabled && !this.readonly && (!!this.nativeInputValue || this.focused);
    },
    isWordLimitVisible() {
      return this.showWordLimit && this.$attrs.maxlength && (this.type === 'text' || this.type === 'textarea') && !this.inputDisabled && !this.readonly && !this.showPassword;
    },
    upperLimit() {
      return this.$attrs.maxlength;
    },
    textLength() {
      if (typeof this.value === 'number') {
        return String(this.value).length;
      }
      return (this.value || '').length;
    },
    inputExceed() {
      // show exceed style if length of initial value greater then maxlength
      return this.isWordLimitVisible && this.textLength > this.upperLimit;
    }
  },
  watch: {
    value(val) {
      this.$nextTick(this.resizeTextarea);
      if (this.validateEvent) {
        this.dispatch('ElFormItem', 'el.form.change', [val]);
      }
    },
    // native input value is set explicitly
    // do not use v-model / :value in template
    // see: https://github.com/ElemeFE/element/issues/14521
    nativeInputValue() {
      this.setNativeInputValue();
    },
    // when change between <input> and <textarea>,
    // update DOM dependent value and styles
    // https://github.com/ElemeFE/element/issues/14857
    type() {
      this.$nextTick(() => {
        this.setNativeInputValue();
        this.resizeTextarea();
        this.updateIconOffset();
      });
    }
  },
  methods: {
    focus() {
      this.getInput().focus();
    },
    blur() {
      this.getInput().blur();
    },
    getMigratingConfig() {
      return {
        props: {
          'icon': 'icon is removed, use suffix-icon / prefix-icon instead.',
          'on-icon-click': 'on-icon-click is removed.'
        },
        events: {
          'click': 'click is removed.'
        }
      };
    },
    handleBlur(event) {
      this.focused = false;
      this.$emit('blur', event);
      if (this.validateEvent) {
        this.dispatch('ElFormItem', 'el.form.blur', [this.value]);
      }
    },
    select() {
      this.getInput().select();
    },
    resizeTextarea() {
      if (this.$isServer) return;
      const {
        autosize,
        type
      } = this;
      if (type !== 'textarea') return;
      if (!autosize) {
        this.textareaCalcStyle = {
          minHeight: calcTextareaHeight(this.$refs.textarea).minHeight
        };
        return;
      }
      const minRows = autosize.minRows;
      const maxRows = autosize.maxRows;
      this.textareaCalcStyle = calcTextareaHeight(this.$refs.textarea, minRows, maxRows);
    },
    setNativeInputValue() {
      const input = this.getInput();
      if (!input) return;
      if (input.value === this.nativeInputValue) return;
      input.value = this.nativeInputValue;
    },
    handleFocus(event) {
      this.focused = true;
      this.$emit('focus', event);
    },
    handleCompositionStart(event) {
      this.$emit('compositionstart', event);
      this.isComposing = true;
    },
    handleCompositionUpdate(event) {
      this.$emit('compositionupdate', event);
      const text = event.target.value;
      const lastCharacter = text[text.length - 1] || '';
      this.isComposing = !isKorean(lastCharacter);
    },
    handleCompositionEnd(event) {
      this.$emit('compositionend', event);
      if (this.isComposing) {
        this.isComposing = false;
        this.handleInput(event);
      }
    },
    handleInput(event) {
      // should not emit input during composition
      // see: https://github.com/ElemeFE/element/issues/10516
      if (this.isComposing) return;

      // hack for https://github.com/ElemeFE/element/issues/8548
      // should remove the following line when we don't support IE
      if (event.target.value === this.nativeInputValue) return;
      this.$emit('input', event.target.value);

      // ensure native input value is controlled
      // see: https://github.com/ElemeFE/element/issues/12850
      this.$nextTick(this.setNativeInputValue);
    },
    handleChange(event) {
      this.$emit('change', event.target.value);
    },
    calcIconOffset(place) {
      let elList = [].slice.call(this.$el.querySelectorAll(`.el-input__${place}`) || []);
      if (!elList.length) return;
      let el = null;
      for (let i = 0; i < elList.length; i++) {
        if (elList[i].parentNode === this.$el) {
          el = elList[i];
          break;
        }
      }
      if (!el) return;
      const pendantMap = {
        suffix: 'append',
        prefix: 'prepend'
      };
      const pendant = pendantMap[place];
      if (this.$slots[pendant]) {
        el.style.transform = `translateX(${place === 'suffix' ? '-' : ''}${this.$el.querySelector(`.el-input-group__${pendant}`).offsetWidth}px)`;
      } else {
        el.removeAttribute('style');
      }
    },
    updateIconOffset() {
      this.calcIconOffset('prefix');
      this.calcIconOffset('suffix');
    },
    clear() {
      this.$emit('input', '');
      this.$emit('change', '');
      this.$emit('clear');
    },
    handlePasswordVisible() {
      this.passwordVisible = !this.passwordVisible;
      this.$nextTick(() => {
        this.focus();
      });
    },
    getInput() {
      return this.$refs.input || this.$refs.textarea;
    },
    getSuffixVisible() {
      return this.$slots.suffix || this.suffixIcon || this.showClear || this.showPassword || this.isWordLimitVisible || this.validateState && this.needStatusIcon;
    }
  },
  created() {
    this.$on('inputSelect', this.select);
  },
  mounted() {
    this.setNativeInputValue();
    this.resizeTextarea();
    this.updateIconOffset();
  },
  updated() {
    this.$nextTick(this.updateIconOffset);
  }
});
// CONCATENATED MODULE: ./node_modules/element-ui/packages/input/src/input.vue?vue&type=script&lang=js
 /* harmony default export */ var src_inputvue_type_script_lang_js = (inputvue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./node_modules/element-ui/packages/input/src/input.vue





/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  src_inputvue_type_script_lang_js,
  inputvue_type_template_id_17e57c08_render,
  inputvue_type_template_id_17e57c08_staticRenderFns,
  false,
  null,
  null,
  "3f040630"
  
)

/* harmony default export */ var input = (component.exports);
// CONCATENATED MODULE: ./node_modules/element-ui/packages/input/index.js


/* istanbul ignore next */
input.install = function(Vue) {
  Vue.component(input.name, input);
};

/* harmony default export */ var packages_input = (input);

// CONCATENATED MODULE: ./node_modules/element-ui/src/mixins/focus.js
/* harmony default export */ var mixins_focus = (function(ref) {
  return {
    methods: {
      focus() {
        this.$refs[ref].focus();
      }
    }
  };
});;

// EXTERNAL MODULE: ./node_modules/element-ui/src/utils/dom.js
var dom = __webpack_require__(146);

// CONCATENATED MODULE: ./node_modules/element-ui/src/directives/repeat-click.js



/* harmony default export */ var repeat_click = ({
  bind(el, binding, vnode) {
    let interval = null;
    let startTime;
    const maxIntervals = Object(util["b" /* isMac */])() ? 100 : 200;
    const handler = () => vnode.context[binding.expression].apply();
    const clear = () => {
      if (Date.now() - startTime < maxIntervals) {
        handler();
      }
      clearInterval(interval);
      interval = null;
    };

    Object(dom["e" /* on */])(el, 'mousedown', (e) => {
      if (e.button !== 0) return;
      startTime = Date.now();
      Object(dom["f" /* once */])(document, 'mouseup', clear);
      clearInterval(interval);
      interval = setInterval(handler, maxIntervals);
    });
  }
});

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/element-ui/packages/input-number/src/input-number.vue?vue&type=script&lang=js



/* harmony default export */ var input_numbervue_type_script_lang_js = ({
  name: 'ElInputNumber',
  mixins: [mixins_focus('input')],
  inject: {
    elForm: {
      default: ''
    },
    elFormItem: {
      default: ''
    }
  },
  directives: {
    repeatClick: repeat_click
  },
  components: {
    ElInput: packages_input
  },
  props: {
    step: {
      type: Number,
      default: 1
    },
    stepStrictly: {
      type: Boolean,
      default: false
    },
    max: {
      type: Number,
      default: Infinity
    },
    min: {
      type: Number,
      default: -Infinity
    },
    value: {},
    disabled: Boolean,
    size: String,
    controls: {
      type: Boolean,
      default: true
    },
    controlsPosition: {
      type: String,
      default: ''
    },
    name: String,
    label: String,
    placeholder: String,
    precision: {
      type: Number,
      validator(val) {
        return val >= 0 && val === parseInt(val, 10);
      }
    }
  },
  data() {
    return {
      currentValue: 0,
      userInput: null
    };
  },
  watch: {
    value: {
      immediate: true,
      handler(value) {
        let newVal = value === undefined ? value : Number(value);
        if (newVal !== undefined) {
          if (isNaN(newVal)) {
            return;
          }
          if (this.stepStrictly) {
            const stepPrecision = this.getPrecision(this.step);
            const precisionFactor = Math.pow(10, stepPrecision);
            newVal = Math.round(newVal / this.step) * precisionFactor * this.step / precisionFactor;
          }
          if (this.precision !== undefined) {
            newVal = this.toPrecision(newVal, this.precision);
          }
        }
        if (newVal >= this.max) newVal = this.max;
        if (newVal <= this.min) newVal = this.min;
        this.currentValue = newVal;
        this.userInput = null;
        this.$emit('input', newVal);
      }
    }
  },
  computed: {
    minDisabled() {
      return this._decrease(this.value, this.step) < this.min;
    },
    maxDisabled() {
      return this._increase(this.value, this.step) > this.max;
    },
    numPrecision() {
      const {
        value,
        step,
        getPrecision,
        precision
      } = this;
      const stepPrecision = getPrecision(step);
      if (precision !== undefined) {
        if (stepPrecision > precision) {
          console.warn('[Element Warn][InputNumber]precision should not be less than the decimal places of step');
        }
        return precision;
      } else {
        return Math.max(getPrecision(value), stepPrecision);
      }
    },
    controlsAtRight() {
      return this.controls && this.controlsPosition === 'right';
    },
    _elFormItemSize() {
      return (this.elFormItem || {}).elFormItemSize;
    },
    inputNumberSize() {
      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
    },
    inputNumberDisabled() {
      return this.disabled || !!(this.elForm || {}).disabled;
    },
    displayValue() {
      if (this.userInput !== null) {
        return this.userInput;
      }
      let currentValue = this.currentValue;
      if (typeof currentValue === 'number') {
        if (this.stepStrictly) {
          const stepPrecision = this.getPrecision(this.step);
          const precisionFactor = Math.pow(10, stepPrecision);
          currentValue = Math.round(currentValue / this.step) * precisionFactor * this.step / precisionFactor;
        }
        if (this.precision !== undefined) {
          currentValue = currentValue.toFixed(this.precision);
        }
      }
      return currentValue;
    }
  },
  methods: {
    toPrecision(num, precision) {
      if (precision === undefined) precision = this.numPrecision;
      return parseFloat(Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision));
    },
    getPrecision(value) {
      if (value === undefined) return 0;
      const valueString = value.toString();
      const dotPosition = valueString.indexOf('.');
      let precision = 0;
      if (dotPosition !== -1) {
        precision = valueString.length - dotPosition - 1;
      }
      return precision;
    },
    _increase(val, step) {
      if (typeof val !== 'number' && val !== undefined) return this.currentValue;
      const precisionFactor = Math.pow(10, this.numPrecision);
      // Solve the accuracy problem of JS decimal calculation by converting the value to integer.
      return this.toPrecision((precisionFactor * val + precisionFactor * step) / precisionFactor);
    },
    _decrease(val, step) {
      if (typeof val !== 'number' && val !== undefined) return this.currentValue;
      const precisionFactor = Math.pow(10, this.numPrecision);
      return this.toPrecision((precisionFactor * val - precisionFactor * step) / precisionFactor);
    },
    increase() {
      if (this.inputNumberDisabled || this.maxDisabled) return;
      const value = this.value || 0;
      const newVal = this._increase(value, this.step);
      this.setCurrentValue(newVal);
    },
    decrease() {
      if (this.inputNumberDisabled || this.minDisabled) return;
      const value = this.value || 0;
      const newVal = this._decrease(value, this.step);
      this.setCurrentValue(newVal);
    },
    handleBlur(event) {
      this.$emit('blur', event);
    },
    handleFocus(event) {
      this.$emit('focus', event);
    },
    setCurrentValue(newVal) {
      const oldVal = this.currentValue;
      if (typeof newVal === 'number' && this.precision !== undefined) {
        newVal = this.toPrecision(newVal, this.precision);
      }
      if (newVal >= this.max) newVal = this.max;
      if (newVal <= this.min) newVal = this.min;
      if (oldVal === newVal) return;
      this.userInput = null;
      this.$emit('input', newVal);
      this.$emit('change', newVal, oldVal);
      this.currentValue = newVal;
    },
    handleInput(value) {
      this.userInput = value;
    },
    handleInputChange(value) {
      const newVal = value === '' ? undefined : Number(value);
      if (!isNaN(newVal) || value === '') {
        this.setCurrentValue(newVal);
      }
      this.userInput = null;
    },
    select() {
      this.$refs.input.select();
    }
  },
  mounted() {
    let innerInput = this.$refs.input.$refs.input;
    innerInput.setAttribute('role', 'spinbutton');
    innerInput.setAttribute('aria-valuemax', this.max);
    innerInput.setAttribute('aria-valuemin', this.min);
    innerInput.setAttribute('aria-valuenow', this.currentValue);
    innerInput.setAttribute('aria-disabled', this.inputNumberDisabled);
  },
  updated() {
    if (!this.$refs || !this.$refs.input) return;
    const innerInput = this.$refs.input.$refs.input;
    innerInput.setAttribute('aria-valuenow', this.currentValue);
  }
});
// CONCATENATED MODULE: ./node_modules/element-ui/packages/input-number/src/input-number.vue?vue&type=script&lang=js
 /* harmony default export */ var src_input_numbervue_type_script_lang_js = (input_numbervue_type_script_lang_js); 
// CONCATENATED MODULE: ./node_modules/element-ui/packages/input-number/src/input-number.vue





/* normalize component */

var input_number_component = Object(componentNormalizer["a" /* default */])(
  src_input_numbervue_type_script_lang_js,
  input_numbervue_type_template_id_5655cc82_render,
  input_numbervue_type_template_id_5655cc82_staticRenderFns,
  false,
  null,
  null,
  "6debe4c4"
  
)

/* harmony default export */ var input_number = (input_number_component.exports);
// CONCATENATED MODULE: ./node_modules/element-ui/packages/input-number/index.js


/* istanbul ignore next */
input_number.install = function(Vue) {
  Vue.component(input_number.name, input_number);
};

/* harmony default export */ var packages_input_number = (input_number);

// EXTERNAL MODULE: ./components/custom-el-slider/button.vue + 4 modules
var custom_el_slider_button = __webpack_require__(161);

// EXTERNAL MODULE: ./components/custom-el-slider/marker.vue + 4 modules
var marker = __webpack_require__(162);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/custom-el-slider/index.vue?vue&type=script&lang=js




/* harmony default export */ var custom_el_slidervue_type_script_lang_js = ({
  name: 'ElSlider',
  components: {
    ElInputNumber: packages_input_number,
    SliderButton: custom_el_slider_button["default"],
    SliderMarker: marker["default"]
  },
  mixins: [emitter],
  inject: {
    elForm: {
      default: ''
    }
  },
  props: {
    min: {
      type: Number,
      default: 0
    },
    max: {
      type: Number,
      default: 100
    },
    step: {
      type: Number,
      default: 1
    },
    value: {
      // string 是数据框被清空时的值. 理论上不会出现, 这里只是用来规避控制台报错
      type: [Number, Array, String],
      default: 0
    },
    showInput: {
      type: Boolean,
      default: false
    },
    showInputControls: {
      type: Boolean,
      default: true
    },
    inputSize: {
      type: String,
      default: 'small'
    },
    showStops: {
      type: Boolean,
      default: false
    },
    showTooltip: {
      type: Boolean,
      default: true
    },
    formatTooltip: Function,
    disabled: {
      type: Boolean,
      default: false
    },
    range: {
      type: Boolean,
      default: false
    },
    vertical: {
      type: Boolean,
      default: false
    },
    height: {
      type: String
    },
    debounce: {
      type: Number,
      default: 300
    },
    label: {
      type: String
    },
    tooltipClass: String,
    marks: Object
  },
  data() {
    return {
      firstValue: null,
      secondValue: null,
      oldValue: null,
      dragging: false,
      sliderSize: 1
    };
  },
  computed: {
    stops() {
      if (!this.showStops || this.min > this.max) return [];
      if (this.step === 0) {
         false && false;
        return [];
      }
      const stopCount = (this.max - this.min) / this.step;
      const stepWidth = 100 * this.step / (this.max - this.min);
      const result = [];
      for (let i = 1; i < stopCount; i++) {
        result.push(i * stepWidth);
      }
      if (this.range) {
        return result.filter(step => {
          return step < 100 * (this.minValue - this.min) / (this.max - this.min) || step > 100 * (this.maxValue - this.min) / (this.max - this.min);
        });
      } else {
        return result.filter(step => step > 100 * (this.firstValue - this.min) / (this.max - this.min));
      }
    },
    markList() {
      if (!this.marks) {
        return [];
      }
      const marksKeys = Object.keys(this.marks);
      return marksKeys.map(parseFloat).sort((a, b) => a - b).filter(point => point <= this.max && point >= this.min).map((point, index) => ({
        point,
        // 改造使得mark在滑动区域内均分
        position: 100 * index * (this.max - this.min) / (marksKeys.length - 1) / (this.max - this.min),
        // position: ((point - this.min) * 100) / (this.max - this.min),
        mark: this.marks[point]
      }));
    },
    minValue() {
      return Math.min(this.firstValue, this.secondValue);
    },
    maxValue() {
      return Math.max(this.firstValue, this.secondValue);
    },
    barSize() {
      if (this.marks) {
        const marks = Object.keys(this.marks).map(Number);
        // 找出目标值位于marks的那个档位, 即 即将到达哪一个'档'
        const index = marks.findIndex(i => this.firstValue < i);
        // console.log(index, 'index')

        if (this.range) {
          // todo 范围值的计算. 这个还没改. 不知道怎么算.
          return `${100 * (this.maxValue - this.minValue) / (this.max - this.min)}%`;
        }
        if (index === -1) return '100%';
        // 经过后一个档位之后占总进度条的比例 + (当前值超出后一个档位的差值 / 前一个档位与后一个档位的差值) / (进度被marks划分成的档位数量)
        // 上述公式要除档位数量是因为, 当前值与档位差值占单个档位区间的百分比 !== 单个区间值占总进度条的百分比
        const value = (index - 1) / (marks.length - 1) + (this.firstValue - marks[index - 1]) / (marks[index] - marks[index - 1]) / (marks.length - 1);

        // console.log('value', value)
        return value > 1 ? '100%' : `${value * 100}%`;
      } else {
        return this.range ? `${100 * (this.maxValue - this.minValue) / (this.max - this.min)}%` : `${100 * (this.firstValue - this.min) / (this.max - this.min)}%`;
      }
    },
    barStart() {
      return this.range ? `${100 * (this.minValue - this.min) / (this.max - this.min)}%` : '0%';
    },
    precision() {
      const precisions = [this.min, this.max, this.step].map(item => {
        const decimal = ('' + item).split('.')[1];
        return decimal ? decimal.length : 0;
      });
      return Math.max.apply(null, precisions);
    },
    runwayStyle() {
      return this.vertical ? {
        height: this.height
      } : {};
    },
    barStyle() {
      return this.vertical ? {
        height: this.barSize,
        bottom: this.barStart
      } : {
        width: this.barSize,
        left: this.barStart
      };
    },
    sliderDisabled() {
      return this.disabled || (this.elForm || {}).disabled;
    }
  },
  watch: {
    value(val, oldVal) {
      if (this.dragging || Array.isArray(val) && Array.isArray(oldVal) && val.every((item, index) => item === oldVal[index])) {
        return;
      }
      this.setValues();
    },
    dragging(val) {
      if (!val) {
        this.setValues();
      }
    },
    firstValue(val) {
      if (this.range) {
        this.$emit('input', [this.minValue, this.maxValue]);
      } else {
        this.$emit('input', val);
      }
    },
    secondValue() {
      if (this.range) {
        this.$emit('input', [this.minValue, this.maxValue]);
      }
    },
    min() {
      this.setValues();
    },
    max() {
      this.setValues();
    }
  },
  mounted() {
    let valuetext;
    if (this.range) {
      if (Array.isArray(this.value)) {
        this.firstValue = Math.max(this.min, this.value[0]);
        this.secondValue = Math.min(this.max, this.value[1]);
      } else {
        this.firstValue = this.min;
        this.secondValue = this.max;
      }
      this.oldValue = [this.firstValue, this.secondValue];
      valuetext = `${this.firstValue}-${this.secondValue}`;
    } else {
      if (typeof this.value !== 'number' || isNaN(this.value)) {
        this.firstValue = this.min;
      } else {
        this.firstValue = Math.min(this.max, Math.max(this.min, this.value));
      }
      this.oldValue = this.firstValue;
      valuetext = this.firstValue;
    }
    this.$el.setAttribute('aria-valuetext', valuetext);
    // label screen reader
    this.$el.setAttribute('aria-label', this.label ? this.label : `slider between ${this.min} and ${this.max}`);
    this.resetSize();
    window.addEventListener('resize', this.resetSize);
  },
  beforeDestroy() {
    window.removeEventListener('resize', this.resetSize);
  },
  methods: {
    valueChanged() {
      if (this.range) {
        return ![this.minValue, this.maxValue].every((item, index) => item === this.oldValue[index]);
      } else {
        return this.value !== this.oldValue;
      }
    },
    setValues() {
      if (this.min > this.max) {
        console.error('[Element Error][Slider]min should not be greater than max.');
        return;
      }
      const val = this.value;
      if (this.range && Array.isArray(val)) {
        if (val[1] < this.min) {
          this.$emit('input', [this.min, this.min]);
        } else if (val[0] > this.max) {
          this.$emit('input', [this.max, this.max]);
        } else if (val[0] < this.min) {
          this.$emit('input', [this.min, val[1]]);
        } else if (val[1] > this.max) {
          this.$emit('input', [val[0], this.max]);
        } else {
          this.firstValue = val[0];
          this.secondValue = val[1];
          if (this.valueChanged()) {
            this.dispatch('ElFormItem', 'el.form.change', [this.minValue, this.maxValue]);
            this.oldValue = val.slice();
          }
        }
      } else if (!this.range && typeof val === 'number' && !isNaN(val)) {
        if (val < this.min) {
          this.$emit('input', this.min);
        } else if (val > this.max) {
          this.$emit('input', this.max);
        } else {
          this.firstValue = val;
          if (this.valueChanged()) {
            this.dispatch('ElFormItem', 'el.form.change', val);
            this.oldValue = val;
          }
        }
      }
    },
    setPosition(percent) {
      const targetValue = this.min + percent * (this.max - this.min) / 100;
      if (!this.range) {
        this.$refs.button1.setPosition(percent);
        return;
      }
      let button;
      if (Math.abs(this.minValue - targetValue) < Math.abs(this.maxValue - targetValue)) {
        button = this.firstValue < this.secondValue ? 'button1' : 'button2';
      } else {
        button = this.firstValue > this.secondValue ? 'button1' : 'button2';
      }
      this.$refs[button].setPosition(percent);
    },
    onSliderClick(event) {
      if (this.sliderDisabled || this.dragging) return;
      this.resetSize();
      if (this.vertical) {
        const sliderOffsetBottom = this.$refs.slider.getBoundingClientRect().bottom;
        this.setPosition((sliderOffsetBottom - event.clientY) / this.sliderSize * 100);
      } else {
        const sliderOffsetLeft = this.$refs.slider.getBoundingClientRect().left;
        this.setPosition((event.clientX - sliderOffsetLeft) / this.sliderSize * 100);
      }
      this.emitChange();
    },
    onMarkClick(index) {
      if (typeof index !== 'number') return;

      // 这个判断和resetSize从onSliderClick抄过来的.
      // 因为直接点击mark的 标志文案 得到的不是准确的数(宽度导致的位置不同), 所以魔改了一下, 点击mark按固定比例算.
      if (this.sliderDisabled || this.dragging) return;
      this.resetSize();
      const marks = Object.keys(this.marks).map(Number);
      // 计算当前点击位于marks的第几项, 算百分比
      this.setPosition(100 * index / (marks.length - 1));
      this.emitChange();
    },
    resetSize() {
      if (this.$refs.slider) {
        this.sliderSize = this.$refs.slider[`client${this.vertical ? 'Height' : 'Width'}`];
      }
    },
    emitChange() {
      this.$nextTick(() => {
        this.$emit('change', this.range ? [this.minValue, this.maxValue] : this.value);
      });
    },
    getStopStyle(position) {
      return this.vertical ? {
        bottom: position + '%'
      } : {
        left: position + '%'
      };
    }
  }
});
// CONCATENATED MODULE: ./components/custom-el-slider/index.vue?vue&type=script&lang=js
 /* harmony default export */ var components_custom_el_slidervue_type_script_lang_js = (custom_el_slidervue_type_script_lang_js); 
// CONCATENATED MODULE: ./components/custom-el-slider/index.vue





/* normalize component */

var custom_el_slider_component = Object(componentNormalizer["a" /* default */])(
  components_custom_el_slidervue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  null,
  null,
  "f4c7edc6"
  
)

/* harmony default export */ var custom_el_slider = __webpack_exports__["default"] = (custom_el_slider_component.exports);

/***/ }),

/***/ 167:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryFilter_vue_vue_type_style_index_0_id_682a7864_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(150);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryFilter_vue_vue_type_style_index_0_id_682a7864_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryFilter_vue_vue_type_style_index_0_id_682a7864_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryFilter_vue_vue_type_style_index_0_id_682a7864_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryFilter_vue_vue_type_style_index_0_id_682a7864_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 168:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryFilter_vue_vue_type_style_index_1_id_682a7864_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(151);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryFilter_vue_vue_type_style_index_1_id_682a7864_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryFilter_vue_vue_type_style_index_1_id_682a7864_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryFilter_vue_vue_type_style_index_1_id_682a7864_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryFilter_vue_vue_type_style_index_1_id_682a7864_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 169:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryNoData_vue_vue_type_style_index_0_id_abeb0c0c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(155);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryNoData_vue_vue_type_style_index_0_id_abeb0c0c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryNoData_vue_vue_type_style_index_0_id_abeb0c0c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryNoData_vue_vue_type_style_index_0_id_abeb0c0c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CategoryNoData_vue_vue_type_style_index_0_id_abeb0c0c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 179:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/CategoryFilter.vue?vue&type=template&id=682a7864&scoped=true
var render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c('div', {
    staticClass: "category-filter",
    attrs: {
      "id": "categoryFilter"
    }
  }, [_vm._ssrNode("<div class=\"flex between title-wrap\" data-v-682a7864><div data-v-682a7864>Advanced Filter</div> <div class=\"btn-reset\" data-v-682a7864>\n      RESET\n    </div></div> "), _c('el-collapse', {
    staticClass: "metal-content-left-item",
    model: {
      value: _vm.activeNames,
      callback: function ($$v) {
        _vm.activeNames = $$v;
      },
      expression: "activeNames"
    }
  }, [_c('el-collapse-item', {
    attrs: {
      "title": "Minimum Order Quantity",
      "name": "1"
    }
  }, [_c('div', {
    staticClass: "slider-wrap"
  }, [_c('custom-el-slider', {
    attrs: {
      "marks": _vm.marks,
      "step": 1,
      "min": 1,
      "max": 1000
    },
    on: {
      "input": _vm.handleInputQuantity1,
      "change": _vm.handleChangeQuantity
    },
    model: {
      value: _vm.quantity,
      callback: function ($$v) {
        _vm.quantity = $$v;
      },
      expression: "quantity"
    }
  })], 1), _vm._v(" "), _c('div', {
    staticClass: "flex center qty-input-wrap"
  }, [_c('div', {
    staticClass: "el-input--mini"
  }, [_c('input', {
    directives: [{
      name: "model",
      rawName: "v-model",
      value: _vm.quantity2,
      expression: "quantity2"
    }],
    staticClass: "el-input__inner",
    attrs: {
      "type": "number",
      "step": 1,
      "min": 1,
      "max": 10000
    },
    domProps: {
      "value": _vm.quantity2
    },
    on: {
      "change": _vm.handleInputQuantity2,
      "input": function ($event) {
        if ($event.target.composing) return;
        _vm.quantity2 = $event.target.value;
      }
    }
  })])])]), _vm._v(" "), _c('el-collapse-item', {
    attrs: {
      "title": "Price (GBP)",
      "name": "2"
    }
  }, [_c('div', {
    staticClass: "slider-wrap price"
  }, [_c('el-slider', {
    ref: "sliderRef",
    attrs: {
      "marks": _vm.marksForPrice,
      "range": "",
      "step": 0.01,
      "min": _vm.priceRange1,
      "max": _vm.priceRange2
    },
    on: {
      "input": function ($event) {
        return _vm.$forceUpdate();
      },
      "change": _vm.handleInputPrice
    },
    model: {
      value: _vm.priceRange,
      callback: function ($$v) {
        _vm.priceRange = $$v;
      },
      expression: "priceRange"
    }
  })], 1), _vm._v(" "), _c('div', {
    staticClass: "flex between price-input-wrap"
  }, [_c('div', {
    staticClass: "flex column"
  }, [_c('div', {
    staticClass: "price-input-label"
  }, [_vm._v("Price Min")]), _vm._v(" "), _c('div', {
    staticClass: "flex"
  }, [_c('div', {
    staticClass: "dollar-sign"
  }, [_vm._v("£")]), _vm._v(" "), _c('el-input', {
    staticStyle: {
      "width": "120px"
    },
    attrs: {
      "type": "number",
      "step": 1,
      "min": _vm.priceRange1,
      "max": _vm.priceRange2,
      "size": "mini"
    },
    on: {
      "change": _vm.handleInputPrice
    },
    model: {
      value: _vm.priceRange[0],
      callback: function ($$v) {
        _vm.$set(_vm.priceRange, 0, _vm._n($$v));
      },
      expression: "priceRange[0]"
    }
  })], 1)]), _vm._v(" "), _c('div', {
    staticClass: "horizontal-line"
  }), _vm._v(" "), _c('div', {
    staticClass: "flex column"
  }, [_c('div', {
    staticClass: "price-input-label"
  }, [_vm._v("Price Max")]), _vm._v(" "), _c('el-input', {
    staticStyle: {
      "width": "120px"
    },
    attrs: {
      "type": "number",
      "step": 1,
      "min": _vm.priceRange1,
      "max": _vm.priceRange2,
      "size": "small"
    },
    on: {
      "change": _vm.handleInputPrice
    },
    model: {
      value: _vm.priceRange[1],
      callback: function ($$v) {
        _vm.$set(_vm.priceRange, 1, _vm._n($$v));
      },
      expression: "priceRange[1]"
    }
  })], 1)])]), _vm._v(" "), _c('el-collapse-item', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.leadTimeList.length && !_vm.$route.query.lead_time,
      expression: "leadTimeList.length && !$route.query.lead_time"
    }],
    attrs: {
      "title": "Lead Time",
      "name": "3"
    }
  }, [_c('div', {
    staticClass: "metal-content-left-item-content flex column stretch"
  }, [_c('el-radio-group', {
    on: {
      "input": _vm.handleChangeLeadtime
    },
    model: {
      value: _vm.checkedLeadtime,
      callback: function ($$v) {
        _vm.checkedLeadtime = $$v;
      },
      expression: "checkedLeadtime"
    }
  }, _vm._l(_vm.leadTimeList, function (item) {
    return _c('el-radio', {
      key: item.id,
      attrs: {
        "label": item.id
      }
    }, [_c('div', {
      staticClass: "flex between"
    }, [_c('div', [_vm._v(_vm._s(item.name))]), _vm._v(" "), _c('div', [_vm._v("(" + _vm._s(item.count) + ")")])])]);
  }), 1)], 1)]), _vm._v(" "), _c('el-collapse-item', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.colourList.length,
      expression: "colourList.length"
    }],
    attrs: {
      "title": "Colour",
      "name": "4"
    }
  }, [_c('el-checkbox-group', {
    model: {
      value: _vm.checkedColor,
      callback: function ($$v) {
        _vm.checkedColor = $$v;
      },
      expression: "checkedColor"
    }
  }, [_c('div', {
    staticClass: "metal-content-left-item-content colour flex column stretch",
    class: {
      'hide-some': !_vm.showallOfColor && _vm.colourList.length > 5
    }
  }, _vm._l(_vm.colourList, function (item) {
    return _c('el-checkbox', {
      key: item.id,
      attrs: {
        "label": item.id
      },
      on: {
        "change": _vm.handleChangeColor
      }
    }, [_c('div', {
      staticClass: "flex between"
    }, [_c('div', {
      staticClass: "flex"
    }, [_c('div', {
      staticClass: "img-wrap"
    }, [_c('div', {
      staticClass: "background",
      style: {
        backgroundImage: `url(${item.img && !_vm.$mediaRegExp.test(item.img) ? _vm.$OSS_PREFIX + item.img : item.img})`
      }
    })]), _vm._v(" "), _c('div', [_vm._v(_vm._s(item.name))])]), _vm._v(" "), _c('div', [_vm._v("(" + _vm._s(item.count) + ")")])])]);
  }), 1), _vm._v(" "), _c('div', {
    staticClass: "flex between"
  }, [_vm.colourList.length > 5 ? _c('div', {
    staticClass: "show-more",
    on: {
      "click": function ($event) {
        _vm.showallOfColor = !_vm.showallOfColor;
      }
    }
  }, [_vm._v("\n            " + _vm._s(_vm.showallOfColor ? 'SHOW LESS' : 'SHOW MORE') + "\n          ")]) : _c('div', [_vm._v(" ")]), _vm._v(" "), _c('div', {
    staticClass: "show-more",
    on: {
      "click": _vm.clearColor
    }
  }, [_vm._v("\n            CLEAR\n          ")])])])], 1), _vm._v(" "), _c('el-collapse-item', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.decorationList.length,
      expression: "decorationList.length"
    }],
    attrs: {
      "title": "Decoration",
      "name": "5"
    }
  }, [_c('el-checkbox-group', {
    on: {
      "change": _vm.handleChangeDecoration
    },
    model: {
      value: _vm.checkedDecoraiton,
      callback: function ($$v) {
        _vm.checkedDecoraiton = $$v;
      },
      expression: "checkedDecoraiton"
    }
  }, [_c('div', {
    staticClass: "metal-content-left-item-content flex column stretch",
    class: {
      'hide-some': !_vm.showallOfDecoration && _vm.decorationList.length > 5
    }
  }, _vm._l(_vm.decorationList, function (item) {
    return _c('el-checkbox', {
      key: item.id,
      attrs: {
        "label": item.id
      }
    }, [_c('div', {
      staticClass: "flex between"
    }, [_c('div', [_vm._v(_vm._s(item.name))]), _vm._v(" "), _c('div', [_vm._v("(" + _vm._s(item.count) + ")")])])]);
  }), 1), _vm._v(" "), _c('div', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.decorationList.length > 5,
      expression: "decorationList.length > 5"
    }],
    staticClass: "show-more",
    on: {
      "click": function ($event) {
        _vm.showallOfDecoration = !_vm.showallOfDecoration;
      }
    }
  }, [_vm._v("\n          " + _vm._s(_vm.showallOfDecoration ? 'SHOW LESS' : 'SHOW MORE') + "\n          SHOW MORE\n        ")])])], 1), _vm._v(" "), _c('el-collapse-item', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.featureList.length,
      expression: "featureList.length"
    }],
    attrs: {
      "title": "Features",
      "name": "6"
    }
  }, [_c('el-checkbox-group', {
    on: {
      "change": _vm.handleChangeFeature
    },
    model: {
      value: _vm.checkedFeature,
      callback: function ($$v) {
        _vm.checkedFeature = $$v;
      },
      expression: "checkedFeature"
    }
  }, [_c('div', {
    staticClass: "metal-content-left-item-content flex column stretch",
    class: {
      'hide-some': !_vm.showallOfFeature && _vm.featureList.length > 5
    }
  }, _vm._l(_vm.featureList, function (item) {
    return _c('el-checkbox', {
      key: item.id,
      attrs: {
        "label": item.id
      }
    }, [_c('div', {
      staticClass: "flex between"
    }, [_c('div', [_vm._v(_vm._s(item.name))]), _vm._v(" "), _c('div', [_vm._v("(" + _vm._s(item.count) + ")")])])]);
  }), 1), _vm._v(" "), _c('div', {
    staticClass: "flex between"
  }, [_vm.featureList.length > 5 ? _c('div', {
    staticClass: "show-more",
    on: {
      "click": function ($event) {
        _vm.showallOfFeature = !_vm.showallOfFeature;
      }
    }
  }, [_vm._v("\n            " + _vm._s(_vm.showallOfFeature ? 'SHOW LESS' : 'SHOW MORE') + "\n          ")]) : _c('div', [_vm._v(" ")]), _vm._v(" "), _c('div', {
    staticClass: "show-more",
    on: {
      "click": _vm.clearFeature
    }
  }, [_vm._v("\n            CLEAR\n          ")])])])], 1), _vm._v(" "), _c('el-collapse-item', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.collectionsList.length,
      expression: "collectionsList.length"
    }],
    attrs: {
      "title": "Collections",
      "name": "7"
    }
  }, [_c('el-checkbox-group', {
    on: {
      "change": _vm.handleChangeCollection
    },
    model: {
      value: _vm.checkedCollection,
      callback: function ($$v) {
        _vm.checkedCollection = $$v;
      },
      expression: "checkedCollection"
    }
  }, [_c('div', {
    staticClass: "metal-content-left-item-content flex column stretch",
    class: {
      'hide-some': !_vm.showallOfCollection && _vm.collectionsList.length > 5
    }
  }, _vm._l(_vm.collectionsList, function (item, i) {
    return _c('el-checkbox', {
      key: i,
      attrs: {
        "label": item.name
      }
    }, [_c('div', {
      staticClass: "flex between"
    }, [_c('div', [_vm._v(_vm._s(item.name))]), _vm._v(" "), _c('div', [_vm._v("(" + _vm._s(item.count) + ")")])])]);
  }), 1), _vm._v(" "), _c('div', {
    staticClass: "flex between"
  }, [_vm.collectionsList.length > 5 ? _c('div', {
    staticClass: "show-more",
    on: {
      "click": function ($event) {
        _vm.showallOfCollection = !_vm.showallOfCollection;
      }
    }
  }, [_vm._v("\n            " + _vm._s(_vm.showallOfCollection ? 'SHOW LESS' : 'SHOW MORE') + "\n          ")]) : _c('div', [_vm._v(" ")]), _vm._v(" "), _c('div', {
    staticClass: "show-more",
    on: {
      "click": _vm.clearCollection
    }
  }, [_vm._v("\n            CLEAR\n          ")])])])], 1), _vm._v(" "), _c('el-collapse-item', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.complianceList.length,
      expression: "complianceList.length"
    }],
    attrs: {
      "title": "Compliance Resource",
      "name": "8"
    }
  }, [_c('el-checkbox-group', {
    on: {
      "change": _vm.handleChangeCompliance
    },
    model: {
      value: _vm.checkedCompliance,
      callback: function ($$v) {
        _vm.checkedCompliance = $$v;
      },
      expression: "checkedCompliance"
    }
  }, [_c('div', {
    staticClass: "metal-content-left-item-content flex column stretch",
    class: {
      'hide-some': !_vm.showallOfCompliance && _vm.complianceList.length > 5
    }
  }, _vm._l(_vm.complianceList, function (item) {
    return _c('el-checkbox', {
      key: item.id,
      attrs: {
        "label": item.id
      }
    }, [_c('div', {
      staticClass: "flex between"
    }, [_c('div', [_vm._v(_vm._s(item.name))]), _vm._v(" "), _c('div', [_vm._v("(" + _vm._s(item.count) + ")")])])]);
  }), 1), _vm._v(" "), _c('div', {
    staticClass: "flex between"
  }, [_vm.complianceList.length > 5 ? _c('div', {
    staticClass: "show-more",
    on: {
      "click": function ($event) {
        _vm.showallOfCompliance = !_vm.showallOfCompliance;
      }
    }
  }, [_vm._v("\n            " + _vm._s(_vm.showallOfCompliance ? 'SHOW LESS' : 'SHOW MORE') + "\n          ")]) : _c('div', [_vm._v(" ")]), _vm._v(" "), _c('div', {
    staticClass: "show-more",
    on: {
      "click": _vm.clearCompliance
    }
  }, [_vm._v("\n            CLEAR\n          ")])])])], 1)], 1)], 2);
};
var staticRenderFns = [];

// CONCATENATED MODULE: ./components/CategoryFilter.vue?vue&type=template&id=682a7864&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/CategoryFilter.vue?vue&type=script&lang=js
/* harmony default export */ var CategoryFiltervue_type_script_lang_js = ({
  name: 'CategoryFilter',
  components: {},
  props: {
    leadTimeList: {
      type: Array,
      default: () => {
        return [];
      }
    },
    colourList: {
      type: Array,
      default: () => {
        return [];
      }
    },
    collectionsList: {
      type: Array,
      default: () => {
        return [];
      }
    },
    featureList: {
      type: Array,
      default: () => {
        return [];
      }
    },
    decorationList: {
      type: Array,
      default: () => {
        return [];
      }
    },
    complianceList: {
      type: Array,
      default: () => {
        return [];
      }
    },
    priceRange1: {
      type: Number,
      default: 1
    },
    priceRange2: {
      type: Number,
      default: 1
    }
  },
  data() {
    return {
      activeNames: ['1', '2', '3', '4', '5', '6', '7', '8'],
      priceList: [],
      marks: {
        1: '1',
        25: '25',
        50: '50',
        100: '100',
        250: '250',
        500: '500',
        1000: '1000+'
      },
      // 滑块绑定的是quantity, 输入框绑定的是quantity2. 要将两者分开, 且拖动滑块时同时更新quantity2, 需要中间变量用来判断当前是哪个组件在变更值
      quantityFlag: 1,
      quantity: 1000,
      quantity2: 1000,
      priceRange: [1, 10000],
      marksForPrice: {},
      checkedLeadtime: '',
      checkedColor: [],
      checkedDecoraiton: [],
      checkedFeature: [],
      checkedCollection: [],
      checkedCompliance: [],
      showallOfColor: false,
      showallOfFeature: false,
      showallOfCollection: false,
      showallOfDecoration: false,
      showallOfCompliance: false
    };
  },
  computed: {},
  watch: {
    $route: {
      immediate: true,
      handler(to) {
        if (to.query.lead_time) {
          const temp = Number(to.query.lead_time);
          if ([1, 2, 3, 4, 5, 6, 7].includes(temp)) {
            this.checkedLeadtime = typeof temp === 'number' ? temp : '';
          }
        } else {
          this.checkedLeadtime = '';
        }
        if (to.query.qty) {
          const qty = Number(to.query.qty);
          if (typeof qty === 'number') {
            this.quantity = qty;
            this.quantity2 = qty;
          }
        } else {
          this.quantity = 1000;
          this.quantity2 = 1000;
        }
        if (to.query.feature) {
          this.checkedFeature = [Number(to.query.feature)];
        } else {
          this.checkedFeature = [];
        }
      }
    },
    priceRange1() {
      this.priceRange[0] = this.priceRange1;
    },
    priceRange2() {
      this.priceRange[1] = this.priceRange2;
    }
  },
  created() {},
  beforeMount() {},
  mounted() {},
  updated() {},
  beforeDestroy() {},
  methods: {
    // 滑块组件实时变动时的响应逻辑
    handleInputQuantity1(value) {
      if (this.quantityFlag === 1) {
        this.quantity2 = value;
      }
    },
    // 滑块组件变动后(鼠标按键放起)的响应逻辑
    handleChangeQuantity(value) {
      if (value) {
        this.quantity = value;
      } else {
        this.quantity = 1;
      }
      this.$emit('handleChangeQuantity', value);
    },
    handleInputQuantity2(e) {
      this.quantityFlag = 2;
      if (!e) {
        this.quantity = 1;
      } else {
        this.quantity = Number(this.quantity2);
        this.quantity2 = Number(this.quantity2);
      }
      this.$nextTick(() => {
        var _e$target;
        this.$emit('handleChangeQuantity', Number(((_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value) || 1));
      });
      setTimeout(() => {
        this.quantityFlag = 1;
      }, 2000);
    },
    handleChangePrice(value) {
      this.$emit('handleChangePrice', this.priceRange);
    },
    handleInputPrice(isInput = true) {
      if (this.priceRange[1] > 10000) {
        const min = this.priceRange[0];
        this.priceRange = [min, 10000];
      }
      if (this.priceRange[0] > this.priceRange[1]) {
        this.priceRange[1] = this.priceRange[0];
      }
      // 输入框数值触发el-slider视图
      if (isInput) {
        this.$refs.sliderRef._data.firstValue = this.priceRange[0];
        this.$refs.sliderRef._data.secondValue = this.priceRange[1];
      }
      this.handleChangePrice();
    },
    handleChangeLeadtime() {
      this.$emit('handleChangeLeadtime', this.checkedLeadtime);
    },
    handleChangeFeature() {
      this.$emit('handleChangeFeature', this.checkedFeature);
    },
    clearFeature() {
      this.checkedFeature = [];
      this.handleChangeFeature();
    },
    handleChangeColor() {
      this.$emit('handleChangeColor', this.checkedColor);
    },
    clearColor() {
      this.checkedColor = [];
      this.handleChangeColor();
    },
    handleChangeCollection() {
      this.$emit('handleChangeCollection', this.checkedCollection);
    },
    clearCollection() {
      this.checkedCollection = [];
      this.handleChangeCollection();
    },
    handleChangeCompliance() {
      this.$emit('handleChangeCompliance', this.checkedCompliance);
    },
    clearCompliance() {
      this.checkedCompliance = [];
      this.handleChangeCompliance();
    },
    handleChangeDecoration() {
      this.$emit('handleChangeDecoration', this.checkedDecoraiton);
    },
    resetFilter() {
      if (!this.$route.query.qty) {
        this.quantity = 1000;
        this.quantity2 = 1000;
      }
      this.priceRange = [this.priceRange1, this.priceRange2];
      this.checkedCollection = [];
      this.checkedCompliance = [];
      this.checkedLeadtime = '';
      this.checkedColor = [];
      this.checkedDecoraiton = [];
      this.checkedFeature = [];
      this.$emit('reset');
    }
  }
});
// CONCATENATED MODULE: ./components/CategoryFilter.vue?vue&type=script&lang=js
 /* harmony default export */ var components_CategoryFiltervue_type_script_lang_js = (CategoryFiltervue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/CategoryFilter.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(167)
if (style0.__inject__) style0.__inject__(context)
var style1 = __webpack_require__(168)
if (style1.__inject__) style1.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  components_CategoryFiltervue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  injectStyles,
  "682a7864",
  "3c606db2"
  
)

/* harmony default export */ var CategoryFilter = __webpack_exports__["default"] = (component.exports);

/* nuxt-component-imports */
installComponents(component, {CustomElSlider: __webpack_require__(166).default})


/***/ }),

/***/ 180:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/CategoryNoData.vue?vue&type=template&id=abeb0c0c&scoped=true
var render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c('div', {
    staticClass: "com-category-no-data"
  }, [_vm._ssrNode("<div class=\"title\" data-v-abeb0c0c>" + _vm._ssrEscape("Search Results for\"" + _vm._s(_vm.keyword) + "\"") + "</div> <div class=\"sub-title\" data-v-abeb0c0c>" + _vm._ssrEscape("\n    Sorry your search for \"" + _vm._s(_vm.keyword) + "\" returned no results.\n  ") + "</div> <div class=\"content\" data-v-abeb0c0c>\n    Your search term retured no results. You can use the search box above. If\n    you need further help,\n    <br data-v-abeb0c0c> <span class=\"link\" data-v-abeb0c0c>please fill in your requirements</span>, we will get in touch with you as soon as possible.\n  </div>")]);
};
var staticRenderFns = [];

// CONCATENATED MODULE: ./components/CategoryNoData.vue?vue&type=template&id=abeb0c0c&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/CategoryNoData.vue?vue&type=script&lang=js
/* harmony default export */ var CategoryNoDatavue_type_script_lang_js = ({
  name: 'ComCategoryNoData',
  computed: {
    keyword() {
      const query = this.$route.query;
      const params = this.$route.params;
      if (query.keyword && query.keyword.length) return query.keyword;
      if (params.thirdCategory && params.thirdCategory.length) return params.thirdCategory;
      if (params.secondCategory && params.secondCategory.length) return params.secondCategory;
      if (params.firstCategory && params.firstCategory.length) return params.firstCategory;
      return '';
    }
  },
  methods: {
    toIndent() {
      const target = document.getElementById('indentLink');
      if (target) target.click();
    }
  }
});
// CONCATENATED MODULE: ./components/CategoryNoData.vue?vue&type=script&lang=js
 /* harmony default export */ var components_CategoryNoDatavue_type_script_lang_js = (CategoryNoDatavue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/CategoryNoData.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(169)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  components_CategoryNoDatavue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  injectStyles,
  "abeb0c0c",
  "48aa49c5"
  
)

/* harmony default export */ var CategoryNoData = __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 181:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var core_js_modules_esnext_set_add_all_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(123);
/* harmony import */ var core_js_modules_esnext_set_add_all_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_add_all_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var core_js_modules_esnext_set_delete_all_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(124);
/* harmony import */ var core_js_modules_esnext_set_delete_all_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_delete_all_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var core_js_modules_esnext_set_difference_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(125);
/* harmony import */ var core_js_modules_esnext_set_difference_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_difference_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var core_js_modules_esnext_set_every_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(126);
/* harmony import */ var core_js_modules_esnext_set_every_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_every_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var core_js_modules_esnext_set_filter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(127);
/* harmony import */ var core_js_modules_esnext_set_filter_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_filter_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var core_js_modules_esnext_set_find_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(128);
/* harmony import */ var core_js_modules_esnext_set_find_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_find_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var core_js_modules_esnext_set_intersection_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(129);
/* harmony import */ var core_js_modules_esnext_set_intersection_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_intersection_js__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(130);
/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_is_disjoint_from_js__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var core_js_modules_esnext_set_is_subset_of_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(131);
/* harmony import */ var core_js_modules_esnext_set_is_subset_of_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_is_subset_of_js__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var core_js_modules_esnext_set_is_superset_of_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(132);
/* harmony import */ var core_js_modules_esnext_set_is_superset_of_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_is_superset_of_js__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var core_js_modules_esnext_set_join_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(133);
/* harmony import */ var core_js_modules_esnext_set_join_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_join_js__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var core_js_modules_esnext_set_map_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(134);
/* harmony import */ var core_js_modules_esnext_set_map_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_map_js__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var core_js_modules_esnext_set_reduce_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(135);
/* harmony import */ var core_js_modules_esnext_set_reduce_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_reduce_js__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var core_js_modules_esnext_set_some_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(136);
/* harmony import */ var core_js_modules_esnext_set_some_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_some_js__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(137);
/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_symmetric_difference_js__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var core_js_modules_esnext_set_union_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(138);
/* harmony import */ var core_js_modules_esnext_set_union_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_union_js__WEBPACK_IMPORTED_MODULE_15__);
/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(10);
/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_16__);
/* harmony import */ var algoliasearch__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(31);
/* harmony import */ var algoliasearch__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(algoliasearch__WEBPACK_IMPORTED_MODULE_17__);
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(9);
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_18__);



















const defaultSortFunc = (a, b) => {
  if (a.hasBestSeller !== b.hasBestSeller) {
    return b.hasBestSeller - a.hasBestSeller;
  }
  if (a.hasNewProduct !== b.hasNewProduct) {
    return b.hasNewProduct - a.hasNewProduct;
  }
  if (a.ranking !== b.ranking) {
    return b.ranking - a.ranking;
  }
  return b.icon.length - a.icon.length;
};
/* harmony default export */ __webpack_exports__["a"] = ({
  computed: {
    computedProductList() {
      return this.productsList.filter(item => {
        let moqFlag = true;

        // moq 过滤. 要筛出1到最大输入quantities范围的. 直接进入页面忽视这个值, 只有手动更改moq才会触发enableQuantity验证.
        if (this.enableQuantity && (!item.moq || item.moq > this.quantity)) {
          moqFlag = false;
        }

        // 筛选基础价格, 只要有一个价格符合价格区间都算符合条件.
        let priceFlag = true;
        const min = Number(item.price_min);
        const max = Number(item.price_max);
        if (max < this.priceMin || min > this.priceMax) {
          priceFlag = false;
        }

        // 筛选颜色
        let colorFlag = true;
        if (this.checkedColor.length) {
          if (Array.isArray(item.color) && item.color.length) {
            colorFlag = item.color.some(i => this.checkedColor.includes(i.id));
          } else {
            colorFlag = false;
          }
        }

        // collection
        let collectionFlag = true;
        if (this.checkedCollection.length) {
          if (Array.isArray(item.collections) && item.collections.length) {
            collectionFlag = item.collections.some(i => this.checkedCollection.includes(i));
          } else {
            collectionFlag = false;
          }
        }

        // compliance flag
        let complianceFlag = true;
        if (this.checkedCompliance.length) {
          if (Array.isArray(item.compliance) && item.compliance.length) {
            complianceFlag = item.compliance.some(i => this.checkedCompliance.includes(i.id));
          } else {
            complianceFlag = false;
          }
        }
        let featureFlag = true;
        if (this.checkedFeature.length) {
          if (Array.isArray(item.filter) && item.filter.length) {
            featureFlag = item.filter.some(i => this.checkedFeature.includes(i.id));
          } else {
            featureFlag = false;
          }
        }
        const decorationFlag = true;
        // if (this.checkedDecoration.length && item.pricePoint.length) {
        //   decorationFlag = item.pricePoint.some(i => {
        //     return i.decorationList.some(j =>
        //       this.checkedDecoration.includes(j.id)
        //     )
        //   })
        // }

        let leadtimeFlag = true;
        if (this.checkedLeadtime) {
          const cycleMap = Array.from(new Set(item.cycle.map(i => Number(i.id))));
          const currentLeadtimeValue = this.leadTimeList.filter(i => i.id === this.checkedLeadtime)[0].value;
          leadtimeFlag = currentLeadtimeValue.some(id => cycleMap.includes(id));
        }
        // console.log(moqFlag)
        // console.log(priceFlag)
        // console.log(leadtimeFlag)
        // console.log(colorFlag)
        // console.log(collectionFlag)
        // console.log(featureFlag)
        return moqFlag && priceFlag && leadtimeFlag && colorFlag && collectionFlag && complianceFlag && featureFlag && decorationFlag;
      });
    }
  },
  watch: {
    $route: {
      immediate: true,
      handler(to) {
        if (to.query.lead_time) {
          const temp = Number(to.query.lead_time);
          this.checkedLeadtime = typeof temp === 'number' ? temp : '';
        } else {
          this.checkedLeadtime = '';
        }
        if (to.query.pricetype) {
          this.priceId = Number(to.query.pricetype);
        } else {
          this.priceId = '';
        }
        if (to.query.feature) {
          this.checkedFeature = [Number(to.query.feature)];
        } else {
          this.checkedFeature = [];
        }
        if (to.query.qty) {
          const qty = Number(to.query.qty);
          if (typeof qty === 'number') {
            this.quantity = qty;
          }
        } else {
          this.quantity = 1000;
        }

        // 刷新浏览器, 获得的参数是字符串类型, 点页面上的链接, 跳转过来取到的参数是数字类型...
        if (to.query.feature && Number(to.query.feature) === 54) {
          this.order_name = '';
          this.order_type = '';
          // this.command = 'Released: Newest to Oldest'
        }
        if (this.index) {
          this.getList();
        }
      }
    },
    computedProductList: {
      immediate: true,
      handler() {
        this.featureList = this.featureList.map(item => {
          return {
            ...item,
            count: 0
          };
        });
        this.collectionsList = this.collectionsList.map(item => {
          return {
            ...item,
            count: 0
          };
        });
        this.colourList = this.colourList.map(item => {
          return {
            ...item,
            count: 0
          };
        });
        this.decorationList = this.decorationList.map(item => {
          return {
            ...item,
            count: 0
          };
        });
        if (!this.leadtimeComputedFlag) {
          this.leadTimeList.forEach(item => {
            item.count = 0;
          });
        }
        this.computedProductList.forEach(item => {
          // color 颜色
          // console.log(item.color, 'color')
          item.color.forEach(color => {
            const idx = this.colourList.findIndex(i => i.id === color.id);
            if (idx > -1) {
              this.colourList[idx].count++;
            }
          });

          // collection
          item.collections.forEach(collection => {
            const idx = this.collectionsList.findIndex(i => i.name === collection);
            if (idx > -1) {
              this.collectionsList[idx].count++;
            }
          });

          // filter / feature
          item.filter.forEach(filter => {
            const idx = this.featureList.findIndex(i => i.id === filter.id);
            if (idx > -1) {
              this.featureList[idx].count++;
            }
          });

          // 打印服务
          item.pricePoint.forEach(decoration => {
            const idx = this.decorationList.findIndex(i => i.id === decoration.id);
            if (idx > -1) {
              this.decorationList[idx].count++;
            }
          });

          // 周期 / leadtime
          if (!this.leadtimeComputedFlag) {
            const cycleMap = Array.from(new Set(item.cycle.map(i => Number(i.id))));
            for (const i of this.leadTimeList) {
              if (i.id === 0) i.count++;
              let flag = false;
              cycleMap.forEach(cycle => {
                if (i.value.includes(cycle)) {
                  flag = true;
                }
              });
              if (flag) {
                i.count++;
              }
            }
          }
        });
        this.cardList = this.computedProductList.slice(0, 12);
        this.total = this.computedProductList.length;
        this.listQuery = {
          page: 1,
          limit: 12
        };
        this.leadtimeComputedFlag = true;
      }
    },
    categoryList() {
      const keyword = this.$route.params.secondCategory || this.$route.params.firstCategory || '';
      if (!this.$route.fullPath.includes('searchResult') && !this.$route.params.thirdCategory && this.categoryList.length && keyword.length) {
        const currentCate = this.getCategoryFromTree({
          name: keyword
        }, this.categoryList);
        this.cate = Array.isArray(currentCate.child) ? currentCate.child : [];
      }
    }
  },
  async fetch() {
    const res = await this.$axios.post('/uk-api/common/shopProductList');
    this.categoryList = res.code === 1 ? res.result : [];
    return true;
  },
  data() {
    return {
      command: 'Default',
      commandList: [{
        label: 'Default',
        value: 'Default'
      }, {
        label: 'Price: Low to high',
        value: 'Price: Low to high'
      }, {
        label: 'Price: High to low',
        value: 'Price: High to low'
      }, {
        label: 'Name: A to Z',
        value: 'Product Name:A-Z'
      }, {
        label: 'Name: Z to A',
        value: 'Product Name:Z-A'
      }, {
        label: 'Released: Newest to Oldest',
        value: 'create_time'
      }],
      total: 0,
      listQuery: {
        page: 1,
        limit: 12
      },
      blackList: ['111', '111.00', '999', '999.00', 111, 999],
      // 筛选器数据
      leadTimeList: [],
      // 非实体数据. 里面包含虚拟字段, 可能不会跟数据表一一对应, 用来做lead times集合筛选的.
      fakeLeadTimeList: [{
        name: '1 Week or less',
        id: 1,
        value: [34, 40, 24, 22, 41, 28]
      }, {
        name: '2 Weeks or less',
        id: 2,
        value: [34, 40, 24, 22, 41, 16, 35, 28]
      }, {
        name: '3 Weeks or less',
        id: 3,
        value: [34, 40, 24, 22, 41, 16, 35, 23, 42, 28]
      }, {
        name: '4 Weeks or less',
        id: 4,
        value: [34, 40, 24, 22, 41, 16, 35, 23, 42, 18, 33, 28]
      }, {
        name: '5 Weeks or less',
        id: 5,
        value: [34, 40, 24, 22, 41, 16, 35, 23, 42, 18, 33, 26, 28]
      }, {
        name: '6 Weeks or less',
        id: 6,
        value: [34, 40, 24, 22, 41, 16, 35, 23, 42, 18, 33, 26, 21, 28]
      }, {
        name: '6 Weeks or more',
        id: 7,
        value: [20, 19, 29, 31, 30, 32, 36, 37, 38, 39, 25]
      }],
      colourList: [],
      collectionsList: [],
      featureList: [],
      decorationList: [],
      complianceList: [],
      // 筛选器数据 end
      productsList: [],
      cardList: [],
      // 顶部分类数据总和, 未筛选过的
      cate: [],
      order_name: '',
      order_type: '',
      enableQuantity: false,
      quantity: 1000,
      priceMin: 1000,
      priceMax: 0.01,
      priceRange1: 1,
      priceRange2: 1,
      checkedLeadtime: '',
      checkedColor: [],
      checkedDecoration: [],
      checkedFeature: [],
      checkedCollection: [],
      checkedCompliance: [],
      priceId: '',
      cancelSource: null,
      loaded: false,
      // leadtime的计数仅每次请求接口后重新计算一次
      leadtimeComputedFlag: false,
      index: null,
      categoryList: []
    };
  },
  beforeMount() {
    const CancelToken = axios__WEBPACK_IMPORTED_MODULE_16___default.a.CancelToken;
    this.cancelSource = CancelToken.source();
    if (false) {} else {
      const client = algoliasearch__WEBPACK_IMPORTED_MODULE_17___default()('2340OWI595', '2d4c53cdcf2bab0c361e589c2c2272fa');
      this.index = client.initIndex('product_uk');
    }
    this.getList();
  },
  methods: {
    getList() {
      let sortFunc = defaultSortFunc;
      let keyword = this.$route.params.thirdCategory || this.$route.params.secondCategory || this.$route.params.firstCategory || '';
      const config = {
        hitsPerPage: 1000,
        restrictSearchableAttributes: ['name', 'keywords', 'colour', 'moq', 'collection', 'filter']
        // attributesToRetrieve: ['cat_name'], // 限定只返回某个属性
      };
      if (this.$route.query.keyword && this.$route.fullPath.includes('searchResult')) {
        keyword = decodeURIComponent(this.$route.query.keyword).trim() || '';
      }
      this.listLoading = true;
      this.productsList = [];
      if (!this.$route.fullPath.includes('searchResult')) {
        const t = this.fakeLeadTimeList.slice();
        t.pop();
        t.push({
          // 用id 0 是会导致 checkedLeadtime 勾选all时值为0, 巧妙避开 computedProductList 中 leadTime相关的计算,
          // 让 leadtimeFlag 永远都是true, 从而顺利筛选出所有商品(筛选全部通过).
          id: 0,
          name: 'All',
          value: []
        });
        this.leadTimeList = t;
        if (this.$route.query.feature && Number(this.$route.query.feature) === 54) {
          keyword = 'new product';
          // config.facetFilters = ['filter:New product']
          config.restrictSearchableAttributes = 'filter';
          sortFunc = (a, b) => {
            if (a.hasNewProduct !== b.hasNewProduct) {
              return b.hasNewProduct - a.hasNewProduct;
            }
            if (a.ranking !== b.ranking) {
              return b.ranking - a.ranking;
            }
          };
        } else if (this.$route.query.feature && Number(this.$route.query.feature) === 282) {
          keyword = 'Carbon Footprint';
          config.restrictSearchableAttributes = 'filter';
        } else {
          config.restrictSearchableAttributes = 'cat_name';
        }
      } else {
        this.leadTimeList = this.fakeLeadTimeList.slice();
      }
      const p = this.index.search(keyword, config);
      p.then(({
        hits
      }) => {
        this.leadtimeComputedFlag = false;
        this.priceMin = 1000;
        this.priceMax = 0.01;
        // 这几个是临时数据
        const temp = [];
        const filterList = [];
        const colorList = [];
        const collectionsList = [];
        // 临时数据 end

        if (hits.length) {
          hits.filter(i => i.status === 1 || i.status === '1' || i.status).forEach(item => {
            let colorImg = '';
            item.colour_imgs = JSON.parse(item.colour_imgs);
            item.colour_imgs.sort((a, b) => a.name.length - b.name.length);
            if (this.$route.fullPath.includes('searchResult') && Array.isArray(item.colour_imgs) && item.colour_imgs.length) {
              item.colour_imgs.forEach(colorItem => {
                if (colorItem.name && colorItem.name.length) {
                  if (new RegExp(colorItem.name.toLowerCase(), 'i').test(keyword)) {
                    console.log(item.product_code, colorItem.name, 'replace');
                    colorImg = colorItem.img;
                  } else if (/\s/.test(colorItem.name) && colorItem.name.split(' ').filter(a => a.length > 0).some(b => new RegExp(b.toLowerCase(), 'i').test(keyword))) {
                    console.log(item.product_code, colorItem.name, 'advance replace');
                    colorImg = colorItem.img;
                  }
                }
              });
              item.colour_imgs.forEach(i => {
                if (i.name && i.name.length) {
                  if (keyword.toLowerCase().includes(i.name.toLowerCase())) {
                    console.log(item.product_code, i.name, 'complete replace');
                    colorImg = i.img;
                  }
                }
              });
              console.log('---');
            }
            const result = {
              ...item,
              // img: item.img || '',
              // colour_imgs: item.colour_imgs,
              price_min: parseFloat(item.price_min),
              price_max: parseFloat(item.price_max),
              product_code: item.product_code,
              icon: Array.isArray(item.icon) ? item.icon.filter(i => i.id) : typeof item.icon === 'string' ? JSON.parse(item.icon) : [],
              moq: item.moq,
              cycle: (typeof item.cycle === 'string' ? JSON.parse(item.cycle) : item.cycle) || [],
              cycle_icon: (typeof item.cycle === 'string' ? JSON.parse(item.cycle) : item.cycle) || [],
              collection_detail: (typeof item.collection_detail === 'string' ? JSON.parse(item.collection_detail) : item.collection_detail) || [],
              product_name: item.name || '',
              info: {
                image: colorImg || item.img || '',
                id: item.id
              },
              main: {
                image: colorImg || item.img || '',
                id: item.id
              },
              color: [],
              filter: [],
              // 不一定有
              collections: [],
              pricePoint: [],
              compliance: [],
              create_time: item.create_time ? new Date(item.create_time).getTime() : new Date().getTime(),
              ranking: item.rank ? parseInt(item.rank) : Math.floor(Math.random() * 10000),
              sale_time: item.sale_time ? new Date(item.sale_time).getTime() : 0
            };
            const min = Number(item.price_min);
            const max = Number(item.price_max);
            if (min < this.priceMin && min !== 0) {
              this.priceMin = min;
            }
            if (max > this.priceMax) {
              this.priceMax = max;
            }
            this.priceRange1 = this.priceMin;
            this.priceRange2 = this.priceMax;
            if (item.colour) {
              try {
                item.colour_detail = JSON.parse(item.colour_detail);
              } catch (e) {
                console.log('解析 colour_detail 出错');
              }
              if (!Array.isArray(item.colour_detail)) {
                // 部分数据异常, 额外添加处理逻辑
                item.colour_detail = [item.colour_detail];
              }
              result.color = item.colour_detail;
              item.colour_detail.forEach(a => {
                if (!colorList.some(i => i.id === a.id)) {
                  colorList.push(a);
                }
              });
            }
            if (item.filter.length) {
              try {
                item.filter_detail = JSON.parse(item.filter_detail);
              } catch (e) {
                console.log('解析 filter_detail 出错');
              }
              result.filter = item.filter_detail;
              item.filter_detail.forEach(a => {
                if (!filterList.some(i => i.id === a.id)) {
                  filterList.push(a);
                }
              });
            }
            if (item.collection.length) {
              try {
                item.collection = JSON.parse(item.collection);
              } catch (e) {
                console.log('解析 collection 出错');
              }
              item.collection.forEach(a => {
                result.collections.push(a);
                if (!collectionsList.some(i => a === i.name)) {
                  collectionsList.push({
                    name: a
                  });
                }
              });
            }
            result.hasNewProduct = result.filter.some(i => i.id === 54);
            result.hasBestSeller = result.collection_detail.some(i => i.id === 209);
            temp.push(result);
          });
        }
        this.featureList = filterList;
        this.collectionsList = collectionsList;
        this.colourList = colorList;
        // this.decorationList = []
        // this.complianceList = []

        if (!this.$route.fullPath.includes('searchResult')) {
          if (this.$route.query.feature && Number(this.$route.query.feature) === 54) {
            temp.sort((a, b) => b.sale_time - a.sale_time);
          } else {
            temp.sort(sortFunc);
          }
        }
        this.productsList = temp;
        this.loaded = true;
        this.listLoading = false;
      }).catch(() => {
        this.listLoading = false;
        this.productsList = [];
      });
    },
    getListold() {
      const params = {
        order_name: this.order_name,
        order_type: this.order_type,
        first_cat: this.$route.params.firstCategory,
        second_cat: this.$route.params.secondCategory,
        third_cat: this.$route.params.thirdCategory
      };
      if (this.loaded || this.$route.query.qty) {
        params.moq = this.quantity;
      }
      if (this.priceId) {
        params.price_id = this.priceId;
      }
      if (this.checkedLeadtime) {
        params.filter_id = this.checkedLeadtime;
      }
      if (this.$route.query.keyword && this.$route.fullPath.includes('searchResult')) {
        params.keyword = decodeURIComponent(this.$route.query.keyword).trim() || '';
      }
      const config = {};
      if (this.cancelSource) {
        var _this$cancelSource;
        this.cancelSource.cancel();
        config.cancelToken = (_this$cancelSource = this.cancelSource) === null || _this$cancelSource === void 0 ? void 0 : _this$cancelSource.token;
      }
      this.listLoading = true;
      this.productsList = [];
      if (!this.$route.fullPath.includes('searchResult')) {
        const t = this.fakeLeadTimeList.slice();
        t.pop();
        t.push({
          // 用id 0 是会导致 checkedLeadtime 勾选all时值为0, 巧妙避开 computedProductList 中 leadTime相关的计算,
          // 让 leadtimeFlag 永远都是true, 从而顺利筛选出所有商品(筛选全部通过).
          id: 0,
          name: 'All',
          value: []
        });
        this.leadTimeList = t;
      } else {
        this.leadTimeList = this.fakeLeadTimeList.slice();
      }
      this.$axios.get('/goods_au/list', {
        params
      }, config).then(res => {
        if (res.code === 1) {
          this.leadtimeComputedFlag = false;
          this.priceMin = 1000;
          this.priceMax = 0.01;
          this.featureList = res.result.filter || [];
          this.collectionsList = res.result.collections || [];
          this.complianceList = res.result.compliance || [];
          this.colourList = res.result.color || [];
          this.decorationList = res.result.decorations || [];
          // this.leadTimeList =
          //   res.result.lead_time
          //     .sort((a, b) => a.rank - b.rank)
          //     .map(i => {
          //       return {
          //         ...i,
          //         value: this.fakeLeadTimeList.filter(f => f.id === i.id)[0]
          //           .value,
          //       }
          //     }) || []
          this.productsList = res.result.list.map(item => {
            var _item$main, _item$main2;
            const min = Number(item.price_min);
            const max = Number(item.price_max);
            if (min < this.priceMin && min !== 0) {
              this.priceMin = min;
            }
            if (max > this.priceMax) {
              this.priceMax = max;
            }
            this.priceRange1 = this.priceMin;
            this.priceRange2 = this.priceMax;
            return {
              ...item,
              cycle_icon: item.cycle,
              lead_time_id: item.lead_time_id || '',
              info: {
                image: (_item$main = item.main) === null || _item$main === void 0 ? void 0 : _item$main.image,
                id: (_item$main2 = item.main) === null || _item$main2 === void 0 ? void 0 : _item$main2.id
              }
            };
          }) || [];
          // 排序是为了保证一级分类考前. 分类页面直接就取他的child展示, 即列出二级分类.
          // 二级分类页面大概率搜不出三级子分类, 一言难尽.
          this.cate = res.result.cate.sort((a, b) => a.pid - b.pid);
          // console.log(this.cate, 'this.cate')
          this.listLoading = false;
        }
        // this.$nextTick(() => {
        //   window.scroll(0, 0);
        // });
        this.loaded = true;
      }).catch(() => {
        this.listLoading = false;
        this.productsList = [];
      });
    },
    handleChangeQuantity(value) {
      if (value) {
        this.quantity = value;
        this.enableQuantity = true;
        // this.$router.replace({
        //   path: this.$route.path,
        //   query: {
        //     ...this.$route.query,
        //     qty: value,
        //     t: new Date().getTime(),
        //   },
        // })
        // this.getList()
      }
    },
    handleChangePrice(arr) {
      console.log('price change', arr);
      this.priceMin = arr[0];
      this.priceMax = arr[1];
    },
    handleChangeLeadtime(value) {
      this.checkedLeadtime = value;
      // this.$router.replace({
      //   path: this.$route.path,
      //   query: {
      //     ...this.$route.query,
      //     lead_time: value,
      //     t: new Date().getTime(),
      //   },
      // })
    },
    handleChangeColor(value) {
      this.checkedColor = value;
    },
    handleChangeFeature(value) {
      this.checkedFeature = value;
    },
    handleChangeCollection(value) {
      this.checkedCollection = value;
    },
    handleChangeDecoration(value) {
      this.checkedDecoration = value;
    },
    handleChangeCompliance(value) {
      this.checkedCompliance = value;
    },
    handleCommand(command) {
      let func = defaultSortFunc;
      if (command === 'Default') {
        this.order_name = '';
        this.order_type = '';
        this.command = command;
      } else if (command === 'Product Name:A-Z') {
        this.order_name = 'product_name';
        this.order_type = 'asc';
        func = (a, b) => a.product_name.localeCompare(b.product_name);
        this.command = command;
      } else if (command === 'Product Name:Z-A') {
        this.order_name = 'product_name';
        this.order_type = 'desc';
        func = (a, b) => b.product_name.localeCompare(a.product_name);
        this.command = command;
      } else if (command === 'Price: Low to high') {
        this.order_name = 'price_min';
        this.order_type = 'asc';
        func = (a, b) => a.price_min - b.price_min;
        this.command = command;
      } else if (command === 'Price: High to low') {
        this.order_name = 'price_min';
        this.order_type = 'desc';
        func = (a, b) => b.price_max - a.price_max;
        this.command = command;
      } else if (command === 'create_time') {
        this.order_name = 'create_time';
        this.order_type = 'desc';
        func = (a, b) => b.create_time - a.create_time;
        this.command = command;
      }
      this.productsList.sort(func);
    },
    reset() {
      if (!this.$route.query.qty) {
        this.quantity = 1000;
      }
      this.priceMin = 1000;
      this.priceMax = 0.01;
      this.checkedCollection = [];
      this.checkedCompliance = [];
      this.checkedLeadtime = '';
      this.checkedColor = [];
      this.checkedDecoraiton = [];
      this.checkedFeature = [];
      this.getList();
    },
    infiniteHandler($state) {
      if (this.total > 12) {
        const temp = this.computedProductList.slice(this.listQuery.page * this.listQuery.limit, this.listQuery.page * this.listQuery.limit + this.listQuery.limit);
        this.listQuery.page += 1; // 下一页
        setTimeout(() => {
          if (temp.length) {
            this.cardList = this.cardList.concat(temp);
            $state.loaded();
          } else {
            $state.loaded();
            $state.complete();
          }
        }, 800);
      } else {
        $state.loaded();
        $state.complete();
      }
    },
    transName(str) {
      return str.replace(/\s+/g, '-').replace('-&', '').toLowerCase();
    },
    // 从分类树数据里面找到对应分类
    getCategoryFromTree(p, tree) {
      let result = {};
      if (!tree.length) return result;
      tree.forEach(i => {
        if (i.id === p.id || this.transName(i.name) === p.name) {
          result = lodash_clonedeep__WEBPACK_IMPORTED_MODULE_18___default()(i);
          result.lev = 1;
        }
        if (!Array.isArray(i.child)) return;
        i.child.forEach(secondCate => {
          if (secondCate.id === p.id || this.transName(secondCate.name) === p.name) {
            result = lodash_clonedeep__WEBPACK_IMPORTED_MODULE_18___default()(secondCate);
            result.parentName = i.name;
            result.lev = 2;
            result.root = {
              name: i.name,
              id: i.id,
              pid: 0
            };
          }
        });
      });
      return result;
    }
  }
});

/***/ }),

/***/ 287:
/***/ (function(module, exports) {

// Exports
module.exports = {

};


/***/ }),

/***/ 346:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_03ea91ca_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(287);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_03ea91ca_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_03ea91ca_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_03ea91ca_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_03ea91ca_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 382:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/category/_firstCategory/index.vue?vue&type=template&id=03ea91ca&scoped=true
var render = function render() {
  var _vm$cate$;
  var _vm = this,
    _c = _vm._self._c;
  return _c('div', {
    directives: [{
      name: "loading",
      rawName: "v-loading",
      value: _vm.listLoading,
      expression: "listLoading"
    }],
    staticClass: "com-main",
    attrs: {
      "element-loading-text": "Loading"
    }
  }, [_vm._ssrNode((_vm.productsList.cate_img ? "<a data-v-03ea91ca><img" + _vm._ssrAttr("src", _vm.productsList.cate_img && !_vm.$mediaRegExp.test(_vm.productsList.cate_img) ? _vm.$OSS_PREFIX + _vm.productsList.cate_img : _vm.productsList.cate_img) + " data-v-03ea91ca></a>" : "<!---->") + " "), _vm._ssrNode("<div class=\"com-width-1400 com-margin-auto\" data-v-03ea91ca>", "</div>", [_vm.cate.length ? _vm._ssrNode("<div class=\"select-category\" data-v-03ea91ca>", "</div>", [_vm._ssrNode("<p class=\"select-category-title\" data-v-03ea91ca>Select a Category</p> "), _vm._ssrNode("<ul data-v-03ea91ca>", "</ul>", _vm._l(_vm.cate, function (item) {
    return _vm._ssrNode("<li data-v-03ea91ca>", "</li>", [_c('nuxt-link', {
      attrs: {
        "to": {
          name: 'category-firstCategory-secondCategory',
          params: {
            firstCategory: _vm.$route.params.firstCategory,
            secondCategory: item.name.replace(/\s+/g, '-').replace('-&', '').toLowerCase()
          }
        }
      }
    }, [_c('div', {
      staticClass: "image"
    }, [_c('img', {
      attrs: {
        "src": item.style && !_vm.$mediaRegExp.test(item.style) ? _vm.$OSS_PREFIX + item.style : item.style
      }
    })]), _vm._v(" "), _c('p', [_vm._v(_vm._s(item.name))])])], 1);
  }), 0)], 2) : _vm._e(), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"metal-hardPlastic\" data-v-03ea91ca>", "</div>", [_vm._ssrNode("<div class=\"metal-title\" data-v-03ea91ca>", "</div>", [_vm._ssrNode("<p data-v-03ea91ca>" + _vm._ssrEscape(_vm._s((_vm$cate$ = _vm.cate[0]) === null || _vm$cate$ === void 0 ? void 0 : _vm$cate$.name)) + "</p> "), _vm._ssrNode("<div data-v-03ea91ca>", "</div>", [_vm._ssrNode("<div class=\"sort\" data-v-03ea91ca>", "</div>", [_c('el-dropdown', {
    attrs: {
      "trigger": "click"
    },
    on: {
      "command": _vm.handleCommand
    }
  }, [_c('span', {
    staticClass: "el-dropdown-link"
  }, [_vm._v("\n                Sort by " + _vm._s(_vm.command) + "\n                "), _c('i', {
    staticClass: "el-icon-arrow-down el-icon--right"
  })]), _vm._v(" "), _c('el-dropdown-menu', {
    attrs: {
      "slot": "dropdown"
    },
    slot: "dropdown"
  }, _vm._l(_vm.commandList, function (command) {
    return _c('el-dropdown-item', {
      key: command.label,
      attrs: {
        "command": command.value
      }
    }, [_vm._v(_vm._s(command.label) + "\n                ")]);
  }), 1)], 1)], 1)])], 2), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"metal-content\" data-v-03ea91ca>", "</div>", [_vm._ssrNode("<div class=\"metal-content-left\" data-v-03ea91ca>", "</div>", [_c('category-filter', {
    attrs: {
      "leadTimeList": _vm.leadTimeList,
      "colourList": _vm.colourList,
      "collectionsList": _vm.collectionsList,
      "complianceList": _vm.complianceList,
      "featureList": _vm.featureList,
      "decorationList": _vm.decorationList,
      "priceRange1": _vm.priceRange1,
      "priceRange2": _vm.priceRange2
    },
    on: {
      "reset": _vm.reset,
      "getList": _vm.getList,
      "handleChangeColor": _vm.handleChangeColor,
      "handleChangeFeature": _vm.handleChangeFeature,
      "handleChangePrice": _vm.handleChangePrice,
      "handleChangeCollection": _vm.handleChangeCollection,
      "handleChangeCompliance": _vm.handleChangeCompliance,
      "handleChangeDecoration": _vm.handleChangeDecoration,
      "handleChangeLeadtime": _vm.handleChangeLeadtime,
      "handleChangeQuantity": _vm.handleChangeQuantity
    }
  })], 1), _vm._ssrNode(" " + (_vm.listLoading ? "<div class=\"metal-content-right\" data-v-03ea91ca></div>" : "<!---->") + " "), _vm._ssrNode("<div class=\"metal-content-right\"" + _vm._ssrStyle(null, null, {
    display: _vm.cardList.length > 0 && !_vm.listLoading ? '' : 'none'
  }) + " data-v-03ea91ca>", "</div>", [_vm._ssrNode("<div class=\"metal-content-right-item\" data-v-03ea91ca>", "</div>", [_vm._l(_vm.cardList, function (item, index) {
    return _c('card', {
      key: parseInt(index),
      staticClass: "card",
      attrs: {
        "cardData": item
      },
      on: {
        "addCompare": _vm.addCompareList
      }
    });
  }), _vm._ssrNode(" "), _c('transition', {
    on: {
      "before-enter": _vm.beforeEnter,
      "enter": _vm.enter,
      "after-enter": _vm.afterEnter
    }
  }, [_c('div', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.shopCarBall,
      expression: "shopCarBall"
    }],
    ref: "ball",
    staticClass: "ball"
  }, [_c('div', {
    staticClass: "linner_ball"
  })])])], 2), _vm._ssrNode(" "), _c('infinite-loading', {
    staticClass: "infinite-loading-wrap",
    attrs: {
      "spinner": "spiral",
      "identifier": _vm.computedProductList,
      "distance": 200
    },
    on: {
      "infinite": _vm.infiniteHandler
    },
    scopedSlots: _vm._u([{
      key: "error",
      fn: function ({
        trigger
      }) {
        return _c('div', {}, [_vm._v("\n              Error Data, click\n              "), _c('a', {
          attrs: {
            "href": "javascript:;"
          },
          on: {
            "click": trigger
          }
        }, [_vm._v("here")]), _vm._v("\n              toretry\n            ")]);
      }
    }])
  }, [_c('div', {
    directives: [{
      name: "loading",
      rawName: "v-loading",
      value: true,
      expression: "true"
    }],
    attrs: {
      "slot": "spinner",
      "element-loading-text": "Loading",
      "element-loading-spinner": "el-icon-loading"
    },
    slot: "spinner"
  }), _vm._v(" "), _c('div', {
    staticClass: "loading-text",
    attrs: {
      "slot": "no-more"
    },
    slot: "no-more"
  })])], 2), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"metal-content-right-item empty\"" + _vm._ssrStyle(null, null, {
    display: _vm.cardList.length === 0 && !_vm.listLoading ? '' : 'none'
  }) + " data-v-03ea91ca>", "</div>", [_c('category-no-data')], 1)], 2)], 2)], 2)], 2);
};
var staticRenderFns = [];

// CONCATENATED MODULE: ./pages/category/_firstCategory/index.vue?vue&type=template&id=03ea91ca&scoped=true

// EXTERNAL MODULE: external "vue-infinite-loading"
var external_vue_infinite_loading_ = __webpack_require__(122);
var external_vue_infinite_loading_default = /*#__PURE__*/__webpack_require__.n(external_vue_infinite_loading_);

// EXTERNAL MODULE: ./mixins/category.js
var category = __webpack_require__(181);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/category/_firstCategory/index.vue?vue&type=script&lang=js


/* harmony default export */ var _firstCategoryvue_type_script_lang_js = ({
  components: {
    InfiniteLoading: external_vue_infinite_loading_default.a
  },
  mixins: [category["a" /* default */]],
  data() {
    return {
      total: 0,
      listQuery: {
        page: 1,
        limit: 12
      },
      listLoading: true,
      shopCarBall: false,
      shopCarBallEl: null,
      ss: null
    };
  },
  watch: {},
  async created() {},
  methods: {
    addCompareList(target) {
      this.shopCarBallEl = target;
      this.shopCarBall = true;
    },
    // 动画开始
    beforeEnter(el) {
      // 获取元素的大小及其相对于视口的位置
      if (false) {}
    },
    enter(el, done) {
      // 触发重绘，来实现动画的移动过程
      if (false) {}
    },
    afterEnter(el) {
      this.shopCarBall = false;
      el.style.display = 'none';
    }
  }
});
// CONCATENATED MODULE: ./pages/category/_firstCategory/index.vue?vue&type=script&lang=js
 /* harmony default export */ var category_firstCategoryvue_type_script_lang_js = (_firstCategoryvue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./pages/category/_firstCategory/index.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(346)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  category_firstCategoryvue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  injectStyles,
  "03ea91ca",
  "6d8d7f81"
  
)

/* harmony default export */ var _firstCategory = __webpack_exports__["default"] = (component.exports);

/* nuxt-component-imports */
installComponents(component, {CategoryFilter: __webpack_require__(179).default,Card: __webpack_require__(157).default,CategoryNoData: __webpack_require__(180).default})


/***/ })

};;
//# sourceMappingURL=index.js.map