Index.vue 2.1KB

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