constant.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { modeFlags, ModeFlag, isLogin } from "@/store/sys";
  2. import { computed, ComputedRef } from "vue";
  3. import { ui18n } from "@/lang";
  4. export const readyRouteName = {
  5. layout: "layout",
  6. query: "query",
  7. hotspot: "hotspot",
  8. measure: "measure",
  9. graphic: "graphic",
  10. scene: "scene",
  11. photos: "photos",
  12. accidents: "accidents",
  13. roads: "roads",
  14. tabulation: "tabulation"
  15. } as const;
  16. export const writeRouteName = {
  17. ...readyRouteName,
  18. setup: "setup",
  19. } as const;
  20. export const defRouteName = readyRouteName.query;
  21. export type RouteNameRaw<T extends ModeFlag = any> =
  22. T extends typeof modeFlags.LOGIN
  23. ? typeof writeRouteName
  24. : typeof readyRouteName;
  25. export type RouteMetaAtom = {
  26. title: string;
  27. onClick?: () => void;
  28. svg?: boolean;
  29. };
  30. export type RouteMetaRaw<T extends ModeFlag = any> = {
  31. [key in keyof RouteNameRaw<T>]: RouteMetaAtom;
  32. };
  33. export const readyRouteMeta: RouteMetaRaw = {
  34. [readyRouteName.layout]: { title: ui18n.t("sys.title") },
  35. [readyRouteName.query]: { title: ui18n.t("sys.query") },
  36. [readyRouteName.hotspot]: { title: ui18n.t("hotspot.name") },
  37. [readyRouteName.measure]: { title: ui18n.t("measure.name") },
  38. [readyRouteName.graphic]: { title: "绘图" },
  39. [readyRouteName.scene]: { title: "绘图" },
  40. [readyRouteName.photos]: {title: "相册"},
  41. [readyRouteName.accidents]: {title: "事故照片"},
  42. [readyRouteName.roads]: {title: "道路照片"},
  43. [readyRouteName.tabulation]: {title: "制表"}
  44. };
  45. export const writeRouteMeta: RouteMetaRaw<typeof modeFlags.LOGIN> = {
  46. ...readyRouteMeta,
  47. [writeRouteName.setup]: { title: ui18n.t("sys.setup") },
  48. };
  49. export type RouteName<T extends ModeFlag = any> = ComputedRef<RouteNameRaw<T>>;
  50. export const routeName = computed(() =>
  51. isLogin.value ? writeRouteName : readyRouteName
  52. );
  53. export type RouteMeta<T extends ModeFlag = any> = ComputedRef<RouteMetaRaw<T>>;
  54. export const routeMeta = computed(() =>
  55. isLogin.value ? writeRouteMeta : readyRouteMeta
  56. );
  57. export default writeRouteName;