SkuRowItem.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import { use } from '../../utils';
  3. import { isSkuChoosable } from '../utils/skuHelper';
  4. var _use = use('sku-row-item'),
  5. sfc = _use[0];
  6. export default sfc({
  7. props: {
  8. skuList: Array,
  9. skuValue: Object,
  10. skuKeyStr: String,
  11. skuEventBus: Object,
  12. selectedSku: Object
  13. },
  14. computed: {
  15. choosable: function choosable() {
  16. return isSkuChoosable(this.skuList, this.selectedSku, {
  17. key: this.skuKeyStr,
  18. valueId: this.skuValue.id
  19. });
  20. }
  21. },
  22. methods: {
  23. onSelect: function onSelect() {
  24. if (this.choosable) {
  25. this.skuEventBus.$emit('sku:select', _extends({}, this.skuValue, {
  26. skuKeyStr: this.skuKeyStr
  27. }));
  28. }
  29. }
  30. },
  31. render: function render(h) {
  32. var choosed = this.skuValue.id === this.selectedSku[this.skuKeyStr];
  33. return h("span", {
  34. "class": ['van-sku-row__item', {
  35. 'van-sku-row__item--active': choosed,
  36. 'van-sku-row__item--disabled': !this.choosable
  37. }],
  38. "on": {
  39. "click": this.onSelect
  40. }
  41. }, [this.skuValue.name]);
  42. }
  43. });