refacto(tables) : composant DataTable global + migration de toutes les tables

- Nouveau composant DataTable réutilisable avec tri par en-têtes, pagination, filtres colonnes
- Nouveau composable useDataTable (sort/page/search/perPage/columnFilters + persistance URL)
- Migration des 9 tables : constructeurs, comments, admin, pieces-catalog, component-catalog, product-catalog, documents, activity-log, ManagementView (catégories)
- Filtres "Type de" server-side (ipartial) pour pièces, composants, produits

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matthieu
2026-03-04 16:05:00 +01:00
parent 89dc2e93b8
commit 6f1bac381d
16 changed files with 1945 additions and 1943 deletions

View File

@@ -41,6 +41,7 @@ interface LoadComposantsOptions {
itemsPerPage?: number
orderBy?: string
orderDir?: 'asc' | 'desc'
typeName?: string
force?: boolean
}
@@ -107,10 +108,11 @@ export function useComposants() {
itemsPerPage = 30,
orderBy = 'name',
orderDir = 'asc',
typeName,
force = false,
} = options
if (!force && loaded.value && !search && page === 1) {
if (!force && loaded.value && !search && !typeName && page === 1) {
return {
success: true,
data: { items: composants.value, total: total.value, page, itemsPerPage },
@@ -135,6 +137,10 @@ export function useComposants() {
params.set('name', search.trim())
}
if (typeName && typeName.trim()) {
params.set('typeComposant.name', typeName.trim())
}
params.set(`order[${orderBy}]`, orderDir)
const result = await get(`/composants?${params.toString()}`)