@teamix/pro 1.3.14 → 1.3.17

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 (53) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +22026 -9580
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/actions/index.scss +13 -0
  6. package/es/form/Filter/index.js +169 -53
  7. package/es/form/Filter/layout.scss +4 -0
  8. package/es/form/Filter/useBindUrl.d.ts +2 -0
  9. package/es/form/Filter/useBindUrl.js +118 -0
  10. package/es/form/ProForm/index.js +5 -3
  11. package/es/form/ProForm/useFieldSchema.js +53 -32
  12. package/es/form/SchemaForm/initializeDataSource.d.ts +1 -2
  13. package/es/form/SchemaForm/initializeDataSource.js +14 -19
  14. package/es/form/SchemaForm/initializeRequest.js +25 -26
  15. package/es/form/SchemaForm/initializeRules.d.ts +2 -2
  16. package/es/form/SchemaForm/initializeRules.js +30 -23
  17. package/es/form/SchemaForm/reactions.d.ts +4 -4
  18. package/es/form/SchemaForm/reactions.js +30 -23
  19. package/es/form/typing.d.ts +12 -5
  20. package/es/form/utils.d.ts +16 -1
  21. package/es/form/utils.js +21 -2
  22. package/es/global.scss +45 -0
  23. package/es/index.d.ts +2 -1
  24. package/es/index.js +3 -2
  25. package/es/page-header/index.d.ts +2 -0
  26. package/es/page-header/index.js +13 -3
  27. package/es/page-header/index.scss +8 -0
  28. package/es/table/components/Layout/index.scss +5 -5
  29. package/lib/actions/index.scss +13 -0
  30. package/lib/form/Filter/index.js +170 -53
  31. package/lib/form/Filter/layout.scss +4 -0
  32. package/lib/form/Filter/useBindUrl.d.ts +2 -0
  33. package/lib/form/Filter/useBindUrl.js +129 -0
  34. package/lib/form/ProForm/index.js +5 -3
  35. package/lib/form/ProForm/useFieldSchema.js +52 -31
  36. package/lib/form/SchemaForm/initializeDataSource.d.ts +1 -2
  37. package/lib/form/SchemaForm/initializeDataSource.js +14 -19
  38. package/lib/form/SchemaForm/initializeRequest.js +26 -26
  39. package/lib/form/SchemaForm/initializeRules.d.ts +2 -2
  40. package/lib/form/SchemaForm/initializeRules.js +30 -22
  41. package/lib/form/SchemaForm/reactions.d.ts +4 -4
  42. package/lib/form/SchemaForm/reactions.js +30 -23
  43. package/lib/form/typing.d.ts +12 -5
  44. package/lib/form/utils.d.ts +16 -1
  45. package/lib/form/utils.js +23 -2
  46. package/lib/global.scss +45 -0
  47. package/lib/index.d.ts +2 -1
  48. package/lib/index.js +3 -1
  49. package/lib/page-header/index.d.ts +2 -0
  50. package/lib/page-header/index.js +12 -2
  51. package/lib/page-header/index.scss +8 -0
  52. package/lib/table/components/Layout/index.scss +5 -5
  53. package/package.json +1 -1
@@ -121,3 +121,16 @@
121
121
  }
122
122
  }
123
123
  }
124
+
125
+ // 针对弹层内的 table 在暗色模式下适配
126
+ .next-dialog-body {
127
+ .teamix-pro-table, .next-table-empty {
128
+ background: var(--dialog-bg);
129
+ }
130
+ }
131
+
132
+ .next-drawer-body {
133
+ .teamix-pro-table, .next-table-empty {
134
+ background: var(--drawer-bg);
135
+ }
136
+ }
@@ -1,4 +1,4 @@
1
- var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "onFilter", "onInit", "onReset", "onExpand", "onChange"];
1
+ var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "bindUrl", "onFilter", "onInit", "onReset", "onExpand", "onChange"];
2
2
 
3
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
4
 
@@ -49,6 +49,7 @@ import LightFilter from './LightFilter';
49
49
  import AdvancedFilter from './AdvancedFilter';
50
50
  import { QueryFilterLayout } from './Layout';
51
51
  import useSpecialProps from './useSpecialProps';
52
+ import useBindUrl from './useBindUrl';
52
53
  import './index.scss';
