Index.vue 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <script setup>
  2. import { indexTable } from './config'
  3. import AppSearchFilter from '@/components/AppSearchFilter.vue'
  4. import AppButtonLink from '@/components/AppButtonLink.vue'
  5. import AppPagination from '@/components/AppPagination.vue'
  6. import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
  7. defineProps({
  8. initialFilters: Object,
  9. purchases: Object,
  10. })
  11. </script>
  12. <template>
  13. <DashboardLayout title="Daftar Pembelian">
  14. <DataTable
  15. responsiveLayout="scroll"
  16. :value="purchases.data"
  17. :rowHover="true"
  18. :stripedRows="true"
  19. >
  20. <template #header>
  21. <h1>Pembelian</h1>
  22. <div class="grid">
  23. <div class="col-12 md:col-8">
  24. <AppSearchFilter
  25. placeholder="nama, email, no hp, status"
  26. name-param="search"
  27. :initial-search="initialFilters"
  28. />
  29. </div>
  30. <div
  31. class="col-12 md:col-4 flex flex-column md:flex-row justify-content-end"
  32. >
  33. <AppButtonLink
  34. label="Tambah Pembelian"
  35. icon="pi pi-pencil"
  36. class="p-button-outlined"
  37. :href="route('purchases.create')"
  38. />
  39. </div>
  40. </div>
  41. </template>
  42. <Column
  43. v-for="value in indexTable"
  44. :field="value.field"
  45. :header="value.header"
  46. :key="value.field"
  47. />
  48. <Column>
  49. <template #body="{ data }">
  50. <AppButtonLink
  51. v-if="data.status == 'pending'"
  52. icon="pi pi-pencil"
  53. class="p-button-icon-only p-button-rounded p-button-text"
  54. v-tooltip.bottom="'Ubah Pembelian'"
  55. :href="route('purchases.edit', data.id)"
  56. />
  57. <AppButtonLink
  58. v-else
  59. icon="pi pi-chevron-right"
  60. class="p-button-icon-only p-button-rounded p-button-text"
  61. v-tooltip.bottom="'Lihat Detail Pembelian'"
  62. :href="route('purchases.show', data.id)"
  63. />
  64. </template>
  65. </Column>
  66. </DataTable>
  67. <AppPagination :links="purchases.links" />
  68. </DashboardLayout>
  69. </template>