@teamix/pro 1.3.2 → 1.3.3

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 (45) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +458 -161
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/form/Components/LightFilter/index.d.ts +1 -0
  6. package/es/form/Components/LightFilter/index.js +9 -6
  7. package/es/form/Filter/LightFilter.js +13 -3
  8. package/es/form/Filter/SimpleFilter.js +1 -1
  9. package/es/form/Filter/index.js +44 -10
  10. package/es/form/SchemaForm/adapterDecorator.js +1 -1
  11. package/es/form/SchemaForm/adapterType.js +2 -5
  12. package/es/form/SchemaForm/index.js +22 -8
  13. package/es/form/SchemaForm/initializeSelectTable.d.ts +3 -0
  14. package/es/form/SchemaForm/initializeSelectTable.js +38 -0
  15. package/es/form/SchemaForm/reactions.js +4 -9
  16. package/es/form/typing.d.ts +5 -1
  17. package/es/form/utils.js +11 -4
  18. package/es/index.d.ts +1 -1
  19. package/es/index.js +1 -1
  20. package/es/info/components/baseInfo/index.scss +3 -0
  21. package/es/page-header/index.d.ts +3 -1
  22. package/es/page-header/index.js +12 -3
  23. package/es/table/components/ToolBar/index.scss +1 -1
  24. package/es/table/index.scss +10 -0
  25. package/lib/form/Components/LightFilter/index.d.ts +1 -0
  26. package/lib/form/Components/LightFilter/index.js +9 -6
  27. package/lib/form/Filter/LightFilter.js +13 -3
  28. package/lib/form/Filter/SimpleFilter.js +1 -1
  29. package/lib/form/Filter/index.js +44 -10
  30. package/lib/form/SchemaForm/adapterDecorator.js +1 -1
  31. package/lib/form/SchemaForm/adapterType.js +2 -5
  32. package/lib/form/SchemaForm/index.js +23 -7
  33. package/lib/form/SchemaForm/initializeSelectTable.d.ts +3 -0
  34. package/lib/form/SchemaForm/initializeSelectTable.js +45 -0
  35. package/lib/form/SchemaForm/reactions.js +4 -9
  36. package/lib/form/typing.d.ts +5 -1
  37. package/lib/form/utils.js +11 -4
  38. package/lib/index.d.ts +1 -1
  39. package/lib/index.js +1 -1
  40. package/lib/info/components/baseInfo/index.scss +3 -0
  41. package/lib/page-header/index.d.ts +3 -1
  42. package/lib/page-header/index.js +11 -2
  43. package/lib/table/components/ToolBar/index.scss +1 -1
  44. package/lib/table/index.scss +10 -0
  45. package/package.json +4 -4
