SkuRowItem.js 1.4 KB

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