@teamix/pro 1.2.19 → 1.2.23

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 (103) hide show
  1. package/dist/212.js +49 -49
  2. package/dist/pro.css +1 -1
  3. package/dist/pro.js +3400 -880
  4. package/dist/pro.min.css +1 -1
  5. package/dist/pro.min.js +1 -1
  6. package/es/actions/dialog.js +10 -24
  7. package/es/actions/index.d.ts +10 -0
  8. package/es/actions/index.js +11 -16
  9. package/es/form/Components/LightFilter/componentMap.js +2 -1
  10. package/es/form/Components/LightFilter/index.js +16 -4
  11. package/es/form/Components/LightFilter/index.scss +1 -1
  12. package/es/form/Components/SelectTable/index.d.ts +24 -0
  13. package/es/form/Components/SelectTable/index.js +135 -0
  14. package/es/form/Components/SelectTable/index.scss +28 -0
  15. package/es/form/Components/SelectTable/table.d.ts +6 -0
  16. package/es/form/Components/SelectTable/table.js +64 -0
  17. package/es/form/Filter/AdvancedFilter.d.ts +7 -0
  18. package/es/form/Filter/AdvancedFilter.js +114 -0
  19. package/es/form/Filter/LightFilter.d.ts +7 -0
  20. package/es/form/Filter/LightFilter.js +79 -0
  21. package/es/form/Filter/SimpleFilter.d.ts +7 -0
  22. package/es/form/Filter/SimpleFilter.js +74 -0
  23. package/es/form/Filter/index2.js +203 -257
  24. package/es/form/ProForm/index.js +12 -9
  25. package/es/form/ProForm/index.scss +40 -6
  26. package/es/form/ProForm/useFormDisplayValues.js +4 -2
  27. package/es/form/SchemaForm/index.js +16 -10
  28. package/es/form/SchemaForm/initializeDataSource.d.ts +2 -2
  29. package/es/form/SchemaForm/initializeDataSource.js +4 -9
  30. package/es/form/SchemaForm/initializeRequest.d.ts +2 -2
  31. package/es/form/SchemaForm/initializeRequest.js +4 -10
  32. package/es/form/SchemaForm/initializeRules.d.ts +7 -1
  33. package/es/form/SchemaForm/initializeRules.js +9 -13
  34. package/es/form/SchemaForm/reactions.d.ts +5 -5
  35. package/es/form/SchemaForm/reactions.js +27 -29
  36. package/es/form/global.scss +1 -0
  37. package/es/form/typing.d.ts +7 -3
  38. package/es/form/utils.d.ts +8 -7
  39. package/es/form/utils.js +5 -4
  40. package/es/index.d.ts +1 -1
  41. package/es/index.js +1 -1
  42. package/es/table/components/Filter/index.js +1 -0
  43. package/es/table/components/Layout/index.js +22 -12
  44. package/es/table/components/Pagination/index.d.ts +7 -0
  45. package/es/table/components/Pagination/index.js +245 -0
  46. package/es/table/components/Pagination/index.scss +50 -0
  47. package/es/table/components/ToolBar/FilterColumnIcon.js +41 -7
  48. package/es/table/components/ToolBar/index.scss +17 -6
  49. package/es/table/index.js +96 -37
  50. package/es/table/index.scss +7 -1
  51. package/es/table/typing.d.ts +9 -2
  52. package/es/table/utils/columnRender.js +2 -1
  53. package/es/table/utils/index.d.ts +7 -0
  54. package/es/table/utils/index.js +38 -4
  55. package/lib/actions/dialog.js +9 -23
  56. package/lib/actions/index.d.ts +10 -0
  57. package/lib/actions/index.js +11 -16
  58. package/lib/form/Components/LightFilter/componentMap.js +2 -1
  59. package/lib/form/Components/LightFilter/index.js +15 -4
  60. package/lib/form/Components/LightFilter/index.scss +1 -1
  61. package/lib/form/Components/SelectTable/index.d.ts +24 -0
  62. package/lib/form/Components/SelectTable/index.js +157 -0
  63. package/lib/form/Components/SelectTable/index.scss +28 -0
  64. package/lib/form/Components/SelectTable/table.d.ts +6 -0
  65. package/lib/form/Components/SelectTable/table.js +76 -0
  66. package/lib/form/Filter/AdvancedFilter.d.ts +7 -0
  67. package/lib/form/Filter/AdvancedFilter.js +134 -0
  68. package/lib/form/Filter/LightFilter.d.ts +7 -0
  69. package/lib/form/Filter/LightFilter.js +99 -0
  70. package/lib/form/Filter/SimpleFilter.d.ts +7 -0
  71. package/lib/form/Filter/SimpleFilter.js +93 -0
  72. package/lib/form/Filter/index2.js +207 -258
  73. package/lib/form/ProForm/index.js +11 -9
  74. package/lib/form/ProForm/index.scss +40 -6
  75. package/lib/form/ProForm/useFormDisplayValues.js +3 -1
  76. package/lib/form/SchemaForm/index.js +16 -9
  77. package/lib/form/SchemaForm/initializeDataSource.d.ts +2 -2
  78. package/lib/form/SchemaForm/initializeDataSource.js +4 -11
  79. package/lib/form/SchemaForm/initializeRequest.d.ts +2 -2
  80. package/lib/form/SchemaForm/initializeRequest.js +4 -11
  81. package/lib/form/SchemaForm/initializeRules.d.ts +7 -1
  82. package/lib/form/SchemaForm/initializeRules.js +9 -16
  83. package/lib/form/SchemaForm/reactions.d.ts +5 -5
  84. package/lib/form/SchemaForm/reactions.js +29 -31
  85. package/lib/form/global.scss +1 -0
  86. package/lib/form/typing.d.ts +7 -3
  87. package/lib/form/utils.d.ts +8 -7
  88. package/lib/form/utils.js +6 -5
  89. package/lib/index.d.ts +1 -1
  90. package/lib/index.js +1 -1
  91. package/lib/table/components/Layout/index.js +21 -11
  92. package/lib/table/components/Pagination/index.d.ts +7 -0
  93. package/lib/table/components/Pagination/index.js +265 -0
  94. package/lib/table/components/Pagination/index.scss +50 -0
  95. package/lib/table/components/ToolBar/FilterColumnIcon.js +40 -6
  96. package/lib/table/components/ToolBar/index.scss +17 -6
  97. package/lib/table/index.js +96 -36
  98. package/lib/table/index.scss +7 -1
  99. package/lib/table/typing.d.ts +9 -2
  100. package/lib/table/utils/columnRender.js +2 -1
  101. package/lib/table/utils/index.d.ts +7 -0
  102. package/lib/table/utils/index.js +46 -4
  103. package/package.json +2 -2
