Index.vue 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <script setup>
  2. import { useStatistic } from './Composables/useStatistic'
  3. import { useStatisticDualYear } from './Composables/useStatisticDualYear'
  4. import CardCart from './Components/CardCart.vue'
  5. import CardCount from './Components/CardCount.vue'
  6. import CardProductFavorite from './Components/CardProductFavorite.vue'
  7. import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
  8. const props = defineProps([
  9. 'productAmount',
  10. 'productBestSelling',
  11. 'salePurchaseAmountStatistic',
  12. 'salePriceStatistic',
  13. 'purchasePriceStatistic',
  14. ])
  15. const salePurchaseAmountStatistic = useStatistic(
  16. props.salePurchaseAmountStatistic
  17. )
  18. const salePriceStatistic = useStatisticDualYear(props.salePriceStatistic)
  19. const purchasePriceStatistic = useStatisticDualYear(
  20. props.purchasePriceStatistic
  21. )
  22. </script>
  23. <template>
  24. <DashboardLayout title="Dashboard">
  25. <div class="grid">
  26. <div class="col-12">
  27. <div class="grid">
  28. <CardCount :data="productAmount" />
  29. </div>
  30. </div>
  31. <div class="col-12 xl:col-6">
  32. <div class="grid">
  33. <div class="col-12">
  34. <CardProductFavorite :data="productBestSelling" />
  35. </div>
  36. <div class="col-12">
  37. <CardCart
  38. type="line"
  39. :title="salePurchaseAmountStatistic.title"
  40. :data="salePurchaseAmountStatistic.data"
  41. />
  42. </div>
  43. </div>
  44. </div>
  45. <div class="col-12 xl:col-6">
  46. <div class="grid">
  47. <div class="col-12">
  48. <CardCart
  49. type="bar"
  50. :title="salePriceStatistic.title"
  51. :data="salePriceStatistic.data"
  52. />
  53. </div>
  54. <div class="col-12">
  55. <CardCart
  56. type="bar"
  57. :title="purchasePriceStatistic.title"
  58. :data="purchasePriceStatistic.data"
  59. />
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. </DashboardLayout>
  65. </template>