TrendCard.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <template>
  2. <div class="border-gray-200 border rounded p-3 flex flex-row justify-between">
  3. <div class="flex flex-col justify-between text-gray-500 text-xs gap-1">
  4. <div class="">{{ title }}</div>
  5. <div class="text-gray-800">
  6. <span class="text-sm">{{
  7. number === null || number === undefined ? '--' : number
  8. }}</span>
  9. {{ unit }}
  10. </div>
  11. <div>
  12. <span>较上月 </span>
  13. <span
  14. class="text-xs text-red-600 inline-flex items-center"
  15. v-if="compare"
  16. >
  17. <span>{{ compare.includes('-') ? compare.slice(1) : compare }}</span>
  18. <el-icon class="mt-0.5">
  19. <Bottom v-if="compare.includes('-')" />
  20. <Top v-else />
  21. </el-icon>
  22. </span>
  23. <span v-else>--</span>
  24. </div>
  25. </div>
  26. <div>
  27. <img
  28. width="60"
  29. :style="{
  30. transform: compare?.includes('-') ? 'rotate(66deg)' : 'rotate(180deg)'
  31. }"
  32. src="../../../assets/line.png"
  33. />
  34. </div>
  35. </div>
  36. </template>
  37. <script lang="ts" setup>
  38. type Props = {
  39. compare?: string;
  40. title: string;
  41. number?: number;
  42. unit: '个' | '人' | '元';
  43. };
  44. defineProps<Props>();
  45. </script>