53
54
  /**
54
55
  * 查询筛选
@@ -64,9 +65,10 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
64
65
  defaultFilterValue = props.defaultFilterValue,
65
66
  filterValues = props.filterValues,
66
67
  filterDebounce = props.filterDebounce,
67
- onFilter = props.onFilter,
68
- onInit = props.onInit,
69
- onReset = props.onReset,
68
+ bindUrl = props.bindUrl,
69
+ outerFilter = props.onFilter,
70
+ outerInit = props.onInit,
71
+ outerReset = props.onReset,
70
72
  onExpand = props.onExpand,
71
73
  onChange = props.onChange,
72
74
  otherProps = _objectWithoutProperties(props, _excluded);
@@ -85,15 +87,27 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
85
87
  setTagDataSource = _useState4[1];
86
88
 
87
89
  var filterItem = useRef([]);
88
- var defaultForm = mode === 'panel' ? 'advanced' : 'simple';
89
- var currentForm = useRef(defaultForm);
90
+ var defaultFormName = mode === 'panel' ? 'advanced' : 'simple';
91
+ var currentFormName = useRef(defaultFormName);
92
+ var currentForm = useRef();
90
93
  var activeFilterValueRef = useRef();
91
94
  var prefixCls = usePrefixCls('', {
92
95
  prefix: 'teamix-pro-form-query-filter'
93
96
  });
94
97
  var debounceFun = debounce(function (fun, props) {
95
98
  return fun(props);
96
- }, filterDebounce); // onInit
99
+ }, filterDebounce); // 绑定URL
100
+
101
+ var _useBindUrl = useBindUrl(bindUrl, {
102
+ onInit: outerInit,
103
+ onFilter: outerFilter,
104
+ onReset: outerReset
105
+ }, currentForm),
106
+ setValuesByUrlState = _useBindUrl.setValuesByUrlState,
107
+ onInit = _useBindUrl.onInit,
108
+ onFilter = _useBindUrl.onFilter,
109
+ onReset = _useBindUrl.onReset; // onInit
110
+
97
111
 
98
112
  var initialRequestRef = useRef(!!(props === null || props === void 0 ? void 0 : props.initialRequest));
99
113
  var filterEnable = useRef('waiting');
@@ -118,12 +132,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
118
132
  break;
119
133
  }
120
134
 
121
- onFormInit = function onFormInit() {}; // init后销毁 isFormInit 方法
135
+ onFormInit = undefined; // init后销毁 isFormInit 方法
122
136
 
137
+ setValuesByUrlState(form); // 配置URL参数到表单
123
138
 
124
- filterEnable.current = 'filter';
125
-
126
- if (!onInit) {
139
+ if (!outerInit) {
127
140
  _context.next = 10;
128
141
  break;
129
142
  }
@@ -132,7 +145,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
132
145
  return form.validate();
133
146
 
134
147
  case 8:
135
- onInit === null || onInit === void 0 ? void 0 : onInit(toJS(form.values)); // 设置Tag
148
+ onInit(toJS(form.values)); // 设置Tag
136
149
 
137
150
  if (mode === 'panel') {
138
151
  configFilterItem(advancedForm);
@@ -154,17 +167,110 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
154
167
 
155
168
 
156
169
  var setCurrentForm = function setCurrentForm(formName) {
157
- currentForm.current = formName;
170
+ currentFormName.current = formName;
171
+ currentForm.current = formMap[formName];
172
+ var form = currentForm.current;
158
173
 
159
174
  if (formRef) {
160
- var form = formMap[formName];
161
- formRef.current = form;
175
+ formRef.current = form; // 自定义updateTags方法
162
176
 
163
177
  if (!formRef.current.updateTags) {
164
178
  formRef.current.updateTags = function () {
165
- configFilterItem(form);
166
- configTag();
179
+ updateTags(form);
167
180
  };
181
+ } // 自定义setAsyncValues方法
182
+
183
+
184
+ if (!formRef.current.setAsyncValues) {
185
+ formRef.current.setAsyncValues = /*#__PURE__*/function () {
186
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
187
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
188
+ while (1) {
189
+ switch (_context2.prev = _context2.next) {
190
+ case 0:
191
+ form.setValues(values);
192
+
193
+ if (!(filterEnable.current === 'filter' && formName === 'advanced')) {
194
+ _context2.next = 6;
195
+ break;
196
+ }
197
+
198
+ _context2.next = 4;
199
+ return form.validate();
200
+
201
+ case 4:
202
+ onFilter(toJS(form.values));
203
+ updateTags(form);
204
+
205
+ case 6:
206
+ case "end":
207
+ return _context2.stop();
208
+ }
209
+ }
210
+ }, _callee2);
211
+ }));
212
+
213
+ return function (_x2) {
214
+ return _ref2.apply(this, arguments);
215
+ };
216
+ }();
217
+ } // 自定义triggerFilter方法
218
+
219
+
220
+ if (!formRef.current.triggerFilter) {
221
+ formRef.current.triggerFilter = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
222
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
223
+ while (1) {
224
+ switch (_context3.prev = _context3.next) {
225
+ case 0:
226
+ _context3.next = 2;
227
+ return form.validate();
228
+
229
+ case 2:
230
+ onFilter(toJS(form.values));
231
+
232
+ if (formName === 'advanced') {
233
+ updateTags(form);
234
+ }
235
+
236
+ case 4:
237
+ case "end":
238
+ return _context3.stop();
239
+ }
240
+ }
241
+ }, _callee3);
242
+ }));
243
+ } // 自定义triggerReset方法
244
+
245
+
246
+ if (!formRef.current.triggerReset) {
247
+ formRef.current.triggerReset = /*#__PURE__*/function () {
248
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(config) {
249
+ return regeneratorRuntime.wrap(function _callee4$(_context4) {
250
+ while (1) {
251
+ switch (_context4.prev = _context4.next) {
252
+ case 0:
253
+ simpleForm.reset('*', config);
254
+ lightForm.reset('*', config);
255
+ advancedForm.reset('*', config);
256
+
257
+ if (formName === 'advanced') {
258
+ onReset(toJS(advancedForm.values));
259
+ updateTags(form);
260
+ }
261
+
262
+ case 4:
263
+ case "end":
264
+ return _context4.stop();
265
+ }
266
+ }
267
+ }, _callee4);
268
+ }));
269
+
270
+ return function (_x3) {
271
+ return _ref4.apply(this, arguments);
272
+ };
273
+ }();
168
274
  }
