diff --git a/app/components/common/DataTable.vue b/app/components/common/DataTable.vue
new file mode 100644
index 0000000..24e0405
--- /dev/null
+++ b/app/components/common/DataTable.vue
@@ -0,0 +1,308 @@
+
+
+ {{ pagination.pageItems }} / {{ pagination.totalItems }}
+ résultat{{ pagination.totalItems > 1 ? 's' : '' }}
+
+ {{ emptyMessage }}
+
+ {{ noResultsMessage }}
+
+ {{ isEmpty ? emptyMessage : noResultsMessage }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ —
+
+
+
+
+
+
+
+
- {{ entries.length }} / {{ total }} résultat{{ total > 1 ? 's' : '' }} -
-- Aucune activité enregistrée. -
- -- Aucune activité ne correspond à vos filtres. -
- - -| Date | -Action | -Type | -Entité | -Auteur | -Détails | -
|---|---|---|---|---|---|
| {{ formatHistoryDate(entry.createdAt) }} | -- - {{ historyActionLabel(entry.action) }} - - | -- - {{ entityTypeLabel(entry.entityType) }} - - | -
- |
- {{ entry.actor?.label || '—' }} | -- - — - | -
|
-
-
-
- {{ diffEntry.label }} :
- {{ diffEntry.fromLabel }}
- →
- {{ diffEntry.toLabel }}
-
- |
- |||||
- {{ comments.length }} / {{ total }} résultat{{ total > 1 ? 's' : '' }} -
-- Aucun commentaire trouvé. -
- - - -| Contenu | -Type | -Item | -Auteur | -Date | -Statut | -- Actions - | -
|---|---|---|---|---|---|---|
| - {{ comment.content }} - | -- - {{ entityTypeLabel(comment.entityType) }} - - | -
- |
- - {{ comment.authorName }} - | -- {{ formatCommentDate(comment.createdAt) }} - | -- - {{ comment.status === 'open' ? 'Ouvert' : 'Résolu' }} - - | -- - - {{ comment.resolvedByName }} - - | -
| Nom | -Téléphone | -- Actions - | -|
|---|---|---|---|
| {{ constructeur.name }} | -{{ constructeur.email || '—' }} | -{{ formatPhoneDisplay(constructeur.phone) }} | -
-
-
- |
-
- {{ documentsOnPage }} / {{ documentsTotal }} résultat{{ documentsTotal > 1 ? 's' : '' }} -
-| Nom | -Type | -Taille | -Rattaché à | -Date | -Actions | -
|---|---|---|---|---|---|
|
-
-
-
-
-
-
-
- {{ doc.name }}
- {{ doc.filename }}
- |
- {{ doc.mimeType || 'Inconnu' }} | -{{ formatSize(doc.size) }} | -
-
- Site · {{ doc.site.name }}
- Machine · {{ doc.machine.name }}
- Composant · {{ doc.composant.name }}
- Pièce · {{ doc.piece.name }}
- Produit · {{ doc.product.name }}
- Non défini
-
- |
- {{ formatFrenchDate(doc.createdAt) }} | -
-
-
- |
-
- {{ filteredCount }} / {{ totalCount }} résultat{{ filteredCount > 1 ? 's' : '' }} -
-- Chargement du catalogue… -
+- Aucun produit n'a encore été enregistré. -
+ +- Aucun produit ne correspond à votre recherche. -
+ + {{ row.product.name }} + -| Aperçu | -Nom | -Référence | -Type de produit | -Fournisseurs | -Prix indicatif | -Actions | -
|---|---|---|---|---|---|---|
|
- |
- {{ row.product.name }} | -{{ row.product.reference || '—' }} | -
- |
-
-
-
- {{ supplier }}
-
-
- +{{ row.suppliers.overflow }}
-
-
- —
- |
- - {{ formatPrice(row.product.supplierPrice) }} - | -
- |
-