index.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 _tag = _interopRequireDefault(require("../tag"));
  9. var _use = (0, _utils.use)('card'),
  10. sfc = _use[0],
  11. bem = _use[1];
  12. function Card(h, props, slots, ctx) {
  13. var thumb = props.thumb;
  14. var showThumb = slots.thumb || thumb;
  15. var showTag = slots.tag || props.tag;
  16. var showNum = slots.num || (0, _utils.isDef)(props.num);
  17. var showPrice = slots.price || (0, _utils.isDef)(props.price);
  18. var showOriginPrice = slots['origin-price'] || (0, _utils.isDef)(props.originPrice);
  19. var showBottom = showNum || showPrice || showOriginPrice;
  20. var Thumb = showThumb && h("a", {
  21. "attrs": {
  22. "href": props.thumbLink
  23. },
  24. "class": bem('thumb')
  25. }, [slots.thumb ? slots.thumb() : props.lazyLoad ? h("img", {
  26. "class": bem('img'),
  27. "directives": [{
  28. name: "lazy",
  29. value: thumb
  30. }]
  31. }) : h("img", {
  32. "class": bem('img'),
  33. "attrs": {
  34. "src": thumb
  35. }
  36. }), showTag && h("div", {
  37. "class": bem('tag')
  38. }, [slots.tag ? slots.tag() : h(_tag["default"], {
  39. "attrs": {
  40. "mark": true,
  41. "type": "danger"
  42. }
  43. }, [props.tag])])]);
  44. var Title = slots.title ? slots.title() : props.title && h("div", {
  45. "class": bem('title')
  46. }, [props.title]);
  47. var Desc = slots.desc ? slots.desc() : props.desc && h("div", {
  48. "class": [bem('desc'), 'van-ellipsis']
  49. }, [props.desc]);
  50. var Price = showPrice && h("div", {
  51. "class": bem('price')
  52. }, [slots.price ? slots.price() : props.currency + " " + props.price]);
  53. var OriginPrice = showOriginPrice && h("div", {
  54. "class": bem('origin-price')
  55. }, [slots['origin-price'] ? slots['origin-price']() : props.currency + " " + props.originPrice]);
  56. var Num = showNum && h("div", {
  57. "class": bem('num')
  58. }, [slots.num ? slots.num() : "x " + props.num]);
  59. var Footer = slots.footer && h("div", {
  60. "class": bem('footer')
  61. }, [slots.footer()]);
  62. return h("div", (0, _babelHelperVueJsxMergeProps["default"])([{
  63. "class": bem()
  64. }, (0, _functional.inherit)(ctx, true)]), [h("div", {
  65. "class": bem('header')
  66. }, [Thumb, h("div", {
  67. "class": bem('content', {
  68. centered: props.centered
  69. })
  70. }, [Title, Desc, slots.tags && slots.tags(), showBottom && h("div", {
  71. "class": "van-card__bottom"
  72. }, [Price, OriginPrice, Num])])]), Footer]);
  73. }
  74. Card.props = {
  75. tag: String,
  76. desc: String,
  77. thumb: String,
  78. title: String,
  79. centered: Boolean,
  80. lazyLoad: Boolean,
  81. thumbLink: String,
  82. num: [Number, String],
  83. price: [Number, String],
  84. originPrice: [Number, String],
  85. currency: {
  86. type: String,
  87. "default": '¥'
  88. }
  89. };
  90. var _default = sfc(Card);
  91. exports["default"] = _default;