@teamix/pro 1.2.19 → 1.2.20

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 (50) hide show
  1. package/dist/212.js +49 -49
  2. package/dist/pro.css +1 -1
  3. package/dist/pro.js +1422 -472
  4. package/dist/pro.min.css +1 -1
  5. package/dist/pro.min.js +1 -1
  6. package/es/actions/dialog.js +2 -5
  7. package/es/form/Components/LightFilter/index.js +1 -1
  8. package/es/form/Components/LightFilter/index.scss +1 -1
  9. package/es/form/Filter/AdvancedFilter.d.ts +7 -0
  10. package/es/form/Filter/AdvancedFilter.js +113 -0
  11. package/es/form/Filter/LightFilter.d.ts +7 -0
  12. package/es/form/Filter/LightFilter.js +79 -0
  13. package/es/form/Filter/SimpleFilter.d.ts +7 -0
  14. package/es/form/Filter/SimpleFilter.js +74 -0
  15. package/es/form/Filter/index2.js +202 -256
  16. package/es/form/ProForm/index.js +9 -7
  17. package/es/form/ProForm/index.scss +3 -0
  18. package/es/form/typing.d.ts +7 -3
  19. package/es/index.d.ts +1 -1
  20. package/es/index.js +1 -1
  21. package/es/table/components/Pagination/index.d.ts +3 -0
  22. package/es/table/components/Pagination/index.js +82 -0
  23. package/es/table/components/ToolBar/FilterColumnIcon.js +17 -4
  24. package/es/table/components/ToolBar/index.scss +8 -2
  25. package/es/table/index.js +26 -20
  26. package/es/table/index.scss +7 -1
  27. package/es/table/typing.d.ts +2 -0
  28. package/lib/actions/dialog.js +2 -5
  29. package/lib/form/Components/LightFilter/index.js +1 -1
  30. package/lib/form/Components/LightFilter/index.scss +1 -1
  31. package/lib/form/Filter/AdvancedFilter.d.ts +7 -0
  32. package/lib/form/Filter/AdvancedFilter.js +133 -0
  33. package/lib/form/Filter/LightFilter.d.ts +7 -0
  34. package/lib/form/Filter/LightFilter.js +99 -0
  35. package/lib/form/Filter/SimpleFilter.d.ts +7 -0
  36. package/lib/form/Filter/SimpleFilter.js +93 -0
  37. package/lib/form/Filter/index2.js +205 -257
  38. package/lib/form/ProForm/index.js +8 -6
  39. package/lib/form/ProForm/index.scss +3 -0
  40. package/lib/form/typing.d.ts +7 -3
  41. package/lib/index.d.ts +1 -1
  42. package/lib/index.js +1 -1
  43. package/lib/table/components/Pagination/index.d.ts +3 -0
  44. package/lib/table/components/Pagination/index.js +95 -0
  45. package/lib/table/components/ToolBar/FilterColumnIcon.js +17 -4
  46. package/lib/table/components/ToolBar/index.scss +8 -2
  47. package/lib/table/index.js +24 -19
  48. package/lib/table/index.scss +7 -1
  49. package/lib/table/typing.d.ts +2 -0
  50. package/package.json +2 -2
@@ -1,7 +1,10 @@
1
- var _excluded = ["schema", "onChange", "onSubmit"],
2
- _excluded2 = ["form", "schema", "onSubmit", "onChange"],
3
- _excluded3 = ["schema", "onSubmit", "onReset", "layout", "labelAlign", "wrapperAlign", "labelCol", "wrapperCol"],
4
- _excluded4 = ["addonAfter", "addonBefore", "onFilter", "onInit", "onReset", "mode", "expand"];
1
+ var _excluded = ["addonAfter", "addonBefore", "onFilter", "onInit", "onReset", "mode", "expand", "formRef", "defaultFilterValue"];
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+
7
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
8
 
6
9
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
7
10
 
@@ -11,211 +14,32 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
11
14
 
12
15
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
16
 
14
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
15
-
16
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
-
18
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
19
-
20
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21
-
22
17
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
18
 
24
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
25
-
26
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
27
-
28
19
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
29
20
 
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
-
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
33
22
 
34
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
24
 
36
25
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
37
26
 
38
27
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
39
28
 
