ContentWrap.vue 1013 B

123456789101112131415161718192021222324252627282930313233343536
  1. <script setup lang="ts">
  2. import { ElCard, ElTooltip } from 'element-plus'
  3. import { propTypes } from '@/utils/propTypes'
  4. import { useDesign } from '@/hooks/web/useDesign'
  5. const { getPrefixCls } = useDesign()
  6. const prefixCls = getPrefixCls('content-wrap')
  7. defineProps({
  8. title: propTypes.string.def(''),
  9. message: propTypes.string.def('')
  10. })
  11. </script>
  12. <template>
  13. <ElCard :class="[prefixCls]" shadow="never">
  14. <template v-if="title" #header>
  15. <div class="flex items-center">
  16. <span class="text-16px font-700">{{ title }}</span>
  17. <ElTooltip v-if="message" effect="dark" placement="right">
  18. <template #content>
  19. <div class="max-w-200px">{{ message }}</div>
  20. </template>
  21. <Icon class="ml-5px" icon="bi:question-circle-fill" :size="14" />
  22. </ElTooltip>
  23. <div class="flex pl-20px flex-grow">
  24. <slot name="header"></slot>
  25. </div>
  26. </div>
  27. </template>
  28. <div>
  29. <slot></slot>
  30. </div>
  31. </ElCard>
  32. </template>