types.d.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import type { RouteRecordRaw } from 'vue-router';
  2. import { RoleEnum } from '/@/enums/roleEnum';
  3. import Component from '/@/components/types';
  4. export interface RouteMeta {
  5. // title
  6. title: string;
  7. // Whether to ignore permissions
  8. ignoreAuth?: boolean;
  9. // role info
  10. roles?: RoleEnum[];
  11. // Whether not to cache
  12. ignoreKeepAlive?: boolean;
  13. // Is it fixed on tab
  14. affix?: boolean;
  15. // icon on tab
  16. icon?: string;
  17. // Jump address
  18. frameSrc?: string;
  19. // Outer link jump address
  20. externalLink?: string;
  21. // current page transition
  22. transitionName?: string;
  23. // Whether the route has been dynamically added
  24. hideBreadcrumb?: boolean;
  25. // Carrying parameters
  26. carryParam?: boolean;
  27. single?: boolean;
  28. }
  29. export interface AppRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'> {
  30. name: string;
  31. meta: RouteMeta;
  32. component?: Component;
  33. components?: Component;
  34. children?: AppRouteRecordRaw[];
  35. props?: Record<string, any>;
  36. fullPath?: string;
  37. }
  38. export interface MenuTag {
  39. type?: 'primary' | 'error' | 'warn' | 'success';
  40. content?: string;
  41. dot?: boolean;
  42. }
  43. export interface Menu {
  44. name: string;
  45. icon?: string;
  46. path: string;
  47. disabled?: boolean;
  48. children?: Menu[];
  49. orderNo?: number;
  50. roles?: RoleEnum[];
  51. meta?: Partial<RouteMeta>;
  52. tag?: MenuTag;
  53. }
  54. export interface MenuModule {
  55. orderNo?: number;
  56. menu: Menu;
  57. }
  58. // interface RouteModule {
  59. // layout: AppRouteRecordRaw;
  60. // routes: AppRouteRecordRaw[];
  61. // children?: AppRouteRecordRaw[];
  62. // component?: Component;
  63. // }
  64. // export type AppRouteModule = RouteModule | AppRouteRecordRaw;
  65. export type AppRouteModule = AppRouteRecordRaw;