@zat-design/sisyphus-react 3.7.1 → 3.7.2-beta.10

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 (47) hide show
  1. package/es/ProEditTable/components/RenderField/index.js +91 -69
  2. package/es/ProEditTable/propsType.d.ts +1 -1
  3. package/es/ProEditTable/utils/getDefaultProps.d.ts +1 -0
  4. package/es/ProEditTable/utils/getDefaultProps.js +32 -0
  5. package/es/ProForm/components/combination/Group/component/ComRender.js +3 -1
  6. package/es/ProForm/components/combination/Group/utils.js +24 -3
  7. package/es/ProForm/components/render/Render.js +12 -23
  8. package/es/ProForm/components/render/RenderFields.js +3 -1
  9. package/es/ProForm/components/render/propsType.d.ts +2 -2
  10. package/es/ProForm/utils/getDefaultProps.d.ts +1 -0
  11. package/es/ProForm/utils/getDefaultProps.js +31 -0
  12. package/es/ProForm/utils/rulesCreator.d.ts +1 -1
  13. package/es/ProForm/utils/rulesCreator.js +25 -22
  14. package/es/ProForm/utils/useRules.js +1 -1
  15. package/es/ProForm/utils/valueType.js +2 -2
  16. package/es/ProSelect/index.js +2 -1
  17. package/es/ProSelect/utils/index.d.ts +1 -7
  18. package/es/ProSelect/utils/index.js +13 -5
  19. package/es/ProTable/components/RenderColumn/index.js +58 -30
  20. package/es/ProTable/index.js +14 -2
  21. package/es/ProTable/propsType.d.ts +1 -0
  22. package/es/ProUpload/index.js +1 -1
  23. package/es/ProUpload/propsType.d.ts +5 -0
  24. package/lib/ProEditTable/components/RenderField/index.js +92 -70
  25. package/lib/ProEditTable/propsType.d.ts +1 -1
  26. package/lib/ProEditTable/utils/getDefaultProps.d.ts +1 -0
  27. package/lib/ProEditTable/utils/getDefaultProps.js +39 -0
  28. package/lib/ProForm/components/combination/Group/component/ComRender.js +3 -1
  29. package/lib/ProForm/components/combination/Group/utils.js +24 -3
  30. package/lib/ProForm/components/render/Render.js +12 -23
  31. package/lib/ProForm/components/render/RenderFields.js +3 -1
  32. package/lib/ProForm/components/render/propsType.d.ts +2 -2
  33. package/lib/ProForm/utils/getDefaultProps.d.ts +1 -0
  34. package/lib/ProForm/utils/getDefaultProps.js +37 -0
  35. package/lib/ProForm/utils/rulesCreator.d.ts +1 -1
  36. package/lib/ProForm/utils/rulesCreator.js +25 -22
  37. package/lib/ProForm/utils/useRules.js +1 -1
  38. package/lib/ProForm/utils/valueType.js +2 -2
  39. package/lib/ProSelect/index.js +2 -1
  40. package/lib/ProSelect/utils/index.d.ts +1 -7
  41. package/lib/ProSelect/utils/index.js +13 -5
  42. package/lib/ProTable/components/RenderColumn/index.js +58 -30
  43. package/lib/ProTable/index.js +13 -1
  44. package/lib/ProTable/propsType.d.ts +1 -0
  45. package/lib/ProUpload/index.js +1 -1
  46. package/lib/ProUpload/propsType.d.ts +5 -0
  47. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
1
2
  import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
2
3
  /* eslint-disable no-restricted-syntax */
3
4
  import _ from 'lodash';
