index.vue 650 B

123456789101112131415161718192021222324252627282930
  1. <template>
  2. <a-tooltip v-if="isOverflow" placement="topLeft">
  3. <template #title>
  4. <span>{{ content }}</span>
  5. </template>
  6. {{ easyContent }}
  7. </a-tooltip>
  8. <template v-else>
  9. {{ content }}
  10. </template>
  11. </template>
  12. <script setup lang="ts">
  13. import { computed } from 'vue'
  14. defineOptions({ name: 'easyText' })
  15. const props = withDefaults(
  16. defineProps<{ content: string; maxLen?: number }>(),
  17. {
  18. maxLen: 50
  19. }
  20. )
  21. const isOverflow = computed(() => props.content.length > props.maxLen)
  22. const easyContent = computed(() =>
  23. isOverflow.value
  24. ? props.content.substring(0, props.maxLen) + '...'
  25. : props.content
  26. )
  27. </script>