Major dispatch/task system overhaul: - Project templates with 3-step wizard (choose template → edit steps → publish) - 4 built-in templates: phone service, fiber install, move, repair - Nested task tree with recursive TaskNode component (parent_job hierarchy) - n8n webhook integration (on_open_webhook, on_close_webhook per task) - Inline task editing: status, priority, type, tech assignment, tags, delete - Tech assignment + tags from ticket modal → jobs appear on dispatch timeline - ERPNext custom fields: parent_job, on_open_webhook, on_close_webhook, step_order - Refactored ClientDetailPage, ChatterPanel, DetailModal, dispatch store - CSS consolidation, dead code cleanup, composable extraction - Dashboard KPIs with dispatch integration Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
28 lines
1.2 KiB
JavaScript
28 lines
1.2 KiB
JavaScript
import { route } from 'quasar/wrappers'
|
|
import { createRouter, createWebHashHistory } from 'vue-router'
|
|
|
|
const routes = [
|
|
{
|
|
path: '/',
|
|
component: () => import('src/layouts/MainLayout.vue'),
|
|
children: [
|
|
{ path: '', component: () => import('src/pages/DashboardPage.vue') },
|
|
{ path: 'clients', component: () => import('src/pages/ClientsPage.vue') },
|
|
{ path: 'clients/:id', component: () => import('src/pages/ClientDetailPage.vue'), props: true },
|
|
{ path: 'tickets', component: () => import('src/pages/TicketsPage.vue') },
|
|
{ path: 'equipe', component: () => import('src/pages/EquipePage.vue') },
|
|
{ path: 'rapports', component: () => import('src/pages/RapportsPage.vue') },
|
|
{ path: 'ocr', component: () => import('src/pages/OcrPage.vue') },
|
|
{ path: 'settings', component: () => import('src/pages/SettingsPage.vue') },
|
|
{ path: 'dispatch', component: () => import('src/pages/DispatchPage.vue') },
|
|
],
|
|
},
|
|
]
|
|
|
|
export default route(function () {
|
|
return createRouter({
|
|
history: createWebHashHistory(process.env.VUE_ROUTER_BASE),
|
|
routes,
|
|
})
|
|
})
|