40
- import React, { memo, useCallback, useMemo, useState, useEffect } from 'react';
29
+ import React, { memo, useCallback, useMemo, useState, useRef, useEffect } from 'react';
41
30
  import cls from 'classnames';
42
31
  import { Tag, Button, Badge } from '@alicloudfe/components';
43
32
  import TeamixIcon from '@teamix/icon';
44
- import { createForm } from '@formily/core';
33
+ import { createForm, onFormReact, onFormInputChange } from '@formily/core';
45
34
  import { toJS } from '@formily/reactive';
46
35
  import { usePrefixCls, getMessage, isSignificative, isStr, isPlainObj } from '@teamix/utils';
47
36
  import ProField from '../../field/index';
48
- import ProForm from '../ProForm';
49
37
  import fieldTypeMap from '../fieldTypeMap';
50
38
  import { getFormDisplayValues } from '../ProForm/useFormDisplayValues';
51
- import { mergeArrayValue } from '../utils';
52
- import './index2.scss';
53
- /**
54
- * 简单筛选
55
- */
56
-
57
- var SimpleFilter = /*#__PURE__*/memo(function (props) {
58
- var schema = props.schema,
59
- onChange = props.onChange,
60
- onSubmit = props.onSubmit,
61
- otherProps = _objectWithoutProperties(props, _excluded);
62
-
63
- var prefixCls = usePrefixCls('', {
64
- prefix: 'teamix-pro-form-query-filter-simple'
65
- });
66
- var simpleSchema = useMemo(function () {
67
- return [{
68
- component: 'FormFlex',
69
- props: {
70
- size: 8
71
- },
72
- children: schema
73
- }, {
74
- component: 'Submit',
75
- props: {
76
- style: {
77
- display: 'none'
78
- }
79
- }
80
- }];
81
- }, [schema]);
82
- return /*#__PURE__*/React.createElement(ProForm, _objectSpread(_objectSpread({}, otherProps), {}, {
83
- className: cls(prefixCls, props.className),
84
- schema: simpleSchema,
85
- feedbackLayout: "popover",
86
- breakpoints: [],
87
- inset: true,
88
- onSubmit: onSubmit,
89
- onChange: onChange
90
- }));
91
- });
92
- /**
93
- * 轻量筛选
94
- */
95
-
96
- var LightFilter = /*#__PURE__*/memo(function (props) {
97
- var form = props.form,
98
- schema = props.schema,
99
- onSubmit = props.onSubmit,
100
- onChange = props.onChange,
101
- otherProps = _objectWithoutProperties(props, _excluded2);
102
-
103
- var prefixCls = usePrefixCls('', {
104
- prefix: 'teamix-pro-form-query-filter-light'
105
- });
106
- var onBtnClick = useCallback(function () {
107
- onChange && onChange(toJS(form.values));
108
- }, [form]);
109
- var LightSchema = useMemo(function () {
110
- return [{
111
- component: 'LightFilter',
112
- props: {
113
- buttonProps: {
114
- onClick: onBtnClick
115
- }
116
- },
117
- children: schema
118
- }, {
119
- component: 'Submit',
120
- props: {
121
- style: {
122
- display: 'none'
123
- }
124
- }
125
- }];
126
- }, [schema, onBtnClick]);
127
- return /*#__PURE__*/React.createElement(ProForm, _objectSpread(_objectSpread({}, otherProps), {}, {
128
- form: form,
129
- className: cls(prefixCls, props.className),
130
- schema: LightSchema,
131
- feedbackLayout: "none",
132
- breakpoints: [],
133
- bordered: false,
134
- onSubmit: onSubmit,
135
- onChange: onChange
136
- }));
137
- });
138
- /**
139
- * 高级筛选
140
- */
141
-
142
- var AdvancedFilter = /*#__PURE__*/memo(function (props) {
143
- var schema = props.schema,
144
- onSubmit = props.onSubmit,
145
- onReset = props.onReset,
146
- layout = props.layout,
147
- labelAlign = props.labelAlign,
148
- wrapperAlign = props.wrapperAlign,
149
- labelCol = props.labelCol,
150
- wrapperCol = props.wrapperCol,
151
- otherProps = _objectWithoutProperties(props, _excluded3);
152
-
153
- var prefixCls = usePrefixCls('', {
154
- prefix: 'teamix-pro-form-query-filter-advanced'
155
- });
156
- var gridSchema = useMemo(function () {
157
- return [{
158
- name: 'FormGrid',
159
- component: 'FormGrid',
160
- props: {
161
- breakpoints: [480, 720, 990, 1200, Infinity],
162
- maxColumns: [1, 2, 3, 3, 4],
163
- columnGap: 16,
164
- rowGap: 12
165
- },
166
- children: [].concat(_toConsumableArray(schema), [{
167
- component: 'FormGrid.GridColumn',
168
- props: {
169
- gridSpan: -1
170
- },
171
- children: [{
172
- component: 'FormButtonGroup',
173
- props: {
174
- align: 'right'
175
- },
176
- children: [{
177
- component: 'Reset',
178
- props: {
179
- onResetValidateSuccess: onReset,
180
- children: getMessage('reset')
181
- }
182
- }, {
183
- component: 'Submit',
184
- props: {
185
- style: {
186
- marginRight: -8
187
- },
188
- children: getMessage('search')
189
- }
190
- }]
191
- }]
192
- }])
193
- }];
194
- }, [schema, onReset]);
195
- var getTeamixLayout = useMemo(function () {
196
- return {
197
- breakpoints: [990],
198
- layout: mergeArrayValue(['vertical'], layout),
199
- labelAlign: mergeArrayValue(['left'], labelAlign),
200
- wrapperAlign: mergeArrayValue(['left'], wrapperAlign),
201
- labelCol: mergeArrayValue([24], labelCol),
202
- wrapperCol: mergeArrayValue([24], wrapperCol)
203
- };
204
- }, [layout, labelAlign, wrapperAlign, labelCol, wrapperCol]);
205
- return /*#__PURE__*/React.createElement(ProForm, _objectSpread(_objectSpread(_objectSpread({
206
- className: cls(prefixCls, props.className),
207
- schema: gridSchema,
208
- feedbackLayout: "popover"
209
- }, otherProps), getTeamixLayout), {}, {
210
- onSubmit: onSubmit
211
- }));
212
- });
213
- AdvancedFilter.defaultProps = {
214
- layout: 'horizontal',
215
- labelAlign: 'right',
216
- labelCol: 6,
217
- wrapperCol: 18
218
- };
39
+ import SimpleFilter from './SimpleFilter';
40
+ import LightFilter from './LightFilter';
41
+ import AdvancedFilter from './AdvancedFilter';
42
+ import './index2.scss'; // 获取Schema是否包含默认值、异步默认值、必选校验等
219
43
 