@@ -23,20 +23,21 @@ var _utils = require("@teamix/utils");
23
23
 
24
24
  var _index = _interopRequireDefault(require("../../field/index"));
25
25
 
26
- var _ProForm = _interopRequireDefault(require("../ProForm"));
27
-
28
26
  var _fieldTypeMap = _interopRequireDefault(require("../fieldTypeMap"));
29
27
 
30
28
  var _useFormDisplayValues = require("../ProForm/useFormDisplayValues");
31
29
 
32
- var _utils2 = require("../utils");
30
+ var _SimpleFilter = _interopRequireDefault(require("./SimpleFilter"));
31
+
32
+ var _LightFilter = _interopRequireDefault(require("./LightFilter"));
33
+
34
+ var _AdvancedFilter = _interopRequireDefault(require("./AdvancedFilter"));
35
+
36
+ var _lodash = _interopRequireDefault(require("lodash.debounce"));
33
37
 
34
38
  require("./index2.scss");
35
39
 
36
- var _excluded = ["schema", "onChange", "onSubmit"],
37
- _excluded2 = ["form", "schema", "onSubmit", "onChange"],
38
- _excluded3 = ["schema", "onSubmit", "onReset", "layout", "labelAlign", "wrapperAlign", "labelCol", "wrapperCol"],
39
- _excluded4 = ["addonAfter", "addonBefore", "onFilter", "onInit", "onReset", "mode", "expand"];
40
+ var _excluded = ["addonAfter", "addonBefore", "onFilter", "onInit", "onReset", "mode", "expand", "formRef", "defaultFilterValue"];
40
41
 
