cl-card.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <view class="cl-card">
  3. <view class="cl-card__header">
  4. <cl-text :size="28" bold :value="label"></cl-text>
  5. <view class="cl-card__more" v-if="showMore" @tap="toMore">
  6. <slot name="more">
  7. <cl-text :value="moreText" color="#777"></cl-text>
  8. <text class="cl-icon-arrow-right"></text>
  9. </slot>
  10. </view>
  11. </view>
  12. <view class="cl-card__container">
  13. <slot></slot>
  14. </view>
  15. <view class="cl-card__footer" v-if="$slots.footer">
  16. <slot name="footer"></slot>
  17. </view>
  18. </view>
  19. </template>
  20. <script>
  21. /**
  22. * card 卡片
  23. * @description 卡片
  24. * @tutorial https://docs.cool-js.com/uni/components/layout/card.html
  25. * @property {String} label 标签内容
  26. * @property {Boolean} showMore 是否实现查看更多
  27. * @property {Boolean} moreText 更多的文本内容,默认"查看更多"
  28. * @event {Function} more 点击更多时触发
  29. * @example 见教程
  30. */
  31. export default {
  32. name: "cl-card",
  33. props: {
  34. label: String,
  35. showMore: {
  36. type: Boolean,
  37. default: true
  38. },
  39. moreText: {
  40. type: String,
  41. default: "查看更多"
  42. }
  43. },
  44. methods: {
  45. toMore() {
  46. this.$emit("more");
  47. }
  48. }
  49. };
  50. </script>