220
44
  var getSpecialProps = function getSpecialProps(props) {
221
45
  var initialValues = props.initialValues,
@@ -263,23 +87,89 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
263
87
  onReset = props.onReset,
264
88
  mode = props.mode,
265
89
  expand = props.expand,
266
- otherProps = _objectWithoutProperties(props, _excluded4);
90
+ formRef = props.formRef,
91
+ defaultFilterValue = props.defaultFilterValue,
92
+ otherProps = _objectWithoutProperties(props, _excluded); // 表单默认值初始化回调
93
+
94
+
95
+ var _onFormInit = function onFormInit(form, _ref, configFilterItem) {
96
+ var initialRequest = _ref.initialRequest,
97
+ onInit = _ref.onInit;
98
+
99
+ if (!form.mounted) {
100
+ form.loading = !!initialRequest;
101
+ }
102
+
103
+ var loadingField = Object.values(form.fields).filter(function (field) {
104
+ return !!field.loading;
105
+ });
106
+
107
+ if (form.mounted) {
108
+ if (loadingField.length === 0 && !form.loading) {
109
+ var onInitResult = onInit && onInit(toJS(form.values));
110
+
111
+ if (onInitResult) {
112
+ // 根据onInit返回值,判断是否使用该事件执行筛选,使用过则添加筛选标签
113
+ configFilterItem && configFilterItem(form);
114
+ }
115
+
116
+ _onFormInit = function onFormInit() {};
117
+ }
118
+ }
119
+ }; // 设置当前form
120
+
121
+
122
+ var setCurrentForm = function setCurrentForm(formName) {
123
+ currentForm.current = formName;
124
+
125
+ if (formRef) {
126
+ var form = formMap[formName];
127
+ formRef.current = form;
128
+
129
+ formRef.current.updateTags = function () {
130
+ configFilterItem(form);
131
+ };
132
+ }
133
+ }; // 创建简单筛选表单实例
134
+
267
135
 
268
136
  var simpleForm = useMemo(function () {
269
137
  return createForm({
270
- validateFirst: true
138
+ validateFirst: true,
139
+ effects: function effects() {
140
+ onFormReact(function (form) {
141
+ _onFormInit(form, props);
142
+ });
143
+ }
271
144
  });
272
- }, []);
145
+ }, []); // 创建轻量筛选表单实例
146
+
273
147
  var lightForm = useMemo(function () {
274
148
  return createForm({
275
- validateFirst: true
149
+ validateFirst: true,
150
+ effects: function effects() {
151
+ onFormInputChange(function () {
152
+ setCurrentForm('light');
153
+ });
154
+ }
276
155
  });
277
- }, []);
156
+ }, []); // 创建高级筛选表单实例
157
+
278
158
  var advancedForm = useMemo(function () {
279
159
  return createForm({
280
- validateFirst: true
160
+ validateFirst: true,
161
+ effects: function effects() {
162
+ onFormReact(function (form) {
163
+ _onFormInit(form, props, configFilterItem);
164
+ });
165
+ }
281
166
  });
282
167
  }, []);
