@jiaozhiye/qm-design-react 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -0
  3. package/lib/_utils/cloneElement.d.ts +2 -0
  4. package/lib/_utils/dom.d.ts +68 -0
  5. package/lib/_utils/download.d.ts +7 -0
  6. package/lib/_utils/error.d.ts +2 -0
  7. package/lib/_utils/isServer.d.ts +2 -0
  8. package/lib/_utils/prefix.d.ts +1 -0
  9. package/lib/_utils/resize-event.d.ts +10 -0
  10. package/lib/_utils/scrollbar-width.d.ts +1 -0
  11. package/lib/_utils/types.d.ts +33 -0
  12. package/lib/_utils/util.d.ts +23 -0
  13. package/lib/_utils/validators.d.ts +2 -0
  14. package/lib/anchor/index.d.ts +4 -0
  15. package/lib/anchor/src/anchor-item.d.ts +13 -0
  16. package/lib/anchor/src/anchor-nav.d.ts +12 -0
  17. package/lib/anchor/src/anchor.d.ts +52 -0
  18. package/lib/anchor/style/index.less +60 -0
  19. package/lib/antd/Calendar.d.ts +4 -0
  20. package/lib/antd/DatePicker.d.ts +11 -0
  21. package/lib/antd/TimePicker.d.ts +14 -0
  22. package/lib/antd/index.d.ts +123 -0
  23. package/lib/antd/index.less +7 -0
  24. package/lib/button/index.d.ts +3 -0
  25. package/lib/button/src/button.d.ts +30 -0
  26. package/lib/button/style/index.less +12 -0
  27. package/lib/config-provider/context.d.ts +9 -0
  28. package/lib/config-provider/index.d.ts +3 -0
  29. package/lib/config-provider/src/config-provider.d.ts +34 -0
  30. package/lib/countup/index.d.ts +3 -0
  31. package/lib/countup/src/countup.d.ts +17 -0
  32. package/lib/countup/style/index.less +22 -0
  33. package/lib/cropper/index.d.ts +3 -0
  34. package/lib/cropper/src/cropper.d.ts +213 -0
  35. package/lib/cropper/style/index.less +13 -0
  36. package/lib/divider/index.d.ts +3 -0
  37. package/lib/divider/src/divider.d.ts +25 -0
  38. package/lib/divider/style/index.less +54 -0
  39. package/lib/download/index.d.ts +3 -0
  40. package/lib/download/src/download.d.ts +51 -0
  41. package/lib/download/style/index.less +12 -0
  42. package/lib/drawer/index.d.ts +3 -0
  43. package/lib/drawer/src/drawer.d.ts +33 -0
  44. package/lib/drawer/style/index.less +77 -0
  45. package/lib/empty/index.d.ts +3 -0
  46. package/lib/empty/src/empty.d.ts +15 -0
  47. package/lib/empty/style/index.less +35 -0
  48. package/lib/form/index.d.ts +4 -0
  49. package/lib/form/src/china-data.d.ts +4577 -0
  50. package/lib/form/src/context.d.ts +6 -0
  51. package/lib/form/src/fields-filter.d.ts +26 -0
  52. package/lib/form/src/form-cascader.d.ts +21 -0
  53. package/lib/form/src/form-checkbox-group.d.ts +18 -0
  54. package/lib/form/src/form-checkbox.d.ts +10 -0
  55. package/lib/form/src/form-city-select.d.ts +10 -0
  56. package/lib/form/src/form-date.d.ts +10 -0
  57. package/lib/form/src/form-divider.d.ts +10 -0
  58. package/lib/form/src/form-immediate.d.ts +10 -0
  59. package/lib/form/src/form-input-number.d.ts +10 -0
  60. package/lib/form/src/form-input.d.ts +10 -0
  61. package/lib/form/src/form-radio.d.ts +18 -0
  62. package/lib/form/src/form-range-date.d.ts +10 -0
  63. package/lib/form/src/form-range-input-number.d.ts +10 -0
  64. package/lib/form/src/form-range-input.d.ts +10 -0
  65. package/lib/form/src/form-range-time.d.ts +10 -0
  66. package/lib/form/src/form-region-select.d.ts +10 -0
  67. package/lib/form/src/form-search-helper.d.ts +10 -0
  68. package/lib/form/src/form-select.d.ts +21 -0
  69. package/lib/form/src/form-switch.d.ts +10 -0
  70. package/lib/form/src/form-text-area.d.ts +10 -0
  71. package/lib/form/src/form-time.d.ts +10 -0
  72. package/lib/form/src/form-tinymce.d.ts +10 -0
  73. package/lib/form/src/form-tree-select.d.ts +23 -0
  74. package/lib/form/src/form-upload-file.d.ts +18 -0
  75. package/lib/form/src/form-upload-img.d.ts +18 -0
  76. package/lib/form/src/form.d.ts +169 -0
  77. package/lib/form/src/types.d.ts +251 -0
  78. package/lib/form/src/utils.d.ts +7 -0
  79. package/lib/form/style/index.less +243 -0
  80. package/lib/hooks/useForceUpdate.d.ts +1 -0
  81. package/lib/hooks/useOutsideClick.d.ts +2 -0
  82. package/lib/hooks/useResizeObserve.d.ts +5 -0
  83. package/lib/hooks/useUpdateEffect.d.ts +2 -0
  84. package/lib/index.d.ts +42 -0
  85. package/lib/index.esm.js +16 -0
  86. package/lib/index.full.js +1 -0
  87. package/lib/index.js +16 -0
  88. package/lib/locale/index.d.ts +11 -0
  89. package/lib/locale/index.js +51 -0
  90. package/lib/locale/lang/en.d.ts +243 -0
  91. package/lib/locale/lang/en.js +248 -0
  92. package/lib/locale/lang/zh-cn.d.ts +243 -0
  93. package/lib/locale/lang/zh-cn.js +248 -0
  94. package/lib/modal/index.d.ts +3 -0
  95. package/lib/modal/src/modal.d.ts +38 -0
  96. package/lib/modal/style/index.less +89 -0
  97. package/lib/pinyin/core.d.ts +12 -0
  98. package/lib/pinyin/dict.d.ts +31 -0
  99. package/lib/pinyin/index.d.ts +2 -0
  100. package/lib/pinyin/patchers/56l.d.ts +7 -0
  101. package/lib/qm-design.d.ts +28 -0
  102. package/lib/search-helper/index.d.ts +3 -0
  103. package/lib/search-helper/src/search-helper.d.ts +20 -0
  104. package/lib/search-helper/style/index.less +13 -0
  105. package/lib/space/index.d.ts +3 -0
  106. package/lib/space/src/space.d.ts +12 -0
  107. package/lib/space/style/index.less +12 -0
  108. package/lib/spin/index.d.ts +3 -0
  109. package/lib/spin/src/spin.d.ts +11 -0
  110. package/lib/spin/style/index.less +12 -0
  111. package/lib/split/index.d.ts +4 -0
  112. package/lib/split/src/context.d.ts +8 -0
  113. package/lib/split/src/resize-bar.d.ts +8 -0
  114. package/lib/split/src/split-pane.d.ts +9 -0
  115. package/lib/split/src/split.d.ts +14 -0
  116. package/lib/split/style/index.less +86 -0
  117. package/lib/style/common.less +8 -0
  118. package/lib/style/index.css +1 -0
  119. package/lib/style/index.less +32 -0
  120. package/lib/style/mixins/box.less +13 -0
  121. package/lib/style/mixins/clearfix.less +21 -0
  122. package/lib/style/mixins/index.less +11 -0
  123. package/lib/style/mixins/operation-unit.less +24 -0
  124. package/lib/style/mixins/reset.less +35 -0
  125. package/lib/style/mixins/size.less +15 -0
  126. package/lib/style/reset.less +134 -0
  127. package/lib/style/themes/default.less +113 -0
  128. package/lib/style/themes/index.less +7 -0
  129. package/lib/table/index.d.ts +4 -0
  130. package/lib/table/src/alert/index.d.ts +6 -0
  131. package/lib/table/src/body/index.d.ts +8 -0
  132. package/lib/table/src/body/useValueFormat.d.ts +12 -0
  133. package/lib/table/src/column-filter/index.d.ts +7 -0
  134. package/lib/table/src/config/index.d.ts +47 -0
  135. package/lib/table/src/context/index.d.ts +74 -0
  136. package/lib/table/src/edit/InputNumber.d.ts +17 -0
  137. package/lib/table/src/edit/index.d.ts +12 -0
  138. package/lib/table/src/empty/index.d.ts +3 -0
  139. package/lib/table/src/expandable/index.d.ts +8 -0
  140. package/lib/table/src/export/define.d.ts +8 -0
  141. package/lib/table/src/export/index.d.ts +18 -0
  142. package/lib/table/src/export/setting.d.ts +8 -0
  143. package/lib/table/src/export/useExport.d.ts +9 -0
  144. package/lib/table/src/filter/index.d.ts +8 -0
  145. package/lib/table/src/filter-sql/index.d.ts +5 -0
  146. package/lib/table/src/filter-sql/lib/filter_string.d.ts +11 -0
  147. package/lib/table/src/filter-sql/lib/operations.d.ts +8 -0
  148. package/lib/table/src/filter-sql/lib/variables_replacement.d.ts +5 -0
  149. package/lib/table/src/footer/index.d.ts +8 -0
  150. package/lib/table/src/full-screen/index.d.ts +6 -0
  151. package/lib/table/src/group-summary/index.d.ts +3 -0
  152. package/lib/table/src/group-summary/result.d.ts +9 -0
  153. package/lib/table/src/group-summary/setting.d.ts +6 -0
  154. package/lib/table/src/header/index.d.ts +10 -0
  155. package/lib/table/src/hooks/useImperativeMethod.d.ts +36 -0
  156. package/lib/table/src/hooks/useTableCore.d.ts +86 -0
  157. package/lib/table/src/hooks/useTableEffect.d.ts +35 -0
  158. package/lib/table/src/hooks/useTableLayout.d.ts +39 -0
  159. package/lib/table/src/hooks/useTableMemo.d.ts +43 -0
  160. package/lib/table/src/hooks/useTableRef.d.ts +89 -0
  161. package/lib/table/src/hooks/useTableState.d.ts +94 -0
  162. package/lib/table/src/icon/caretdown.d.ts +3 -0
  163. package/lib/table/src/icon/caretup.d.ts +3 -0
  164. package/lib/table/src/icon/filter.d.ts +3 -0
  165. package/lib/table/src/manager/index.d.ts +15 -0
  166. package/lib/table/src/pager/index.d.ts +11 -0
  167. package/lib/table/src/print/index.d.ts +7 -0
  168. package/lib/table/src/reload/index.d.ts +3 -0
  169. package/lib/table/src/resizable/index.d.ts +7 -0
  170. package/lib/table/src/select-collection/index.d.ts +7 -0
  171. package/lib/table/src/select-collection/result.d.ts +8 -0
  172. package/lib/table/src/selection/all.d.ts +7 -0
  173. package/lib/table/src/selection/index.d.ts +12 -0
  174. package/lib/table/src/store/index.d.ts +29 -0
  175. package/lib/table/src/super-search/index.d.ts +3 -0
  176. package/lib/table/src/super-search/result.d.ts +6 -0
  177. package/lib/table/src/table/index.d.ts +5 -0
  178. package/lib/table/src/table/props.d.ts +243 -0
  179. package/lib/table/src/table/types.d.ts +335 -0
  180. package/lib/table/src/utils/index.d.ts +37 -0
  181. package/lib/table/style/alert.less +34 -0
  182. package/lib/table/style/body.less +42 -0
  183. package/lib/table/style/column-filter.less +88 -0
  184. package/lib/table/style/empty.less +16 -0
  185. package/lib/table/style/expandable.less +55 -0
  186. package/lib/table/style/export.less +30 -0
  187. package/lib/table/style/footer.less +28 -0
  188. package/lib/table/style/full-screen.less +21 -0
  189. package/lib/table/style/group-summary.less +93 -0
  190. package/lib/table/style/header.less +178 -0
  191. package/lib/table/style/index.less +25 -0
  192. package/lib/table/style/pager.less +12 -0
  193. package/lib/table/style/print.less +21 -0
  194. package/lib/table/style/reload.less +21 -0
  195. package/lib/table/style/select-collection.less +21 -0
  196. package/lib/table/style/size.less +69 -0
  197. package/lib/table/style/super-search.less +102 -0
  198. package/lib/table/style/table.less +328 -0
  199. package/lib/table/style/toper.less +28 -0
  200. package/lib/table/style/variable.less +48 -0
  201. package/lib/tabs/index.d.ts +4 -0
  202. package/lib/tabs/src/tab-pane.d.ts +8 -0
  203. package/lib/tabs/src/tabs.d.ts +16 -0
  204. package/lib/tabs/style/index.less +22 -0
  205. package/lib/tinymce/index.d.ts +3 -0
  206. package/lib/tinymce/src/Events.d.ts +78 -0
  207. package/lib/tinymce/src/ScriptLoader.d.ts +13 -0
  208. package/lib/tinymce/src/TinyMCE.d.ts +2 -0
  209. package/lib/tinymce/src/Utils.d.ts +19 -0
  210. package/lib/tinymce/src/components/Editor.d.ts +66 -0
  211. package/lib/tinymce/src/components/EditorPropTypes.d.ts +18 -0
  212. package/lib/tinymce/src/index.d.ts +29 -0
  213. package/lib/tinymce/style/index.less +18 -0
  214. package/lib/upload-file/index.d.ts +3 -0
  215. package/lib/upload-file/src/upload-file.d.ts +16 -0
  216. package/lib/upload-file/style/index.less +12 -0
  217. package/lib/upload-img/index.d.ts +3 -0
  218. package/lib/upload-img/src/cropper-preview.d.ts +30 -0
  219. package/lib/upload-img/src/upload-img.d.ts +27 -0
  220. package/lib/upload-img/style/index.less +36 -0
  221. package/lib/version/index.d.ts +2 -0
  222. package/package.json +136 -0
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const SuperSearch: React.FC;
3
+ export default SuperSearch;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ declare type IResultProps = {
3
+ onClose: () => void;
4
+ };
5
+ declare const Result: React.FC<IResultProps>;
6
+ export default Result;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { ITableProps, TableRef } from './types';
3
+ export declare type QmTableProps = ITableProps;
4
+ declare const Table: React.ForwardRefExoticComponent<ITableProps & React.RefAttributes<TableRef>>;
5
+ export default Table;
@@ -0,0 +1,243 @@
1
+ import PropTypes from 'prop-types';
2
+ import { ITableProps } from './types';
3
+ /**
4
+ * editRender: 返回值
5
+ * {
6
+ * type: PropTypes.oneOf(['text', 'number', 'select', 'select-multiple', 'checkbox', 'switch', 'search-helper', 'date', 'datetime', 'time']).isRequired,
7
+ * items: PropTypes.arrayOf(PropTypes.shape({
8
+ * text: PropTypes.string,
9
+ * value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
10
+ * })),
11
+ * editable: PropTypes.bool,
12
+ * disabled: PropTypes.bool, // true -> 禁用编辑功能,默认为非编辑状态,且禁止切换
13
+ * extra: PropTypes.shape({
14
+ * maxLength: PropTypes.number,
15
+ * showCount: PropTypes.bool,
16
+ * max: PropTypes.number,
17
+ * min: PropTypes.number,
18
+ * trueValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
19
+ * falseValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
20
+ * minDateTime: PropTypes.string,
21
+ * maxDateTime: PropTypes.string,
22
+ * text: PropTypes.string,
23
+ * disabled: PropTypes.bool // 表单禁用状态
24
+ * allowClear: PropTypes.bool
25
+ * }),
26
+ * helper: PropTypes.shape({
27
+ * filters: PropTypes.object,
28
+ * table: PropTypes.object,
29
+ * initialValue: PropTypes.object,
30
+ * closeRemoteMatch: PropTypes.bool,
31
+ * fieldAliasMap: PropTypes.func,
32
+ * filterAliasMap: PropTypes.func,
33
+ * beforeOpen: PropTypes.func,
34
+ * closed: PropTypes.func
35
+ * }),
36
+ * rules: PropTypes.arrayOf(PropTypes.shape({
37
+ * required: PropTypes.bool,
38
+ * message: PropTypes.string,
39
+ * validator: PropTypes.func // 自定义校验规则,参数: val(表单项的值); 返回值类型: bool
40
+ * })),
41
+ * onInput: PropTypes.func,
42
+ * onChange: PropTypes.func,
43
+ * onEnter: PropTypes.func,
44
+ * onClick: PropTypes.func
45
+ * }
46
+ */
47
+ export declare const propTypes: {
48
+ columns: PropTypes.Validator<(PropTypes.InferProps<{
49
+ dataIndex: PropTypes.Validator<string>;
50
+ title: PropTypes.Validator<string>;
51
+ description: PropTypes.Requireable<string>;
52
+ colSpan: PropTypes.Requireable<number>;
53
+ width: PropTypes.Requireable<number>;
54
+ fixed: PropTypes.Requireable<string>;
55
+ align: PropTypes.Requireable<string>;
56
+ printFixed: PropTypes.Requireable<boolean>;
57
+ hidden: PropTypes.Requireable<boolean>;
58
+ noAuth: PropTypes.Requireable<boolean>;
59
+ ellipsis: PropTypes.Requireable<boolean>;
60
+ className: PropTypes.Requireable<string>;
61
+ children: PropTypes.Requireable<any[]>;
62
+ sorter: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
63
+ filter: PropTypes.Requireable<PropTypes.InferProps<{
64
+ type: PropTypes.Validator<string>;
65
+ items: PropTypes.Requireable<(PropTypes.InferProps<{
66
+ text: PropTypes.Requireable<string>;
67
+ value: PropTypes.Requireable<string | number>;
68
+ }> | null | undefined)[]>;
69
+ }>>;
70
+ precision: PropTypes.Requireable<number>;
71
+ formatType: PropTypes.Requireable<string>;
72
+ required: PropTypes.Requireable<boolean>;
73
+ editRender: PropTypes.Requireable<(...args: any[]) => any>;
74
+ dictItems: PropTypes.Requireable<(PropTypes.InferProps<{
75
+ text: PropTypes.Requireable<string>;
76
+ value: PropTypes.Requireable<string | number>;
77
+ }> | null | undefined)[]>;
78
+ summation: PropTypes.Requireable<PropTypes.InferProps<{
79
+ sumBySelection: PropTypes.Requireable<boolean>;
80
+ displayWhenNotSelect: PropTypes.Requireable<boolean>;
81
+ dataKey: PropTypes.Requireable<string>;
82
+ unit: PropTypes.Requireable<string>;
83
+ render: PropTypes.Requireable<(...args: any[]) => any>;
84
+ }>>;
85
+ groupSummary: PropTypes.Requireable<PropTypes.InferProps<{
86
+ dataKey: PropTypes.Requireable<string>;
87
+ unit: PropTypes.Requireable<string>;
88
+ render: PropTypes.Requireable<(...args: any[]) => any>;
89
+ }>>;
90
+ headRender: PropTypes.Requireable<(...args: any[]) => any>;
91
+ render: PropTypes.Requireable<(...args: any[]) => any>;
92
+ }> | null | undefined)[]>;
93
+ columnsChange: PropTypes.Requireable<(...args: any[]) => any>;
94
+ dataSource: PropTypes.Requireable<any[]>;
95
+ rowKey: PropTypes.Validator<string | ((...args: any[]) => any)>;
96
+ size: (props: any, propName: any, componentName: any) => void;
97
+ height: (props: any, propName: any, componentName: any) => void;
98
+ minHeight: (props: any, propName: any, componentName: any) => void;
99
+ maxHeight: (props: any, propName: any, componentName: any) => void;
100
+ border: PropTypes.Requireable<boolean>;
101
+ stripe: PropTypes.Requireable<boolean>;
102
+ fetch: PropTypes.Requireable<PropTypes.InferProps<{
103
+ api: PropTypes.Validator<(...args: any[]) => any>;
104
+ params: PropTypes.Validator<object>;
105
+ beforeFetch: PropTypes.Requireable<(...args: any[]) => any>;
106
+ afterFetch: PropTypes.Requireable<(...args: any[]) => any>;
107
+ stopToFirst: PropTypes.Requireable<boolean>;
108
+ dataKey: PropTypes.Requireable<string>;
109
+ }>>;
110
+ loading: PropTypes.Requireable<boolean>;
111
+ resizable: PropTypes.Requireable<boolean>;
112
+ uniqueKey: PropTypes.Requireable<string>;
113
+ customClass: PropTypes.Requireable<string>;
114
+ showHeader: PropTypes.Requireable<boolean>;
115
+ ellipsis: PropTypes.Requireable<boolean>;
116
+ rowStyle: PropTypes.Requireable<object>;
117
+ cellStyle: PropTypes.Requireable<object>;
118
+ spanMethod: PropTypes.Requireable<(...args: any[]) => any>;
119
+ rowDraggable: PropTypes.Requireable<boolean>;
120
+ rowSelection: PropTypes.Requireable<PropTypes.InferProps<{
121
+ type: PropTypes.Validator<string>;
122
+ defaultSelectedRowKeys: PropTypes.Requireable<any[]>;
123
+ selectedRowKeys: PropTypes.Requireable<any[]>;
124
+ hideSelectAll: PropTypes.Requireable<boolean>;
125
+ checkStrictly: PropTypes.Requireable<boolean>;
126
+ filterable: PropTypes.Requireable<boolean>;
127
+ clearableAfterFetched: PropTypes.Requireable<boolean>;
128
+ fetchSelectedRows: PropTypes.Requireable<PropTypes.InferProps<{
129
+ api: PropTypes.Validator<(...args: any[]) => any>;
130
+ params: PropTypes.Requireable<object>;
131
+ dataKey: PropTypes.Requireable<string>;
132
+ }>>;
133
+ fetchAllRowKeys: PropTypes.Requireable<PropTypes.InferProps<{
134
+ api: PropTypes.Validator<(...args: any[]) => any>;
135
+ params: PropTypes.Requireable<object>;
136
+ dataKey: PropTypes.Requireable<string>;
137
+ }>>;
138
+ disabled: PropTypes.Requireable<(...args: any[]) => any>;
139
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
140
+ }>>;
141
+ rowHighlight: PropTypes.Requireable<PropTypes.InferProps<{
142
+ currentRowKey: PropTypes.Requireable<string | number>;
143
+ disabled: PropTypes.Requireable<(...args: any[]) => any>;
144
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
145
+ }>>;
146
+ expandable: PropTypes.Requireable<PropTypes.InferProps<{
147
+ defaultExpandAllRows: PropTypes.Requireable<boolean>;
148
+ defaultExpandedRowKeys: PropTypes.Requireable<any[]>;
149
+ expandedRowKeys: PropTypes.Requireable<any[]>;
150
+ rowExpandable: PropTypes.Requireable<(...args: any[]) => any>;
151
+ expandedRowClassName: PropTypes.Requireable<string>;
152
+ expandedRowRender: PropTypes.Validator<(...args: any[]) => any>;
153
+ onExpand: PropTypes.Requireable<(...args: any[]) => any>;
154
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
155
+ }>>;
156
+ summation: PropTypes.Requireable<PropTypes.InferProps<{
157
+ groupItems: PropTypes.Requireable<(PropTypes.InferProps<{
158
+ dataIndex: PropTypes.Validator<string>;
159
+ titleIndex: PropTypes.Requireable<string>;
160
+ color: PropTypes.Requireable<string>;
161
+ backgroundColor: PropTypes.Requireable<string>;
162
+ }> | null | undefined)[]>;
163
+ fetch: PropTypes.Requireable<PropTypes.InferProps<{
164
+ api: PropTypes.Validator<(...args: any[]) => any>;
165
+ params: PropTypes.Requireable<object>;
166
+ dataKey: PropTypes.Requireable<string>;
167
+ }>>;
168
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
169
+ }>>;
170
+ footRender: PropTypes.Requireable<(...args: any[]) => any>;
171
+ multipleSort: PropTypes.Requireable<boolean>;
172
+ scrollPagination: PropTypes.Requireable<boolean>;
173
+ webPagination: PropTypes.Requireable<boolean>;
174
+ paginationConfig: PropTypes.Requireable<PropTypes.InferProps<{
175
+ current: PropTypes.Requireable<number>;
176
+ pageSize: PropTypes.Requireable<number>;
177
+ pageSizeOptions: PropTypes.Requireable<any[]>;
178
+ showSizeChanger: PropTypes.Requireable<boolean>;
179
+ showQuickJumper: PropTypes.Requireable<boolean>;
180
+ }>>;
181
+ showAlert: PropTypes.Requireable<boolean>;
182
+ topSpaceAlign: PropTypes.Requireable<string>;
183
+ exportExcel: PropTypes.Requireable<PropTypes.InferProps<{
184
+ fileName: PropTypes.Requireable<string>;
185
+ fetch: PropTypes.Requireable<PropTypes.InferProps<{
186
+ api: PropTypes.Validator<(...args: any[]) => any>;
187
+ params: PropTypes.Requireable<object>;
188
+ }>>;
189
+ cellStyle: PropTypes.Requireable<boolean>;
190
+ }>>;
191
+ tablePrint: PropTypes.Requireable<PropTypes.InferProps<{
192
+ showLogo: PropTypes.Requireable<boolean>;
193
+ }>>;
194
+ authConfig: PropTypes.Requireable<PropTypes.InferProps<{
195
+ fetch: PropTypes.Requireable<PropTypes.InferProps<{
196
+ api: PropTypes.Validator<(...args: any[]) => any>;
197
+ params: PropTypes.Requireable<object>;
198
+ columnDataKey: PropTypes.Requireable<string>;
199
+ exportDataKey: PropTypes.Requireable<string>;
200
+ printDataKey: PropTypes.Requireable<string>;
201
+ }>>;
202
+ }>>;
203
+ showFullScreen: PropTypes.Requireable<boolean>;
204
+ showRefresh: PropTypes.Requireable<boolean>;
205
+ showSelectCollection: PropTypes.Requireable<boolean>;
206
+ showSuperSearch: PropTypes.Requireable<boolean>;
207
+ showGroupSummary: PropTypes.Requireable<boolean>;
208
+ showColumnDefine: PropTypes.Requireable<boolean>;
209
+ onlyShowIcon: PropTypes.Requireable<boolean>;
210
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
211
+ onDataChange: PropTypes.Requireable<(...args: any[]) => any>;
212
+ onDataLoad: PropTypes.Requireable<(...args: any[]) => any>;
213
+ onRowClick: PropTypes.Requireable<(...args: any[]) => any>;
214
+ onRowDblclick: PropTypes.Requireable<(...args: any[]) => any>;
215
+ onRowEnter: PropTypes.Requireable<(...args: any[]) => any>;
216
+ onScrollEnd: PropTypes.Requireable<(...args: any[]) => any>;
217
+ };
218
+ export declare const defaultProps: ITableProps;
219
+ /**
220
+ * 事件:
221
+ * onChange: 分页、排序、筛选、高级检索、行拖动排序 变化时触发,参数:pagination, filters, sorter, superFilters, { currentDataSource: tableData }
222
+ * onDataChange: 表格单元格编辑、新增、删除数据时触发,参数 tableData
223
+ * onDataLoad: 表格数据加载后触发,参数 tableData
224
+ * onRowClick: 行单击事件,参数 row, column, event
225
+ * onRowDblclick: 行双击事件,参数 row, column, event
226
+ * onRowEnter: 行选中(单选) 或 行高亮 回车时触发,参数 row, event
227
+ * onScrollEnd: 滚动条滚动至底部时触发,参数 event
228
+ */
229
+ /**
230
+ * 方法:
231
+ * CALCULATE_HEIGHT: 计算表格高度
232
+ * DO_REFRESH: 刷新表格数据,同时会清空列选中状态
233
+ * INSERT_RECORDS: 插入表格行数据,参数 row|rows, bottom(默认)|top
234
+ * REMOVE_RECORDS: 移除表格数据,参数 rowKeys|rows|row
235
+ * FORM_VALIDATE: 触发表格中的表单校验,返回值:object
236
+ * FORCE_UPDATE: 组件强制更新
237
+ * GET_LOG: 获取操作记录,非空校验、格式校验、数据操作记录,返回值:object
238
+ * CLEAR_LOG: 清空表格操作记录
239
+ * CLEAR_TABLE_DATA: 清空表格数据
240
+ * SCROLL_TO_RECORD: 滚动到指定数据行,参数 rowKey
241
+ * SCROLL_TO_COLUMN: 滚动到指定表格列,参数 dataIndex
242
+ * CLEAR_TABLE_FOCUS: 清空表格焦点
243
+ */
@@ -0,0 +1,335 @@
1
+ import React from 'react';
2
+ import type { BuildInPlacements } from 'rc-trigger';
3
+ import type { ComponentSize, CSSProperties, Nullable, IDict, AjaxResponse } from '../../../_utils/types';
4
+ import type { IFormData, IFormItem } from '../../../form/src/types';
5
+ export type { ITableContext } from '../context';
6
+ export declare type IFixed = 'left' | 'right';
7
+ export declare type IAlign = 'left' | 'center' | 'right';
8
+ export declare type IFilterType = 'text' | 'textarea' | 'checkbox' | 'radio' | 'number' | 'date';
9
+ export declare type IEditerType = 'text' | 'number' | 'select' | 'select-multiple' | 'checkbox' | 'switch' | 'search-helper' | 'date' | 'datetime' | 'time';
10
+ export declare type ISelectionType = 'checkbox' | 'radio';
11
+ export declare type IRecord<T = any> = {
12
+ [key: string]: T;
13
+ };
14
+ export declare type getRowKeyType = (row: IRecord, index: number) => string | number;
15
+ export declare type IRowKey = ReturnType<getRowKeyType>;
16
+ export declare const DEFAULT_DISTANCE = 10;
17
+ export declare const DEFAULT_TRUE_VALUE = "1";
18
+ export declare const DEFAULT_FALSE_VALUE = "0";
19
+ export declare const EMPTY_MIN_HEIGHT = 150;
20
+ export declare const MIN_POPPER_WIDTH = 150;
21
+ export declare const DATE_FORMAT = "YYYY-MM-DD";
22
+ export declare const DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
23
+ export declare const TIME_FORMAT = "HH:mm:ss";
24
+ export declare const DEFAULT_FILENAME_FORMAT = "YYYYMMDDHHmmss";
25
+ export declare const BUILT_IN_PLACEMENTS: BuildInPlacements;
26
+ export declare type IClicked = [IRowKey, string] | [];
27
+ export declare type IRowColSpan = {
28
+ rowSpan: number;
29
+ colSpan: number;
30
+ };
31
+ export declare enum EAlign {
32
+ left = "flex-start",
33
+ right = "flex-end"
34
+ }
35
+ export declare type IFormatType = 'date' | 'datetime' | 'dateShortTime' | 'percent' | 'finance' | 'secret-name' | 'secret-phone' | 'secret-IDnumber' | 'secret-bankNumber';
36
+ export declare type IPaginationConfig = {
37
+ current?: number;
38
+ pageSize?: number;
39
+ total?: number;
40
+ pageSizeOptions?: number[];
41
+ showSizeChanger?: boolean;
42
+ showQuickJumper?: boolean;
43
+ };
44
+ export declare type IPagination = Required<Pick<IPaginationConfig, 'current' | 'pageSize' | 'total'>>;
45
+ export declare type IRule = {
46
+ required?: boolean;
47
+ message?: string;
48
+ validator?: (value: unknown) => boolean;
49
+ };
50
+ export declare type IValidItem = {
51
+ rowKey: IRowKey;
52
+ dataIndex: string;
53
+ text: string;
54
+ };
55
+ export declare type IFilter = {
56
+ [key: string]: Record<string, any>;
57
+ };
58
+ export declare type ISorter = {
59
+ [key: string]: Nullable<string>;
60
+ };
61
+ export declare type ISummaries = {
62
+ [key: string]: number;
63
+ };
64
+ export declare type ISuperFilter = {
65
+ type: string;
66
+ bracketLeft: string;
67
+ fieldName: string;
68
+ expression: string;
69
+ value: unknown;
70
+ bracketRight: string;
71
+ logic: string;
72
+ };
73
+ export declare type IEditerReturn = {
74
+ type: IEditerType;
75
+ items?: Array<IDict>;
76
+ editable?: boolean;
77
+ disabled?: boolean;
78
+ extra?: {
79
+ maxLength?: number;
80
+ showCount?: boolean;
81
+ max?: number;
82
+ min?: number;
83
+ trueValue?: string | number;
84
+ falseValue?: string | number;
85
+ minDateTime?: string;
86
+ maxDateTime?: string;
87
+ text?: string;
88
+ disabled?: boolean;
89
+ allowClear?: boolean;
90
+ };
91
+ helper?: {
92
+ filters?: IFormItem[];
93
+ table?: {
94
+ fetch?: IFetch;
95
+ columns?: IColumn[];
96
+ rowKey?: ((row: IRecord, index: number) => IRowKey) | IRowKey;
97
+ webPagination?: boolean;
98
+ };
99
+ initialValue?: IFormData;
100
+ closeRemoteMatch?: boolean;
101
+ fieldAliasMap?: (() => Record<string, string>) | Record<string, string>;
102
+ filterAliasMap?: (() => string[]) | string[];
103
+ beforeOpen?: (value: Record<string, string | number>, row: IRecord, column: IColumn) => void | Promise<void> | boolean;
104
+ closed?: (rowData: Record<string, any>) => void;
105
+ };
106
+ rules?: IRule[];
107
+ onInput?: (value: Record<string, string | number>) => void;
108
+ onChange?: (value: Record<string, string | number>, record: IRecord) => void;
109
+ onEnter?: (value: Record<string, string | number>, record: IRecord) => void;
110
+ onClick?: () => void;
111
+ };
112
+ export declare type IFetchFn = (params?: Record<string, unknown>) => Promise<AjaxResponse>;
113
+ export declare type IFetchParams = Record<string, any>;
114
+ export declare type IFetch = {
115
+ api: IFetchFn;
116
+ params?: IFetchParams;
117
+ beforeFetch?: (params: IFetchParams) => boolean;
118
+ afterFetch?: (records: IRecord[]) => IRecord[];
119
+ stopToFirst?: boolean;
120
+ dataKey?: string;
121
+ };
122
+ export declare type IRowSelection = {
123
+ type: ISelectionType;
124
+ defaultSelectedRowKeys?: IRowKey[];
125
+ selectedRowKeys?: IRowKey[];
126
+ hideSelectAll?: boolean;
127
+ checkStrictly?: boolean;
128
+ filterable?: boolean;
129
+ clearableAfterFetched?: boolean;
130
+ fetchSelectedRows?: {
131
+ api: IFetchFn;
132
+ params?: IFetchParams;
133
+ dataKey?: string;
134
+ };
135
+ fetchAllRowKeys?: {
136
+ api: IFetchFn;
137
+ params?: IFetchParams;
138
+ dataKey?: string;
139
+ };
140
+ disabled?: (row: IRecord) => boolean;
141
+ onChange?: (rowKeys: IRowKey[], selectedRows: IRecord[]) => void;
142
+ };
143
+ export declare type IRowHighlight = {
144
+ currentRowKey?: IRowKey;
145
+ disabled?: (row: IRecord) => boolean;
146
+ onChange?: (rowKey: IRowKey, row: IRecord) => void;
147
+ };
148
+ export declare type IExpandable = {
149
+ defaultExpandAllRows?: boolean;
150
+ defaultExpandedRowKeys?: IRowKey[];
151
+ expandedRowKeys?: IRowKey[];
152
+ rowExpandable?: (row: IRecord) => boolean;
153
+ expandedRowClassName?: string;
154
+ expandedRowRender: (row: IRecord, rowIndex: number) => React.ReactNode;
155
+ onExpand?: (expand: boolean, row: IRecord) => void;
156
+ onChange?: (expandedKeys: IRowKey[], expandedRows: IRecord[]) => void;
157
+ };
158
+ export declare type ITreeConfig = {
159
+ defaultExpandAllRows?: boolean;
160
+ expandedRowKeys?: IRowKey[];
161
+ };
162
+ export declare type ISummation = {
163
+ groupItems?: Array<{
164
+ dataIndex: string;
165
+ titleIndex?: string;
166
+ color?: string;
167
+ backgroundColor?: string;
168
+ }>;
169
+ fetch?: {
170
+ api: IFetchFn;
171
+ params?: IFetchParams;
172
+ dataKey?: string;
173
+ };
174
+ onChange?: (summationRows: Record<string, number | string>[]) => void;
175
+ };
176
+ export declare type IExportExcel = {
177
+ fileName?: string;
178
+ fetch?: {
179
+ api: IFetchFn;
180
+ params?: IFetchParams;
181
+ };
182
+ cellStyle?: boolean;
183
+ };
184
+ export declare type ITablePrint = {
185
+ showLogo?: boolean;
186
+ };
187
+ export declare type IAuthConfig = {
188
+ fetch: {
189
+ api: IFetchFn;
190
+ params?: IFetchParams;
191
+ columnDataKey?: string;
192
+ exportDataKey?: string;
193
+ printDataKey?: string;
194
+ };
195
+ };
196
+ export declare type IColumn = {
197
+ dataIndex: string;
198
+ title: string;
199
+ description?: string;
200
+ colSpan?: number;
201
+ rowSpan?: number;
202
+ width?: number;
203
+ renderWidth?: number | null;
204
+ fixed?: IFixed;
205
+ align?: IAlign;
206
+ printFixed?: boolean;
207
+ hidden?: boolean;
208
+ noAuth?: boolean;
209
+ ellipsis?: boolean;
210
+ className?: string;
211
+ children?: Array<IColumn> | Nullable<undefined>;
212
+ sorter?: boolean | ((a: IRecord, b: IRecord) => boolean);
213
+ filter?: {
214
+ type: IFilterType;
215
+ items?: Array<IDict>;
216
+ };
217
+ precision?: number;
218
+ formatType?: IFormatType;
219
+ required?: boolean;
220
+ editRender?: (row: IRecord, column: IColumn) => IEditerReturn;
221
+ dictItems?: Array<IDict>;
222
+ summation?: {
223
+ sumBySelection?: boolean;
224
+ displayWhenNotSelect?: boolean;
225
+ dataKey?: string;
226
+ unit?: string;
227
+ render?: (tableData: IRecord[]) => React.ReactNode;
228
+ };
229
+ groupSummary?: {
230
+ dataKey?: string;
231
+ unit?: string;
232
+ render?: () => React.ReactNode;
233
+ };
234
+ headRender?: (column: IColumn, tableData: IRecord[]) => React.ReactNode;
235
+ render?: (text: string | number, row: IRecord, column: IColumn, rowIndex: number, columnIndex: number) => React.ReactNode | string | number;
236
+ };
237
+ export declare type IDerivedColumn = IColumn & {
238
+ type?: string;
239
+ level?: number;
240
+ parentDataIndex?: string;
241
+ };
242
+ export declare type IDerivedRowKey = {
243
+ rowKey: IRowKey | number;
244
+ parentRowKey?: IRowKey;
245
+ children?: IDerivedRowKey[];
246
+ };
247
+ export declare type ITableProps = {
248
+ columns: IColumn[];
249
+ columnsChange?: (columns: IColumn[]) => void;
250
+ dataSource?: IRecord[];
251
+ rowKey: ((row: IRecord, index: number) => IRowKey) | IRowKey;
252
+ size?: ComponentSize;
253
+ height?: number | string;
254
+ minHeight?: number | string;
255
+ maxHeight?: number | string;
256
+ border?: boolean;
257
+ stripe?: boolean;
258
+ fetch?: IFetch;
259
+ loading?: boolean;
260
+ resizable?: boolean;
261
+ uniqueKey?: string;
262
+ customClass?: string;
263
+ showHeader?: boolean;
264
+ ellipsis?: boolean;
265
+ rowStyle?: CSSProperties | ((row: IRecord, rowIndex: number) => CSSProperties);
266
+ cellStyle?: CSSProperties | ((row: IRecord, column: IColumn, rowIndex: number, columnIndex: number) => CSSProperties);
267
+ spanMethod?: (options: {
268
+ row: IRecord;
269
+ column: IColumn;
270
+ rowIndex: number;
271
+ columnIndex: number;
272
+ tableData: IRecord[];
273
+ }) => IRowColSpan | [number, number];
274
+ rowDraggable?: boolean;
275
+ rowSelection?: IRowSelection;
276
+ rowHighlight?: IRowHighlight;
277
+ expandable?: IExpandable;
278
+ summation?: ISummation;
279
+ footRender?: (flattenColumns: IColumn[], tableData: IRecord[]) => React.ReactNode;
280
+ multipleSort?: boolean;
281
+ scrollPagination?: boolean;
282
+ webPagination?: boolean;
283
+ paginationConfig?: IPaginationConfig;
284
+ showAlert?: boolean;
285
+ topSpaceAlign?: IAlign;
286
+ exportExcel?: IExportExcel;
287
+ tablePrint?: ITablePrint;
288
+ authConfig?: IAuthConfig;
289
+ showFullScreen?: boolean;
290
+ showRefresh?: boolean;
291
+ showSelectCollection?: boolean;
292
+ showSuperSearch?: boolean;
293
+ showGroupSummary?: boolean;
294
+ showColumnDefine?: boolean;
295
+ children?: React.ReactNode;
296
+ onlyShowIcon?: boolean;
297
+ onChange?: (pagination: IPagination, filters: IFilter, sorter: ISorter, superFilters: ISuperFilter[], extra: {
298
+ currentDataSource: IRecord[];
299
+ }) => void;
300
+ onDataChange?: (tableData: IRecord[]) => void;
301
+ onDataLoad?: (tableData: IRecord[]) => void;
302
+ onRowClick?: (row: IRecord, column: IColumn, event: React.MouseEvent<HTMLTableCellElement>) => void;
303
+ onRowDblclick?: (row: IRecord, column: IColumn, event: React.MouseEvent<HTMLTableCellElement>) => void;
304
+ onRowEnter?: (row: IRecord, event: KeyboardEvent) => void;
305
+ onScrollEnd?: (event: React.SyntheticEvent<HTMLDivElement>) => void;
306
+ };
307
+ export declare type TableRef = {
308
+ CALCULATE_HEIGHT: () => void;
309
+ DO_REFRESH: (cb: () => void) => Promise<void>;
310
+ GET_LOG: () => {
311
+ required: IValidItem[];
312
+ validate: IValidItem[];
313
+ inserted: IValidItem[];
314
+ updated: IValidItem[];
315
+ removed: IValidItem[];
316
+ };
317
+ GET_FETCH_PARAMS: () => IFetchParams;
318
+ CLEAR_TABLE_DATA: () => void;
319
+ CLEAR_LOG: () => void;
320
+ FORCE_UPDATE: () => void;
321
+ CLEAR_TABLE_FOCUS: () => void;
322
+ SCROLL_TO_RECORD: (rowKey: IRowKey) => void;
323
+ SCROLL_TO_COLUMN: (dataIndex: string) => void;
324
+ INSERT_RECORDS: <T extends IRecord>(records: T | T[]) => void;
325
+ REMOVE_RECORDS: <T extends IRecord | IRowKey>(records: T | T[]) => void;
326
+ FORM_VALIDATE: () => {
327
+ required: IValidItem[];
328
+ validate: IValidItem[];
329
+ };
330
+ };
331
+ export declare type TableBodyRef = {
332
+ renderCellTitle: (column: IColumn, row: IRecord, rowIndex: number, columnIndex: number) => string;
333
+ setClickedValues: (clicked: IClicked) => void;
334
+ forceUpdate: () => void;
335
+ };
@@ -0,0 +1,37 @@
1
+ import dayjs, { Dayjs } from 'dayjs';
2
+ import { hasOwn } from '../../../_utils/util';
3
+ import type { IColumn, IDerivedRowKey, IRecord, IRowKey, ISorter } from '../table/types';
4
+ import type { Nullable, AnyObject, JSXElement } from '../../../_utils/types';
5
+ export { hasOwn };
6
+ export declare const columnsFlatMap: (columns: IColumn[]) => IColumn[];
7
+ export declare const createFilterColumns: (columns: IColumn[]) => IColumn[];
8
+ export declare const getAllColumns: (columns: IColumn[]) => IColumn[];
9
+ export declare const mapTableColumns: (columns: IColumn[], callback?: ((column: IColumn) => void) | undefined) => IColumn[];
10
+ export declare const deepFindColumn: (columns: IColumn[], mark: IRowKey) => Nullable<IColumn>;
11
+ export declare const findFirstColumn: (column: IColumn) => IColumn;
12
+ export declare const findLastColumn: (column: IColumn) => IColumn;
13
+ export declare const filterTableColumns: (columns: IColumn[], marks: string[]) => IColumn[];
14
+ export declare const deepFindRowKey: (rowKeys: IDerivedRowKey[], mark: IRowKey) => Nullable<IDerivedRowKey>;
15
+ export declare const tableDataFlatMap: (list: IRecord[]) => IRecord[];
16
+ export declare const getAllTableData: (list: IRecord[]) => IRecord[];
17
+ export declare const convertToRows: (columns: IColumn[]) => IColumn[][];
18
+ export declare const getNodeOffset: (el: Nullable<HTMLElement>, container: HTMLElement, rest?: {
19
+ left: number;
20
+ top: number;
21
+ }) => any;
22
+ export declare const parseHeight: (height: number | string) => Nullable<number | string>;
23
+ export declare const difference: <T extends AnyObject<any>>(obj: T, base: T) => T;
24
+ export declare const isArrayContain: (targetArr: unknown[], arr: unknown[]) => boolean;
25
+ export declare const getCellValue: (record: IRecord, dataIndex: string) => any;
26
+ export declare const setCellValue: (record: IRecord, dataIndex: string, val: unknown, precision?: number | undefined) => void;
27
+ export declare const formatNumber: (value: number | string) => string;
28
+ export declare const validateNumber: (val: string) => boolean;
29
+ export declare const stringToNumber: (input: string) => number | '';
30
+ export declare const getDate: (dateString: string | undefined, format: string) => dayjs.Dayjs | null;
31
+ export declare const formatDate: (date: Dayjs | null, format: string) => string;
32
+ export declare const createUidKey: (key?: string) => string;
33
+ export declare const getVNodeText: <T extends string | number>(val: JSXElement | T) => T[];
34
+ export declare const getGroupValidData: (list: IRecord[]) => IRecord<any>[];
35
+ export declare const createOrderBy: (sorter: ISorter) => string;
36
+ export declare const createWhereSQL: (filters: any, showType?: boolean) => string;
37
+ export declare const groupByProps: (array?: IRecord[], props?: string[]) => any[][];
@@ -0,0 +1,34 @@
1
+ /*
2
+ * @Author: 焦质晔
3
+ * @Date: 2020-03-18 10:26:46
4
+ * @Last Modified by: 焦质晔
5
+ * @Last Modified time: 2021-12-28 21:55:44
6
+ */
7
+ @prefix-table: ~'@{qm-prefix}-table';
8
+
9
+ .@{prefix-table}__alert {
10
+ display: flex;
11
+ align-items: center;
12
+ position: relative;
13
+ margin-right: @v-module-distance;
14
+ padding: 0 6px 0 30px;
15
+ border: 1px solid @v-table-border-color;
16
+ border-radius: @v-border-radius;
17
+ background-color: @v-table-header-background-color;
18
+ .box-sizing-content();
19
+ .icon {
20
+ position: absolute;
21
+ left: @v-module-distance;
22
+ line-height: 1;
23
+ font-size: 1.05em;
24
+ color: @v-primary-color;
25
+ }
26
+ em {
27
+ display: inline-block;
28
+ color: @v-primary-color;
29
+ padding: 0 @v-module-distance;
30
+ margin-right: -5px;
31
+ font-style: normal;
32
+ cursor: pointer;
33
+ }
34
+ }