@@ -8,7 +9,8 @@ var findSelectNameValues = function findSelectNameValues(_ref) {
8
9
  value = _ref.value,
9
10
  dataSource = _ref.dataSource,
10
11
  labelInValue = _ref.labelInValue,
11
- fieldNames = _ref.fieldNames;
12
+ fieldNames = _ref.fieldNames,
13
+ mode = _ref.mode;
12
14
  var selectValues = [];
13
15
  list.forEach(function (item) {
14
16
  var result = item;
@@ -27,9 +29,13 @@ var findSelectNameValues = function findSelectNameValues(_ref) {
27
29
  } finally {
28
30
  _iterator.f();
29
31
  }
30
- selectValues.push(result);
32
+ if (mode === 'multiple') {
33
+ selectValues = [].concat(_toConsumableArray(selectValues), _toConsumableArray(result));
34
+ } else {
35
+ selectValues.push(result);
36
+ }
31
37
  });
32
- var diffList = _.difference(selectValues, [value]);
38
+ var diffList = _.difference(selectValues, mode === 'multiple' ? value : [value]);
33
39
  return dataSource.filter(function (item) {
34
40
  return !diffList.includes(labelInValue ? item : item[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value] || (item === null || item === void 0 ? void 0 : item.value));
35
41
  });
@@ -42,7 +48,8 @@ export var getSelectList = function getSelectList(_ref2) {
42
48
  value = _ref2.value,
43
49
  dataSource = _ref2.dataSource,
44
50
  labelInValue = _ref2.labelInValue,
45
- fieldNames = _ref2.fieldNames;
51
+ fieldNames = _ref2.fieldNames,
52
+ mode = _ref2.mode;
46
53
  if (!otherProps) {
47
54
  return null;
48
55
  }
@@ -59,6 +66,7 @@ export var getSelectList = function getSelectList(_ref2) {
59
66
  value: value,
60
67
  dataSource: dataSource,
61
68
  labelInValue: labelInValue,
62
- fieldNames: fieldNames
69
+ fieldNames: fieldNames,
70
+ mode: mode
63
71
  });
64
72
  };
@@ -90,42 +90,70 @@ var RenderColumn = function RenderColumn(props) {
90
90
  });
91
91
  }