@@ -8,6 +8,7 @@ import './index.scss';
8
8
  interface ILightFiter {
9
9
  size?: 'small' | 'medium' | 'large';
10
10
  defaultFilterValue?: string;
11
+ filterValues?: string[];
11
12
  onFilterChange?: (schema?: any) => any;
12
13
  filterProps?: SelectProps;
13
14
  buttonProps?: ButtonProps;
@@ -56,14 +56,16 @@ var useMain = function useMain(active) {
56
56
  }; // 筛选项数据
57
57
 
58
58
 
59
- var useFilterItems = function useFilterItems() {
59
+ var useFilterItems = function useFilterItems(filterValues) {
60
60
  var schema = useFieldSchema();
61
61
  var filterItems = [];
62
62
  schema.mapProperties(function (schema, name) {
63
- filterItems.push({
64
- label: schema.title,
65
- value: schema.name
66
- });
63
+ if (!filterValues || filterValues && filterValues.includes(schema.name)) {
64
+ filterItems.push({
65
+ label: schema.title,
66
+ value: schema.name
67
+ });
68
+ }
67
69
  });
68
70
  return filterItems;
69
71
  }; // 是否输入框类型的组件
@@ -77,12 +79,13 @@ var isInputCategory = function isInputCategory(currentSchema) {
77
79
  var LightFilter = observer(function (props) {
78
80
  var _filterItems$, _main$;
79
81
 
80
- var filterItems = useFilterItems();
81
82
  var size = props.size,
82
83
  defaultFilterValue = props.defaultFilterValue,
84
+ filterValues = props.filterValues,
83
85
  onFilterChange = props.onFilterChange,
84
86
  filterProps = props.filterProps,
85
87
  buttonProps = props.buttonProps;
88
+ var filterItems = useFilterItems(filterValues);
86
89
 
87
90
  var _useState = useState(defaultFilterValue || ((_filterItems$ = filterItems[0]) === null || _filterItems$ === void 0 ? void 0 : _filterItems$.value)),
88
91
  _useState2 = _slicedToArray(_useState, 2),
@@ -1,4 +1,4 @@
1
- var _excluded = ["form", "schema", "onSubmit", "onChange", "defaultFilterValue", "activeFilterValueRef"];
1
+ var _excluded = ["form", "schema", "onSubmit", "onChange", "defaultFilterValue", "filterValues", "activeFilterValueRef"];
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
 
@@ -26,6 +26,7 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
26
26
  onSubmit = props.onSubmit,
27
27
  onChange = props.onChange,
28
28
  defaultFilterValue = props.defaultFilterValue,
29
+ filterValues = props.filterValues,
29
30
  activeFilterValueRef = props.activeFilterValueRef,
30
31
  otherProps = _objectWithoutProperties(props, _excluded);
31
32
 
@@ -48,15 +49,24 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
48
49
  }, [form]); // 实际输出onFilter
49
50
 
50
51
  var onFilter = useCallback(function () {
52
+ var _Object$keys;
53
+
51
54
  var key = filterValue.current;
52
- var value = form.values[key];
53
- onChange === null || onChange === void 0 ? void 0 : onChange(_defineProperty({}, key, value));
55
+ var value = form.values[key]; // 删除旧值
56
+
57
+ (_Object$keys = Object.keys(form.values)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(function (item) {
58
+ if (item !== key) {
59
+ form.setValuesIn(item, undefined);
60
+ }
61
+ });
62
+ onChange === null || onChange === void 0 ? void 0 : onChange(_defineProperty({}, key, value), value, key);
54
63
  }, [onChange]);
55
64
  var LightSchema = useMemo(function () {
56
65
  return [{
57
66
  component: 'LightFilter',
58
67
  props: {
59
68
  defaultFilterValue: defaultFilterValue,
69
+ filterValues: filterValues,
60
70
  onFilterChange: onFilterChange,
61
71
  buttonProps: {
62
72
  onClick: onFilter
@@ -84,7 +84,7 @@ var SimpleFilter = /*#__PURE__*/memo(function (props) {
84
84
  } else {
85
85
  onChange === null || onChange === void 0 ? void 0 : onChange(values, name, value);
86
86
  }
87
- }, [searchName, searchValue.current]);
87
+ }, [onChange, searchName, searchValue.current]);
88
88
  useEffect(function () {
89
89
  var _props$form$initialVa, _props$form$initialVa2;
90
90
 
@@ -1,4 +1,4 @@
1
- var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterDebounce", "onFilter", "onInit", "onReset", "onExpand"];
1
+ var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "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
 
@@ -62,11 +62,13 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
62
62
  expand = props.expand,
63
63
  formRef = props.formRef,
64
64
  defaultFilterValue = props.defaultFilterValue,
65
+ filterValues = props.filterValues,
65
66
  filterDebounce = props.filterDebounce,
66
67
  onFilter = props.onFilter,
67
68
  onInit = props.onInit,
68
69
  onReset = props.onReset,
69
70
  onExpand = props.onExpand,
71
+ onChange = props.onChange,
70
72
  otherProps = _objectWithoutProperties(props, _excluded);
71
73
 
72
74
  var _useSpecialProps = useSpecialProps(props),
@@ -152,6 +154,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
152
154
  if (!formRef.current.updateTags) {
153
155
  formRef.current.updateTags = function () {
154
156
  configFilterItem(form);
157
+ configTag();
155
158
  };
156
159
  }
157
160
  }
@@ -327,7 +330,13 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
327
330
  return function (_x) {
328
331
  return _ref4.apply(this, arguments);
329
332
  };
330
- }(), [onFilter, hasRequired, onInit]); // 轻量搜索Filter
333
+ }(), [onFilter, hasRequired, onInit]); // 简单搜索Change
334
+
335
+ var onSimpleChange = useCallback(function (values, fieldValue, fieldName) {
336
+ if (currentForm.current === 'simple') {
337
+ onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
338
+ }
339
+ }, [onChange]); // 轻量搜索Filter
331
340
 
332
341
  var onLightFilter = useCallback(function (values) {
333
342
  if (currentForm.current === 'light') {
@@ -345,7 +354,13 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
345
354
  configTag();
346
355
  }
347
356
  }
348
- }, [onFilter]); // 高级搜索Filter by Submit
357
+ }, [onFilter]); // 轻量搜索Change
358
+
359
+ var onLightChange = useCallback(function (values, fieldValue, fieldName) {
360
+ if (currentForm.current === 'light') {
361
+ onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
362
+ }
363
+ }, [onChange]); // 高级搜索Filter
349
364
 
350
365
  var onAdvancedFilter = useCallback(function (values) {
351
366
  setCurrentForm('advanced');
@@ -365,9 +380,9 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
365
380
  lightForm.reset('*', {
366
381
  forceClear: true
367
382
  });
368
- }, [onReset]); // 高级搜索Filter by Change
383
+ }, [onReset]); // 高级搜索Init
369
384
 
