refactor(ops): retirer la page Dispatch dépréciée — tout sur Planification (−2179 lignes, −240 KB)
Batch 4 de l'audit. La page Dispatch n'était plus utilisée ; Planification la remplace. - Supprimé DispatchPage.vue (2179 lignes → chunk 240 KB disparu du build). - router : route /dispatch → REDIRECT vers /planification (anciens signets OK). - nav.js : entrée « Dispatch » retirée. PlanificationPage : 2 liens « Tableau Dispatch » retirés. - Dashboard (clic job du jour) + TaskNode (goToDispatch) → redirigent vers /planification. - src/api/dispatch + src/config/dispatch INCHANGÉS (modules partagés app-wide). Vérifié : build OK (chunk DispatchPage disparu), nav sans Dispatch (26 items), Planif rend, /dispatch redirige. NON appliqué (vérif avant édition = l'audit ne tenait pas) : consolidation initials() — PAS équivalent (staffInitials = 1re+DERNIÈRE initiale + fallback '' ; local = 1re+2e mot + fallback '?') → changerait les initiales affichées. Fixes de fuites : composants ont déjà onUnmounted → « fuites » = cas v-show non confirmés. Laissés tels quels (churn/risque > gain). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
e5bd63b2d6
commit
cf9feb67f4
|
|
@ -351,9 +351,9 @@ function confirmDelete () {
|
|||
})
|
||||
}
|
||||
|
||||
// ── Navigate to dispatch ──
|
||||
// ── Navigate to planification (ex-Dispatch, page retirée) ──
|
||||
function goToDispatch () {
|
||||
router.push('/dispatch')
|
||||
router.push('/planification')
|
||||
}
|
||||
|
||||
// ── Visual computed ──
|
||||
|
|
|
|||
|
|
@ -17,8 +17,7 @@ export const navItems = [
|
|||
{ path: '/tickets', icon: 'Ticket', label: 'Tickets', requires: 'view_all_tickets', section: 'service' },
|
||||
{ path: '/evaluations', icon: 'Star', label: 'Évaluations', requires: 'view_clients', section: 'service' },
|
||||
{ path: '/pipeline', icon: 'Filter', label: 'Pipeline (ventes)', requires: 'view_clients', section: 'service' },
|
||||
// ── Terrain (effectifs / interventions) ──
|
||||
{ path: '/dispatch', icon: 'Truck', label: 'Dispatch', requires: 'view_all_jobs', section: 'terrain' },
|
||||
// ── Terrain (effectifs / interventions) — page Dispatch retirée, tout est sur Planification ──
|
||||
{ path: '/planification', icon: 'CalendarRange', label: 'Planification', requires: 'view_all_jobs', section: 'terrain' },
|
||||
{ path: '/rdv', icon: 'CalendarClock', label: 'Rendez-vous', requires: 'view_all_jobs', section: 'terrain' },
|
||||
{ path: '/copilote', icon: 'Sparkles', label: 'Copilote', requires: 'view_all_jobs', section: 'terrain' },
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@
|
|||
<q-badge v-if="todayJobs.length" :label="todayJobs.length" color="primary" class="q-ml-sm" />
|
||||
</div>
|
||||
<q-list separator>
|
||||
<q-item v-for="j in todayJobs" :key="j.name" clickable @click="$router.push('/dispatch')">
|
||||
<q-item v-for="j in todayJobs" :key="j.name" clickable @click="$router.push('/planification')">
|
||||
<q-item-section avatar style="min-width:32px">
|
||||
<q-icon :name="j.status === 'completed' ? 'check_circle' : j.assigned_tech ? 'person' : 'radio_button_unchecked'"
|
||||
:color="j.status === 'completed' ? 'green-6' : j.assigned_tech ? 'blue-6' : 'grey-5'" size="20px" />
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -16,7 +16,6 @@
|
|||
<q-separator />
|
||||
<q-item clickable v-close-popup @click="doGenerate"><q-item-section avatar><q-icon name="auto_awesome" color="primary" /></q-item-section><q-item-section>Générer (auto)</q-item-section></q-item>
|
||||
<q-item clickable v-close-popup @click="openLeave"><q-item-section avatar><q-icon name="beach_access" color="teal" /></q-item-section><q-item-section>Congés / absences</q-item-section></q-item>
|
||||
<q-item clickable v-close-popup @click="$router.push('/dispatch')"><q-item-section avatar><q-icon name="dashboard" color="indigo" /></q-item-section><q-item-section>Tableau Dispatch</q-item-section></q-item>
|
||||
<q-separator />
|
||||
<q-item tag="label" clickable><q-item-section avatar><q-icon name="sms" /></q-item-section><q-item-section>Notifier par SMS</q-item-section><q-item-section side><q-toggle v-model="notifySms" dense /></q-item-section></q-item>
|
||||
<q-item clickable v-close-popup @click="openCreateJob"><q-item-section avatar><q-icon name="add_task" color="teal-7" /></q-item-section><q-item-section>Créer un job</q-item-section></q-item>
|
||||
|
|
@ -105,7 +104,6 @@
|
|||
<q-item clickable v-close-popup @click="openTechSync"><q-item-section avatar><q-icon name="group_add" color="green-7" /></q-item-section><q-item-section>Synchroniser les techniciens</q-item-section></q-item>
|
||||
<q-item clickable v-close-popup @click="openJobChar"><q-item-section avatar><q-icon name="timer" color="warning" /></q-item-section><q-item-section>Durées par caractéristique</q-item-section></q-item>
|
||||
<q-item clickable v-close-popup @click="openAssignPanel"><q-item-section avatar><q-icon name="drag_indicator" color="deep-purple" /></q-item-section><q-item-section>Jobs à assigner (glisser-déposer)</q-item-section></q-item>
|
||||
<q-item clickable v-close-popup @click="$router.push('/dispatch')"><q-item-section avatar><q-icon name="open_in_new" color="indigo" /></q-item-section><q-item-section>Tableau Dispatch (détails & priorités)</q-item-section></q-item>
|
||||
<q-item clickable v-close-popup @click="openLeave"><q-item-section avatar><q-icon name="beach_access" /></q-item-section><q-item-section>Congés / absences</q-item-section></q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
|
|
@ -3225,7 +3223,7 @@ function gotoDispatch (t, dateIso) {
|
|||
const q = {}
|
||||
if (t) q.tech = t.id
|
||||
q.date = dateIso || (timelineDays.value[0] && timelineDays.value[0].iso) || start.value
|
||||
router.push({ path: '/dispatch', query: q })
|
||||
router.push({ path: '/planification', query: q }) // page Dispatch retirée → reste sur Planification
|
||||
}
|
||||
// ── Éditeur de JOURNÉE (fenêtre contextuelle ciblée — clic sur le progressbar) ──
|
||||
// Garde le contexte de la grille derrière. Timeline + réordonnancement DRAG-DROP + retrait d'un job.
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ const routes = [
|
|||
{ path: 'theme', component: () => import('src/pages/ThemePage.vue') },
|
||||
{ path: 'facturation/approbations', component: () => import('src/pages/BillingApprovalsPage.vue') },
|
||||
{ path: 'telephony', component: () => import('src/pages/TelephonyPage.vue') },
|
||||
{ path: 'dispatch', component: () => import('src/pages/DispatchPage.vue') },
|
||||
{ path: 'dispatch', redirect: '/planification' }, // page Dispatch retirée → redirige (anciens signets)
|
||||
{ path: 'historique', component: () => import('src/pages/HistoriquePage.vue') },
|
||||
{ path: 'evaluations', component: () => import('src/pages/EvaluationsPage.vue') },
|
||||
{ path: 'planification', component: () => import('src/pages/PlanificationPage.vue') },
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user