92
92
  if (ellipsis) {
93
- var handleMouseOver = function handleMouseOver(e) {
94
- var _e$target, _e$target2;
95
- if ((e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.scrollWidth) > (e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.offsetWidth)) {
96
- setState({
97
- tooltip: _objectSpread({
98
- getPopupContainer: function getPopupContainer(triggerNode) {
99
- return triggerNode.parentNode;
100
- },
101
- open: true
102
- }, toolTipProps)
103
- });
104
- } else {
105
- setState({
106
- tooltip: false
107
- });
93
+ var getPadding = function getPadding(el) {
94
+ var style = window.getComputedStyle(el, null);
95
+ var paddingLeft = Number.parseInt(style.paddingLeft, 10) || 0;
96
+ var paddingRight = Number.parseInt(style.paddingRight, 10) || 0;
97
+ var paddingTop = Number.parseInt(style.paddingTop, 10) || 0;
98
+ var paddingBottom = Number.parseInt(style.paddingBottom, 10) || 0;
99
+ return {
100
+ pLeft: paddingLeft,
101
+ pRight: paddingRight,
102
+ pTop: paddingTop,
103
+ pBottom: paddingBottom
104
+ };
105
+ };
106
+ var checkEllipsis = function checkEllipsis(box) {
107
+ var range = document.createRange();
108
+ range.setStart(box, 0);
109
+ range.setEnd(box, box.childNodes.length);
110
+ var rangeWidth = range.getBoundingClientRect().width;
111
+ var rangeHeight = range.getBoundingClientRect().height;
112
+ var contentWidth = rangeWidth - Math.floor(rangeWidth);
113
+ var _getPadding = getPadding(box),
114
+ pLeft = _getPadding.pLeft,
115
+ pRight = _getPadding.pRight,
116
+ pTop = _getPadding.pTop,
117
+ pBottom = _getPadding.pBottom;
118
+ var horizontalPadding = pLeft + pRight;
119
+ var verticalPadding = pTop + pBottom;
120
+ if (rangeWidth + horizontalPadding > box.clientWidth) {
121
+ return true;
108
122
  }
123
+ return false;
109
124
  };
110
- var handleMouseOut = function handleMouseOut() {
125
+ var handleMouseOver = function handleMouseOver(e) {
111
126
  setState({
112
- tooltip: false
127
+ tooltip: checkEllipsis(e.target)
113
128
  });
114
129
  };
115
- var _ellipsis = {
116
- tooltip: tooltip
117
- };
118
- return value ? _jsx(Text, {
119
- style: {
120
- width: width
130
+ var tooltipProps = _objectSpread({
131
+ getPopupContainer: function getPopupContainer(triggerNode) {
132
+ return triggerNode.parentNode;
133
+ }
134
+ }, toolTipProps);
135
+ if (!value) {
136
+ return '-';
137
+ }
138
+ return _jsx(_Tooltip, _objectSpread(_objectSpread({
139
+ title: value,
140
+ onOpenChange: function onOpenChange(open) {
141
+ setState({
142
+ tooltip: false
143
+ });
121
144
  },
122
- ellipsis: _ellipsis,
123
- onMouseOver: handleMouseOver,
124
- onFocus: handleMouseOver,
125
- onMouseOut: handleMouseOut,
126
- onBlur: handleMouseOut,
127
- children: node
128
- }) : '-';
145
+ open: tooltip
146
+ }, tooltipProps), {}, {
147
+ children: _jsx(Text, {
148
+ style: {
149
+ width: width
150
+ },
151
+ ellipsis: true,
152
+ onMouseOver: handleMouseOver,
153
+ onFocus: handleMouseOver,
154
+ children: node
155
+ })
156
+ }));
129
157
  }
130
158
  return value || value === 0 ? node : '-';
131
159
  };
@@ -9,7 +9,7 @@ var _excluded = ["tableId", "headerRender", "footerRender", "quickConfig", "stri
9
9
  _excluded2 = ["resizeColumn", "columnConfig", "cacheTime", "storage"];
10
10
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  import { useEffect, useMemo, useState, createContext } from 'react';
12
- import { get, keyBy, assign, isObject } from 'lodash';
12
+ import { get, keyBy, assign, isObject, isFunction, isBoolean } from 'lodash';
13
13
  import { useDebounceEffect, useDeepCompareEffect, useSetState } from 'ahooks';
14
14
  import classnames from 'classnames';
15
15
  import { useProConfig } from '../index';
@@ -192,6 +192,18 @@ function ProTable(props) {
192
192
  });
193
193
  return newColumns;
194
194
  }, [curColumns, handleResize]);
195
+ var _columns = useMemo(function () {
196
+ return columns === null || columns === void 0 ? void 0 : columns.filter(function (item, index) {
197
+ var show = item.show;
198
+ if (isBoolean(show)) {
199
+ return show;
200
+ }
201
+ if (isFunction(show)) {
202
+ return show();
203
+ }
204
+ return true;
205
+ });
206
+ }, [columns]);
195
207
  var handleColumnConfig = /*#__PURE__*/function () {
196
208
  var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(checkList) {
197
209
  var newColumns, _columnConfig$onColum, catchColumns;
@@ -361,7 +373,7 @@ function ProTable(props) {
361
373
  tableProps: {
362
374
  value: _dataSource,
363
375
  headerRender: headerRender,
364
- columns: columns,
376
+ columns: _columns,
365
377
  renderRowSelection: renderRowSelection,
366
378
  rowClassName: _rowClassName,
367
379
  disabled: disabled,
@@ -40,6 +40,7 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
40
40
  };
41
41
  toolTipProps?: TooltipProps & React.RefAttributes<unknown>;
42
42
  transform?: (value: any, record?: any) => string[];
43
+ show?: boolean | (() => boolean);
43
44
  }
44
45
  export interface CreateTreeFromArrayOptions {
45
46
  itemKey?: string;
@@ -71,7 +71,7 @@ var ProUpload = /*#__PURE__*/React.forwardRef(function (props, ref) {
71
71
  fieldNames = props.fieldNames,
72
72
  isConfirmDelete = props.isConfirmDelete,
73
73
  residueProps = _objectWithoutProperties(props, _excluded);
74
- var isView = otherProps === null || otherProps === void 0 ? void 0 : otherProps.isView;
74
+ var isView = (props === null || props === void 0 ? void 0 : props.isView) || (otherProps === null || otherProps === void 0 ? void 0 : otherProps.isView);
75
75
  var sensor = useSensor(PointerSensor, {
76
76
  activationConstraint: {
77
77
  distance: 10
@@ -195,6 +195,11 @@ export interface ProUploadProps {
195
195
  */
196
196
  isConfirmDelete?: boolean;
197
197
  id?: string;
198
+ /**
199
+ * @description 查看模式
200
+ * @default false
201
+ */
202
+ isView?: boolean;
198
203
  }
199
204
  export interface DraggableUploadListItemProps {
200
205
  file: UploadFile<any>;
@@ -17,7 +17,7 @@ var _react = _interopRequireWildcard(require("react"));
17
17
  var _antd = require("antd");
18
18
  var _classnames = _interopRequireDefault(require("classnames"));
19
19
  var _lodash = require("lodash");
20
- var _valueType = _interopRequireDefault(require("../../../ProForm/utils/valueType"));
20
+ var _valueType2 = _interopRequireDefault(require("../../../ProForm/utils/valueType"));
21
21
  var _transform = _interopRequireDefault(require("../../utils/transform"));
22
22
  var _tools = require("../../utils/tools");
23
23
  var componentMap = _interopRequireWildcard(require("../../../ProForm/components"));
@@ -28,12 +28,13 @@ var _useFieldProps = require("../../../ProForm/utils/useFieldProps");
28
28
  var _useRules = _interopRequireDefault(require("../../../ProForm/utils/useRules"));
29
29
  var _utils = require("../../../ProForm/utils");
30
30
  var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
31
+ var _getDefaultProps = require("../../utils/getDefaultProps");
31
32
  var _ListChanged = _interopRequireDefault(require("./ListChanged"));
32
33
  var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm"];
33
34
  /* eslint-disable prefer-destructuring */
34
35
  /* eslint-disable prefer-const */
35
36
  var RenderField = function RenderField(_ref) {
36
- var _type, _type$replace, _fieldProps2, _names, _TargetComponent4, _componentProps, _componentProps2;
37
+ var _type, _type$replace, _fieldProps2, _names, _TargetComponent4, _componentProps2;
37
38
  var value = _ref.text,
38
39
  record = _ref.record,
39
40
  index = _ref.index,
@@ -85,6 +86,7 @@ var RenderField = function RenderField(_ref) {
85
86
  var _fieldProps = fieldProps || formItemProps || {};
86
87
  var _rules = rules || [];
87
88
  var _required = required;
89
+ var _valueType = valueType;
88
90
  var _disabled = false;
89
91
  var isCell = mode === 'cell';
90
92
  if (isCell) {
@@ -109,11 +111,18 @@ var RenderField = function RenderField(_ref) {
109
111
  };
110
112
  // 行参数
111
113
  var rowParams = [currentValue, rowData, options];
112
- if (typeof isEditable === 'function') {
113
- isEditable = isEditable.apply(void 0, rowParams);
114
- setTimeout(function () {
115
- !isEditable && form.validateFields([cellName]);
116
- }, 100);
114
+ // required & rules & fieldProps & disabled & valueType 函数化处理
115
+ if ((0, _lodash.isFunction)(required)) {
116
+ _required = required.apply(void 0, rowParams);
117
+ }
118
+ if ((0, _lodash.isFunction)(fieldProps)) {
119
+ _fieldProps = fieldProps.apply(void 0, rowParams);
120
+ }
121
+ if ((0, _lodash.isFunction)(rules)) {
122
+ _rules = rules.apply(void 0, rowParams);
123
+ }
124
+ if ((0, _lodash.isFunction)(valueType)) {
125
+ _valueType = valueType.apply(void 0, rowParams);
117
126
  }
118
127
  // 获取最终的disabled
119
128
  _disabled = (0, _tools.getDisabled)({
@@ -124,6 +133,12 @@ var RenderField = function RenderField(_ref) {
124
133
  columnFieldProps: _fieldProps,
125
134
  params: rowParams
126
135
  });
136
+ if (typeof isEditable === 'function') {
137
+ isEditable = isEditable.apply(void 0, rowParams);
138
+ setTimeout(function () {
139
+ !isEditable && form.validateFields([cellName]);
140
+ }, 100);
141
+ }
127
142
  // 是否只读文本
128
143
  var isView = !isEditable || (record === null || record === void 0 ? void 0 : record['is-view']) || config.isView || virtualKey && !isEditing || (0, _tools.getDisabled)({
129
144
  globalControl: otherProps === null || otherProps === void 0 ? void 0 : otherProps.globalControl,
@@ -137,15 +152,6 @@ var RenderField = function RenderField(_ref) {
137
152
  // 只读文本时,采用当前formItem的name,单行编辑时,使用生成的虚拟的name
138
153
  var baseName = isView ? name : namePath;
139
154
  var TargetComponent;
140
- if ((0, _lodash.isFunction)(required)) {
141
- _required = required.apply(void 0, rowParams);
142
- }
143
- if ((0, _lodash.isFunction)(fieldProps)) {
144
- _fieldProps = fieldProps.apply(void 0, rowParams);
145
- }
146
- if ((0, _lodash.isFunction)(rules)) {
147
- _rules = rules.apply(void 0, rowParams);
148
- }
149
155
  // 设置校验规则
150
156
  var internalRule = (0, _useRules.default)({
151
157
  names: names,
@@ -161,11 +167,17 @@ var RenderField = function RenderField(_ref) {
161
167
  });
162
168
  // 分离form item参数,防止对于参数透传(如onChange,防止重复触发)并优先级高于 _fieldProps 内部参数
163
169
  var formItemChildProps = (0, _objectSpread2.default)({}, _fieldProps);
170
+ var defaultProps = (0, _getDefaultProps.getDefaultProps)({
171
+ name: name,
172
+ namePath: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
173
+ type: column === null || column === void 0 ? void 0 : column.type,
174
+ fieldProps: column === null || column === void 0 ? void 0 : column.fieldProps
175
+ });
164
176
  // 允许formItem的属性放在column最外层
165
- var _formItemProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, resetProps), internalRule);
177
+ var _formItemProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultProps), resetProps), internalRule);
166
178
  if (['Switch', 'SwitchCheckbox'].includes(type)) {
167
179
  _formItemProps.valuePropName = 'checked';
168
- valueType = 'switch';
180
+ _valueType = 'switch';
169
181
  }
170
182
  /**
171
183
  * 针对一些特殊类型,基于formItem的normalize与getValueProps进行默认值类型转换
@@ -173,7 +185,7 @@ var RenderField = function RenderField(_ref) {
173
185
  */
174
186
  var defaultTransform = function defaultTransform() {
175
187
  var types = ['DatePicker', 'RangePicker'];
176
- if (!valueType && types.includes(type)) {
188
+ if (!_valueType && types.includes(type)) {
177
189
  var _transformMap$type;
178
190
  return _transform.default === null || _transform.default === void 0 ? void 0 : (_transformMap$type = _transform.default[type]) === null || _transformMap$type === void 0 ? void 0 : _transformMap$type.call(_transform.default, _fieldProps || {});
179
191
  }
@@ -186,18 +198,18 @@ var RenderField = function RenderField(_ref) {
186
198
  var valueTypeTransform = (0, _react.useCallback)(function () {
187
199
  var _fieldProps3;
188
200
  // 不存在valueType返回空
189
- if (!valueType) {
201
+ if (!_valueType) {
190
202
  return {};
191
203
  }
192
204
  // SwitchCheckbox默认YN, 兼容已有组件
193
205
  if (type === 'SwitchCheckbox') {
194
- valueType = 'switch';
206
+ _valueType = 'switch';
195
207
  }
196
208
  var params = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, column), {}, {
197
209
  mode: (_fieldProps3 = _fieldProps) === null || _fieldProps3 === void 0 ? void 0 : _fieldProps3.mode
198
210
  });
199
- return (0, _lodash.isFunction)(_valueType.default[valueType]) ? _valueType.default[valueType](params) : {};
200
- }, [valueType]);
211
+ return (0, _lodash.isFunction)(_valueType2.default[_valueType]) ? _valueType2.default[_valueType](params) : {};
212
+ }, [_valueType]);
201
213
  if ((_names = names) === null || _names === void 0 ? void 0 : _names.length) {
202
214
  // 支持names配置,临时生成对应的formItem,用来存储单个对应的值
203
215
  names = names.map(function (key) {
@@ -228,7 +240,7 @@ var RenderField = function RenderField(_ref) {
228
240
  }
229
241
  var namesStr = [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]);
230
242
  var transform = {};
231
- if (valueType) {
243
+ if (_valueType) {
232
244
  transform = valueTypeTransform();
233
245
  }
234
246
  return (0, _transformNames.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, _formItemProps), transform), form, names, namesStr, type);
@@ -508,7 +520,7 @@ var RenderField = function RenderField(_ref) {
508
520
  name: cellName,
509
521
  listName: cellName,
510
522
  viewEmpty: viewEmpty,
511
- valueType: valueType,
523
+ valueType: _valueType,
512
524
  isView: isView
513
525
  }
514
526
  });
@@ -537,55 +549,65 @@ var RenderField = function RenderField(_ref) {
537
549
  delete _formItemProps.rules;
538
550
  }
539
551
  var _className = (0, _classnames.default)((0, _defineProperty2.default)({}, className, className));
540
- var FormItem = null;
541
- var FieldComponent = /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps));
542
- if (originalValues) {
543
- FieldComponent = (0, _jsxRuntime.jsx)(_ListChanged.default, {
544
- name: cellName,
545
- names: names,
546
- namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
547
- rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
548
- originalName: originalName,
549
- originalNames: originalNames,
550
- originalValues: originalValues,
551
- form: form,
552
- equalWith: equalWith,
553
- type: type,
554
- onChange: _onChange,
552
+ var getFieldItem = function getFieldItem() {
553
+ var _componentProps;
554
+ var FormItem = null;
555
+ var FieldComponent = /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps));
556
+ if (originalValues) {
557
+ FieldComponent = (0, _jsxRuntime.jsx)(_ListChanged.default, {
558
+ name: cellName,
559
+ names: names,
560
+ namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
561
+ rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
562
+ originalName: originalName,
563
+ originalNames: originalNames,
564
+ originalValues: originalValues,
565
+ form: form,
566
+ equalWith: equalWith,
567
+ type: type,
568
+ onChange: _onChange,
569
+ children: FieldComponent
570
+ });
571
+ }
572
+ if ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) {
573
+ FieldComponent = (0, _jsxRuntime.jsx)(_ConfirmWrapper.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
574
+ children: FieldComponent
575
+ }));
576
+ }
577
+ FormItem = TargetComponent ? (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
578
+ validateFirst: true
579
+ }, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name', 'onCell', _fieldProps.shouldUpdate ? 'shouldUpdate' : null])), {}, {
580
+ className: _className,
581
+ name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
555
582
  children: FieldComponent
583
+ })) : (0, _jsxRuntime.jsx)(_Container.default, {
584
+ viewEmpty: viewEmpty
556
585
  });
557
- }
558
- if ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) {
559
- FieldComponent = (0, _jsxRuntime.jsx)(_ConfirmWrapper.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
560
- children: FieldComponent
561
- }));
562
- }
563
- FormItem = TargetComponent ? (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
564
- validateFirst: true
565
- }, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name', 'onCell'])), {}, {
566
- className: _className,
567
- name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
568
- children: FieldComponent
569
- })) : (0, _jsxRuntime.jsx)(_Container.default, {
570
- viewEmpty: viewEmpty
571
- });
572
- if (type === 'FormList') {
573
- FormItem = (0, _jsxRuntime.jsx)(_antd.Form.List, (0, _objectSpread2.default)((0, _objectSpread2.default)({
574
- name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName
575
- }, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
576
- children: function children(fields, operation, meta) {
577
- return (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
578
- otherProps: otherProps,
579
- fields: fields,
580
- operation: operation,
581
- meta: meta
582
- }));
583
- }
584
- }));
585
- }
586
+ if (type === 'FormList') {
587
+ FormItem = (0, _jsxRuntime.jsx)(_antd.Form.List, (0, _objectSpread2.default)((0, _objectSpread2.default)({
588
+ name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName
589
+ }, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
590
+ children: function children(fields, operation, meta) {
591
+ return (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
592
+ otherProps: otherProps,
593
+ fields: fields,
594
+ operation: operation,
595
+ meta: meta
596
+ }));
597
+ }
598
+ }));
599
+ }
600
+ return FormItem;
601
+ };
586
602
  return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