41
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
42
43
 
@@ -44,6 +45,12 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
44
45
 
45
46
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
46
47
 
48
+ 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; }
49
+
50
+ 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; }
51
+
52
+ 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; }
53
+
47
54
  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); } }
48
55
 
49
56
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -52,198 +59,19 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
52
59
 
53
60
  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."); }
54
61
 
55
- 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; }
56
-
57
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
58
-
59
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
60
-
61
- 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."); }
62
-
63
62
  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); }
64
63
 
65
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
66
-
67
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
68
-
69
64
  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; }
70
65
 
71
- 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; }
72
-
73
- 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; }
66
+ 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; }
74
67
 
75
- 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; }
68
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
76
69
 
77
70
  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; }
78
71
 
79
72
  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; }
80
73
 
81
- /**
82
- * 简单筛选
83
- */
84
- var SimpleFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
85
- var schema = props.schema,
86
- onChange = props.onChange,
87
- onSubmit = props.onSubmit,
88
- otherProps = _objectWithoutProperties(props, _excluded);
89
-
90
- var prefixCls = (0, _utils.usePrefixCls)('', {
91
- prefix: 'teamix-pro-form-query-filter-simple'
92
- });
93
- var simpleSchema = (0, _react.useMemo)(function () {
94
- return [{
95
- component: 'FormFlex',
96
- props: {
97
- size: 8
98
- },
99
- children: schema
100
- }, {
101
- component: 'Submit',
102
- props: {
103
- style: {
104
- display: 'none'
105
- }
106
- }
107
- }];
108
- }, [schema]);
109
- return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread({}, otherProps), {}, {
110
- className: (0, _classnames.default)(prefixCls, props.className),
111
- schema: simpleSchema,
112
- feedbackLayout: "popover",
113
- breakpoints: [],
114
- inset: true,
115
- onSubmit: onSubmit,
116
- onChange: onChange
117
- }));
118
- });
119
- /**
120
- * 轻量筛选
121
- */
122
-
123
- var LightFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
124
- var form = props.form,
125
- schema = props.schema,
126
- onSubmit = props.onSubmit,
127
- onChange = props.onChange,
128
- otherProps = _objectWithoutProperties(props, _excluded2);
129
-
130
- var prefixCls = (0, _utils.usePrefixCls)('', {
131
- prefix: 'teamix-pro-form-query-filter-light'
132
- });
133
- var onBtnClick = (0, _react.useCallback)(function () {
134
- onChange && onChange((0, _reactive.toJS)(form.values));
135
- }, [form]);
136
- var LightSchema = (0, _react.useMemo)(function () {
137
- return [{
138
- component: 'LightFilter',
139
- props: {
140
- buttonProps: {
141
- onClick: onBtnClick
142
- }
143
- },
144
- children: schema
145
- }, {
146
- component: 'Submit',
147
- props: {
148
- style: {
149
- display: 'none'
150
- }
151
- }
152
- }];
153
- }, [schema, onBtnClick]);
154
- return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread({}, otherProps), {}, {
155
- form: form,
156
- className: (0, _classnames.default)(prefixCls, props.className),
157
- schema: LightSchema,
158
- feedbackLayout: "none",
159
- breakpoints: [],
160
- bordered: false,
161
- onSubmit: onSubmit,
162
- onChange: onChange
163
- }));
164
- });
165
- /**
166
- * 高级筛选
167
- */
168
-
169
- var AdvancedFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
170
- var schema = props.schema,
171
- onSubmit = props.onSubmit,
172
- onReset = props.onReset,
173
- layout = props.layout,
174
- labelAlign = props.labelAlign,
175
- wrapperAlign = props.wrapperAlign,
176
- labelCol = props.labelCol,
177
- wrapperCol = props.wrapperCol,
178
- otherProps = _objectWithoutProperties(props, _excluded3);
179
-
180
- var prefixCls = (0, _utils.usePrefixCls)('', {
181
- prefix: 'teamix-pro-form-query-filter-advanced'
182
- });
183
- var gridSchema = (0, _react.useMemo)(function () {
184
- return [{
185
- name: 'FormGrid',
186
- component: 'FormGrid',
187
- props: {
188
- breakpoints: [480, 720, 990, 1200, Infinity],
189
- maxColumns: [1, 2, 3, 3, 4],
190
- columnGap: 16,
191
- rowGap: 12
192
- },
193
- children: [].concat(_toConsumableArray(schema), [{
194
- component: 'FormGrid.GridColumn',
195
- props: {
196
- gridSpan: -1
197
- },
198
- children: [{
199
- component: 'FormButtonGroup',
200
- props: {
201
- align: 'right'
202
- },
203
- children: [{
204
- component: 'Reset',
205
- props: {
206
- onResetValidateSuccess: onReset,
207
- children: (0, _utils.getMessage)('reset')
208
- }
209
- }, {
210
- component: 'Submit',
211
- props: {
212
- style: {
213
- marginRight: -8
214
- },
215
- children: (0, _utils.getMessage)('search')
216
- }
217
- }]
218
- }]
219
- }])
220
- }];
221
- }, [schema, onReset]);
222
- var getTeamixLayout = (0, _react.useMemo)(function () {
223
- return {
224
- breakpoints: [990],
225
- layout: (0, _utils2.mergeArrayValue)(['vertical'], layout),
226
- labelAlign: (0, _utils2.mergeArrayValue)(['left'], labelAlign),
227
- wrapperAlign: (0, _utils2.mergeArrayValue)(['left'], wrapperAlign),
228
- labelCol: (0, _utils2.mergeArrayValue)([24], labelCol),
229
- wrapperCol: (0, _utils2.mergeArrayValue)([24], wrapperCol)
230
- };
231
- }, [layout, labelAlign, wrapperAlign, labelCol, wrapperCol]);
232
- return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread(_objectSpread({
233
- className: (0, _classnames.default)(prefixCls, props.className),
234
- schema: gridSchema,
235
- feedbackLayout: "popover"
236
- }, otherProps), getTeamixLayout), {}, {
237
- onSubmit: onSubmit
238
- }));
239
- });
240
- AdvancedFilter.defaultProps = {
241
- layout: 'horizontal',
242
- labelAlign: 'right',
243
- labelCol: 6,
244
- wrapperCol: 18
245
- };
246
-
74
+ // 获取Schema是否包含默认值、异步默认值、必选校验等
247
75
  var getSpecialProps = function getSpecialProps(props) {
248
76
  var initialValues = props.initialValues,
249
77
  initialRequest = props.initialRequest;
@@ -290,23 +118,93 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
290
118
  onReset = props.onReset,
291
119
  mode = props.mode,
292
120
  expand = props.expand,
293
- otherProps = _objectWithoutProperties(props, _excluded4);
121
+ formRef = props.formRef,
122
+ defaultFilterValue = props.defaultFilterValue,
123
+ otherProps = _objectWithoutProperties(props, _excluded); // 表单默认值初始化回调
124
+
125
+
126
+ var _onFormInit = function onFormInit(form, _ref, configFilterItem) {
127
+ var initialRequest = _ref.initialRequest,
128
+ onInit = _ref.onInit;
129
+
130
+ if (!form.mounted) {
131
+ form.loading = !!initialRequest;
132
+ }
133
+
134
+ var loadingField = Object.values(form.fields).filter(function (field) {
135
+ return !!field.loading;
136
+ });
137
+
138
+ if (form.mounted) {
139
+ if (loadingField.length === 0 && !form.loading) {
140
+ var onInitResult = onInit && onInit((0, _reactive.toJS)(form.values));
141
+
142
+ if (onInitResult) {
143
+ // 根据onInit返回值,判断是否使用该事件执行筛选,使用过则添加筛选标签
144
+ configFilterItem && configFilterItem(form);
145
+ }
146
+
147
+ _onFormInit = function onFormInit() {};
148
+ }
149
+ }
150
+ }; // 设置当前form
151
+
152
+
153
+ var setCurrentForm = function setCurrentForm(formName) {
154
+ currentForm.current = formName;
155
+
156
+ if (formRef) {
157
+ var form = formMap[formName];
158
+ formRef.current = form;
159
+
160
+ formRef.current.updateTags = function () {
161
+ configFilterItem(form);
162
+ };
163
+ }
164
+ }; // 创建简单筛选表单实例
165
+
294
166
 
295
167
  var simpleForm = (0, _react.useMemo)(function () {
296
168
  return (0, _core.createForm)({
297
- validateFirst: true
169
+ validateFirst: true,
170
+ effects: function effects() {
171
+ (0, _core.onFormReact)(function (form) {
172
+ _onFormInit(form, props);
173
+ });
174
+ }
298
175
  });
299
- }, []);
176
+ }, []); // 创建轻量筛选表单实例
177
+
300
178
  var lightForm = (0, _react.useMemo)(function () {
301
179
  return (0, _core.createForm)({
302
- validateFirst: true
180
+ validateFirst: true,
181
+ effects: function effects() {
182
+ (0, _core.onFormInputChange)(function () {
183
+ setCurrentForm('light');
184
+ });
185
+ }
303
186
  });
304
- }, []);
187
+ }, []); // 创建高级筛选表单实例
188
+
305
189
  var advancedForm = (0, _react.useMemo)(function () {
306
190
  return (0, _core.createForm)({
307
- validateFirst: true
191
+ validateFirst: true,
192
+ effects: function effects() {
193
+ (0, _core.onFormReact)(function (form) {
194
+ _onFormInit(form, props, configFilterItem);
195
+ });
196
+ (0, _core.onFormInputChange)(function (form) {
197
+ // 主动修改高级筛选值
198
+ setCurrentForm('advanced');
199
+ });
200
+ }
308
201
  });
309
202
  }, []);
