menu.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. export interface Menu {
  2. index: number;
  3. title: string;
  4. component: Component;
  5. }
  6. export const stepSimpleMode = [
  7. 'putaway',
  8. ] as const;
  9. export const stepTabMode = [
  10. 'deploy', 'deploy-recheck',
  11. 'soak',
  12. 'decoction',
  13. 'pack', 'pack-recheck',
  14. 'putaway',
  15. ] as const;
  16. export type MenuPath =
  17. | `/step/${(typeof stepSimpleMode)[number]}`
  18. | `/step/${(typeof stepTabMode)[number]}`
  19. ;
  20. export const menus: Record<MenuPath, Menu> = {
  21. '/step/deploy': {
  22. index: 21,
  23. title: '调配管理',
  24. component: defineAsyncComponent(() => import(`@/module/step/StepDeploy.vue`)),
  25. },
  26. '/step/deploy-recheck': {
  27. index: 22,
  28. title: '调配复核管理',
  29. component: defineAsyncComponent(() => import(`@/module/step/StepDeployRecheck.vue`)),
  30. },
  31. '/step/soak': {
  32. index: 31,
  33. title: '浸泡管理',
  34. component: defineAsyncComponent(() => import(`@/module/step/StepSoak.vue`)),
  35. },
  36. '/step/decoction': {
  37. index: 41,
  38. title: '煎煮管理',
  39. component: defineAsyncComponent(() => import(`@/module/step/StepDecoction.vue`)),
  40. },
  41. '/step/pack': {
  42. index: 51,
  43. title: '打包管理',
  44. component: defineAsyncComponent(() => import(`@/module/step/StepPack.vue`)),
  45. },
  46. '/step/pack-recheck': {
  47. index: 52,
  48. title: '打包复核管理',
  49. component: defineAsyncComponent(() => import(`@/module/step/StepPackRecheck.vue`)),
  50. },
  51. '/step/putaway': {
  52. index: 61,
  53. title: '上架取药管理',
  54. component: defineAsyncComponent(() => import(`@/module/step/StepPutaway.vue`)),
  55. },
  56. } as const;
  57. export const defaultMenus = Object.entries(menus)
  58. .sort(([_1, { index: a }], [_2, { index: b }]) => a - b)
  59. .map(([path, { title: name }]) => {
  60. return { name, path };
  61. });