168
+ var formMap = {
169
+ simple: simpleForm,
170
+ light: lightForm,
171
+ advanced: advancedForm
172
+ };
283
173
 
284
174
  var _getSpecialProps = getSpecialProps(props),
285
175
  hasDefault = _getSpecialProps.hasDefault,
@@ -298,25 +188,24 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
298
188
  tagDataSource = _useState4[0],
299
189
  setTagDataSource = _useState4[1];
300
190
 
191
+ var filterItem = useRef([]);
192
+ var currentForm = useRef(mode === 'panel' ? advancedFilterVisible ? 'advanced' : 'light' : 'simple');
301
193
  var prefixCls = usePrefixCls('', {
302
194
  prefix: 'teamix-pro-form-query-filter'
303
- });
304
- var currentForm = mode === 'panel' ? advancedFilterVisible ? 'advanced' : 'light' : 'simple'; // 展开收起高级筛选
195
+ }); // 设置筛选数据
305
196
 
306
- var toggleAdvancedFilter = useCallback(function () {
307
- setAdvancedFilterVisible(function (visible) {
308
- return !visible;
309
- });
310
- }, []); // 获取标签数据
197
+ var configFilterItem = useCallback(function (form) {
198
+ filterItem.current = getFilterDisplayValues(form);
199
+ }, []); // 获取筛选数据Label
311
200
 
