index.d.ts 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. interface JQuery {
  2. zTree: IzTree;
  3. }
  4. interface IJSON {
  5. [key: string]: any
  6. }
  7. interface ITreeNode {
  8. checked?: boolean;
  9. children?: Array<ITreeNode>;
  10. chkDisabled?: boolean;
  11. click?: CallBackOnFn;
  12. getCheckStatus?: () => object;
  13. getIndex?: () => number;
  14. getNextNode?: () => ITreeNode;
  15. getParentNode?: () => ITreeNode;
  16. getPath?: () => Array<ITreeNode>;
  17. getPrevNode?: () => ITreeNode;
  18. halfCheck?: boolean;
  19. icon?: string;
  20. iconClose?: string;
  21. iconOpen?: string;
  22. iconSkin?: string;
  23. isHidden?: boolean;
  24. isParent?: boolean;
  25. name?: string;
  26. nocheck?: boolean;
  27. open?: boolean;
  28. target?: string;
  29. url?: string;
  30. check_Child_State?: number;
  31. check_Focus?: boolean;
  32. checkedOld?: boolean;
  33. editNameFlag?: boolean;
  34. isAjaxing?: boolean;
  35. isFirstNode?: boolean;
  36. isHover?: boolean;
  37. isLastNode?: boolean;
  38. level?: number;
  39. parentTId?: string;
  40. tId?: string;
  41. [key: string]: any;
  42. }
  43. type ApplicationType = 'application/x-www-form-urlencoded' | 'application/json';
  44. type AjaxType = 'get' | 'post';
  45. type DataType = 'text' | 'json' | 'jsonp' | 'html' | 'xml' | 'script';
  46. /**
  47. * Defines a class to be returned by the zTree view.nodeClasses function
  48. */
  49. interface INodeClasses
  50. {
  51. add: string[];
  52. remove: string[];
  53. }
  54. interface IAsync {
  55. autoParam?: string[];
  56. contentType?: ApplicationType;
  57. dataFilter?: (treeId: string, parentNode: ITreeNode, responseData: IJSON[] | IJSON | string) => IJSON[] | IJSON;
  58. dataType?: DataType;
  59. enable?: boolean;
  60. otherParam?: string[] | IJSON;
  61. type?: AjaxType;
  62. headers?: object;
  63. xhrFields?: object;
  64. url: ((treeId: string, treeNode: ITreeNode) => string) | string;
  65. }
  66. type CallBackBeforeFn = (treeId: string, treeNode: ITreeNode) => boolean | Promise<boolean>;
  67. type CallBackOnFn = (event: Event, treeId: string, treeNode: ITreeNode) => void | Promise<void>;
  68. interface ICallback {
  69. beforeAsync?: CallBackBeforeFn;
  70. beforeCheck?: CallBackBeforeFn;
  71. beforeClick?: (treeId: string, treeNode: ITreeNode, clickFlag: number) => boolean | Promise<boolean>;
  72. beforeCollapse?: CallBackBeforeFn;
  73. beforeDblClick?: CallBackBeforeFn;
  74. beforeDrag?: (treeId: string, treeNode: ITreeNode[]) => boolean | Promise<boolean>;
  75. beforeDragOpen?: CallBackBeforeFn;
  76. beforeDrop?: (treeId: string, treeNode: ITreeNode[], targetNode: object, moveType: string, isCopy: boolean) => boolean | Promise<boolean>;
  77. beforeEditName?: CallBackBeforeFn;
  78. beforeExpand?: CallBackBeforeFn;
  79. beforeMouseDown?: CallBackBeforeFn;
  80. beforeMouseUp?: CallBackBeforeFn;
  81. beforeRemove?: CallBackBeforeFn;
  82. beforeRename?: (treeId: string, treeNode: ITreeNode, newName: string, isCancel: boolean) => boolean | Promise<boolean>;
  83. beforeRightClick?: CallBackBeforeFn;
  84. onAsyncError?: (event: Event, treeId: string, treeNode: ITreeNode, XMLHttpRequest: any, textStatus: string, errorThrown: string) => void | Promise<void>;
  85. onAsyncSuccess?: (event: Event, treeId: string, treeNode: ITreeNode, msg: string | object) => void | Promise<void>;
  86. onCheck?: (event: Event, treeId: string, treeNode: ITreeNode) => void | Promise<void>;
  87. onClick?: (event: Event, treeId: string, treeNode: ITreeNode, clickFlag: number) => void | Promise<void>;
  88. onCollapse?: (event: Event, treeId: string, treeNode: ITreeNode) => void | Promise<void>;
  89. onDblClick?: (event: Event, treeId: string, treeNode: ITreeNode) => void | Promise<void>;
  90. onDrag?: (event: Event, treeId: string, treeNodes: ITreeNode[]) => void | Promise<void>;
  91. onDragMove?: (event: Event, treeId: string, treeNodes: ITreeNode[]) => void | Promise<void>;
  92. onDrop?: (event: Event, treeId: string, treeNodes: ITreeNode[], targetNode: object, moveType: string, isCopy: boolean) => void | Promise<void>;
  93. onExpand?: CallBackOnFn;
  94. onMouseDown?: CallBackOnFn;
  95. onMouseUp?: CallBackOnFn;
  96. onNodeCreated?: CallBackOnFn;
  97. onRemove?: CallBackOnFn;
  98. onRename?: (event: Event, treeId: string, treeNode: ITreeNode, isCancel: boolean) => void | Promise<void>;
  99. onRightClick?: CallBackOnFn;
  100. }
  101. interface ICheck {
  102. autoCheckTrigger?: boolean;
  103. chkboxType?: IJSON;
  104. chkStyle?: string;
  105. enable?: boolean;
  106. nocheckInherit?: boolean;
  107. chkDisabledInherit?: boolean;
  108. radioType?: string;
  109. }
  110. interface IData {
  111. keep?: {
  112. leaf?: boolean;
  113. parent?: boolean;
  114. },
  115. key?: {
  116. checked?: string;
  117. children?: string;
  118. isParent?: string;
  119. isHidden?: string;
  120. name?: string;
  121. title?: string;
  122. url?: string;
  123. },
  124. simpleData?: {
  125. enable?: boolean;
  126. idKey?: string;
  127. pIdKey?: string;
  128. rootPId?: any;
  129. }
  130. }
  131. type removeFnType<T> = (treeId: string, treeNode: ITreeNode) => T;
  132. interface IEdit {
  133. drag?: {
  134. autoExpandTrigger?: boolean;
  135. isCopy?: boolean;
  136. isMove?: boolean;
  137. prev?: boolean;
  138. next?: boolean;
  139. inner?: boolean;
  140. borderMax?: number;
  141. borderMin?: number;
  142. minMoveSize?: number;
  143. maxShowNodeNum?: number;
  144. autoOpenTime?: number;
  145. },
  146. editNameSelectAll?: boolean;
  147. enable?: boolean;
  148. removeTitle?: string | removeFnType<string>;
  149. renameTitle?: string | removeFnType<string>;
  150. showRemoveBtn?: boolean | removeFnType<boolean>;
  151. showRenameBtn?: boolean | removeFnType<boolean>;
  152. }
  153. type dblClickExpandFn<T> = (treeId: string, treeNode: ITreeNode) => T;
  154. interface IView {
  155. addDiyDom?: dblClickExpandFn<void>;
  156. addHoverDom?: dblClickExpandFn<void>;
  157. autoCancelSelected?: boolean;
  158. dblClickExpand?: boolean | dblClickExpandFn<boolean>;
  159. expandSpeed?: string | number;
  160. fontCss?: IJSON | dblClickExpandFn<IJSON>;
  161. nodeClasses?: INodeClasses | dblClickExpandFn<INodeClasses>;
  162. nameIsHTML?: boolean;
  163. removeHoverDom?: dblClickExpandFn<void>;
  164. selectedMulti?: boolean;
  165. showIcon?: boolean | dblClickExpandFn<boolean>;
  166. showLine?: boolean;
  167. showTitle?: boolean | dblClickExpandFn<boolean>;
  168. txtSelectedEnable?: boolean;
  169. }
  170. interface ISetting {
  171. async?: IAsync;
  172. callback?: ICallback;
  173. check?: ICheck;
  174. data?: IData;
  175. edit?: IEdit;
  176. view?: IView;
  177. }
  178. type filterFnType = (node: ITreeNode) => boolean;
  179. interface IzTreeObj {
  180. setting: ISetting;
  181. addNodes: (parentNode: object, index?: number, newNodes?: ITreeNode[] | ITreeNode, isSilentBoolean?: boolean) => ITreeNode[];
  182. cancelEditName: (newName?: string) => void;
  183. cancelSelectedNode: (treeNode?: ITreeNode) => void;
  184. checkAllNodes: (checked: boolean) => void;
  185. checkNode: (treeNode: ITreeNode, checked?: boolean, checkTypeFlag?: boolean, callbackFlag?: boolean) => void;
  186. copyNode: (targetNode: object, treeNode: ITreeNode, moveType: string, isSilent: boolean) => ITreeNode;
  187. destroy: () => void;
  188. editName: (treeNode: ITreeNode) => void;
  189. expandAll: (expandFlag: boolean) => boolean | null;
  190. expandNode: (treeNode: ITreeNode, expandFlag?: boolean, sonSign?: boolean, focus?: boolean, callbackFlag?: boolean) => boolean | null;
  191. getChangeCheckedNodes: () => ITreeNode[];
  192. getCheckedNodes: (checked?: boolean) => ITreeNode[];
  193. getNodeByParam: (key: string, value: any, parentNode?: object) => object;
  194. getNodeByTId: (tId: string) => ITreeNode;
  195. getNodeIndex: (treeNode: ITreeNode) => number;
  196. getNodes: () => ITreeNode[];
  197. getNodesByFilter: (filter: filterFnType, isSingle?: boolean, parentNode?: ITreeNode, invokeParam?: any) => any;
  198. getNodesByParam: (key: string, value: any, parentNode?: object) => object;
  199. getNodesByParamFuzzy: (key: string, value: string, parentNode?: object) => object;
  200. getSelectedNodes: (isTure: boolean) => any;
  201. hideNode: (treeNode: ITreeNode) => void;
  202. hideNodes: (treeNodes: ITreeNode[]) => void;
  203. moveNode: (targetNode: object, treeNode: ITreeNode, moveType: string, isSilent?: boolean) => ITreeNode;
  204. reAsyncChildNodes: (parentNode: ITreeNode, reloadType: string, isSilent?: boolean, callback?: any) => void;
  205. reAsyncChildNodesPromise: (parentNode: ITreeNode, reloadType: string, isSilent?: boolean) => any; // ps: return Promise object
  206. refresh: () => void;
  207. removeChildNodes: (parentNode: ITreeNode) => ITreeNode[];
  208. removeNode: (treeNode: ITreeNode, callbackFlag?: boolean) => void;
  209. selectNode: (treeNode: ITreeNode, addFlag?: boolean, isSilent?: boolean) => void;
  210. setChkDisabled: (treeNode: ITreeNode, disabled?: boolean, inheritParent?: boolean, inheritChildren?: boolean) => void;
  211. setEditable: (editable: boolean) => void;
  212. showNode: (treeNode: ITreeNode) => void;
  213. showNodes: (treeNodes: ITreeNode[]) => void;
  214. transformToArray: (treeNodes: ITreeNode[] | ITreeNode) => ITreeNode[];
  215. transformTozTreeNodes: (simpleNodes: ITreeNode[] | ITreeNode) => ITreeNode[];
  216. updateNode: (treeNode: ITreeNode, checkTypeFlag?: boolean) => void;
  217. updateNodeIconSkin: (treeNode: ITreeNode) => void;
  218. }
  219. interface IzTree {
  220. init?: (dom: any, setting: ISetting, zNodes: ITreeNode[] | object) => IzTreeObj;
  221. getZTreeObj?: (treeId: string) => IzTreeObj;
  222. destroy?: (treeId: string) => void;
  223. _z?: any;
  224. }