diff --git a/src/pages/store/list/index.vue b/src/pages/store/list/index.vue
index eaff084..06a8e60 100644
--- a/src/pages/store/list/index.vue
+++ b/src/pages/store/list/index.vue
@@ -1,7 +1,11 @@
@@ -196,6 +242,7 @@ const reloadStores = async () => {
:placeholder="$t('Search')"
density="compact"
style="inline-size: 200px;"
+ type="text"
class="me-3"
/>
@@ -220,20 +267,27 @@ const reloadStores = async () => {
color="primary"
/>
-
+
{ stStoreList.setSortBy(sortBy[0]?.key) ; stStoreList.setSortOrder(sortBy[0]?.order) }"
+ @update:items-per-page="itemsPerPage => { stStoreList.setItemsPerPage(itemsPerPage) }"
+ @update:page="page => { stStoreList.setCurrentPage(page) }"
>
-
+
{{ item.nom }}
-
+
diff --git a/src/stores/datatable.store.ts b/src/stores/datatable.store.ts
new file mode 100644
index 0000000..fb37fa1
--- /dev/null
+++ b/src/stores/datatable.store.ts
@@ -0,0 +1,51 @@
+import type { SortItem } from '@/@core/types'
+
+export const useDataTableStore = defineStore({
+ id: 'dataTable',
+ state: () => ({
+ filters: {} as Record,
+ currentPage: 1,
+ itemsPerPage: 10,
+ searchText: '',
+ sortBy: '',
+ sortOrder: false,
+ }),
+ actions: {
+ clearState() {
+ this.filters = {} as Record
+ this.currentPage = 1
+ this.itemsPerPage = 10
+ this.searchText = ''
+ this.sortBy = ''
+ this.sortOrder = false
+ },
+ setFilters(filterName: string, value: any) {
+ this.filters[filterName] = value
+ },
+ setCurrentPage(page: number) {
+ this.currentPage = page
+ },
+ setItemsPerPage(value: number) {
+ this.itemsPerPage = value
+ },
+ setSearchText(value: string) {
+ this.searchText = value
+ },
+ setSortBy(value: string) {
+ this.sortBy = value
+ },
+ setSortOrder(value: string) {
+ if (value === 'asc')
+ this.sortOrder = true
+ else
+ this.sortOrder = false
+ },
+ getSortBy(): SortItem[] {
+ return [{
+ key: this.sortBy,
+ order: this.sortOrder ? 'asc' : 'desc',
+ }]
+ },
+ },
+},
+)