312
- var getTagDataSource = useCallback(function (form) {
201
+ var getFilterDisplayValues = useCallback(function (form) {
313
202
  var displayValues = getFormDisplayValues(form);
314
- return Object.entries(displayValues).map(function (_ref) {
203
+ return Object.entries(displayValues).map(function (_ref2) {
315
204
  var _data$displayValue;
316
205
 
317
- var _ref2 = _slicedToArray(_ref, 2),
318
- key = _ref2[0],
319
- data = _ref2[1];
206
+ var _ref3 = _slicedToArray(_ref2, 2),
207
+ key = _ref3[0],
208
+ data = _ref3[1];
320
209
 
321
210
  return {
322
211
  key: key,
@@ -330,32 +219,46 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
330
219
  }, []); // 设置标签数据
331
220
 
332
221
  var configTag = useCallback(function () {
333
- setTagDataSource(getTagDataSource(advancedForm));
334
- }, []); // 简单搜索Filter
222
+ setTagDataSource(filterItem.current);
223
+ }, [filterItem.current]); // 展开收起高级筛选
335
224
 
336
- var onSimpleFilter = useCallback(function (values) {
337
- if (currentForm === 'simple') {
338
- onFilter && onFilter(values);
225
+ var toggleAdvancedFilter = useCallback(function () {
226
+ var result = !advancedFilterVisible;
227
+
228
+ if (result) {
229
+ // 展开高级筛选,Light回填Advanced
230
+ if (currentForm.current === 'light') {
231
+ advancedForm.setValues(lightForm.values);
232
+ }
233
+ } else {
234
+ // 收起高级筛选,配置标签数据
235
+ configTag();
339
236
  }
340
- }, [onFilter, currentForm]); // 轻量搜索Filter
341
237
 
342
- var onLightFilter = useCallback( /*#__PURE__*/function () {
343
- var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(values) {
238
+ setAdvancedFilterVisible(result);
239
+ }, [advancedFilterVisible, configTag, currentForm.current]); // 简单搜索Filter
240
+
241
+ var onSimpleFilter = useCallback( /*#__PURE__*/function () {
242
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(values) {
344
243
  return regeneratorRuntime.wrap(function _callee$(_context) {
345
244
  while (1) {
346
245
  switch (_context.prev = _context.next) {
347
246
  case 0:
348
- if (!(currentForm === 'light')) {
247
+ if (!(currentForm.current === 'simple')) {
349
248
  _context.next = 5;
350
249
  break;
351
250
  }
352
251
 
353
- onFilter && onFilter(values);
252
+ if (!hasRequired) {
253
+ _context.next = 4;
254
+ break;
255
+ }
256
+
354
257
  _context.next = 4;
355
- return advancedForm.reset();
258
+ return simpleForm.validate();
356
259
 
357
260
  case 4:
358
- configTag();
261
+ onFilter && onFilter(values);
359
262
 
360
263
  case 5:
361
264
  case "end":
@@ -366,39 +269,77 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
366
269
  }));
367
270
 
368
271
  return function (_x) {
369
- return _ref3.apply(this, arguments);
272
+ return _ref4.apply(this, arguments);
273
+ };
274
+ }(), [onFilter, currentForm.current, hasRequired]); // 轻量搜索Filter
275
+
276
+ var onLightFilter = useCallback( /*#__PURE__*/function () {
277
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
278
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
279
+ while (1) {
280
+ switch (_context2.prev = _context2.next) {
281
+ case 0:
282
+ if (!(currentForm.current === 'light')) {
283
+ _context2.next = 6;
284
+ break;
285
+ }
286
+
287
+ onFilter && onFilter(values);
288
+ _context2.next = 4;
289
+ return advancedForm.reset();
290
+
291
+ case 4:
292
+ // 不会触发高级筛选的onReset回调函数
293
+ configFilterItem(advancedForm);
294
+ configTag();
295
+
296
+ case 6:
297
+ case "end":
298
+ return _context2.stop();
299
+ }
300
+ }
301
+ }, _callee2);
302
+ }));
303
+
304
+ return function (_x2) {
305
+ return _ref5.apply(this, arguments);
370
306
  };
371
- }(), [onFilter, currentForm]); // 高级搜索Filter
307
+ }(), [onFilter, currentForm.current]); // 高级筛选Change
308
+
309
+ var onAdvancedChange = useCallback(function () {
310
+ setCurrentForm('advanced');
311
+ }, []); // 高级搜索Filter
372
312
 
373
313
  var onAdvancedFilter = useCallback(function (values) {
374
- if (currentForm === 'advanced') {
375
- onFilter && onFilter(values);
376
- configTag();
377
- lightForm.reset();
378
- }
379
- }, [onFilter, currentForm]); // 关闭标签清空表单字段值
314
+ setCurrentForm('advanced');
315
+ onFilter && onFilter(values);
316
+ configFilterItem(advancedForm);
317
+ lightForm.reset();
318
+ }, [onFilter, currentForm.current]); // 高级搜索Reset
319
+
320
+ var onAdvancedReset = useCallback(function () {
321
+ setCurrentForm('advanced');
322
+ onReset && onReset(toJS(advancedForm.values));
323
+ configFilterItem(advancedForm);
324
+ lightForm.reset();
325
+ }, [onReset]); // 关闭标签清空表单字段值
380
326
 
381
327
  var onTagClose = useCallback(function (key) {
382
328
  advancedForm.setValuesIn(key, undefined);
383
- setTagDataSource(getTagDataSource(advancedForm));
384
- }, []); // 判断表单是否有校验和默认值
385
-
329
+ configFilterItem(advancedForm);
330
+ configTag();
331
+ onFilter && onFilter(toJS(advancedForm.values));
332
+ }, []); // 异步默认值回调,设置form的loading状态为false
333
+
334
+ var onInitialRequestComplete = useCallback(function (_, __, _ref6) {
335
+ var form = _ref6.form;
336
+ form.setState({
337
+ loading: false
338
+ });
339
+ }, []);
386
340
  useEffect(function () {
387
- if (hasDefault || hasAsyncDefault || hasRequired) {}
388
- }, [hasDefault, hasAsyncDefault, hasRequired]); // 设置默认值标签数据
389
-
390
- useEffect(function () {// onInit
391
- // if (mode === 'panel') {
392
- // if (expand) {
393
- // onInit && onInit(toJS(advancedForm.values));
394
- // } else {
395
- // onInit && onInit(toJS(lightForm.values));
396
- // }
397
- // configTag();
398
- // } else {
399
- // onInit && onInit(toJS(simpleForm.values));
400
- // }
401
- }, [mode]);
341
+ setCurrentForm(currentForm.current);
342
+ }, []);
402
343
  return /*#__PURE__*/React.createElement("div", {
403
344
  className: cls(prefixCls, props.className)
404
345
  }, /*#__PURE__*/React.createElement("div", {
@@ -408,11 +349,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
408
349
  }, addonBefore ? /*#__PURE__*/React.createElement("div", {
409
350
  className: "".concat(prefixCls, "-addonBefore")
410
351
  }, addonBefore) : null, mode === 'panel' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
411
- className: cls("".concat(prefixCls, "-inline-form"), hasAsyncDefault ? "".concat(prefixCls, "-inline-form-hidden") : '')
352
+ className: cls("".concat(prefixCls, "-inline-form"), hasDefaultOrRequired ? "".concat(prefixCls, "-inline-form-hidden") : '')
412
353
  }, /*#__PURE__*/React.createElement(LightFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
354
+ defaultFilterValue: defaultFilterValue,
413
355
  form: lightForm,
414
- onChange: onLightFilter,
415
- onSubmit: onLightFilter
356
+ onChange: onLightFilter
416
357
  }))), /*#__PURE__*/React.createElement("div", {
417
358
  className: "".concat(prefixCls, "-toggle")
418
359
  }, /*#__PURE__*/React.createElement(Badge, {
@@ -441,11 +382,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
441
382
  className: "".concat(prefixCls, "-panel")
442
383
  }, /*#__PURE__*/React.createElement("div", {
443
384
  className: cls("".concat(prefixCls, "-tag"), advancedFilterVisible ? "".concat(prefixCls, "-tag-hidden") : '')
444
- }, /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref4) {
445
- var key = _ref4.key,
446
- label = _ref4.label,
447
- value = _ref4.value,
448
- type = _ref4.type;
385
+ }, /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref7) {
386
+ var key = _ref7.key,
387
+ label = _ref7.label,
388
+ value = _ref7.value,
389
+ type = _ref7.type;
449
390
  return /*#__PURE__*/React.createElement(Tag.Closeable, {
450
391
  key: key,
451
392
  afterClose: function afterClose() {
@@ -462,8 +403,13 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
462
403
  }))), /*#__PURE__*/React.createElement("div", {
463
404
  className: cls("".concat(prefixCls, "-advanced-wrap"), !advancedFilterVisible ? "".concat(prefixCls, "-advanced-wrap-hidden") : '')
464
405
  }, /*#__PURE__*/React.createElement(AdvancedFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
406
+ initialRequest: otherProps.initialRequest ? _objectSpread(_objectSpread({}, otherProps.initialRequest), {}, {
407
+ onComplete: onInitialRequestComplete
408
+ }) : undefined,
465
409
  form: advancedForm,
466
- onSubmit: onAdvancedFilter
410
+ onChange: onAdvancedChange,
411
+ onSubmit: onAdvancedFilter,
412
+ onReset: onAdvancedReset
467
413
  })))) : null);