370
- var onAdvancedChange = useCallback( /*#__PURE__*/function () {
385
+ var onAdvancedInit = useCallback( /*#__PURE__*/function () {
371
386
  var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
372
387
  return regeneratorRuntime.wrap(function _callee2$(_context2) {
373
388
  while (1) {
@@ -412,7 +427,13 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
412
427
  return function (_x2) {
413
428
  return _ref5.apply(this, arguments);
414
429
  };
415
- }(), [hasRequired, onInit]); // 关闭标签清空表单字段值
430
+ }(), [hasRequired, onInit]); // 高级搜索Change
431
+
432
+ var onAdvancedChange = useCallback(function (values, fieldValue, fieldName) {
433
+ if (currentForm.current === 'advanced') {
434
+ onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
435
+ }
436
+ }, [onChange]); // 关闭标签清空表单字段值
416
437
 
417
438
  var onTagClose = useCallback(function (key, index) {
418
439
  var newValue = undefined;
@@ -432,7 +453,10 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
432
453
  form.setState({
433
454
  loading: false
434
455
  });
435
- }, []); // 组件挂载
456
+ }, []);
457
+ var debounceFun = debounce(function (fun, props) {
458
+ return fun(props);
459
+ }, filterDebounce); // 组件挂载
436
460
 
437
461
  useEffect(function () {
438
462
  setCurrentForm(currentForm.current);
@@ -448,20 +472,30 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
448
472
  className: cls("".concat(prefixCls, "-inline"), purePanel || hasRequired ? "".concat(prefixCls, "-inline-hidden") : '')
449
473
  }, /*#__PURE__*/React.createElement(LightFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
450
474
  defaultFilterValue: defaultFilterValue,
475
+ filterValues: filterValues,
451
476
  activeFilterValueRef: activeFilterValueRef,
452
477
  form: lightForm,
453
- onChange: debounce(onLightFilter, filterDebounce)
478
+ onChange: function onChange(values, fieldValue, fieldName) {
479
+ debounceFun(onLightFilter, values);
480
+ onLightChange(values, fieldValue, fieldName);
481
+ }
454
482
  }))) : /*#__PURE__*/React.createElement("div", {
455
483
  className: "".concat(prefixCls, "-inline")
456
484
  }, /*#__PURE__*/React.createElement(SimpleFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
457
485
  form: simpleForm,
458
- onChange: debounce(onSimpleFilter, filterDebounce),
486
+ onChange: function onChange(values, fieldValue, fieldName) {
487
+ debounceFun(onSimpleFilter, values);
488
+ onSimpleChange(values, fieldValue, fieldName);
489
+ },
459
490
  onSubmit: onSimpleFilter,
460
491
  onInitialComplete: onInitialComplete
461
492
  }))),