169
275
  }
170
276
  }; // 创建简单筛选表单实例
@@ -176,7 +282,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
176
282
  effects: function effects() {
177
283
  onFormReact(function (form) {
178
284
  if (mode === 'inline') {
179
- onFormInit(form);
285
+ var _onFormInit;
286
+
287
+ (_onFormInit = onFormInit) === null || _onFormInit === void 0 ? void 0 : _onFormInit(form).finally(function () {
288
+ return filterEnable.current = 'filter';
289
+ });
180
290
  }
181
291
  });
182
292
  }
@@ -200,7 +310,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
200
310
  effects: function effects() {
201
311
  onFormReact(function (form) {
202
312
  if (mode === 'panel') {
203
- onFormInit(form);
313
+ var _onFormInit2;
314
+
315
+ (_onFormInit2 = onFormInit) === null || _onFormInit2 === void 0 ? void 0 : _onFormInit2(form).finally(function () {
316
+ return filterEnable.current = 'filter';
317
+ });
204
318
  }
205
319
  });
206
320
  onFormInputChange(function (form) {
@@ -219,12 +333,12 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
219
333
  var displayValues = getFormDisplayValues(form);
220
334
  var originalData = Object.entries(displayValues);
221
335
  var filterData = [];
222
- originalData.forEach(function (_ref2) {
336
+ originalData.forEach(function (_ref5) {
223
337
  var _data$displayValue;
224
338
 
225
- var _ref3 = _slicedToArray(_ref2, 2),
226
- key = _ref3[0],
227
- data = _ref3[1];
339
+ var _ref6 = _slicedToArray(_ref5, 2),
340
+ key = _ref6[0],
341
+ data = _ref6[1];
228
342
 
229
343
  var value = (_data$displayValue = data.displayValue) !== null && _data$displayValue !== void 0 ? _data$displayValue : data.value;
230
344
  var component = data.component;
@@ -259,6 +373,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
259
373
 
260
374
  var configTag = useCallback(function () {
261
375
  setTagDataSource(filterItem.current);
376
+ }, []); // 更新标签数据
377
+
378
+ var updateTags = useCallback(function (form) {
379
+ configFilterItem(form);
380
+ configTag();
262
381
  }, []); // 展开收起高级筛选
263
382
 
264
383
  var toggleAdvancedFilter = useCallback(function () {
@@ -266,7 +385,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
266
385
 
267
386
  if (result) {
268
387
  // 展开高级筛选,Light回填Advanced
269
- if (currentForm.current === 'light') {
388
+ if (currentFormName.current === 'light') {
270
389
  var key = activeFilterValueRef.current;
271
390
  var value = lightForm.values[key];
272
391
  advancedForm.setValuesIn(key, value);
@@ -281,32 +400,32 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
281
400
  }, [panelVisible, configTag]); // 简单搜索Filter
282
401
 
283
402
  var onSimpleFilter = useCallback( /*#__PURE__*/function () {
284
- var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
285
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
403
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(values) {
404
+ return regeneratorRuntime.wrap(function _callee5$(_context5) {
286
405
  while (1) {
287
- switch (_context2.prev = _context2.next) {
406
+ switch (_context5.prev = _context5.next) {
288
407
  case 0:
289
- _context2.next = 2;
408
+ _context5.next = 2;
290
409
  return simpleForm.validate();
291
410
 
292
411
  case 2:
293
- onFilter === null || onFilter === void 0 ? void 0 : onFilter(values);
412
+ onFilter(values);
294
413
 
295
414
  case 3:
296
415
  case "end":
297
- return _context2.stop();
416
+ return _context5.stop();
298
417
  }
299
418
  }
300
- }, _callee2);
419
+ }, _callee5);
301
420
  }));
302
421
 
303
- return function (_x2) {
304
- return _ref4.apply(this, arguments);
422
+ return function (_x4) {
423
+ return _ref7.apply(this, arguments);
305
424
  };
306
425
  }(), [onFilter]); // 简单搜索Change
307
426
 
308
427
  var onSimpleChange = useCallback(function (values, fieldValue, fieldName) {
309
- if (currentForm.current === 'simple') {
428
+ if (currentFormName.current === 'simple') {
310
429
  onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
311
430
 
312
431
  if (filterEnable.current === 'filter') {
@@ -318,20 +437,18 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
318
437
  var onLightFilter = useCallback(function (values) {
319
438
  var _Object$keys;
320
439
 
321
- onFilter === null || onFilter === void 0 ? void 0 : onFilter(values); // 清空advancedForm的值
440
+ onFilter(values); // 清空advancedForm的值
322
441
 
323
442
  var clearKeys = {};
324
443
  (_Object$keys = Object.keys(advancedForm.values)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(function (key) {
325
444
  clearKeys[key] = undefined;
326
445
  });
327
- advancedForm.setValues(clearKeys); // 配置Tag
328
-
329
- configFilterItem(advancedForm);
330
- configTag();
446
+ advancedForm.setValues(clearKeys);
447
+ updateTags(advancedForm);
331
448
  }, [onFilter]); // 轻量搜索Change
332
449
 
333
450
  var onLightChange = useCallback(function (values, fieldValue, fieldName) {
334
- if (currentForm.current === 'light') {
451
+ if (currentFormName.current === 'light') {
335
452
  onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
336
453
 
337
454
  if (filterEnable.current === 'filter') {
@@ -342,7 +459,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
342
459
 
343
460
  var onAdvancedFilter = useCallback(function (values) {
344
461
  setCurrentForm('advanced');
345
- onFilter === null || onFilter === void 0 ? void 0 : onFilter(values);
462
+ onFilter(values);
346
463
  configFilterItem(advancedForm); // 清空lightForm的值
347
464
 
348
465
  lightForm.reset('*', {
@@ -352,7 +469,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
352
469
 
353
470
  var onAdvancedReset = useCallback(function () {
354
471
  setCurrentForm('advanced');
355
- onReset === null || onReset === void 0 ? void 0 : onReset(toJS(advancedForm.values));
472
+ onReset(toJS(advancedForm.values));
356
473
  configFilterItem(advancedForm); // 清空lightForm的值
357
474
 
358
475
  lightForm.reset('*', {
@@ -361,7 +478,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
361
478
  }, [onReset]); // 高级搜索Change
362
479
 
363
480
  var onAdvancedChange = useCallback(function (values, fieldValue, fieldName) {
364
- if (currentForm.current === 'advanced') {
481
+ if (currentFormName.current === 'advanced') {
365
482
  onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
366
483
  }
367
484
  }, [onChange]); // 关闭标签清空表单字段值
@@ -375,9 +492,8 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
375
492
  }
376
493
 
377
494
  advancedForm.setValuesIn(key, newValue);
378
- configFilterItem(advancedForm);
379
- configTag();
380
- onFilter === null || onFilter === void 0 ? void 0 : onFilter(toJS(advancedForm.values));
495
+ updateTags(advancedForm);
496
+ onFilter(toJS(advancedForm.values));
381
497
  }, [onFilter]); // initialRequest 的回调
382
498
 
383
499
  var onInitialComplete = useCallback(function (form) {
@@ -388,7 +504,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
388
504
  }, []); // 组件挂载
389
505
 
390
506
  useEffect(function () {
391
- setCurrentForm(currentForm.current);
507
+ setCurrentForm(currentFormName.current);
392
508
  }, []);
393
509
  return /*#__PURE__*/React.createElement(QueryFilterLayout, {
394
510
  className: cls(prefixCls, props.className),
@@ -420,12 +536,12 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
420
536
  onReset: onAdvancedReset,
421
537
  onInitialComplete: onInitialComplete
422
538
  })) : null
423
- }, mode === 'panel' && !panelVisible ? /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref5) {
424
- var key = _ref5.key,
425
- label = _ref5.label,
426
- value = _ref5.value,
427
- type = _ref5.type,
428
- index = _ref5.index;
539
+ }, mode === 'panel' && !panelVisible ? /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref8) {
540
+ var key = _ref8.key,
541
+ label = _ref8.label,
542
+ value = _ref8.value,
543
+ type = _ref8.type,
544
+ index = _ref8.index;
429
545
  return /*#__PURE__*/React.createElement(Tag.Closeable, {
430
546
  key: isNum(index) ? key + label : key,
431
547
  afterClose: function afterClose() {
@@ -6,6 +6,10 @@ $query-filter-layout: #{$teamix-pro-form}-query-filter-layout;
6
6
  --panel-filter-bg: #1f1f1f;
7
7
  }
8
8
 
9
+ .theme-hybridcloud {
10
+ --panel-filter-bg: var(--color-fill1-2);
11
+ }
12
+
9
13
  .#{$query-filter-layout} {
10
14
  .#{$query-filter-layout}-inline {
11
15
  display: flex;
@@ -0,0 +1,2 @@
1
+ declare const _default: (bindUrl: any, functions: any, formRef: any) => any;
2
+ export default _default;
@@ -0,0 +1,118 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ 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."); }
4
+
5
+ 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); }
6
+
7
+ 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; }
8
+
9
+ 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; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ 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; }
14
+
15
+ 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; }
16
+
17
+ 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; }
18
+
19
+ import { useUrlState } from '@teamix/hooks';
20
+ import { isUsable, isPlainObj } from '@teamix/utils';
21
+ export default (function (bindUrl, functions, formRef) {
22
+ // 预处理 bindUrl 参数(主要兼容 SelectGroup 组件)
23
+ var initializeBindUrl = function initializeBindUrl(options) {
24
+ return options ? _objectSpread(_objectSpread({}, options), {}, {
25
+ beforeStringify: function beforeStringify(values) {
26
+ var _Object$entries;
27
+
28
+ var beforeStringify = options.beforeStringify;
29
+
30
+ var newValues = _objectSpread({}, values);
31
+
32
+ (_Object$entries = Object.entries(values)) === null || _Object$entries === void 0 ? void 0 : _Object$entries.forEach(function (_ref) {
33
+ var _form$query;
34
+
35
+ var _ref2 = _slicedToArray(_ref, 2),
36
+ key = _ref2[0],
37
+ value = _ref2[1];
38
+
39
+ var form = formRef.current;
40
+ var field = (_form$query = form.query(key)) === null || _form$query === void 0 ? void 0 : _form$query.take();
41
+
42
+ if ((field === null || field === void 0 ? void 0 : field.component[0]) === 'SelectGroup') {
43
+ newValues[key] = value.map(function (_ref3) {
44
+ var key = _ref3.key,
45
+ value = _ref3.value;
46
+ return key && value ? "".concat(key, "||").concat(value === null || value === void 0 ? void 0 : value.join('|')) : '';
47
+ });
48
+ }
49
+ });
50
+ return beforeStringify ? beforeStringify(newValues) : newValues;
51
+ }
52
+ }) : options;
53
+ }; // 通过 useUrlState 获取 url 上的参数和 url 配置方法
54
+
55
+
56
+ var _ref4 = bindUrl ? useUrlState(undefined, initializeBindUrl(isPlainObj(bindUrl) ? bindUrl : {})) : [],
57
+ _ref5 = _slicedToArray(_ref4, 2),
58
+ urlState = _ref5[0],
59
+ setUrlState = _ref5[1]; // 输出配置url参数的函数
60
+
61
+
62
+ var initializedFunctions = Object.entries(functions).reduce(function (prev, _ref6) {
63
+ var _ref7 = _slicedToArray(_ref6, 2),
64
+ key = _ref7[0],
65
+ fun = _ref7[1];
66
+
67
+ prev[key] = function (values) {
68
+ fun === null || fun === void 0 ? void 0 : fun(values);
69
+ setUrlState === null || setUrlState === void 0 ? void 0 : setUrlState(values);
70
+ };
71
+
72
+ return prev;
73
+ }, {}); // 使用 url 参数配置 QueryFilter 默认值(移除非表单值,兼容数组数据,兼容 SelectGroup 组件)
74
+
75
+ var setValuesByUrlState = function setValuesByUrlState(form) {
76
+ if (urlState) {
77
+ var _Object$entries2;
78
+
79
+ (_Object$entries2 = Object.entries(urlState)) === null || _Object$entries2 === void 0 ? void 0 : _Object$entries2.forEach(function (_ref8) {
80
+ var _form$query2;
81
+
82
+ var _ref9 = _slicedToArray(_ref8, 2),
83
+ key = _ref9[0],
84
+ value = _ref9[1];
85
+
86
+ var field = (_form$query2 = form.query(key)) === null || _form$query2 === void 0 ? void 0 : _form$query2.take();
87
+
88
+ if (field) {
89
+ var newValue = value;
90
+
91
+ if (field.displayName === 'ArrayField') {
92
+ newValue = [].concat(isUsable(newValue) ? newValue : []);
93
+ }
94
+
95
+ if (field.component[0] === 'SelectGroup') {
96
+ newValue = newValue.map(function (item) {
97
+ var _item$split = item === null || item === void 0 ? void 0 : item.split('||'),
98
+ _item$split2 = _slicedToArray(_item$split, 2),
99
+ key = _item$split2[0],
100
+ value = _item$split2[1];
101
+
102
+ return {
103
+ key: key,
104
+ value: value === null || value === void 0 ? void 0 : value.split('|')
105
+ };
106
+ });
107
+ }
108
+
109
+ form.setValuesIn(key, newValue);
110
+ }
111
+ });
112
+ }
113
+ };
114
+
115
+ return _objectSpread({
116
+ setValuesByUrlState: setValuesByUrlState
117
+ }, initializedFunctions);
118
+ });
@@ -101,7 +101,7 @@ var ProForm = /*#__PURE__*/memo(function (_ref) {
101
101
 
102
102
  var mergedComponents = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, globalComponents), components), formilyComponents), ProFieldComponents);
103
103
 
104
- var onAutoSubmit = useAutoSubmit(onSubmit); // todo 需要formily支持断点下的属性更新
104
+ var onAutoSubmit = useAutoSubmit(onSubmit, context); // todo 需要formily支持断点下的属性更新
105
105
 
106
106
  var getTeamixLayout = useMemo(function () {
107
107
  return breakpoints ? {
@@ -126,7 +126,7 @@ var ProForm = /*#__PURE__*/memo(function (_ref) {
126
126
  if (initialValues) {
127
127
  form.setInitialValues(initialValues);
128
128
  } else if (initialRequest) {
129
- useInitialRequest(initialRequest).then(function (values) {
129
+ useInitialRequest(initialRequest, context).then(function (values) {
130
130
  form.setInitialValues(values);
131
131
  }).finally(function () {
132
132
  onInitialComplete === null || onInitialComplete === void 0 ? void 0 : onInitialComplete(form);
@@ -171,10 +171,12 @@ var ProForm = /*#__PURE__*/memo(function (_ref) {
171
171
  }) : null, otherProps === null || otherProps === void 0 ? void 0 : otherProps.children);
172
172
  });
173
173
 
174
- ProForm.Field = function () {
174
+ var Field = function Field() {
175
175
  return /*#__PURE__*/React.createElement(React.Fragment, null);
176
176
  };
177
177
 
178
+ Field.displayName = 'ProFormField';
179
+ ProForm.Field = Field;
178
180
  ProForm.defaultProps = {
179
181
  colon: false,
180
182
  labelAlign: 'left',