203
+ var formMap = {
204
+ simple: simpleForm,
205
+ light: lightForm,
206
+ advanced: advancedForm
207
+ };
310
208
 
311
209
  var _getSpecialProps = getSpecialProps(props),
312
210
  hasDefault = _getSpecialProps.hasDefault,
@@ -325,25 +223,24 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
325
223
  tagDataSource = _useState4[0],
326
224
  setTagDataSource = _useState4[1];
327
225
 
226
+ var filterItem = (0, _react.useRef)([]);
227
+ var currentForm = (0, _react.useRef)(mode === 'panel' ? advancedFilterVisible ? 'advanced' : 'light' : 'simple');
328
228
  var prefixCls = (0, _utils.usePrefixCls)('', {
329
229
  prefix: 'teamix-pro-form-query-filter'
330
- });
331
- var currentForm = mode === 'panel' ? advancedFilterVisible ? 'advanced' : 'light' : 'simple'; // 展开收起高级筛选
230
+ }); // 设置筛选数据
332
231
 
333
- var toggleAdvancedFilter = (0, _react.useCallback)(function () {
334
- setAdvancedFilterVisible(function (visible) {
335
- return !visible;
336
- });
337
- }, []); // 获取标签数据
232
+ var configFilterItem = (0, _react.useCallback)(function (form) {
233
+ filterItem.current = getFilterDisplayValues(form);
234
+ }, []); // 获取筛选数据Label
338
235
 