468
414
  });
469
415
  QueryFilter.defaultProps = {
@@ -12,7 +12,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
12
12
 
13
13
  import React, { memo, useEffect, useMemo } from 'react';
14
14
  import cls from 'classnames';
15
- import { createForm, onFormValuesChange, registerValidateLocale, setValidateLanguage } from '@formily/core';
15
+ import { createForm, onFieldValueChange, registerValidateLocale, setValidateLanguage } from '@formily/core';
16
16
  import { toJS } from '@formily/reactive';
17
17
  import { Form } from '@teamix/formily';
18
18
  import { usePrefixCls, getLanguage } from '@teamix/utils';
@@ -79,12 +79,10 @@ var ProForm = /*#__PURE__*/memo(function (_ref) {
79
79
  }, [breakpoints, layout, labelAlign, wrapperAlign, labelCol, wrapperCol]); // 添加onChange
80
80
 
81
81
  useEffect(function () {
82
- form.removeEffects('onChange');
83
- form.addEffects('onChange', function () {
84
- onFormValuesChange(debounce(function (form) {
85
- if (onChange) {
86
- onChange(toJS(form.values));
87
- }
82
+ form.removeEffects('onFieldValueChange');
83
+ form.addEffects('onFieldValueChange', function () {
84
+ onFieldValueChange('*', debounce(function (field, form) {
85
+ onChange && onChange(toJS(form.values), toJS(field.value), field.props.name);
88
86
  }, 300));
89
87
  });
90
88
  }, [form, onChange]); // 配置表单默认值
@@ -95,6 +93,10 @@ var ProForm = /*#__PURE__*/memo(function (_ref) {
95
93
  } else if (initialRequest) {
96
94
  useInitialRequest(initialRequest).then(function (values) {
97
95
  form.setInitialValues(values);
96
+ }).finally(function () {
97
+ initialRequest.onComplete && initialRequest.onComplete(undefined, undefined, {
98
+ form: form
99
+ });
98
100
  });
99
101
  }
100
102
  }, []); // 配置国际化
@@ -180,6 +180,9 @@
180
180
  border: 0;
181
181
  }
182
182
  }
183
+ .#{$css-prefix}input-control:last-child {
184
+ padding-right: 0;
185
+ }
183
186
  }
184
187
 
185
188
  // 数组类组件添加按钮
@@ -58,15 +58,17 @@ export interface ProFormProps extends IFormLayoutProps {
58
58
  };
59
59
  children?: React.ReactNode;
60
60
  initialValues?: AnyObject;
61
- initialRequest?: CommonRequestConfig;
61
+ initialRequest?: ProFormRequestConfig;
62
62
  previewTextPlaceholder?: ReactNode;
63
- onChange?: (values: any, displayValues?: any) => any;
63
+ onChange?: (values: any, fieldValue?: any, fieldName?: string) => any;
64
64
  onSubmit?: ((values: any) => any) | CommonRequestConfig;
65
65
  onSubmitFailed?: (feedbacks: IFormFeedback[]) => void;
66
66
  }
