feat(ui) : refonte cartes dépliantes structure machine + DataTable parc machines + fix activity-log
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled

- Parc Machines transformé en DataTable avec filtres (site, date création, recherche)
- Vue d'ensemble : ajout filtre par plage de dates de création
- Activity-log : correction des liens entités (routes singulier sans /edit, ajout machine/document/model_type)
- ComponentItem & PieceItem : refonte complète des cartes dépliantes (design industriel raffiné)
  - Header compact avec tags colorés contrastés (référence, réf. auto, prix, produit, champs machine)
  - Panneau déplié structuré en sections avec mini-headers
  - Bordure gauche primary pour hiérarchie visuelle
- Ajout referenceAuto dans header et infos pour composants et pièces
- Suppression double encadrement ComponentHierarchy

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-06 20:46:08 +02:00
parent 191e071957
commit 3cd18a721a
6 changed files with 797 additions and 599 deletions

View File

@@ -41,7 +41,7 @@
>
</div>
</div>
<div class="form-control md:w-64">
<div class="form-control md:w-48">
<label class="label">
<span class="label-text text-xs font-semibold uppercase tracking-wide text-base-content/50">Site</span>
</label>
@@ -58,6 +58,24 @@
</option>
</select>
</div>
<div class="form-control">
<label class="label">
<span class="label-text text-xs font-semibold uppercase tracking-wide text-base-content/50">Date de création</span>
</label>
<div class="flex items-center gap-2">
<input
v-model="dateFrom"
type="date"
class="input input-bordered input-sm"
>
<span class="text-xs text-base-content/50">à</span>
<input
v-model="dateTo"
type="date"
class="input input-bordered input-sm"
>
</div>
</div>
</div>
</div>
</div>
@@ -277,6 +295,8 @@ const showAddSiteModal = ref(false)
const showAddMachineModal = ref(false)
const searchTerm = ref('')
const selectedSiteFilter = ref('')
const dateFrom = ref('')
const dateTo = ref('')
const collapsedSites = ref([])
const preselectedSiteId = ref('')
@@ -327,6 +347,25 @@ const filteredSites = computed(() => {
filtered = filtered.filter(site => site.id === selectedSiteFilter.value)
}
// Filtrer les machines par date de création
if (dateFrom.value || dateTo.value) {
const from = dateFrom.value ? new Date(dateFrom.value) : null
const to = dateTo.value ? new Date(dateTo.value) : null
if (from) from.setHours(0, 0, 0, 0)
if (to) to.setHours(23, 59, 59, 999)
filtered = filtered.map((site) => {
const filteredMachines = (site.machines || []).filter((machine) => {
if (!machine.createdAt) return false
const created = new Date(machine.createdAt)
if (from && created < from) return false
if (to && created > to) return false
return true
})
return { ...site, machines: filteredMachines }
}).filter(site => site.machines.length > 0)
}
// Filtrer par terme de recherche
if (searchTerm.value) {
filtered = filtered.filter((site) => {