@zat-design/sisyphus-react 3.4.10-beta.17 → 3.4.10-beta.19

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.
@@ -489,6 +489,7 @@ var RenderField = function RenderField(_ref) {
489
489
  otherProps: {
490
490
  form: form,
491
491
  names: names,
492
+ namePath: [].concat(_toConsumableArray(namePath), [index]),
492
493
  name: cellName,
493
494
  listName: cellName,
494
495
  viewEmpty: viewEmpty,
@@ -1,10 +1,8 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
3
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
4
  var _excluded = ["type", "confirm", "component", "fieldProps", "contextProps", "before", "after"];
6
5
  import { jsx as _jsx } from "react/jsx-runtime";
7
- /* eslint-disable prefer-destructuring */
8
6
  import React from 'react';
9
7
  import ConfirmWrapper from '../../../../components/render/ConfirmWrapper';
10
8
  import { FieldProvider } from '../../../../utils/useFieldProps';
@@ -42,66 +40,7 @@ var ComRender = function ComRender(props) {
42
40
  rest = _objectWithoutProperties(props, _excluded);
43
41
  var TypeComponent = componentMap[type];
44
42
  var componentProps = _objectSpread(_objectSpread({}, fieldProps), rest);
45
- /**
46
- * 函数新参数组装
47
- */
48
- var functionArgs = function functionArgs(args, form, name, valueType) {
49
- var _args = _toConsumableArray(args);
50
- _args[1] = form.getFieldsValue();
51
- _args[2] = {
52
- form: form
53
- };
54
- // 优先处理FormList场景
55
- if (Array.isArray(name) && (name === null || name === void 0 ? void 0 : name.some(function (item) {
56
- return typeof item === 'number';
57
- }))) {
58
- var namePath = (name === null || name === void 0 ? void 0 : name.slice(0, -1)) || [];
59
- _args[1] = form.getFieldValue(name === null || name === void 0 ? void 0 : name.slice(0, -1));
60
- _args[2].namePath = namePath;
61
- _args[2].index = namePath[namePath.length - 1];
62
- }
63
- // 返回表单元素默认值
64
- _args[2].extra = args;
65
- // 当设置valueType后返回转换后的值
66
- if (valueType) {
67
- _args[2].transformValue = form.getFieldValue(name) || undefined;
68
- }
69
- _args[2].option = args[1];
70
- switch (type) {
71
- case 'ProCascader':
72
- _args[2].selectedOptions = args[1];
73
- break;
74
- case 'DatePicker':
75
- case 'RangePicker':
76
- _args[2].dateString = args[1];
77
- break;
78
- default:
79
- break;
80
- }
81
- return _args;
82
- };
83
- /**
84
- * onChange参数重置 (value, record, { form, index, namePath, option }) => void
85
- */
86
- var handleChange = function handleChange() {
87
- var _componentProps$chang;
88
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
89
- args[_key] = arguments[_key];
90
- }
91
- var _args = [].concat(args);
92
- // 优先使用onFieldChange
93
- var changeKey = Object.keys(componentProps).includes('onFieldChange') ? 'onFieldChange' : 'onChange';
94
- if (changeKey === 'onChange') {
95
- _args[2] = contextProps.form;
96
- }
97
- if (changeKey === 'onFieldChange') {
98
- _args = functionArgs([].concat(args), contextProps.form, props === null || props === void 0 ? void 0 : props.name, props === null || props === void 0 ? void 0 : props.valueType);
99
- }
100
- (_componentProps$chang = componentProps[changeKey]) === null || _componentProps$chang === void 0 ? void 0 : _componentProps$chang.call.apply(_componentProps$chang, [componentProps].concat(_toConsumableArray(_args)));
101
- };
102
- var Component = component ? ( /*#__PURE__*/React.cloneElement(component, _objectSpread({}, componentProps))) : _jsx(TypeComponent, _objectSpread(_objectSpread({}, componentProps), {}, {
103
- onChange: handleChange
104
- }));
43
+ var Component = component ? ( /*#__PURE__*/React.cloneElement(component, _objectSpread({}, componentProps))) : _jsx(TypeComponent, _objectSpread({}, componentProps));
105
44
  var Com = getComRender(Component, props, componentProps);
106
45
  return _jsx(FieldProvider, {
107
46
  value: _objectSpread(_objectSpread({}, contextProps), {}, {
@@ -5,9 +5,10 @@ import "antd/es/button/style";
5
5
  import _Button from "antd/es/button";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  import { useRef } from 'react';
8
- import { isFunction } from 'lodash';
8
+ import { cloneDeep, isEqual, isFunction } from 'lodash';
9
9
  import valueTypeMap from '../../../utils/valueType';
10
10
  import { useDeepCompareMemo } from '../../../utils/useDeepCompareMemo';
11
+ import { difference } from '../../../../ProEditTable/utils/tools';
11
12
  /**
12
13
  * 插入间隔符
13
14
  * @param columns 表单配置数组
@@ -234,13 +235,29 @@ export var useTransformColumns = function useTransformColumns(params) {
234
235
  newValue = ((_transform$normalize = transform.normalize) === null || _transform$normalize === void 0 ? void 0 : _transform$normalize.call(transform, newValue)) || (normalize === null || normalize === void 0 ? void 0 : normalize(newValue));
235
236
  }
236
237
  internalChange === null || internalChange === void 0 ? void 0 : internalChange(newValue, args[1], index);
238
+ var values = form.getFieldValue(namePath);
239
+ var originRow = (namePath === null || namePath === void 0 ? void 0 : namePath.length) ? cloneDeep(values) : undefined;
237
240
  onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, args);
238
- onFieldChange === null || onFieldChange === void 0 ? void 0 : onFieldChange(newValue, form.getFieldValue(namePath), {
241
+ onFieldChange === null || onFieldChange === void 0 ? void 0 : onFieldChange(newValue, values, {
239
242
  index: outerIndex,
240
243
  namePath: namePath,
241
244
  form: form,
242
245
  option: args === null || args === void 0 ? void 0 : args[1]
243
246
  });
247
+ // 如果是在可编辑表格或formList内部, 储存当前行的值, 并在变更后更新到表单里
248
+ if ((namePath === null || namePath === void 0 ? void 0 : namePath.length) && !isEqual(originRow, values)) {
249
+ var _Object$keys, _Object$keys$map;
250
+ form.setFieldValue(namePath, values);
251
+ var diff = difference(originRow, values) || {};
252
+ var validateFieldKeys = (_Object$keys = Object.keys(diff)) === null || _Object$keys === void 0 ? void 0 : (_Object$keys$map = _Object$keys.map) === null || _Object$keys$map === void 0 ? void 0 : _Object$keys$map.call(_Object$keys, function (key) {
253
+ return [].concat(_toConsumableArray(namePath), [key]);
254
+ });
255
+ if (validateFieldKeys === null || validateFieldKeys === void 0 ? void 0 : validateFieldKeys.length) {
256
+ setTimeout(function () {
257
+ form.validateFields([name].concat(_toConsumableArray(validateFieldKeys)));
258
+ }, 100);
259
+ }
260
+ }
244
261
  };
245
262
  return _objectSpread(_objectSpread(_objectSpread({}, column), {}, {
246
263
  name: columnName
@@ -13,15 +13,11 @@ export var useForm = function useForm(originForm) {
13
13
  setFieldsValue = form.setFieldsValue;
14
14
  // @ts-ignore
15
15
  var _getFieldsValue = function _getFieldsValue(nameList, filterFunc) {
16
- // 默认行为查询并过滤
17
- if (nameList === undefined || Array.isArray(nameList)) {
16
+ // 全部查询
17
+ if (nameList !== true) {
18
18
  var values = getFieldsValue(nameList || true, filterFunc);
19
19
  return filterInternalFields(values);
20
20
  }
21
- // @ts-ignore 特殊处理 传入false不过滤
22
- if (nameList === false) {
23
- return getFieldsValue();
24
- }
25
21
  return getFieldsValue(nameList, filterFunc);
26
22
  };
27
23
  // const _setFieldsValue: FormInstance<T>['setFieldsValue'] = (data) => {
@@ -122,7 +122,13 @@ var useShouldUpdate = function useShouldUpdate(props) {
122
122
  return {
123
123
  shouldUpdate: function shouldUpdate(prevValues, currentValues) {
124
124
  // @ts-ignore formList场景取当前行数据,不取shouldUpdate变更后值
125
- var _currentValues = form.getFieldsValue(namePath ? [namePath] : false) || {};
125
+ var _currentValues;
126
+ if (namePath) {
127
+ // formList场景values取当前行数据
128
+ _currentValues = form.getFieldValue(namePath) || {};
129
+ } else {
130
+ _currentValues = form.getFieldsValue(true);
131
+ }
126
132
  var _show = isFunction(show) ? Boolean(show(_currentValues, {
127
133
  form: form,
128
134
  index: index,
@@ -492,6 +492,7 @@ var RenderField = function RenderField(_ref) {
492
492
  otherProps: {
493
493
  form: form,
494
494
  names: names,
495
+ namePath: [].concat((0, _toConsumableArray2.default)(namePath), [index]),
495
496
  name: cellName,
496
497
  listName: cellName,
497
498
  viewEmpty: viewEmpty,
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
11
  var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
@@ -17,7 +16,6 @@ var _useFieldProps = require("../../../../utils/useFieldProps");
17
16
  var componentMap = _interopRequireWildcard(require("../../../../../index"));
18
17
  var _AddonWrapper = _interopRequireDefault(require("./AddonWrapper"));
19
18
  var _excluded = ["type", "confirm", "component", "fieldProps", "contextProps", "before", "after"];
20
- /* eslint-disable prefer-destructuring */
21
19
  // 这里的key与组件内参数一致, 决定使用哪个包裹组件
22
20
  var wrapperMap = {
23
21
  confirm: _ConfirmWrapper.default,
@@ -50,66 +48,7 @@ var ComRender = function ComRender(props) {
50
48
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
51
49
  var TypeComponent = componentMap[type];
52
50
  var componentProps = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, fieldProps), rest);
53
- /**
54
- * 函数新参数组装
55
- */
56
- var functionArgs = function functionArgs(args, form, name, valueType) {
57
- var _args = (0, _toConsumableArray2.default)(args);
58
- _args[1] = form.getFieldsValue();
59
- _args[2] = {
60
- form: form
61
- };
62
- // 优先处理FormList场景
63
- if (Array.isArray(name) && (name === null || name === void 0 ? void 0 : name.some(function (item) {
64
- return typeof item === 'number';
65
- }))) {
66
- var namePath = (name === null || name === void 0 ? void 0 : name.slice(0, -1)) || [];
67
- _args[1] = form.getFieldValue(name === null || name === void 0 ? void 0 : name.slice(0, -1));
68
- _args[2].namePath = namePath;
69
- _args[2].index = namePath[namePath.length - 1];
70
- }
71
- // 返回表单元素默认值
72
- _args[2].extra = args;
73
- // 当设置valueType后返回转换后的值
74
- if (valueType) {
75
- _args[2].transformValue = form.getFieldValue(name) || undefined;
76
- }
77
- _args[2].option = args[1];
78
- switch (type) {
79
- case 'ProCascader':
80
- _args[2].selectedOptions = args[1];
81
- break;
82
- case 'DatePicker':
83
- case 'RangePicker':
84
- _args[2].dateString = args[1];
85
- break;
86
- default:
87
- break;
88
- }
89
- return _args;
90
- };
91
- /**
92
- * onChange参数重置 (value, record, { form, index, namePath, option }) => void
93
- */
94
- var handleChange = function handleChange() {
95
- var _componentProps$chang;
96
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
97
- args[_key] = arguments[_key];
98
- }
99
- var _args = [].concat(args);
100
- // 优先使用onFieldChange
101
- var changeKey = Object.keys(componentProps).includes('onFieldChange') ? 'onFieldChange' : 'onChange';
102
- if (changeKey === 'onChange') {
103
- _args[2] = contextProps.form;
104
- }
105
- if (changeKey === 'onFieldChange') {
106
- _args = functionArgs([].concat(args), contextProps.form, props === null || props === void 0 ? void 0 : props.name, props === null || props === void 0 ? void 0 : props.valueType);
107
- }
108
- (_componentProps$chang = componentProps[changeKey]) === null || _componentProps$chang === void 0 ? void 0 : _componentProps$chang.call.apply(_componentProps$chang, [componentProps].concat((0, _toConsumableArray2.default)(_args)));
109
- };
110
- var Component = component ? ( /*#__PURE__*/_react.default.cloneElement(component, (0, _objectSpread3.default)({}, componentProps))) : (0, _jsxRuntime.jsx)(TypeComponent, (0, _objectSpread3.default)((0, _objectSpread3.default)({}, componentProps), {}, {
111
- onChange: handleChange
112
- }));
51
+ var Component = component ? ( /*#__PURE__*/_react.default.cloneElement(component, (0, _objectSpread3.default)({}, componentProps))) : (0, _jsxRuntime.jsx)(TypeComponent, (0, _objectSpread3.default)({}, componentProps));
113
52
  var Com = getComRender(Component, props, componentProps);
114
53
  return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
115
54
  value: (0, _objectSpread3.default)((0, _objectSpread3.default)({}, contextProps), {}, {
@@ -15,6 +15,7 @@ var _lodash = require("lodash");
15
15
  var _antd = require("antd");
16
16
  var _valueType = _interopRequireDefault(require("../../../utils/valueType"));
17
17
  var _useDeepCompareMemo = require("../../../utils/useDeepCompareMemo");
18
+ var _tools = require("../../../../ProEditTable/utils/tools");
18
19
  /**
19
20
  * 插入间隔符
20
21
  * @param columns 表单配置数组
@@ -241,13 +242,29 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
241
242
  newValue = ((_transform$normalize = transform.normalize) === null || _transform$normalize === void 0 ? void 0 : _transform$normalize.call(transform, newValue)) || (normalize === null || normalize === void 0 ? void 0 : normalize(newValue));
242
243
  }
243
244
  internalChange === null || internalChange === void 0 ? void 0 : internalChange(newValue, args[1], index);
245
+ var values = form.getFieldValue(namePath);
246
+ var originRow = (namePath === null || namePath === void 0 ? void 0 : namePath.length) ? (0, _lodash.cloneDeep)(values) : undefined;
244
247
  onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, args);
245
- onFieldChange === null || onFieldChange === void 0 ? void 0 : onFieldChange(newValue, form.getFieldValue(namePath), {
248
+ onFieldChange === null || onFieldChange === void 0 ? void 0 : onFieldChange(newValue, values, {
246
249
  index: outerIndex,
247
250
  namePath: namePath,
248
251
  form: form,
249
252
  option: args === null || args === void 0 ? void 0 : args[1]
250
253
  });
254
+ // 如果是在可编辑表格或formList内部, 储存当前行的值, 并在变更后更新到表单里
255
+ if ((namePath === null || namePath === void 0 ? void 0 : namePath.length) && !(0, _lodash.isEqual)(originRow, values)) {
256
+ var _Object$keys, _Object$keys$map;
257
+ form.setFieldValue(namePath, values);
258
+ var diff = (0, _tools.difference)(originRow, values) || {};
259
+ var validateFieldKeys = (_Object$keys = Object.keys(diff)) === null || _Object$keys === void 0 ? void 0 : (_Object$keys$map = _Object$keys.map) === null || _Object$keys$map === void 0 ? void 0 : _Object$keys$map.call(_Object$keys, function (key) {
260
+ return [].concat((0, _toConsumableArray2.default)(namePath), [key]);
261
+ });
262
+ if (validateFieldKeys === null || validateFieldKeys === void 0 ? void 0 : validateFieldKeys.length) {
263
+ setTimeout(function () {
264
+ form.validateFields([name].concat((0, _toConsumableArray2.default)(validateFieldKeys)));
265
+ }, 100);
266
+ }
267
+ }
251
268
  };
252
269
  return (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, column), {}, {
253
270
  name: columnName
@@ -19,15 +19,11 @@ var useForm = exports.useForm = function useForm(originForm) {
19
19
  setFieldsValue = form.setFieldsValue;
20
20
  // @ts-ignore
21
21
  var _getFieldsValue = function _getFieldsValue(nameList, filterFunc) {
22
- // 默认行为查询并过滤
23
- if (nameList === undefined || Array.isArray(nameList)) {
22
+ // 全部查询
23
+ if (nameList !== true) {
24
24
  var values = getFieldsValue(nameList || true, filterFunc);
25
25
  return (0, _index.filterInternalFields)(values);
26
26
  }
27
- // @ts-ignore 特殊处理 传入false不过滤
28
- if (nameList === false) {
29
- return getFieldsValue();
30
- }
31
27
  return getFieldsValue(nameList, filterFunc);
32
28
  };
33
29
  // const _setFieldsValue: FormInstance<T>['setFieldsValue'] = (data) => {
@@ -129,7 +129,13 @@ var useShouldUpdate = function useShouldUpdate(props) {
129
129
  return {
130
130
  shouldUpdate: function shouldUpdate(prevValues, currentValues) {
131
131
  // @ts-ignore formList场景取当前行数据,不取shouldUpdate变更后值
132
- var _currentValues = form.getFieldsValue(namePath ? [namePath] : false) || {};
132
+ var _currentValues;
133
+ if (namePath) {
134
+ // formList场景values取当前行数据
135
+ _currentValues = form.getFieldValue(namePath) || {};
136
+ } else {
137
+ _currentValues = form.getFieldsValue(true);
138
+ }
133
139
  var _show = (0, _lodash.isFunction)(show) ? Boolean(show(_currentValues, {
134
140
  form: form,
135
141
  index: index,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "3.4.10-beta.17",
3
+ "version": "3.4.10-beta.19",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",