339
- var getTagDataSource = (0, _react.useCallback)(function (form) {
236
+ var getFilterDisplayValues = (0, _react.useCallback)(function (form) {
340
237
  var displayValues = (0, _useFormDisplayValues.getFormDisplayValues)(form);
341
- return Object.entries(displayValues).map(function (_ref) {
238
+ return Object.entries(displayValues).map(function (_ref2) {
342
239
  var _data$displayValue;
343
240
 
344
- var _ref2 = _slicedToArray(_ref, 2),
345
- key = _ref2[0],
346
- data = _ref2[1];
241
+ var _ref3 = _slicedToArray(_ref2, 2),
242
+ key = _ref3[0],
243
+ data = _ref3[1];
347
244
 
348
245
  return {
349
246
  key: key,
@@ -357,32 +254,46 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
357
254
  }, []); // 设置标签数据
358
255
 
359
256
  var configTag = (0, _react.useCallback)(function () {
360
- setTagDataSource(getTagDataSource(advancedForm));
361
- }, []); // 简单搜索Filter
257
+ setTagDataSource(filterItem.current);
258
+ }, [filterItem.current]); // 展开收起高级筛选
259
+
260
+ var toggleAdvancedFilter = (0, _react.useCallback)(function () {
261
+ var result = !advancedFilterVisible;
362
262
 
363
- var onSimpleFilter = (0, _react.useCallback)(function (values) {
364
- if (currentForm === 'simple') {
365
- onFilter && onFilter(values);
263
+ if (result) {
264
+ // 展开高级筛选,Light回填Advanced
265
+ if (currentForm.current === 'light') {
266
+ advancedForm.setValues(lightForm.values);
267
+ }
268
+ } else {
269
+ // 收起高级筛选,配置标签数据
270
+ configTag();
366
271
  }
367
- }, [onFilter, currentForm]); // 轻量搜索Filter
368
272
 
369
- var onLightFilter = (0, _react.useCallback)( /*#__PURE__*/function () {
370
- var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(values) {
273
+ setAdvancedFilterVisible(result);
274
+ }, [advancedFilterVisible, configTag, currentForm.current]); // 简单搜索Filter
275
+
276
+ var onSimpleFilter = (0, _react.useCallback)( /*#__PURE__*/function () {
277
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(values) {
371
278
  return regeneratorRuntime.wrap(function _callee$(_context) {
372
279
  while (1) {
373
280
  switch (_context.prev = _context.next) {
374
281
  case 0:
375
- if (!(currentForm === 'light')) {
282
+ if (!(currentForm.current === 'simple')) {
376
283
  _context.next = 5;
377
284
  break;
378
285
  }
379
286
 
380
- onFilter && onFilter(values);
287
+ if (!hasRequired) {
288
+ _context.next = 4;
289
+ break;
290
+ }
291
+
381
292
  _context.next = 4;
382
- return advancedForm.reset();
293
+ return simpleForm.validate();
383
294
 
384
295
  case 4:
385
- configTag();
296
+ onFilter && onFilter(values);
386
297
 
387
298
  case 5:
388
299
  case "end":
@@ -393,39 +304,73 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
393
304
  }));
394
305
 
395
306
  return function (_x) {
396
- return _ref3.apply(this, arguments);
307
+ return _ref4.apply(this, arguments);
397
308
  };
398
- }(), [onFilter, currentForm]); // 高级搜索Filter
309
+ }(), [onFilter, currentForm.current, hasRequired]); // 轻量搜索Filter
310
+
311
+ var onLightFilter = (0, _react.useCallback)( /*#__PURE__*/function () {
312
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
313
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
314
+ while (1) {
315
+ switch (_context2.prev = _context2.next) {
316
+ case 0:
317
+ if (!(currentForm.current === 'light')) {
318
+ _context2.next = 6;
319
+ break;
320
+ }
321
+
322
+ onFilter && onFilter(values);
323
+ _context2.next = 4;
324
+ return advancedForm.reset();
325
+
326
+ case 4:
327
+ // 不会触发高级筛选的onReset回调函数
328
+ configFilterItem(advancedForm);
329
+ configTag();
330
+
331
+ case 6:
332
+ case "end":
333
+ return _context2.stop();
334
+ }
335
+ }
336
+ }, _callee2);
337
+ }));
338
+
339
+ return function (_x2) {
340
+ return _ref5.apply(this, arguments);
341
+ };
342
+ }(), [onFilter, currentForm.current]); // 高级搜索Filter
399
343
 
400
344
  var onAdvancedFilter = (0, _react.useCallback)(function (values) {
401
- if (currentForm === 'advanced') {
402
- onFilter && onFilter(values);
403
- configTag();
404
- lightForm.reset();
405
- }
406
- }, [onFilter, currentForm]); // 关闭标签清空表单字段值
345
+ setCurrentForm('advanced');
346
+ onFilter && onFilter(values);
347
+ configFilterItem(advancedForm);
348
+ lightForm.reset();
349
+ }, [onFilter, currentForm.current]); // 高级搜索Reset
350
+
351
+ var onAdvancedReset = (0, _react.useCallback)(function () {
352
+ setCurrentForm('advanced');
353
+ onReset && onReset((0, _reactive.toJS)(advancedForm.values));
354
+ configFilterItem(advancedForm);
355
+ lightForm.reset();
356
+ }, [onReset]); // 关闭标签清空表单字段值
407
357
 
408
358
  var onTagClose = (0, _react.useCallback)(function (key) {
409
359
  advancedForm.setValuesIn(key, undefined);
410
- setTagDataSource(getTagDataSource(advancedForm));
411
- }, []); // 判断表单是否有校验和默认值
412
-
360
+ configFilterItem(advancedForm);
361
+ configTag();
362
+ onFilter && onFilter((0, _reactive.toJS)(advancedForm.values));
363
+ }, []); // 异步默认值回调,设置form的loading状态为false
364
+
365
+ var onInitialRequestComplete = (0, _react.useCallback)(function (_, __, _ref6) {
366
+ var form = _ref6.form;
367
+ form.setState({
368
+ loading: false
369
+ });
370
+ }, []);
413
371
  (0, _react.useEffect)(function () {
414
- if (hasDefault || hasAsyncDefault || hasRequired) {}
415
- }, [hasDefault, hasAsyncDefault, hasRequired]); // 设置默认值标签数据
416
-
417
- (0, _react.useEffect)(function () {// onInit
418
- // if (mode === 'panel') {
419
- // if (expand) {
420
- // onInit && onInit(toJS(advancedForm.values));
421
- // } else {
422
- // onInit && onInit(toJS(lightForm.values));
423
- // }
424
- // configTag();
425
- // } else {
426
- // onInit && onInit(toJS(simpleForm.values));
427
- // }
428
- }, [mode]);
372
+ setCurrentForm(currentForm.current);
373
+ }, []);
429
374
  return /*#__PURE__*/_react.default.createElement("div", {
430
375
  className: (0, _classnames.default)(prefixCls, props.className)
431
376
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -435,11 +380,11 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
435
380
  }, addonBefore ? /*#__PURE__*/_react.default.createElement("div", {
436
381
  className: "".concat(prefixCls, "-addonBefore")
437
382
  }, addonBefore) : null, mode === 'panel' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
438
- className: (0, _classnames.default)("".concat(prefixCls, "-inline-form"), hasAsyncDefault ? "".concat(prefixCls, "-inline-form-hidden") : '')
439
- }, /*#__PURE__*/_react.default.createElement(LightFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
383
+ className: (0, _classnames.default)("".concat(prefixCls, "-inline-form"), hasDefaultOrRequired ? "".concat(prefixCls, "-inline-form-hidden") : '')
384
+ }, /*#__PURE__*/_react.default.createElement(_LightFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
385
+ defaultFilterValue: defaultFilterValue,
440
386
  form: lightForm,
441
- onChange: onLightFilter,
442
- onSubmit: onLightFilter
387
+ onChange: (0, _lodash.default)(onLightFilter, 300)
443
388
  }))), /*#__PURE__*/_react.default.createElement("div", {
444
389
  className: "".concat(prefixCls, "-toggle")
445
390
  }, /*#__PURE__*/_react.default.createElement(_components.Badge, {
@@ -458,9 +403,9 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
458
403
  type: "filter-line"
459
404
  }), (0, _utils.getMessage)('advancedFilter'))))) : /*#__PURE__*/_react.default.createElement("div", {
460
405
  className: "".concat(prefixCls, "-inline-form")
461
- }, /*#__PURE__*/_react.default.createElement(SimpleFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
406
+ }, /*#__PURE__*/_react.default.createElement(_SimpleFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
462
407
  form: simpleForm,
463
- onChange: onSimpleFilter,
408
+ onChange: (0, _lodash.default)(onSimpleFilter, 300),
464
409
  onSubmit: onSimpleFilter
465
410
  })))), addonAfter ? /*#__PURE__*/_react.default.createElement("div", {
466
411
  className: "".concat(prefixCls, "-addonAfter")
@@ -468,11 +413,11 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
468
413
  className: "".concat(prefixCls, "-panel")
469
414
  }, /*#__PURE__*/_react.default.createElement("div", {
470
415
  className: (0, _classnames.default)("".concat(prefixCls, "-tag"), advancedFilterVisible ? "".concat(prefixCls, "-tag-hidden") : '')
471
- }, /*#__PURE__*/_react.default.createElement(_components.Tag.Group, null, tagDataSource.map(function (_ref4) {
472
- var key = _ref4.key,
473
- label = _ref4.label,
474
- value = _ref4.value,
475
- type = _ref4.type;
416
+ }, /*#__PURE__*/_react.default.createElement(_components.Tag.Group, null, tagDataSource.map(function (_ref7) {
417
+ var key = _ref7.key,
418
+ label = _ref7.label,
419
+ value = _ref7.value,
420
+ type = _ref7.type;
476
421
  return /*#__PURE__*/_react.default.createElement(_components.Tag.Closeable, {
477
422
  key: key,
478
423
  afterClose: function afterClose() {
@@ -488,9 +433,13 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
488
433
  })));
489
434
  }))), /*#__PURE__*/_react.default.createElement("div", {
490
435
  className: (0, _classnames.default)("".concat(prefixCls, "-advanced-wrap"), !advancedFilterVisible ? "".concat(prefixCls, "-advanced-wrap-hidden") : '')
491
- }, /*#__PURE__*/_react.default.createElement(AdvancedFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
436
+ }, /*#__PURE__*/_react.default.createElement(_AdvancedFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
437
+ initialRequest: otherProps.initialRequest ? _objectSpread(_objectSpread({}, otherProps.initialRequest), {}, {
438
+ onComplete: onInitialRequestComplete
439
+ }) : undefined,
492
440
  form: advancedForm,
493
- onSubmit: onAdvancedFilter
441
+ onSubmit: onAdvancedFilter,
442
+ onReset: onAdvancedReset
494
443
  })))) : null);