587
603
  value: (_componentProps2 = componentProps) === null || _componentProps2 === void 0 ? void 0 : _componentProps2.otherProps,
588
- children: FormItem
604
+ children: _formItemProps.shouldUpdate ? (0, _jsxRuntime.jsx)(_antd.Form.Item, {
605
+ noStyle: true,
606
+ shouldUpdate: _formItemProps.shouldUpdate,
607
+ children: function children() {
608
+ return getFieldItem();
609
+ }
610
+ }) : getFieldItem()
589
611
  });
590
612
  };
591
613
  var _default = exports.default = RenderField;
@@ -96,7 +96,7 @@ export interface ProColumnsProps<Values = any, T = any> extends Omit<FormItemPro
96
96
  names?: NamePath[];
97
97
  cache?: boolean;
98
98
  isEditable?: boolean | RequiredFn<T>;
99
- valueType?: ProFormValueType;
99
+ valueType?: ProFormValueType | ((text?: any, record?: any, options?: OptionsProps) => ProFormValueType);
100
100
  tooltip?: string | ({
101
101
  icon?: string | ReactNode;
102
102
  } & TooltipProps);
@@ -0,0 +1 @@
1
+ export declare const getDefaultProps: (props: any) => any;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getDefaultProps = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _lodash = require("lodash");
10
+ var defaultPropsMap = {
11
+ ProSelect: function ProSelect(props) {
12
+ var fieldProps = props.fieldProps,
13
+ name = props.name,
14
+ namePath = props.namePath;
15
+ var _ref = fieldProps || {},
16
+ filterInList = _ref.filterInList;
17
+ var defaultProps = {};
18
+ // formList场景传入列表过滤时
19
+ if (filterInList && namePath && name) {
20
+ var _namePath = (0, _toConsumableArray2.default)(namePath).splice(2, namePath.length - 1);
21
+ defaultProps.shouldUpdate = function (preValues, curValues) {
22
+ var _get, _get$map, _get2, _get2$map;
23
+ var preListValue = (_get = (0, _lodash.get)(preValues, name)) === null || _get === void 0 ? void 0 : (_get$map = _get.map) === null || _get$map === void 0 ? void 0 : _get$map.call(_get, function (item) {
24
+ return (0, _lodash.get)(item, _namePath);
25
+ });
26
+ var curListValue = (_get2 = (0, _lodash.get)(curValues, name)) === null || _get2 === void 0 ? void 0 : (_get2$map = _get2.map) === null || _get2$map === void 0 ? void 0 : _get2$map.call(_get2, function (item) {
27
+ return (0, _lodash.get)(item, _namePath);
28
+ });
29
+ return !(0, _lodash.isEqual)(preListValue, curListValue);
30
+ };
31
+ }
32
+ return defaultProps;
33
+ }
34
+ };
35
+ var getDefaultProps = exports.getDefaultProps = function getDefaultProps(props) {
36
+ var _defaultPropsMap$type;
37
+ var type = props.type;
38
+ return (_defaultPropsMap$type = defaultPropsMap[type]) === null || _defaultPropsMap$type === void 0 ? void 0 : _defaultPropsMap$type.call(defaultPropsMap, props);
39
+ };
@@ -15,7 +15,7 @@ var _ConfirmWrapper = _interopRequireDefault(require("../../../../components/ren
15
15
  var _useFieldProps = require("../../../../utils/useFieldProps");
16
16
  var componentMap = _interopRequireWildcard(require("../../../../../index"));
17
17
  var _AddonWrapper = _interopRequireDefault(require("./AddonWrapper"));
18
- var _excluded = ["type", "confirm", "component", "fieldProps", "contextProps", "before", "after", "getValueProps", "valuePropName"];
18
+ var _excluded = ["type", "confirm", "component", "fieldProps", "contextProps", "before", "after", "getValueProps", "valuePropName", "valueType"];
19
19
  // 这里的key与组件内参数一致, 决定使用哪个包裹组件
20
20
  var wrapperMap = {
21
21
  confirm: _ConfirmWrapper.default,
@@ -48,6 +48,7 @@ var ComRender = function ComRender(props) {
48
48
  getValueProps = props.getValueProps,
49
49
  _props$valuePropName = props.valuePropName,
50
50
  valuePropName = _props$valuePropName === void 0 ? 'value' : _props$valuePropName,
51
+ valueType = props.valueType,
51
52
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
52
53
  var TypeComponent = componentMap[type];
53
54
  var mergedGetValueProps = getValueProps || function (val) {
@@ -59,6 +60,7 @@ var ComRender = function ComRender(props) {
59
60
  var Com = getComRender(Component, props, componentProps);
60
61
  return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
61
62
  value: (0, _objectSpread3.default)((0, _objectSpread3.default)({}, contextProps), {}, {
63
+ valueType: valueType,
62
64
  type: type
63
65
  }),
64
66
  children: Com
@@ -94,7 +94,7 @@ var getReactiveProps = exports.getReactiveProps = function getReactiveProps(para
94
94
  component = params.component,
95
95
  fieldProps = params.fieldProps,
96
96
  name = params.name;
97
- var values = form.getFieldsValue(namePath || undefined);
97
+ var values = namePath ? form.getFieldValue(namePath) : form.getFieldsValue();
98
98
  var _disabled = (0, _lodash.isFunction)(disabled) ? disabled(values, {
99
99
  form: form,
100
100
  index: index,
@@ -189,7 +189,8 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
189
189
  mode = _ref.mode,
190
190
  onChange = _ref.onChange,
191
191
  onFieldChange = _ref.onFieldChange,
192
- comDisabled = _ref.disabled;
192
+ comDisabled = _ref.disabled,
193
+ onBlur = _ref.onBlur;
193
194
  var _disabled = disabled || comDisabled;
194
195
  var columnName = names ? names[index] : [].concat(name, index);
195
196
  // 响应式字段改变后的回调
@@ -199,7 +200,13 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
199
200
  if ((current === null || current === void 0 ? void 0 : current.show) === false) {
200
201
  clearInterval(timerRef.current[index]);
201
202
  timerRef.current[index] = setTimeout(function () {
202
- form.resetFields([columnName]);
203
+ if (names) {
204
+ form.resetFields([columnName]);
205
+ }
206
+ if (!names && (value === null || value === void 0 ? void 0 : value.length)) {
207
+ value[index] = null;
208
+ form.setFieldValue(columnName, (0, _toConsumableArray2.default)(value));
209
+ }
203
210
  }, 200);
204
211
  } else {
205
212
  clearInterval(timerRef.current[index]);
@@ -268,6 +275,19 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
268
275
  }
269
276
  }
270
277
  };
278
+ var handleBlur = function handleBlur() {
279
+ if (!onBlur) return;
280
+ var values = form.getFieldValue(namePath);
281
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
282
+ args[_key2] = arguments[_key2];
283
+ }
284
+ onBlur === null || onBlur === void 0 ? void 0 : onBlur(args[0], values, {
285
+ index: outerIndex,
286
+ namePath: namePath,
287
+ form: form,
288
+ option: args === null || args === void 0 ? void 0 : args[1]
289
+ });
290
+ };
271
291
  return (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, column), {}, {
272
292
  name: columnName
273
293
  }, reactiveProps), {}, {
@@ -275,6 +295,7 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
275
295
  getValueProps: transform === null || transform === void 0 ? void 0 : transform.getValueProps,
276
296
  fieldProps: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, column === null || column === void 0 ? void 0 : column.fieldProps), {}, {
277
297
  onChange: handleChange,
298
+ onBlur: handleBlur,
278
299
  value: value === null || value === void 0 ? void 0 : value[index]
279
300
  })
280
301
  });