import { modeFlags, ModeFlag } from '@/store/sys'; import { ComputedRef } from 'vue'; import { RouteRecordRaw } from 'vue-router'; import { RouteNameRaw, RouteMetaRaw, readyRouteMeta, readyRouteName, defRouteName } from './constant'; export type RouteAtom[keyof RouteNameRaw]> = { path: string; name: key; meta: key extends keyof RouteMetaRaw ? RouteMetaRaw[key] : never; component: RouteRecordRaw['component']; redirect?: string; children?: RoutesRaw; }; export type RoutesRaw = RouteAtom[]; import graphic from '@/views/graphic/index.vue'; export const writeRoutesRaw: RoutesRaw = [ { path: '/graphic/:mode/:action/:id', name: readyRouteName.graphic, meta: readyRouteMeta.graphic, component: () => import('@/views/graphic/index.vue'), }, { path: '/scene', name: readyRouteName.scene, meta: readyRouteMeta.scene, component: () => import('@/views/scene/index.vue'), }, { path: '/photos', name: readyRouteName.photos, meta: readyRouteMeta.photos, component: () => import('@/views/photos/index.vue'), }, { path: '/accidents', name: readyRouteName.accidents, meta: readyRouteMeta.accidents, component: () => import('@/views/accidents/index.vue'), }, { path: '/gena4/:id1/:id2', name: readyRouteName.gena4, meta: readyRouteMeta.gena4, component: () => import('@/views/accidents/print.vue'), }, { path: '/roads', name: readyRouteName.roads, meta: readyRouteMeta.roads, component: () => import('@/views/roads/index.vue'), }, { path: '/tabulation/:id', name: readyRouteName.tabulation, meta: readyRouteMeta.tabulation, component: () => import('@/views/roads/tabulation.vue'), }, { path: '/tables/:name', name: readyRouteName.tables, meta: readyRouteMeta.tables, component: () => import('@/views/tables/index.vue'), }, { path: '/demo/:id', name: readyRouteName.demo, meta: readyRouteMeta.demo, component: () => import('@/views/tables/demo.vue'), }, ]; export type RoutesRef = ComputedRef<{ list: RoutesRaw; default: typeof defRouteName; }>;