Meta.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';
  2. import _defineProperty from 'babel-runtime/helpers/defineProperty';
  3. import PropTypes from '../_util/vue-types';
  4. import { getComponentFromProp, getListeners } from '../_util/props-util';
  5. import { ConfigConsumerProps } from '../config-provider/configConsumerProps';
  6. export default {
  7. name: 'ACardMeta',
  8. props: {
  9. prefixCls: PropTypes.string,
  10. title: PropTypes.any,
  11. description: PropTypes.any
  12. },
  13. inject: {
  14. configProvider: { 'default': function _default() {
  15. return ConfigConsumerProps;
  16. } }
  17. },
  18. render: function render() {
  19. var h = arguments[0];
  20. var customizePrefixCls = this.$props.prefixCls;
  21. var getPrefixCls = this.configProvider.getPrefixCls;
  22. var prefixCls = getPrefixCls('card', customizePrefixCls);
  23. var classString = _defineProperty({}, prefixCls + '-meta', true);
  24. var avatar = getComponentFromProp(this, 'avatar');
  25. var title = getComponentFromProp(this, 'title');
  26. var description = getComponentFromProp(this, 'description');
  27. var avatarDom = avatar ? h(
  28. 'div',
  29. { 'class': prefixCls + '-meta-avatar' },
  30. [avatar]
  31. ) : null;
  32. var titleDom = title ? h(
  33. 'div',
  34. { 'class': prefixCls + '-meta-title' },
  35. [title]
  36. ) : null;
  37. var descriptionDom = description ? h(
  38. 'div',
  39. { 'class': prefixCls + '-meta-description' },
  40. [description]
  41. ) : null;
  42. var MetaDetail = titleDom || descriptionDom ? h(
  43. 'div',
  44. { 'class': prefixCls + '-meta-detail' },
  45. [titleDom, descriptionDom]
  46. ) : null;
  47. return h(
  48. 'div',
  49. _mergeJSXProps([{ on: getListeners(this) }, { 'class': classString }]),
  50. [avatarDom, MetaDetail]
  51. );
  52. }
  53. };