SkuHeader.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports["default"] = void 0;
  5. var _babelHelperVueJsxMergeProps = _interopRequireDefault(require("@vue/babel-helper-vue-jsx-merge-props"));
  6. var _utils = require("../../utils");
  7. var _functional = require("../../utils/functional");
  8. var _icon = _interopRequireDefault(require("../../icon"));
  9. var _use = (0, _utils.use)('sku-header'),
  10. sfc = _use[0],
  11. bem = _use[1];
  12. function getSkuImg(sku, selectedSku) {
  13. var id = selectedSku.s1;
  14. if (id) {
  15. // skuImg 挂载在 skuTree 中 s1 上
  16. var treeItem = sku.tree.filter(function (item) {
  17. return item.k_s === 's1';
  18. })[0] || {};
  19. if (treeItem.v) {
  20. var matchedSku = treeItem.v.filter(function (skuValue) {
  21. return skuValue.id === id;
  22. })[0];
  23. if (matchedSku) {
  24. return matchedSku.imgUrl || matchedSku.img_url;
  25. }
  26. }
  27. }
  28. }
  29. function SkuHeader(h, props, slots, ctx) {
  30. var sku = props.sku,
  31. goods = props.goods,
  32. skuEventBus = props.skuEventBus,
  33. selectedSku = props.selectedSku;
  34. var goodsImg = getSkuImg(sku, selectedSku) || goods.picture;
  35. var previewImage = function previewImage() {
  36. skuEventBus.$emit('sku:previewImage', goodsImg);
  37. };
  38. return h("div", (0, _babelHelperVueJsxMergeProps["default"])([{
  39. "class": [bem(), 'van-hairline--bottom']
  40. }, (0, _functional.inherit)(ctx)]), [h("div", {
  41. "class": bem('img-wrap'),
  42. "on": {
  43. "click": previewImage
  44. }
  45. }, [h("img", {
  46. "attrs": {
  47. "src": goodsImg
  48. }
  49. })]), h("div", {
  50. "class": bem('goods-info')
  51. }, [h("div", {
  52. "class": "van-sku__goods-name van-ellipsis"
  53. }, [goods.title]), slots["default"] && slots["default"](), h(_icon["default"], {
  54. "attrs": {
  55. "name": "close"
  56. },
  57. "class": "van-sku__close-icon",
  58. "on": {
  59. "click": function click() {
  60. skuEventBus.$emit('sku:close');
  61. }
  62. }
  63. })])]);
  64. }
  65. SkuHeader.props = {
  66. sku: Object,
  67. goods: Object,
  68. skuEventBus: Object,
  69. selectedSku: Object
  70. };
  71. var _default = sfc(SkuHeader);
  72. exports["default"] = _default;