Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d02d47fb87 | |||
| c03df5e810 |
@@ -2238,6 +2238,57 @@ class _PanelEmptyState extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
class _TableauAvecDefilementHorizontal extends StatefulWidget {
|
||||
const _TableauAvecDefilementHorizontal({
|
||||
required this.largeurMinimale,
|
||||
required this.child,
|
||||
});
|
||||
|
||||
final double largeurMinimale;
|
||||
final Widget child;
|
||||
|
||||
@override
|
||||
State<_TableauAvecDefilementHorizontal> createState() =>
|
||||
_TableauAvecDefilementHorizontalState();
|
||||
}
|
||||
|
||||
class _TableauAvecDefilementHorizontalState
|
||||
extends State<_TableauAvecDefilementHorizontal> {
|
||||
final ScrollController _controleur = ScrollController();
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_controleur.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SingleChildScrollView(
|
||||
child: Scrollbar(
|
||||
controller: _controleur,
|
||||
thumbVisibility: true,
|
||||
trackVisibility: true,
|
||||
interactive: true,
|
||||
thickness: 8,
|
||||
radius: const Radius.circular(4),
|
||||
scrollbarOrientation: ScrollbarOrientation.bottom,
|
||||
notificationPredicate: (notification) =>
|
||||
notification.metrics.axis == Axis.horizontal,
|
||||
child: SingleChildScrollView(
|
||||
controller: _controleur,
|
||||
scrollDirection: Axis.horizontal,
|
||||
padding: const EdgeInsets.only(bottom: 14),
|
||||
child: ConstrainedBox(
|
||||
constraints: BoxConstraints(minWidth: widget.largeurMinimale),
|
||||
child: widget.child,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _VueEmpruntsTableau extends StatelessWidget {
|
||||
const _VueEmpruntsTableau({
|
||||
required this.items,
|
||||
@@ -2556,11 +2607,8 @@ class _VueEmpruntsTableau extends StatelessWidget {
|
||||
color: Colors.white,
|
||||
border: Border.all(color: EnsupColors.line),
|
||||
),
|
||||
child: SingleChildScrollView(
|
||||
child: SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: ConstrainedBox(
|
||||
constraints: BoxConstraints(minWidth: largeurDisponible),
|
||||
child: _TableauAvecDefilementHorizontal(
|
||||
largeurMinimale: largeurDisponible,
|
||||
child: DataTable(
|
||||
sortColumnIndex: _sortColumnIndex,
|
||||
sortAscending: ordre == "asc",
|
||||
@@ -2607,8 +2655,6 @@ class _VueEmpruntsTableau extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3098,11 +3144,8 @@ class _VueMaterielsTableau extends StatelessWidget {
|
||||
color: Colors.white,
|
||||
border: Border.all(color: EnsupColors.line),
|
||||
),
|
||||
child: SingleChildScrollView(
|
||||
child: SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: ConstrainedBox(
|
||||
constraints: BoxConstraints(minWidth: largeurDisponible),
|
||||
child: _TableauAvecDefilementHorizontal(
|
||||
largeurMinimale: largeurDisponible,
|
||||
child: DataTable(
|
||||
sortColumnIndex: _sortColumnIndex,
|
||||
sortAscending: ordre == "asc",
|
||||
@@ -3148,8 +3191,6 @@ class _VueMaterielsTableau extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3626,11 +3667,8 @@ class _VueAnomaliesTableau extends StatelessWidget {
|
||||
color: Colors.white,
|
||||
border: Border.all(color: EnsupColors.line),
|
||||
),
|
||||
child: SingleChildScrollView(
|
||||
child: SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: ConstrainedBox(
|
||||
constraints: BoxConstraints(minWidth: largeurDisponible),
|
||||
child: _TableauAvecDefilementHorizontal(
|
||||
largeurMinimale: largeurDisponible,
|
||||
child: DataTable(
|
||||
sortColumnIndex: _sortColumnIndex,
|
||||
sortAscending: ordre == "asc",
|
||||
@@ -3673,8 +3711,6 @@ class _VueAnomaliesTableau extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -4250,11 +4286,8 @@ class _VueHistoriqueTableau extends StatelessWidget {
|
||||
color: Colors.white,
|
||||
border: Border.all(color: EnsupColors.line),
|
||||
),
|
||||
child: SingleChildScrollView(
|
||||
child: SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: ConstrainedBox(
|
||||
constraints: BoxConstraints(minWidth: largeurDisponible),
|
||||
child: _TableauAvecDefilementHorizontal(
|
||||
largeurMinimale: largeurDisponible,
|
||||
child: DataTable(
|
||||
sortColumnIndex: _sortColumnIndex,
|
||||
sortAscending: ordre == "asc",
|
||||
@@ -4297,8 +4330,6 @@ class _VueHistoriqueTableau extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -525,6 +525,14 @@ En terminal interactif (VS Code), `migrate dev` fonctionne normalement (taper `y
|
||||
- La confirmation reste enregistrée, le message de succès reste visible et les données de supervision sont rechargées normalement.
|
||||
- Vérifications réussies : `dart analyze` sans erreur et serveur Flutter opérationnel sur le port 5000.
|
||||
|
||||
### Étape 55 — Défilement horizontal visible des tableaux responsable
|
||||
- Les tableaux Emprunts, Stock matériel, Anomalies et Historique restent accessibles sur les écrans de largeur intermédiaire.
|
||||
- Un composant partagé gère le défilement horizontal avec son propre contrôleur Flutter.
|
||||
- La barre horizontale est visible, interactive et positionnée sous le contenu de chaque tableau.
|
||||
- Les dernières colonnes, notamment les statuts et les actions, peuvent être atteintes sans modifier la disposition sur grand écran.
|
||||
- Les listes compactes mobiles existantes sont conservées sous leurs seuils responsifs.
|
||||
- Vérifications réussies : les quatre tableaux utilisent le composant partagé, `dart analyze` est sans erreur et le serveur Flutter répond sur le port 5000.
|
||||
|
||||
---
|
||||
|
||||
*Dernière mise à jour : 2026-07-24 — Rafraîchissement après décision responsable corrigé.*
|
||||
*Dernière mise à jour : 2026-07-24 — Défilement horizontal des tableaux responsable ajouté.*
|
||||
|
||||
Reference in New Issue
Block a user