Card2.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <template>
  2. <!--begin::Card-->
  3. <div class="card h-100" :class="cardClasses">
  4. <!--begin::Card header-->
  5. <div class="card-header flex-nowrap border-0 pt-9">
  6. <!--begin::Card title-->
  7. <div class="card-title m-0">
  8. <!--begin::Icon-->
  9. <div class="symbol symbol-45px w-45px bg-light me-5">
  10. <img :src="icon" alt="image" class="p-3" />
  11. </div>
  12. <!--end::Icon-->
  13. <!--begin::Title-->
  14. <a href="#" class="fs-4 fw-semobold text-hover-primary text-gray-600 m-0">
  15. {{ title }}
  16. </a>
  17. <!--end::Title-->
  18. </div>
  19. <!--end::Card title-->
  20. <!--begin::Card toolbar-->
  21. <div class="card-toolbar m-0">
  22. <!--begin::Menu-->
  23. <button
  24. type="button"
  25. class="btn btn-clean btn-sm btn-icon btn-icon-primary btn-active-light-primary me-n3"
  26. data-kt-menu-trigger="click"
  27. data-kt-menu-placement="bottom-end"
  28. data-kt-menu-flip="top-end"
  29. >
  30. <span class="svg-icon svg-icon-3 svg-icon-primary">
  31. <inline-svg :src="getAssetPath('media/icons/duotune/general/gen024.svg')" />
  32. </span>
  33. </button>
  34. <Dropdown3></Dropdown3>
  35. <!--end::Menu-->
  36. </div>
  37. <!--end::Card toolbar-->
  38. </div>
  39. <!--end::Card header-->
  40. <!--begin::Card body-->
  41. <div class="card-body d-flex flex-column px-9 pt-6 pb-8">
  42. <!--begin::Heading-->
  43. <div class="fs-2tx fw-bold mb-3">
  44. {{ content }}
  45. </div>
  46. <!--end::Heading-->
  47. <!--begin::Stats-->
  48. <div class="d-flex align-items-center flex-wrap mb-5 mt-auto fs-6">
  49. <span :class="`svg-icon-${color}`" class="svg-icon svg-icon-3 me-1">
  50. <inline-svg :src="arrow" />
  51. </span>
  52. <!--begin::Number-->
  53. <div :class="`text-${color}`" class="fw-bold me-2">
  54. {{ footerData }}
  55. </div>
  56. <!--end::Number-->
  57. <!--begin::Label-->
  58. <div class="fw-semobold text-gray-400">
  59. {{ footerText }}
  60. </div>
  61. <!--end::Label-->
  62. </div>
  63. <!--end::Stats-->
  64. <!--begin::Indicator-->
  65. <div class="d-flex align-items-center fw-semobold">
  66. <span class="badge bg-light text-gray-700 px-3 py-2 me-2">
  67. {{ indicatorValue }}
  68. </span>
  69. <span class="text-gray-400 fs-7">{{ indicatorLabel }}</span>
  70. </div>
  71. <!--end::Indicator-->
  72. </div>
  73. <!--end::Card body-->
  74. </div>
  75. <!--end::Card-->
  76. </template>
  77. <script lang="ts">
  78. import { getAssetPath } from "@/core/helpers/assets"
  79. import { defineComponent } from "vue"
  80. import Dropdown3 from "@/components/dropdown/Dropdown3.vue"
  81. export default defineComponent({
  82. name: "card-2",
  83. components: {
  84. Dropdown3,
  85. },
  86. props: {
  87. cardClasses: String,
  88. icon: String,
  89. title: String,
  90. content: String,
  91. color: String,
  92. arrow: String,
  93. footerData: String,
  94. footerText: String,
  95. indicatorValue: String,
  96. indicatorLabel: String,
  97. },
  98. setup() {
  99. return {
  100. getAssetPath,
  101. }
  102. },
  103. })
  104. </script>