495
444
  });
496
445
  exports.QueryFilter = QueryFilter;
@@ -29,8 +29,6 @@ var _useInitialRequest = _interopRequireDefault(require("./useInitialRequest"));
29
29
 
30
30
  var _validate = _interopRequireDefault(require("../locales/validate"));
31
31
 
32
- var _lodash = _interopRequireDefault(require("lodash.debounce"));
33
-
34
32
  require("./index.scss");
35
33
 
36
34
  var _excluded = ["form", "initialValues", "initialRequest", "schema", "scope", "context", "components", "children", "layout", "labelAlign", "wrapperAlign", "labelCol", "wrapperCol", "breakpoints", "onChange", "onSubmit", "onSubmitFailed", "className"];
@@ -107,13 +105,13 @@ var ProForm = /*#__PURE__*/(0, _react.memo)(function (_ref) {
107
105
  }, [breakpoints, layout, labelAlign, wrapperAlign, labelCol, wrapperCol]); // 添加onChange
108
106
 
109
107
  (0, _react.useEffect)(function () {
110
- form.removeEffects('onChange');
111
- form.addEffects('onChange', function () {
112
- (0, _core.onFormValuesChange)((0, _lodash.default)(function (form) {
113
- if (onChange) {
114
- onChange((0, _reactive.toJS)(form.values));
115
- }
116
- }, 300));
108
+ form.removeEffects('onFieldValueChange');
109
+ form.addEffects('onFieldValueChange', function () {
110
+ (0, _core.onFieldValueChange)('*', function (field, form) {
111
+ var _field$props;
112
+
113
+ onChange && onChange((0, _reactive.toJS)(form.values), (0, _reactive.toJS)(field.value), (_field$props = field.props) === null || _field$props === void 0 ? void 0 : _field$props.name);
114
+ });
117
115
  });
118
116
  }, [form, onChange]); // 配置表单默认值
119
117
 
@@ -123,6 +121,10 @@ var ProForm = /*#__PURE__*/(0, _react.memo)(function (_ref) {
123
121
  } else if (initialRequest) {
124
122
  (0, _useInitialRequest.default)(initialRequest).then(function (values) {
125
123
  form.setInitialValues(values);
124
+ }).finally(function () {
125
+ initialRequest.onComplete && initialRequest.onComplete(undefined, undefined, {
126
+ form: form
127
+ });
126
128
  });
127
129
  }
128
130
  }, []); // 配置国际化