ScopeEngine.d.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. import { Scope } from "./Scope";
  2. export declare enum FuncDomain {
  3. SCOPE = "scope",
  4. SYSTEM = "system"
  5. }
  6. export declare enum BizMode {
  7. query = 1,
  8. formAndGridEdit = 2,
  9. formEditOnly = 3,
  10. gridEditOnly = 4
  11. }
  12. export declare enum BizFormat {
  13. button = 1,
  14. progress = 2,
  15. date = 3,
  16. datetime = 4,
  17. percentage = 5
  18. }
  19. export declare enum BizUnique {
  20. u_a = 1,
  21. u_wh = 2,
  22. u_ow = 3,
  23. u_pj = 4,
  24. u_od = 5,
  25. u_wh_ow_pj = 6
  26. }
  27. export interface BizField {
  28. column_desc: string;
  29. column_name: string;
  30. mode: BizMode;
  31. column_domain: string;
  32. column_length: number;
  33. column_precision: number;
  34. hide: string;
  35. xtype: string;
  36. readonly: string;
  37. disabled: string;
  38. required: string;
  39. dict: string;
  40. datasource: string;
  41. dataconv: string;
  42. format: BizFormat;
  43. grid_sort: number;
  44. form_sort: number;
  45. form_label: string;
  46. form_group: string;
  47. grid_width: number;
  48. grid_weight: number;
  49. form_high: number;
  50. form_newline: string;
  51. unique: BizUnique;
  52. defaults: string;
  53. change_event: string;
  54. scan_event: string;
  55. front_logic: string;
  56. }
  57. export interface BizListeners {
  58. [propName: string]: string;
  59. }
  60. export interface BizButton {
  61. sort: number;
  62. btn_name: string;
  63. hidden: string;
  64. listeners: BizListeners;
  65. icon: string;
  66. }
  67. export interface BizDomain {
  68. name?: string;
  69. layout?: DomainLayout;
  70. controller: string;
  71. groovy: string;
  72. fields: BizField[];
  73. buttons: BizButton[];
  74. }
  75. export interface DomainLayout {
  76. name?: string;
  77. }
  78. export interface BillFile {
  79. domains: {
  80. [propName: string]: {
  81. domain: string;
  82. layout: string;
  83. type: "header" | "detail";
  84. header: string;
  85. mode: "table" | "form";
  86. };
  87. };
  88. layout: string;
  89. name: string;
  90. converter: string;
  91. }
  92. export interface BizLayout {
  93. layout?: "fit" | "border";
  94. items: {
  95. domain: string;
  96. region?: "center" | "north" | "south" | "east" | "west";
  97. height?: string;
  98. width?: string;
  99. layout?: BizLayout;
  100. }[];
  101. }
  102. export interface BizConverter {
  103. [propName: string]: {
  104. [propName: string]: string;
  105. };
  106. }
  107. export interface BizFile {
  108. bill: BillFile;
  109. domains: {
  110. [propName: string]: BizDomain;
  111. };
  112. layout: BizLayout;
  113. converter: BizConverter;
  114. }
  115. export declare class ScopeEngine {
  116. static getBizFile(director: any): Promise<BizFile>;
  117. static buildScopeFromBillFile(billFile: BillFile): Promise<Scope>;
  118. static buildScopeFromPath(path: string): Promise<Scope>;
  119. static buildScopeFromBizFile(bizFile: BizFile): Scope;
  120. private static buildForm;
  121. private static buildGrid;
  122. private static buildFieldSet;
  123. private static buildButton;
  124. private static buildListeners;
  125. /**
  126. * 只检索 items 的模式,深度遍历 vjson
  127. */
  128. private static deepTravVJsonReplaceDomain;
  129. }