UNPKG

vant

Version:

A Vue.js 2.0 Mobile UI at YouZan

73 lines (57 loc) 2.27 kB
'use strict'; exports.__esModule = true; var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _assign = require('babel-runtime/core-js/object/assign'); var _assign2 = _interopRequireDefault(_assign); var _utils = require('../../utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = (0, _utils.create)({ render: function render() { var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('span', { staticClass: "van-sku-row__item", class: { 'van-sku-row__item--active': _vm.isChoosed, 'van-sku-row__item--disabled': !_vm.isChoosable }, on: { "click": _vm.onSelect } }, [_vm._v("\n " + _vm._s(_vm.skuValue.name) + "\n")]); }, name: 'sku-row-item', props: { skuEventBus: Object, skuValue: Object, skuList: Array, selectedSku: Object, skuKeyStr: String }, computed: { isChoosed: function isChoosed() { return this.skuValue.id === this.selectedSku[this.skuKeyStr]; }, isChoosable: function isChoosable() { var _Object$assign2; var matchedSku = (0, _assign2.default)({}, this.selectedSku, (_Object$assign2 = {}, _Object$assign2[this.skuKeyStr] = this.skuValue.id, _Object$assign2)); var skusToCheck = (0, _keys2.default)(matchedSku).filter(function (skuKey) { return matchedSku[skuKey] !== ''; }); var filteredSku = this.skuList.filter(function (sku) { return skusToCheck.every(function (skuKey) { // 后端给的skuValue.id有时候是数字有时候是字符串,全等会匹配不上 return matchedSku[skuKey] == sku[skuKey]; // eslint-disable-line }); }); var stock = filteredSku.reduce(function (total, sku) { return total += sku.stock_num; }, 0); return stock > 0; } }, methods: { onSelect: function onSelect() { if (this.isChoosable) { this.skuEventBus.$emit('sku:select', (0, _extends3.default)({}, this.skuValue, { skuKeyStr: this.skuKeyStr })); } } } });