typings.d.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. declare namespace GT {
  2. interface IActive {
  3. // 页面唯一标识符
  4. key: string;
  5. // 页面唯一id
  6. id: number;
  7. // 页面参数
  8. params: { [key: string]: any };
  9. // 历史记录
  10. history?: IActive[];
  11. options?: IPageOptions;
  12. }
  13. interface IPageOptions {
  14. // 坐标
  15. left?: string | number;
  16. top?: string | number;
  17. right?: string | number;
  18. // 尺寸
  19. width?: string | number;
  20. height?: string | number;
  21. name?: string; // 页面标题
  22. limit?: boolean; // 拖拽是否可超出父级
  23. drag?: boolean; // 是否可拖拽
  24. zoom?: boolean; // 是否可放大
  25. minWidth?: number; // 最小宽度
  26. minHeight?: number; // 最小高度
  27. header?: boolean; // 是否有title
  28. background?: boolean; // 背景色
  29. }
  30. interface IRouterOptions {
  31. // 异步组件地址
  32. component: () => Promise<any>;
  33. models?: () => Promise<any>;
  34. // 页面唯一标识符
  35. key: number;
  36. options?: IPageOptions;
  37. }
  38. interface IPageProps {
  39. id: number;
  40. params: any;
  41. router: IRouterFunc;
  42. }
  43. interface IRouterFunc {
  44. // 根据key新增页面
  45. add: (
  46. key: string,
  47. params?: any,
  48. callback?: (pageId: number) => void,
  49. ) => void;
  50. // 根据id删除页面
  51. remove: (id: number) => void;
  52. // 根据id跳转页面
  53. push: (key: string, params?: any, id?: number) => void;
  54. // 根据id回退页面
  55. back: (id: number) => void;
  56. }
  57. }
  58. interface IStateHandler {
  59. onStart: () => void;
  60. onUpdate: () => void;
  61. onStop: () => void;
  62. }