ec62fcee51
Add a dedicated SectionFormPage demo component and view to showcase form fields, detail sections, notices, and page-driver-managed state. Remove the obsolete SectionSearchPanel demo route and menu entry, and add spacing to SectionFormPage cards for improved layout.feat(sections): add SectionFormPage demo Add a dedicated SectionFormPage demo component and view to showcase form fields, detail sections, notices, and page-driver-managed state. Remove the obsolete SectionSearchPanel demo route and menu entry, and add spacing to SectionFormPage cards for improved layout.
111 lines
3.1 KiB
TypeScript
111 lines
3.1 KiB
TypeScript
import type { RouteRecordRaw } from 'vue-router'
|
|
|
|
export const routes: RouteRecordRaw[] = [
|
|
{
|
|
path: '/',
|
|
name: 'home',
|
|
component: () => import('@/views/Home.vue'),
|
|
meta: { layout: 'default', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/settings',
|
|
name: 'settings',
|
|
component: () => import('@/views/Settings.vue'),
|
|
meta: { layout: 'default' },
|
|
},
|
|
{
|
|
path: '/login',
|
|
name: 'login',
|
|
component: () => import('@/views/Login.vue'),
|
|
meta: { layout: 'none', guestOnly: true },
|
|
},
|
|
{
|
|
path: '/single-record-maintenance',
|
|
name: 'single-record-maintenance',
|
|
component: () => import('@/views/maint/SingleRecord.vue'),
|
|
meta: { layout: 'default' },
|
|
},
|
|
{
|
|
path: '/master-detail-maintenance',
|
|
name: 'master-detail-maintenance-a',
|
|
component: () => import('@/views/maint/MasterDetailA.vue'),
|
|
meta: { layout: 'default' },
|
|
},
|
|
{
|
|
path: '/master-detail-maintenance-b',
|
|
name: 'master-detail-maintenance-b',
|
|
component: () => import('@/views/maint/MasterDetailB.vue'),
|
|
meta: { layout: 'default' },
|
|
},
|
|
{
|
|
path: '/master-detail-maintenance-c',
|
|
name: 'master-detail-maintenance-c',
|
|
component: () => import('@/views/maint/MasterDetailC.vue'),
|
|
meta: { layout: 'default' },
|
|
},
|
|
{
|
|
path: '/editable-grid-maintenance',
|
|
name: 'editable-grid-maintenance',
|
|
component: () => import('@/views/maint/EditableGrid.vue'),
|
|
meta: { layout: 'default' },
|
|
},
|
|
{
|
|
path: '/demos/sections',
|
|
redirect: '/demos/sections/query-page',
|
|
},
|
|
{
|
|
path: '/demos/sections/query-page',
|
|
name: 'demo-section-query-page',
|
|
component: () => import('@/views/demos/SectionQueryPageDemo.vue'),
|
|
meta: { title: 'SectionQueryPage 示範', layout: 'default' },
|
|
},
|
|
{
|
|
path: '/demos/sections/form-page',
|
|
name: 'demo-section-form-page',
|
|
component: () => import('@/views/demos/SectionFormPageDemo.vue'),
|
|
meta: { title: 'SectionFormPage 示範', layout: 'default' },
|
|
},
|
|
{
|
|
path: '/:fncId([0-9A-Z]{5,6})',
|
|
name: 'fnc-page',
|
|
component: () => import('@/views/FncPage.vue'),
|
|
meta: { layout: 'default' },
|
|
},
|
|
{
|
|
path: '/403',
|
|
name: 'forbidden',
|
|
component: () => import('@/views/errors/Forbidden.vue'),
|
|
meta: { title: 'Forbidden', layout: 'none' },
|
|
},
|
|
{
|
|
path: '/500',
|
|
name: 'server-error',
|
|
component: () => import('@/views/errors/ServerError.vue'),
|
|
meta: { title: 'Server Error', layout: 'none' },
|
|
},
|
|
{
|
|
path: '/503',
|
|
name: 'service-unavailable',
|
|
component: () => import('@/views/errors/ServiceUnavailable.vue'),
|
|
meta: { title: 'Service Unavailable', layout: 'none' },
|
|
},
|
|
{
|
|
path: '/network',
|
|
name: 'network-error',
|
|
component: () => import('@/views/errors/NetworkError.vue'),
|
|
meta: { title: 'Network Error', layout: 'none' },
|
|
},
|
|
{
|
|
path: '/maintenance',
|
|
name: 'maintenance',
|
|
component: () => import('@/views/errors/Maintenance.vue'),
|
|
meta: { title: 'Maintenance', layout: 'none' },
|
|
},
|
|
{
|
|
path: '/:pathMatch(.*)*',
|
|
name: 'not-found',
|
|
component: () => import('@/views/errors/NotFound.vue'),
|
|
meta: { title: 'Not Found', layout: 'none' },
|
|
},
|
|
]
|