---
suivi: 1387
date: 2026-09-01
sujet: registres_juridiques_pleine_largeur
chantier: juridique
type: feature
statut: poussé
hash: 3f457748
fichiers:
  - resources/js/Components/Juridique/RegistreJuridiqueCrud.vue
  - resources/js/utils/juridiqueRegistreStatut.js
  - resources/js/Pages/Juridique/Contentieux/Index.vue
  - resources/js/Pages/Juridique/Precontentieux/Index.vue
  - resources/js/Pages/Juridique/NonConformites/Index.vue
  - app/Http/Controllers/JuridiqueRegistreController.php
  - app/Support/Juridique/JuridiqueRegistreSuppressionResolver.php
  - tests/Unit/JuridiqueRegistre1387SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
---

## PROMPT ENVOYÉ

SUIVI #1387 — registres juridiques pleine largeur, ligne cliquable, suppression admin fiche.

## ÉTAPE 0 — INVENTAIRE

### Routes → controller → Vue

| URL | Route name | Controller | Vue Inertia |
|-----|------------|------------|-------------|
| GET /juridique/registres/contentieux | juridique.registres.contentieux.index | JuridiqueRegistreController@index | Juridique/Contentieux/Index |
| GET /juridique/registres/precontentieux | juridique.registres.precontentieux.index | idem | Juridique/Precontentieux/Index |
| GET /juridique/registres/non-conformites | juridique.registres.non-conformites.index | idem | Juridique/NonConformites/Index |

Les trois pages Index délèguent à **un composant commun** : `RegistreJuridiqueCrud.vue`.

### SHOW COLUMNS (migrations — MySQL local indisponible au dev)

Tables dérivées des migrations `2026_07_06_140000`, `140100`, `140200`, `160000`.

### Suppression actuelle

- Route : `DELETE /juridique/registres/{slug}/{id}` → `JuridiqueRegistreController@destroy`
- **Hard delete** Eloquent (`->delete()`) — pas de soft delete sur ces tables (distinct de #1382 demandes juridiques).

### Commentaires

- Liste : `withCount('entiteCommentaires')` dans `index()` — pas de N+1.
- GET `…/{id}/commentaires` → `JuridiqueRegistreCommentaireController@index`
- POST `…/{id}/commentaires` → `store`

## SYNTHÈSE

- Pleine largeur (`-mx-8`), en-têtes nowrap + sticky, scroll H/V, colonne libellé/objet figée.
- Colonne Actions supprimée ; bulle commentaires dans libellé (`@click.stop`).
- Ligne cliquable → dialog édition (même destination que crayon).
- Suppression dans fiche, GS_ADMIN_ERP via `m365GroupNames()` brut, 403 back.

## DÉPLOIEMENT-TEST

git pull · optimize:clear · view:clear · journal:sync · tester 3 registres · 403 suppression compte GS_JURIDIQUE.

## LEÇON

Registres juridiques = 1 composant CRUD partagé : un seul fichier à modifier pour les 3 listes.
