feat(field_sales) : carte interactive Leaflet + écran de planification de tournée (ERP-127)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Failing after 56s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Failing after 21s

- API visitable_tiers (provider DBAL bbox/q/type, paginé) pour les pins de la carte
- POST /tours/{id}/reorder (drag & drop) : renumérotation atomique + recompute
- Layer front field-sales : TourMap (pins, popup, polyline, sélection rectangle),
  liste d'étapes draggable (vuedraggable), composable de planification + Vitest
- Pages /tours, /tours/new, /tours/[id]/plan (split responsive, point custom géocodé)
- i18n FR, deep links Waze/Google/Apple, état 100% local
This commit is contained in:
Matthieu
2026-06-11 17:38:40 +02:00
parent f8f7571cc0
commit f8793ab359
23 changed files with 2721 additions and 2 deletions
@@ -0,0 +1,15 @@
import { usePaginatedList } from '~/shared/composables/usePaginatedList'
import type { Tour } from '~/modules/field-sales/types/tour'
/**
* Liste paginee des tournees (GET /api/tours), branchee sur usePaginatedList
* (regle ABSOLUE n°13 : toute collection est paginee). Tri par date decroissante
* par defaut. Le filtre `owner` est applique cote back (RG-6.01) — rien a passer
* ici.
*/
export function useToursRepository() {
return usePaginatedList<Tour>({
url: '/tours',
defaultSort: { field: 'tourDate', direction: 'desc' },
})
}