Index.vue 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <script setup>
  2. import { indexTable, stockOptionCategory } 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 AppDropdownFilter from '@/components/AppDropdownFilter.vue'
  7. import AppResetFilter from '@/components/AppResetFilter.vue'
  8. import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
  9. defineProps({
  10. initialFilters: Object,
  11. stockProducts: Object,
  12. })
  13. </script>
  14. <template>
  15. <DashboardLayout title="Daftar Stok Barang">
  16. <DataTable
  17. responsive-layout="scroll"
  18. column-resize-mode="expand"
  19. :value="stockProducts.data"
  20. :rowHover="true"
  21. :stripedRows="true"
  22. >
  23. <template #header>
  24. <h1>Stok Produk</h1>
  25. <div class="grid">
  26. <div class="col-12 sm:col-6 lg:col-4">
  27. <AppDropdownFilter
  28. placeholder="category"
  29. name-param="category"
  30. :initial-dropdown="initialFilters"
  31. :options="stockOptionCategory"
  32. />
  33. </div>
  34. <div class="col-12 sm:col-6 lg:col-4">
  35. <AppSearchFilter
  36. placeholder="nama"
  37. name-param="search"
  38. :initial-search="initialFilters"
  39. />
  40. </div>
  41. <div class="col-12 sm:col-6 lg:col-4">
  42. <AppResetFilter :url="route('stock-products.index')" />
  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-chevron-right"
  56. class="p-button-icon-only p-button-rounded p-button-text"
  57. v-tooltip.bottom="'Lihat History'"
  58. :href="route('stock-products.history', data.productId)"
  59. />
  60. </template>
  61. </Column>
  62. </DataTable>
  63. <AppPagination :links="stockProducts.links" />
  64. </DashboardLayout>
  65. </template>