67
67
  export interface FilterProps extends ProFormProps {
68
68
  form: FormType;
69
+ defaultFilterValue?: string;
69
70
  onReset?: (payload?: any) => void;
71
+ onResetClick?: () => void;
70
72
  }
71
73
  export interface QueryFilterProps extends ProFormProps {
72
74
  /**
@@ -77,7 +79,9 @@ export interface QueryFilterProps extends ProFormProps {
77
79
  expand?: boolean;
78
80
  addonBefore?: ReactNode;
79
81
  addonAfter?: ReactNode;
80
- onInit?: (values: any) => void;
82
+ defaultFilterValue?: string;
83
+ formRef?: React.MutableRefObject<any>;
84
+ onInit?: (values: any) => boolean;
81
85
  onFilter?: (values: any) => void;
82
86
  onReset?: (payload?: any) => void;
83
87
  }
package/es/index.d.ts CHANGED
@@ -21,5 +21,5 @@ export * from './page-container';
21
21
  export * from './page-header';
22
22
  export * from './skeleton';
23
23
  export * from './table';
24
- declare const version = "1.2.18";
24
+ declare const version = "1.2.19";
25
25
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, hooks, nocode, templates, utils, };
package/es/index.js CHANGED
@@ -27,7 +27,7 @@ export * from './page-header';
27
27
  export * from './skeleton';
28
28
  export * from './table'; // export * from './sidebar';
29
29
 
30
- var version = '1.2.18';
30
+ var version = '1.2.19';
31
31
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, // ProLayout,
32
32
  ProPageContainer, ProPageHeader, ProSkeleton, ProTable, // ProSidebar,
33
33
  hooks, nocode, templates, utils };