462
493
  panelContent: mode === 'panel' ? /*#__PURE__*/React.createElement(AdvancedFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
463
494
  form: advancedForm,
464
- onChange: debounce(onAdvancedChange, filterDebounce),
495
+ onChange: function onChange(values, fieldValue, fieldName) {
496
+ debounceFun(onAdvancedInit, values);
497
+ onAdvancedChange(values, fieldValue, fieldName);
498
+ },
465
499
  onSubmit: onAdvancedFilter,
466
500
  onReset: onAdvancedReset,
467
501
  onInitialComplete: onInitialComplete
@@ -20,7 +20,7 @@ export default (function (decorator, component) {
20
20
  return decorator;
21
21
  }
22
22
 
23
- if ([].concat(_toConsumableArray(Object.keys(fieldTypeMap)), ['Upload', 'ArrayCards', 'ArrayCollapse', 'ArrayTable', 'ArrayItems']).includes(component)) {
23
+ if ([].concat(_toConsumableArray(Object.keys(fieldTypeMap)), ['Upload', 'SelectTable', 'ArrayCards', 'ArrayCollapse', 'ArrayTable', 'ArrayItems']).includes(component)) {
24
24
  return 'FormItem';
25
25
  }
26
26
 
@@ -47,11 +47,8 @@ var typeMap = (_typeMap = {
47
47
  Range: 'string',
48
48
  Search: 'array',
49
49
  SelectGroup: 'array',
50
- ArrayCollapse: 'array',
51
- ArrayCards: 'array',
52
- ArrayTable: 'array',
53
- ArrayItems: 'array'
54
- }, _defineProperty(_typeMap, 'Editable.Popover', 'object'), _defineProperty(_typeMap, 'Editable.Dialog', 'object'), _defineProperty(_typeMap, 'Editable.Drawer', 'object'), _typeMap);
50
+ SelectTable: 'array'
51
+ }, _defineProperty(_typeMap, 'SelectTable.Column', 'string'), _defineProperty(_typeMap, "ArrayCollapse", 'array'), _defineProperty(_typeMap, "ArrayCards", 'array'), _defineProperty(_typeMap, "ArrayTable", 'array'), _defineProperty(_typeMap, "ArrayItems", 'array'), _defineProperty(_typeMap, 'Editable.Popover', 'object'), _defineProperty(_typeMap, 'Editable.Dialog', 'object'), _defineProperty(_typeMap, 'Editable.Drawer', 'object'), _typeMap);
55
52
  export default (function (type, component) {
56
53
  return type || typeMap[component] || 'void';
57
54
  });
@@ -33,7 +33,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
33
33
  import React, { memo, useCallback, useMemo } from 'react';
34
34
  import { createSchemaField } from '@formily/react';
35
35
  import { Affix } from '@alicloudfe/components';
36
- import { Upload, FormLayout, FormItem, ArrayCollapse, ArrayCards, ArrayItems, ArrayTable, Space, FormGrid, FormTab, FormCollapse, FormStep, Editable, FormDialog, FormDrawer, FormButtonGroup, Submit, Reset } from '@teamix/formily';
36
+ import { Upload, SelectTable, FormLayout, FormItem, ArrayCollapse, ArrayCards, ArrayItems, ArrayTable, Space, FormGrid, FormTab, FormCollapse, FormStep, Editable, FormDialog, FormDrawer, FormButtonGroup, Submit, Reset } from '@teamix/formily';
37
37
  import ProFieldComponents from '../Components/ProField';
38
38
  import { EditableDialog, EditableDrawer, EditablePopover } from '../Components/Editable';
39
39
  import FormGroup from '../Components/FormGroup';
@@ -55,18 +55,26 @@ import initializeFormGroup from './initializeFormGroup';
55
55
  import initializeFormStep from './initializeFormStep';
56
56
  import initializeFormTab from './initializeFormTab';
57
57
  import initializeFormCollapse from './initializeFormCollapse';
58
+ import initializeSelectTable from './initializeSelectTable';
58
59
  import { $request, $common, $dataSource, $validator } from './reactions';
59
60
  import fieldTypeMap from '../fieldTypeMap';
60
61
  import { getFieldName, mapSchemaName } from '../utils';
62
+ import { getGlobalConfig } from '@teamix/utils';
61
63
  import warning from '../warning';
62
64
  export default /*#__PURE__*/memo(function (_ref) {
63
65
  var schema = _ref.schema,
64
66
  scope = _ref.scope,
65
67
  components = _ref.components;
66
- // 创建 SchemaField
68
+
69
+ // 获取全局配置
70
+ var _ref2 = getGlobalConfig('ProForm') || {},
71
+ globalComponents = _ref2.components,
72
+ globalScope = _ref2.scope; // 创建 SchemaField
73
+
74
+
67
75
  var SchemaField = useMemo(function () {
68
76
  return createSchemaField({
69
- components: _objectSpread(_objectSpread({}, ProFieldComponents), {}, {
77
+ components: _objectSpread(_objectSpread(_objectSpread({}, globalComponents), ProFieldComponents), {}, {
70
78
  FormLayout: FormLayout,
71
79
  FormItem: FormItem,
72
80
  ArrayCollapse: ArrayCollapse,
@@ -89,6 +97,7 @@ export default /*#__PURE__*/memo(function (_ref) {
89
97
  EditablePopover: EditablePopover,
90
98
  FormGroup: FormGroup,
91
99
  Upload: Upload,
100
+ SelectTable: SelectTable,
92
101
  Affix: Affix,
93
102
  LightFilter: LightFilter,
94
103
  Text: Text
@@ -97,7 +106,7 @@ export default /*#__PURE__*/memo(function (_ref) {
97
106
  }, []); // 合并 schema 中 request 的 scope
98
107
 
99
108
  var mergedScope = useMemo(function () {
100
- return _objectSpread(_objectSpread({}, scope), {}, {
109
+ return _objectSpread(_objectSpread(_objectSpread({}, globalScope), scope), {}, {
101
110
  $request: $request,
102
111
  $common: $common,
103
112
  $dataSource: $dataSource,
@@ -166,6 +175,11 @@ export default /*#__PURE__*/memo(function (_ref) {
166
175
 
167
176
  if (['FormCollapse'].includes(originalComponent)) {
168
177
  newItem = initializeFormCollapse(newItem);
178
+ } // 初始化选择表格 - SelectTable
179
+
180
+
181
+ if (['SelectTable'].includes(originalComponent)) {
182
+ newItem = initializeSelectTable(newItem);
169
183
  }
170
184
  }
171
185
 
@@ -216,10 +230,10 @@ export default /*#__PURE__*/memo(function (_ref) {
216
230
 
217
231
  var defaultReactions = initializeReactions(reactions, [].concat(_toConsumableArray(requestReactions), _toConsumableArray(dataSourceReactions))); // 合并scope
218
232
 
219
- Object.entries(_objectSpread(_objectSpread(_objectSpread({}, requestScope), dataSourceScope), rulesScope)).map(function (_ref2) {
220
- var _ref3 = _slicedToArray(_ref2, 2),
221
- k = _ref3[0],
222
- v = _ref3[1];
233
+ Object.entries(_objectSpread(_objectSpread(_objectSpread({}, requestScope), dataSourceScope), rulesScope)).map(function (_ref3) {
234
+ var _ref4 = _slicedToArray(_ref3, 2),
235
+ k = _ref4[0],
236
+ v = _ref4[1];
223
237
 
224
238
  mergedScope[k] = v;
225
239
  });
@@ -0,0 +1,3 @@
1
+ import type { ProFormInitializeItem } from '../typing';
2
+ declare const initialize: ProFormInitializeItem;
3
+ export default initialize;
@@ -0,0 +1,38 @@
1
+ var _excluded = ["name", "title", "children"];
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; }
8
+
9
+ 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; }
10
+
11
+ 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; }
12
+
13
+ var initializeTableColumn = function initializeTableColumn(item) {
14
+ var name = item.name,
15
+ title = item.title,
16
+ children = item.children,
17
+ otherProps = _objectWithoutProperties(item, _excluded);
18
+
19
+ return {
20
+ name: name,
21
+ title: title,
22
+ component: 'SelectTable.Column',
23
+ children: children,
24
+ props: _objectSpread({}, otherProps)
25
+ };
26
+ };
27
+
28
+ var initialize = function initialize(item) {
29
+ var _item$children = item.children,
30
+ children = _item$children === void 0 ? [] : _item$children;
31
+ return _objectSpread(_objectSpread({}, item), {}, {
32
+ children: children.map(function (item) {
33
+ return initializeTableColumn(item);
34
+ })
35
+ });
36
+ };
37
+
38
+ export default initialize;
@@ -11,6 +11,7 @@ var $request = function $request(field, requestConfig, context, type) {
11
11
 
12
12
  var params = requestConfig.params,
13
13
  beforeRequest = requestConfig.beforeRequest,
14
+ formatResult = requestConfig.formatResult,
14
15
  onSuccess = requestConfig.onSuccess;
15
16
  var beforeRequestResult = isFn(beforeRequest) ? beforeRequest(field, context) : {};
16
17
  /**
@@ -25,6 +26,9 @@ var $request = function $request(field, requestConfig, context, type) {
25
26
  beforeRequest: function beforeRequest() {
26
27
  return beforeRequestResult;
27
28
  },
29
+ formatResult: isFn(formatResult) ? function (res) {
30
+ return formatResult(res, field, context);
31
+ } : formatResult,
28
32
  onSuccess: isFn(onSuccess) ? function (res) {
29
33
  return onSuccess(res, field, context);
30
34
  } : onSuccess
@@ -60,9 +64,6 @@ var $dataSource = function $dataSource(services, requestConfig, context) {
60
64
  field.setState({
61
65
  loading: true
62
66
  });
63
- field.setComponentProps({
64
- readOnly: true
65
- });
66
67
  return services(field, requestConfig, context, 'dataSource').then(function (res) {
67
68
  var _requestConfig$onComp3;
68
69
 
@@ -74,17 +75,11 @@ var $dataSource = function $dataSource(services, requestConfig, context) {
74
75
  dataSource: res,
75
76
  loading: false
76
77
  }, clearValue));
77
- field.setComponentProps({
78
- readOnly: false
79
- });
80
78
  return (_requestConfig$onComp3 = requestConfig.onComplete) === null || _requestConfig$onComp3 === void 0 ? void 0 : _requestConfig$onComp3.call(requestConfig, res, field, context);
81
79
  }).catch(function () {
82
80
  field.setState({
83
81
  loading: false
84
82
  });
85
- field.setComponentProps({
86
- readOnly: false
87
- });
88
83
  });
89
84
  };
90
85
  };
@@ -14,12 +14,13 @@ export interface ProFormInitializeItem {
14
14
  * ProForm 实例类型
15
15
  */
16
16
  export declare type ProFormType = FormType;
17
- declare type IBaseComponent = 'Input' | 'Password' | 'TextArea' | 'NumberPicker' | 'Percent' | 'Money' | 'Select' | 'MultipleSelect' | 'TreeSelect' | 'Cascader' | 'MultipleCascader' | 'ArbitraryCascader' | 'Radio' | 'Checkbox' | 'Switch' | 'DatePicker' | 'TimePicker' | 'DateTimePicker' | 'WeekPicker' | 'MonthPicker' | 'YearPicker' | 'QuarterPicker' | 'DateRangePicker' | 'TimeRangePicker' | 'DateTimeRangePicker' | 'WeekRangePicker' | 'MonthRangePicker' | 'YearRangePicker' | 'QuarterRangePicker' | 'Transfer' | 'Upload' | 'ColorPicker' | 'ColorRadio' | 'IconPicker' | 'JsonInput' | 'TagPicker' | 'MultipleTagPicker' | 'Range' | 'Search' | 'SelectGroup';
17
+ declare type IBaseComponent = 'Input' | 'Password' | 'TextArea' | 'NumberPicker' | 'Percent' | 'Money' | 'Select' | 'MultipleSelect' | 'TreeSelect' | 'Cascader' | 'MultipleCascader' | 'ArbitraryCascader' | 'Radio' | 'Checkbox' | 'Switch' | 'DatePicker' | 'TimePicker' | 'DateTimePicker' | 'WeekPicker' | 'MonthPicker' | 'YearPicker' | 'QuarterPicker' | 'DateRangePicker' | 'TimeRangePicker' | 'DateTimeRangePicker' | 'WeekRangePicker' | 'MonthRangePicker' | 'YearRangePicker' | 'QuarterRangePicker' | 'Transfer' | 'Upload' | 'ColorPicker' | 'ColorRadio' | 'IconPicker' | 'JsonInput' | 'TagPicker' | 'MultipleTagPicker' | 'Range' | 'Search' | 'SelectGroup' | 'SelectTable' | 'SelectTable.Column';
18
18
  declare type IButtonComponent = 'Submit' | 'Reset';
19
19
  declare type IComboComponent = 'ArrayCards' | 'ArrayCards.Addition' | 'ArrayCards.Remove' | 'ArrayCards.MoveUp' | 'ArrayCards.MoveDown' | 'ArrayCards.Index' | 'ArrayCollapse' | 'ArrayCollapse.CollapsePanel' | 'ArrayCollapse.Addition' | 'ArrayCollapse.Remove' | 'ArrayCollapse.MoveUp' | 'ArrayCollapse.MoveDown' | 'ArrayCollapse.Index' | 'ArrayTable' | 'ArrayTable.Column' | 'ArrayTable.SortHandle' | 'ArrayTable.Addition' | 'ArrayTable.Remove' | 'ArrayTable.MoveDown' | 'ArrayTable.MoveUp' | 'ArrayTable.Index' | 'ArrayItems' | 'ArrayItems.Item' | 'ArrayItems.SortHandle' | 'ArrayItems.Addition' | 'ArrayItems.Remove' | 'ArrayItems.MoveDown' | 'ArrayItems.MoveUp' | 'ArrayItems.Index' | 'Editable' | 'Editable.Popover' | 'Editable.Dialog' | 'Editable.Drawer';
20
20
  declare type ILayoutComponent = 'FormFlex' | 'FormGrid' | 'FormGroup' | 'FormGroup.GroupPanel' | 'Search' | 'Search.SearchPanel' | 'FormTab' | 'FormTab.TabPane' | 'FormStep' | 'FormStep.StepPane' | 'FormCollapse' | 'FormCollapse.CollapsePanel' | 'FormButtonGroup' | 'FormDialog' | 'FormDrawer' | 'FormDialog.Footer' | 'FormDrawer.Footer';
21
21
  export interface ProFormRequestConfig extends CommonRequestConfig {
22
22
  beforeRequest?: (field?: any, context?: any) => any;
23
+ formatResult?: (res?: any, field?: any, context?: any) => any;
23
24
  onSuccess?: (res?: any, field?: any, context?: any) => any;
24
25
  onComplete?: (res?: any, field?: any, context?: any) => any;
25
26
  }
@@ -72,6 +73,7 @@ export interface ProFormProps extends IFormLayoutProps {
72
73
  export interface FilterProps extends ProFormProps {
73
74
  form: FormType;
74
75
  defaultFilterValue?: string;
76
+ filterValues?: string[];
75
77
  activeFilterValueRef?: React.MutableRefObject<any>;
76
78
  forceClear?: boolean;
77
79
  onReset?: (payload?: any) => void;
@@ -106,6 +108,8 @@ export interface QueryFilterProps extends ProFormProps {
106
108
  addonAfter?: ReactNode;
107
109
  /** 顶部筛选区默认筛选项 */
108
110
  defaultFilterValue?: string;
111
+ /** 顶部筛选区筛选项配置 */
112
+ filterValues?: string[];
109
113
  /** 透出内部表单实例 */
110
114
  formRef?: React.MutableRefObject<any>;
111
115
  /** onChange事件的防抖时间 */
package/es/form/utils.js CHANGED
@@ -72,9 +72,16 @@ var mapStatus = function mapStatus(props, field) {
72
72
  return state;
73
73
  };
74
74
 
75
- return _objectSpread(_objectSpread({}, props), {}, {
76
- state: takeState(props.state) || takeStatus()
77
- });
75
+ var state = takeState(props.state) || takeStatus();
76
+ var result = {
77
+ state: state
78
+ }; // 当组件处于loading状态时,仅可读不可写。
79
+
80
+ if (state === 'loading') {
81
+ result.readOnly = true;
82
+ }
83
+
84
+ return _objectSpread(_objectSpread({}, props), result);
78
85
  };
79
86
 
80
87
  var patchDataSource = function patchDataSource() {
@@ -92,7 +99,7 @@ var patchDataSource = function patchDataSource() {
92
99
  return result;
93
100
  };
94
101
 
95
- return dataSource.map(removeEmptyChildren);
102
+ return isArr(dataSource) ? dataSource.map(removeEmptyChildren) : [];
96
103
  };
97
104
 
98
105
  var mapDataSource = function mapDataSource(props, field) {
package/es/index.d.ts CHANGED
@@ -24,5 +24,5 @@ export * from './skeleton';
24
24
  export * from './table';
25
25
  export * from './utils';
26
26
  export * from './timeline';
27
- declare const version = "1.3.2";
27
+ declare const version = "1.3.3";
28
28
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProTimeline, hooks, nocode, templates, utils, };
package/es/index.js CHANGED
@@ -30,7 +30,7 @@ export * from './table';
30
30
  export * from './utils'; // export * from './sidebar';
31
31
 
32
32
  export * from './timeline';
33
- var version = '1.3.2';
33
+ var version = '1.3.3';
34
34
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, // ProLayout,
35
35
  ProPageContainer, ProPageHeader, ProSkeleton, ProTable, // ProSidebar,
36
36
  ProTimeline, hooks, nocode, templates, utils };
@@ -1,3 +1,6 @@
1
+ $item-padding-bottom: -8px;
2
+ // /** 消除 baseInfo 被其他组件包裹后没有居中的问题*/
1
3
  .teamix-pro-info {
2
4
  width: 100%;
5
+ margin-bottom: $item-padding-bottom;
3
6
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ItemProps } from '@alicloudfe/components/types/breadcrumb';
3
- import { LinkPath, ProTagItem } from '@teamix/utils';
3
+ import { LinkPath, ProTagItem, CapsuleTabType } from '@teamix/utils';
4
4
  import { ProActionGroupProps } from '../actions';
5
5
  import { ProInfoProps } from '../info';
6
6
  import './index.scss';
@@ -48,6 +48,8 @@ export declare type ProPageHeaderProps = {
48
48
  data?: ProPageHeaderDataItem[];
49
49
  /** 底部详情 */
50
50
  info?: ProInfoProps | React.ReactNode;
51
+ /** 切换 tabs */
52
+ tabs?: CapsuleTabType;
51
53
  } & Omit<React.HTMLAttributes<HTMLElement>, 'title'>;
52
54
  declare const ProPageHeader: React.FC<ProPageHeaderProps>;
53
55
  export default ProPageHeader;
@@ -1,6 +1,6 @@
1
1
  var _excluded = ["text", "children"],
2
2
  _excluded2 = ["color", "title", "num", "className"],
3
- _excluded3 = ["title", "description", "icon", "iconColor", "iconBackgroundType", "iconBackgroundColor", "goback", "operation", "extra", "image", "loading", "breadcrumb", "tags", "data", "info", "children", "className", "style"];
3
+ _excluded3 = ["title", "description", "icon", "iconColor", "iconBackgroundType", "iconBackgroundColor", "goback", "operation", "extra", "image", "loading", "breadcrumb", "tags", "data", "info", "children", "className", "style", "tabs"];
4
4
 
5
5
  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; }
6
6
 
@@ -17,7 +17,7 @@ import { useHistory } from 'react-router-dom';
17
17
  import classnames from 'classnames';
18
18
  import TeamixIcon from '@teamix/icon';
19
19
  import { Breadcrumb } from '@alicloudfe/components';
20
- import { baseClass, goToLink, renderTags, isPresetColor, getColor, getColorClassName, getBackgroundColorClassName } from '@teamix/utils';
20
+ import { baseClass, goToLink, renderTags, isPresetColor, getColor, getColorClassName, getBackgroundColorClassName, CapsuleTab } from '@teamix/utils';
21
21
  import { ProActionGroup } from '../actions';
22
22
  import { ProSkeletonRaw } from '../skeleton';
23
23
  import ProInfo from '../info';
@@ -123,6 +123,14 @@ var renderInfo = function renderInfo(info) {
123
123
  return info;
124
124
  };
125
125
 
126
+ var renderTabs = function renderTabs(tabs) {
127
+ if (tabs) {
128
+ return /*#__PURE__*/React.createElement(CapsuleTab, _objectSpread({}, tabs));
129
+ }
130
+
131
+ return null;
132
+ };
133
+
126
134
  var ProPageHeader = function ProPageHeader(props) {
127
135
  var title = props.title,
128
136
  description = props.description,
@@ -143,6 +151,7 @@ var ProPageHeader = function ProPageHeader(props) {
143
151
  children = props.children,
144
152
  className = props.className,
145
153
  style = props.style,
154
+ tabs = props.tabs,
146
155
  others = _objectWithoutProperties(props, _excluded3);
147
156
 
148
157
  var history = useHistory();
@@ -191,7 +200,7 @@ var ProPageHeader = function ProPageHeader(props) {
191
200
  size: "large"
192
201
  }) : /*#__PURE__*/React.createElement(React.Fragment, null, icon)), /*#__PURE__*/React.createElement("span", {
193
202
  className: cls('title-name')
194
- }, title), renderTags(tags, 'large'));
203
+ }, title), renderTags(tags, 'large'), renderTabs(tabs !== null && tabs !== void 0 ? tabs : {}));
195
204
  };
196
205
 
197
206
  return /*#__PURE__*/React.createElement("header", _objectSpread({
@@ -27,7 +27,7 @@
27
27
  line-height: var(--checkbox-size,16px);
28
28
  }
29
29
  }
30
- &-reset {
30
+ &-reset.next-btn {
31
31
  position: absolute;
32
32
  right: 0px;
33
33
  top: 6px;
@@ -124,4 +124,14 @@ $fullscreenPadding: 24px;
124
124
  .next-form-preview.next-form-preview {
125
125
  line-height: unset;
126
126
  }
127
+ &-row {
128
+ .teamix-pro-field.teamix-pro-field-text .next-form-preview {
129
+ color: var(--table-row-color);
130
+ }
131
+ }
132
+ &-row.hovered {
133
+ .teamix-pro-field.teamix-pro-field-text .next-form-preview {
134
+ color: var(--table-row-hover-color);
135
+ }
136
+ }
127
137
  }
@@ -8,6 +8,7 @@ import './index.scss';
8
8
  interface ILightFiter {
9
9
  size?: 'small' | 'medium' | 'large';
10
10
  defaultFilterValue?: string;
11
+ filterValues?: string[];
11
12
  onFilterChange?: (schema?: any) => any;
12
13
  filterProps?: SelectProps;
13
14
  buttonProps?: ButtonProps;