Index.vue 1.9KB

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