@zat-design/sisyphus-react 3.9.4 → 3.9.5-beta.2

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/index.esm.css +42 -1
  2. package/dist/less.esm.css +38 -0
  3. package/es/ProConfigProvider/FormsContext.d.ts +15 -0
  4. package/es/ProConfigProvider/FormsContext.js +32 -0
  5. package/es/ProConfigProvider/index.d.ts +0 -1
  6. package/es/ProConfigProvider/index.js +5 -7
  7. package/es/ProEditTable/components/RenderField/ListChangedWrapper.d.ts +1 -1
  8. package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +13 -10
  9. package/es/ProEditTable/components/RenderField/index.js +42 -32
  10. package/es/ProEditTable/propsType.d.ts +1 -0
  11. package/es/ProEditTable/style/index.less +41 -0
  12. package/es/ProEditTable/utils/diffOriginal.d.ts +21 -0
  13. package/es/ProEditTable/utils/diffOriginal.js +65 -0
  14. package/es/ProEnum/index.js +1 -1
  15. package/es/ProForm/components/combination/Group/component/ComRender.js +9 -1
  16. package/es/ProForm/components/combination/Group/index.js +1 -1
  17. package/es/ProForm/components/combination/Group/utils.js +1 -1
  18. package/es/ProForm/index.js +26 -36
  19. package/es/ProForm/style/index.less +8 -0
  20. package/es/ProForm/utils/diffOriginal.js +11 -8
  21. package/es/ProForm/utils/useForm.d.ts +4 -3
  22. package/es/ProForm/utils/useForm.js +11 -2
  23. package/es/ProTable/components/FormatColumn/index.js +1 -1
  24. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +36 -32
  25. package/es/ProTable/index.js +22 -15
  26. package/es/ProTable/propsType.d.ts +3 -2
  27. package/es/style/theme/antd.less +4 -1
  28. package/lib/ProConfigProvider/FormsContext.d.ts +15 -0
  29. package/lib/ProConfigProvider/FormsContext.js +39 -0
  30. package/lib/ProConfigProvider/index.d.ts +0 -1
  31. package/lib/ProConfigProvider/index.js +5 -8
  32. package/lib/ProEditTable/components/RenderField/ListChangedWrapper.d.ts +1 -1
  33. package/lib/ProEditTable/components/RenderField/ListChangedWrapper.js +13 -10
  34. package/lib/ProEditTable/components/RenderField/index.js +42 -32
  35. package/lib/ProEditTable/propsType.d.ts +1 -0
  36. package/lib/ProEditTable/style/index.less +41 -0
  37. package/lib/ProEditTable/utils/diffOriginal.d.ts +21 -0
  38. package/lib/ProEditTable/utils/diffOriginal.js +71 -0
  39. package/lib/ProEnum/index.js +1 -1
  40. package/lib/ProForm/components/combination/Group/component/ComRender.js +8 -0
  41. package/lib/ProForm/components/combination/Group/index.js +1 -1
  42. package/lib/ProForm/components/combination/Group/utils.js +1 -1
  43. package/lib/ProForm/index.js +26 -36
  44. package/lib/ProForm/style/index.less +8 -0
  45. package/lib/ProForm/utils/diffOriginal.js +11 -8
  46. package/lib/ProForm/utils/useForm.d.ts +4 -3
  47. package/lib/ProForm/utils/useForm.js +11 -2
  48. package/lib/ProTable/components/FormatColumn/index.js +1 -1
  49. package/lib/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +36 -32
  50. package/lib/ProTable/index.js +22 -15
  51. package/lib/ProTable/propsType.d.ts +3 -2
  52. package/lib/style/theme/antd.less +4 -1
  53. package/package.json +1 -1
@@ -71,7 +71,7 @@ var Group = function Group(props) {
71
71
  children: space.compact || (space === null || space === void 0 ? void 0 : space.separator) ? _jsx(_Space.Compact, {
72
72
  children: columns.map(function (column, index) {
73
73
  column.otherProps = otherProps;
74
- // 自定义间隔移除对于参数
74
+ // 自定义间隔移除对应参数
75
75
  if (column === null || column === void 0 ? void 0 : column.separator) {
76
76
  delete column.separator;
77
77
  delete column.otherProps;
@@ -329,7 +329,7 @@ export var useTransformColumns = function useTransformColumns(params) {
329
329
  }, reactiveProps), {}, {
330
330
  disabled: getLastDisabled(),
331
331
  getValueProps: transform === null || transform === void 0 ? void 0 : transform.getValueProps,
332
- fieldProps: _objectSpread(_objectSpread({}, column === null || column === void 0 ? void 0 : column.fieldProps), {}, {
332
+ fieldProps: _objectSpread(_objectSpread(_objectSpread({}, column === null || column === void 0 ? void 0 : column.fieldProps), reactiveProps === null || reactiveProps === void 0 ? void 0 : reactiveProps.fieldProps), {}, {
333
333
  onChange: handleChange,
334
334
  onBlur: handleBlur,
335
335
  value: value === null || value === void 0 ? void 0 : value[index]
@@ -2,13 +2,13 @@ import "antd/es/row/style";
2
2
  import _Row from "antd/es/row";
3
3
  import "antd/es/form/style";
4
4
  import _Form from "antd/es/form";
5
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
6
  import "antd/es/col/style";
6
7
  import _Col from "antd/es/col";
7
8
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
8
9
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
9
10
  import "antd/es/space/style";
10
11
  import _Space from "antd/es/space";
11
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
12
12
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
13
13
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
14
14
  var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "diffConfig", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "formKey", "globalControl", "scrollToError", "optimize"];
@@ -19,14 +19,15 @@ import React, { forwardRef, useImperativeHandle, useMemo } from 'react';
19
19
  import { isObject, merge, omit } from 'lodash';
20
20
  import { FormFooter, InputRange, ProAddress, ProCascader, ProCertNo, ProCertValidity, ProCombination, ProModalSelect, ProNumberRange, ProRangeBox, ProTimeLimit, transferAddressInfoToRegion, ProUpload, ProTreeModal, ProTree, EnumSelect } from './components';
21
21
  import RenderFields from './components/render/RenderFields';
22
- import { useProConfig, useContextForms } from '../ProConfigProvider';
22
+ import { useProConfig } from '../ProConfigProvider';
23
23
  import { getLayout, splitNameStr, useControlled, initialValuesToNames, filterInternalFields } from './utils/index';
24
24
  import { useForm } from './utils/useForm';
25
25
  import { useFieldProps } from './utils/useFieldProps';
26
26
  import locale from '../locale';
27
27
  import useWatch from './utils/useWatch';
28
+ import { useContextForms, useForms } from '../ProConfigProvider/FormsContext';
28
29
  var ProForm = function ProForm(props, ref) {
29
- var _forms$formKey, _localStorage, _ref;
30
+ var _localStorage, _ref;
30
31
  var _props$mode = props.mode,
31
32
  mode = _props$mode === void 0 ? 'search' : _props$mode,
32
33
  span = props.span,
@@ -69,17 +70,15 @@ var ProForm = function ProForm(props, ref) {
69
70
  _props$optimize = props.optimize,
70
71
  optimize = _props$optimize === void 0 ? false : _props$optimize,
71
72
  otherProps = _objectWithoutProperties(props, _excluded);
72
- var _useProConfig = useProConfig(),
73
- state = _useProConfig.state,
74
- dispatch = _useProConfig.dispatch;
75
- var config = state.ProForm,
76
- forms = state.forms;
77
- var _useForm = useForm((_forms$formKey = forms[formKey]) !== null && _forms$formKey !== void 0 ? _forms$formKey : originForm, {
73
+ var config = useProConfig('ProForm');
74
+ var _useForm = useForm(originForm, {
78
75
  scrollToError: scrollToError,
79
- optimize: optimize
76
+ optimize: optimize,
77
+ formKey: formKey
80
78
  }),
81
79
  _useForm2 = _slicedToArray(_useForm, 1),
82
80
  form = _useForm2[0];
81
+ // const form = useForms(formKey, originForm, { scrollToError, optimize, formKey });
83
82
  var _useControlled = useControlled({
84
83
  value: expandOpen,
85
84
  onChange: expandOpenChange
@@ -88,32 +87,22 @@ var ProForm = function ProForm(props, ref) {
88
87
  openState = _useControlled2[0],
89
88
  setOpenState = _useControlled2[1];
90
89
  // 把表单实例存入表单组
91
- useMemo(function () {
92
- if (formKey && forms[formKey] !== form) {
93
- forms[formKey] = form;
94
- // fix: Cannot update a component (`ProConfigProvider`) while rendering a different component (`ForwardRef(ProForm)`).
95
- setTimeout(function () {
96
- dispatch({
97
- type: 'set',
98
- payload: {
99
- forms: _objectSpread({}, forms)
100
- }
101
- });
102
- }, 300);
103
- }
104
- // 销毁
105
- return function () {
106
- if (formKey && forms[formKey]) {
107
- delete forms[formKey];
108
- dispatch({
109
- type: 'set',
110
- payload: {
111
- forms: _objectSpread({}, forms)
112
- }
113
- });
114
- }
115
- };
116
- }, [formKey, form]);
90
+ // useMemo(() => {
91
+ // if (formKey && forms[formKey] !== form) {
92
+ // forms[formKey] = form;
93
+ // // fix: Cannot update a component (`ProConfigProvider`) while rendering a different component (`ForwardRef(ProForm)`).
94
+ // setTimeout(() => {
95
+ // dispatch({ type: 'set', payload: { forms: { ...forms } } });
96
+ // }, 300);
97
+ // }
98
+ // // 销毁
99
+ // return () => {
100
+ // if (formKey && forms[formKey]) {
101
+ // delete forms[formKey];
102
+ // dispatch({ type: 'set', payload: { forms: { ...forms } } });
103
+ // }
104
+ // };
105
+ // }, [formKey, form]);
117
106
  var _getLayout = getLayout({
118
107
  span: span,
119
108
  form: form
@@ -310,6 +299,7 @@ export var ProFormProvider = function ProFormProvider(props) {
310
299
  };
311
300
  ProFormForward.Provider = ProFormProvider; // 包装Provider
312
301
  ProFormForward.useFieldProps = useFieldProps; // 获取每个字段的其他参数 -otherProps
302
+ ProFormForward.useForms = useForms; // 获取上下文中的指定表单实例 如果不存在则会创建
313
303
  ProFormForward.useContextForms = useContextForms; // 获取 ProConfigProvider中的表单实例map
314
304
  // 内置组合
315
305
  ProFormForward.ProCascader = ProCascader;
@@ -341,6 +341,10 @@
341
341
  background: @zaui-contract-bg !important;
342
342
  }
343
343
 
344
+ .ant-picker-clear {
345
+ background: @zaui-contract-bg;
346
+ }
347
+
344
348
  span.@{ant-prefix}-input-affix-wrapper,
345
349
  .@{ant-prefix}-select .@{ant-prefix}-select-selector,
346
350
  .@{ant-prefix}-picker,
@@ -419,6 +423,10 @@
419
423
  background: @zaui-contract-bg-add !important;
420
424
  }
421
425
 
426
+ .ant-picker-clear {
427
+ background: @zaui-contract-bg-add;
428
+ }
429
+
422
430
  span.@{ant-prefix}-input-affix-wrapper,
423
431
  .@{ant-prefix}-select .@{ant-prefix}-select-selector,
424
432
  .@{ant-prefix}-picker,
@@ -36,14 +36,17 @@ export var diffOriginal = function diffOriginal(params) {
36
36
  return 'add';
37
37
  }
38
38
  if (Array.isArray(_originalValue)) {
39
- var isSame = _originalValue.every(function (valueItem, index) {
40
- // 如果两个值有一个不是空值, 则进行深比较
41
- if (!isEmpty(value === null || value === void 0 ? void 0 : value[index]) || !isEmpty(valueItem)) {
42
- return isEqual(value === null || value === void 0 ? void 0 : value[index], valueItem);
43
- }
44
- return true;
45
- });
46
- return isSame ? 'same' : 'changed';
39
+ if ((_originalValue === null || _originalValue === void 0 ? void 0 : _originalValue.length) === (_value === null || _value === void 0 ? void 0 : _value.length)) {
40
+ var isSame = _originalValue.every(function (valueItem, index) {
41
+ // 如果两个值有一个不是空值, 则进行深比较
42
+ if (!isEmpty(value === null || value === void 0 ? void 0 : value[index]) || !isEmpty(valueItem)) {
43
+ return isEqual(value === null || value === void 0 ? void 0 : value[index], valueItem);
44
+ }
45
+ return true;
46
+ });
47
+ return isSame ? 'same' : 'changed';
48
+ }
49
+ return 'changed';
47
50
  }
48
51
  if (!isEmpty(_originalValue) || !isEmpty(_value)) {
49
52
  return isEqual(_value, _originalValue) ? 'same' : 'changed';
@@ -1,15 +1,16 @@
1
1
  import { FormInstance } from 'antd';
2
2
  import { NamePath } from 'antd/es/form/interface';
3
3
  import { ValuedNotifyInfo } from 'rc-field-form/es/interface';
4
- type ModifiedFormInstance<T> = FormInstance<T> & {
4
+ export type ModifiedFormInstance<T> = FormInstance<T> & {
5
5
  isModified?: boolean;
6
6
  /** 默认清空设置值的报错状态 */
7
7
  setFieldValue: (name: NamePath, value: any, info?: ValuedNotifyInfo) => void;
8
+ formKey?: string;
8
9
  _init?: boolean;
9
10
  };
10
- interface FormInstanceOption {
11
+ export interface FormInstanceOption {
11
12
  scrollToError?: boolean;
12
13
  optimize?: boolean;
14
+ formKey?: string;
13
15
  }
14
16
  export declare const useForm: <T>(originForm?: FormInstanceOption | ModifiedFormInstance<T>, options?: FormInstanceOption) => [ModifiedFormInstance<T>];
15
- export {};
@@ -5,8 +5,10 @@ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
5
5
  import "antd/es/form/style";
6
6
  import _Form from "antd/es/form";
7
7
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
8
+ import { useContext } from 'react';
8
9
  import { filterInternalFields } from './index';
9
10
  import { handleScrollToError } from '../../ProEditTable/utils/tools';
11
+ import { FormsContext } from '../../ProConfigProvider/FormsContext';
10
12
  export var useForm = function useForm(originForm, options) {
11
13
  // 如果没有form实例可以直接把options放在第一个参数位置
12
14
  // @ts-ignore
@@ -17,10 +19,17 @@ export var useForm = function useForm(originForm, options) {
17
19
  var _ref = _options || {},
18
20
  _ref$scrollToError = _ref.scrollToError,
19
21
  scrollToError = _ref$scrollToError === void 0 ? true : _ref$scrollToError,
20
- optimize = _ref.optimize;
21
- var _Form$useForm = _Form.useForm(_originForm),
22
+ optimize = _ref.optimize,
23
+ formKey = _ref.formKey;
24
+ // formKey全局共享逻辑
25
+ var forms = useContext(FormsContext);
26
+ var _Form$useForm = _Form.useForm(forms[formKey] || _originForm),
22
27
  _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
23
28
  form = _Form$useForm2[0];
29
+ if (formKey && forms[formKey] !== form) {
30
+ forms[formKey] = form;
31
+ form.formKey = formKey;
32
+ }
24
33
  var getFieldsValue = form.getFieldsValue,
25
34
  validateFields = form.validateFields,
26
35
  isModified = form.isModified,
@@ -139,7 +139,7 @@ export var formatColumn = function formatColumn(_ref2) {
139
139
  index: index
140
140
  });
141
141
  // viewRender 返回值为 false 时,不显示对比
142
- if (isBoolean(diffResult)) {
142
+ if (isBoolean(diffResult) && !diffResult) {
143
143
  otherProps.isChanged = false;
144
144
  }
145
145
  originalValue = diffResult;
@@ -106,7 +106,7 @@ var DndWrapper = function DndWrapper(_ref2) {
106
106
  }();
107
107
  var onDragEnd = /*#__PURE__*/function () {
108
108
  var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref5) {
109
- var active, over, transformedValue, activeObject, overObject, activeLevel, activeParentId, overLevel, overParentId, nextDataSource, _flatTree, activeIndex, overIndex, nextValue;
109
+ var active, over, transformedValue, activeObject, overObject, activeLevel, activeParentId, overLevel, overParentId, nextDataSource, _nextDataSource, _flatTree, activeIndex, overIndex, nextValue;
110
110
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
111
111
  while (1) switch (_context2.prev = _context2.next) {
112
112
  case 0:
@@ -114,7 +114,7 @@ var DndWrapper = function DndWrapper(_ref2) {
114
114
  // 为数据源划分层级及parentId
115
115
  transformedValue = addLevelAndParentId(value, rowKey); // 同一level层级的且parentId相同的,可以互相之间拖拽替换
116
116
  if (!(active.id !== (over === null || over === void 0 ? void 0 : over.id))) {
117
- _context2.next = 15;
117
+ _context2.next = 20;
118
118
  break;
119
119
  }
120
120
  activeObject = treeNodeFind(transformedValue, function (t) {
@@ -124,47 +124,51 @@ var DndWrapper = function DndWrapper(_ref2) {
124
124
  return t.rowKey === (over === null || over === void 0 ? void 0 : over.id);
125
125
  });
126
126
  if (!(activeObject && overObject)) {
127
- _context2.next = 15;
127
+ _context2.next = 20;
128
128
  break;
129
129
  }
130
130
  activeLevel = activeObject.level, activeParentId = activeObject.parentId;
131
- overLevel = overObject.level, overParentId = overObject.parentId; // 如果传了onDragEndGuard 则视为外部业务逻辑自处理
131
+ overLevel = overObject.level, overParentId = overObject.parentId;
132
+ nextDataSource = value;
133
+ if (!(activeLevel === overLevel && activeParentId === overParentId)) {
134
+ _context2.next = 20;
135
+ break;
136
+ }
137
+ // 将树平铺
138
+ _flatTree = transformTreeToArray(transformedValue).map(function (item) {
139
+ return _objectSpread(_objectSpread({}, item), {}, {
140
+ children: undefined
141
+ });
142
+ });
143
+ activeIndex = _flatTree.findIndex(function (i) {
144
+ return i.rowKey === active.id;
145
+ });
146
+ overIndex = _flatTree.findIndex(function (i) {
147
+ return i.rowKey === (over === null || over === void 0 ? void 0 : over.id);
148
+ });
149
+ nextValue = arrayMove(_flatTree, activeIndex, overIndex);
150
+ nextDataSource = createTreeFromArray(nextValue, {
151
+ itemKey: 'rowKey',
152
+ parentKey: 'parentId',
153
+ childrenKey: 'children'
154
+ });
155
+ // 如果传了onDragEndGuard 则视为外部业务逻辑自处理
132
156
  if (!(onDragEndGuard && isFunction(onDragEndGuard))) {
133
- _context2.next = 14;
157
+ _context2.next = 19;
134
158
  break;
135
159
  }
136
- _context2.next = 11;
160
+ _context2.next = 18;
137
161
  return onDragEndGuard({
138
162
  activeObject: activeObject,
139
163
  overObject: overObject,
140
- currentDataSource: value
164
+ originDataSource: value,
165
+ currentDataSource: nextDataSource
141
166
  });
142
- case 11:
167
+ case 18:
143
168
  nextDataSource = _context2.sent;
144
- onChange(nextDataSource !== null && nextDataSource !== void 0 ? nextDataSource : []);
145
- return _context2.abrupt("return");
146
- case 14:
147
- if (activeLevel === overLevel && activeParentId === overParentId) {
148
- // 将树平铺
149
- _flatTree = transformTreeToArray(transformedValue).map(function (item) {
150
- return _objectSpread(_objectSpread({}, item), {}, {
151
- children: undefined
152
- });
153
- });
154
- activeIndex = _flatTree.findIndex(function (i) {
155
- return i.rowKey === active.id;
156
- });
157
- overIndex = _flatTree.findIndex(function (i) {
158
- return i.rowKey === (over === null || over === void 0 ? void 0 : over.id);
159
- });
160
- nextValue = arrayMove(_flatTree, activeIndex, overIndex);
161
- onChange(createTreeFromArray(nextValue, {
162
- itemKey: 'rowKey',
163
- parentKey: 'parentId',
164
- childrenKey: 'children'
165
- }));
166
- }
167
- case 15:
169
+ case 19:
170
+ onChange((_nextDataSource = nextDataSource) !== null && _nextDataSource !== void 0 ? _nextDataSource : []);
171
+ case 20:
168
172
  case "end":
169
173
  return _context2.stop();
170
174
  }
@@ -187,6 +187,26 @@ var ProTable = function ProTable(props) {
187
187
  return 'new-cell';
188
188
  }
189
189
  };
190
+ var _formatColumns = function formatColumns(nextColumns) {
191
+ nextColumns === null || nextColumns === void 0 ? void 0 : nextColumns.forEach(function (item, index) {
192
+ formatColumn({
193
+ column: item,
194
+ originalObj: originalObj,
195
+ rowKey: props.rowKey,
196
+ diffConfig: diffConfig,
197
+ wrapToolTipProps: wrapToolTipProps,
198
+ scroll: _scroll,
199
+ onUpdateMinWidth: function onUpdateMinWidth(w) {
200
+ curColumns[index].minWidth = w;
201
+ },
202
+ isInNewRow: _rowClassName
203
+ });
204
+ if (item.children && Array.isArray(item.children)) {
205
+ _formatColumns(item.children);
206
+ }
207
+ });
208
+ return nextColumns;
209
+ };
190
210
  var columns = useMemo(function () {
191
211
  var newColumns = curColumns.map(function (item, index) {
192
212
  var _propsColumnObj$getCo2;
@@ -208,21 +228,8 @@ var ProTable = function ProTable(props) {
208
228
  }).filter(function (item) {
209
229
  return !(item === null || item === void 0 ? void 0 : item.delete);
210
230
  });
211
- newColumns === null || newColumns === void 0 ? void 0 : newColumns.forEach(function (item, index) {
212
- formatColumn({
213
- column: item,
214
- originalObj: originalObj,
215
- rowKey: props.rowKey,
216
- diffConfig: diffConfig,
217
- wrapToolTipProps: wrapToolTipProps,
218
- scroll: _scroll,
219
- onUpdateMinWidth: function onUpdateMinWidth(w) {
220
- curColumns[index].minWidth = w;
221
- },
222
- isInNewRow: _rowClassName
223
- });
224
- });
225
- return newColumns;
231
+ var nextColumns = _formatColumns(newColumns);
232
+ return nextColumns;
226
233
  }, [curColumns, handleResize, _scroll, originalDataSource, originalObj, _rowClassName]);
227
234
  var _columns = useMemo(function () {
228
235
  return columns === null || columns === void 0 ? void 0 : columns.filter(function (item, index) {
@@ -19,7 +19,7 @@ export interface ProTableSummaryProps {
19
19
  fixed?: boolean;
20
20
  }
21
21
  export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
22
- dataIndex: string | string[];
22
+ dataIndex?: string | string[];
23
23
  width?: number | string;
24
24
  minWidth?: number;
25
25
  valueType?: ProTableValueType;
@@ -43,8 +43,9 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
43
43
  /** 自定义比对函数, 触发条件必须写render */
44
44
  onDiff?: ({ value, record, index, originalValue, originalRecord }: any) => any;
45
45
  /** 自定义提示render, 触发条件必须写render */
46
- viewRender?: ({ value, record, index, originalValue, originalRecord }: any) => 'same' | 'changed' | 'add' | undefined;
46
+ viewRender?: ({ value, record, index, originalValue, originalRecord, }: any) => 'same' | 'changed' | 'add' | undefined;
47
47
  isChanged?: boolean | null;
48
+ children?: ProTableColumn[];
48
49
  }
49
50
  export interface CreateTreeFromArrayOptions {
50
51
  itemKey?: string;
@@ -753,6 +753,9 @@
753
753
  }
754
754
 
755
755
  .@{ant-prefix}-picker.@{ant-prefix}-picker-disabled {
756
- background: var(--zaui-disabled-bg);
756
+ background: var(--zaui-disabled-bg) !important;
757
757
  }
758
758
 
759
+ .@{ant-prefix}-input-affix-wrapper-disabled {
760
+ background: var(--zaui-disabled-bg) !important;
761
+ }
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { ModifiedFormInstance } from '../ProForm/utils/useForm';
3
+ type Forms = Record<string, ModifiedFormInstance<any>>;
4
+ export declare const FormsContext: React.Context<Forms>;
5
+ /**
6
+ * @param formKey 表单实例key
7
+ * @param formIst form实例, 如果传了会把传入的实例存入全局
8
+ * @returns 没有入参: 返回表单实例但是不存入全局
9
+ * 有formKey: 取全局中的表单实例返回, 如果不存在则创建后返回
10
+ */
11
+ export declare const useForms: () => Forms;
12
+ /** 获取所有表单实例 */
13
+ export declare const useContextForms: () => Forms;
14
+ declare const FormsProvider: React.FC;
15
+ export default FormsProvider;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useForms = exports.useContextForms = exports.default = exports.FormsContext = void 0;
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var FormsContext = exports.FormsContext = /*#__PURE__*/_react.default.createContext({});
11
+ /**
12
+ * @param formKey 表单实例key
13
+ * @param formIst form实例, 如果传了会把传入的实例存入全局
14
+ * @returns 没有入参: 返回表单实例但是不存入全局
15
+ * 有formKey: 取全局中的表单实例返回, 如果不存在则创建后返回
16
+ */
17
+ var useForms = exports.useForms = function useForms() {
18
+ var forms = (0, _react.useContext)(FormsContext);
19
+ return forms;
20
+ };
21
+ /** 获取所有表单实例 */
22
+ var useContextForms = exports.useContextForms = function useContextForms() {
23
+ var forms = (0, _react.useContext)(FormsContext);
24
+ return forms;
25
+ };
26
+ var FormsProvider = function FormsProvider(props) {
27
+ var formsRef = (0, _react.useRef)({});
28
+ (0, _react.useEffect)(function () {
29
+ // 销毁
30
+ return function () {
31
+ formsRef.current = {};
32
+ };
33
+ }, []);
34
+ return (0, _jsxRuntime.jsx)(FormsContext.Provider, {
35
+ value: formsRef.current,
36
+ children: props.children
37
+ });
38
+ };
39
+ var _default = exports.default = FormsProvider;
@@ -20,7 +20,6 @@ interface ConfigContext {
20
20
  export declare const ProConfigContext: React.Context<ConfigContext>;
21
21
  export declare function useProConfig(): ConfigContext;
22
22
  export declare function useProConfig(name: keyof ConfigContext['state']): ConfigContext['state'][keyof ConfigContext['state']];
23
- export declare function useContextForms(): Record<string, FormInstance<any>>;
24
23
  type ActionsType = 'set' | 'setProEnum' | 'setProEnumDic' | 'setWithLocal';
25
24
  interface Actions {
26
25
  type: ActionsType;
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = exports.ProConfigProvider = exports.ProConfigContext = void 0;
9
- exports.useContextForms = useContextForms;
10
9
  exports.useProConfig = useProConfig;
11
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
@@ -18,6 +17,7 @@ var _en_US = _interopRequireDefault(require("antd/es/locale/en_US"));
18
17
  var _merge = _interopRequireDefault(require("lodash/merge"));
19
18
  var _useEnumRequest = _interopRequireDefault(require("../ProEnum/hooks/useEnumRequest"));
20
19
  var _locale = require("../locale");
20
+ var _FormsContext = _interopRequireDefault(require("./FormsContext"));
21
21
  var initialState = {
22
22
  ProEnum: {
23
23
  dics: {}
@@ -44,11 +44,6 @@ function useProConfig(name) {
44
44
  var config = (0, _react.useContext)(ProConfigContext);
45
45
  return name ? config.state[name] : config;
46
46
  }
47
- function useContextForms() {
48
- var _config$state;
49
- var config = (0, _react.useContext)(ProConfigContext);
50
- return (_config$state = config.state) === null || _config$state === void 0 ? void 0 : _config$state.forms;
51
- }
52
47
  var antdLangMap = {
53
48
  'zh-CN': _zh_CN.default,
54
49
  'en-US': _en_US.default // en-US
@@ -114,8 +109,10 @@ var ProConfigProvider = exports.ProConfigProvider = function ProConfigProvider(p
114
109
  },
115
110
  children: (0, _jsxRuntime.jsx)(_antd.ConfigProvider, {
116
111
  locale: antdLangMap[lang],
117
- children: (0, _jsxRuntime.jsx)("div", {
118
- children: props.children
112
+ children: (0, _jsxRuntime.jsx)(_FormsContext.default, {
113
+ children: (0, _jsxRuntime.jsx)("div", {
114
+ children: props.children
115
+ })
119
116
  })
120
117
  })
121
118
  });
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { FormInstance } from 'antd';
3
3
  import { NamePath } from 'antd/lib/form/interface';
4
- import { DiffOriginalParams } from '../../../ProForm/utils/diffOriginal';
4
+ import { DiffOriginalParams } from '../../utils/diffOriginal';
5
5
  interface Props {
6
6
  name?: NamePath;
7
7
  names?: NamePath[];
@@ -14,7 +14,7 @@ var _react = _interopRequireWildcard(require("react"));
14
14
  var _antd = require("antd");
15
15
  var _classnames = _interopRequireDefault(require("classnames"));
16
16
  var _lodash = require("lodash");
17
- var _diffOriginal = require("../../../ProForm/utils/diffOriginal");
17
+ var _diffOriginal = require("../../utils/diffOriginal");
18
18
  var _ProConfigProvider = require("../../../ProConfigProvider");
19
19
  var _utils = require("../../../utils");
20
20
  var _excluded = ["name", "names", "namesStr", "originalName", "originalNames", "originalValues", "form", "equalWith", "rowKeyPath", "children", "type", "normalize", "getValueProps", "valuePropName", "viewRender", "diffConfig", "index"];
@@ -39,7 +39,7 @@ var getOriginalValue = function getOriginalValue(_ref) {
39
39
  if (!originalValues) {
40
40
  return undefined;
41
41
  }
42
- var originalValueRow;
42
+ var originRecord;
43
43
  if (rowKeyPath) {
44
44
  var rowValueNamePath = namePath.slice(0, rowKeyPath.length - 1); // 表单中变动值所在行
45
45
  var rowKeyName = rowKeyPath[rowKeyPath.length - 1]; // rowKey在行内的name
@@ -48,13 +48,13 @@ var getOriginalValue = function getOriginalValue(_ref) {
48
48
  var keyValue = rowValue[rowKeyName]; // 获取表单中rowKey值
49
49
  if (!keyValue) return undefined;
50
50
  var originalValueList = (0, _lodash.get)(originalValues, originalName.slice(0, rowKeyPath.length - 2));
51
- originalValueRow = originalValueList === null || originalValueList === void 0 ? void 0 : originalValueList.find(function (item) {
51
+ originRecord = originalValueList === null || originalValueList === void 0 ? void 0 : originalValueList.find(function (item) {
52
52
  return item[rowKeyPath[rowKeyPath.length - 1]] === keyValue;
53
53
  });
54
54
  var originalValue;
55
55
  if (originalNames === null || originalNames === void 0 ? void 0 : originalNames.length) {
56
56
  var originalNamesValue = originalNames.map(function (originalName) {
57
- return (0, _lodash.get)(originalValueRow, originalName.slice(rowKeyPath.length - 1));
57
+ return (0, _lodash.get)(originRecord, originalName.slice(rowKeyPath.length - 1));
58
58
  });
59
59
  // 有可能出现数组中全是undefined的情况 视为没有值
60
60
  var fillUndefined = originalNamesValue.every(function (valItem) {
@@ -62,11 +62,12 @@ var getOriginalValue = function getOriginalValue(_ref) {
62
62
  });
63
63
  originalValue = fillUndefined ? undefined : originalNamesValue;
64
64
  } else {
65
- originalValue = (0, _lodash.get)(originalValueRow, originalName.slice(rowKeyPath.length - 1));
65
+ originalValue = (0, _lodash.get)(originRecord, originalName.slice(rowKeyPath.length - 1));
66
66
  }
67
67
  return {
68
68
  originalValue: originalValue,
69
- originalValueRow: originalValueRow
69
+ originRecord: originRecord,
70
+ record: rowValue
70
71
  };
71
72
  }
72
73
  // 这个方法是给editTable专用的 暂时不存在不传rowKey的情况
@@ -74,7 +75,7 @@ var getOriginalValue = function getOriginalValue(_ref) {
74
75
  originalValue: (originalNames === null || originalNames === void 0 ? void 0 : originalNames.length) ? originalNames.map(function (originalName) {
75
76
  return (0, _lodash.get)(originalValues, originalName);
76
77
  }) : (0, _lodash.get)(originalValues, originalName),
77
- originalValueRow: originalValueRow
78
+ originRecord: originRecord
78
79
  };
79
80
  };
80
81
  var ListChangedWrapper = function ListChangedWrapper(props) {
@@ -135,8 +136,10 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
135
136
  value: _value,
136
137
  originalValue: _originalValue,
137
138
  form: form,
138
- equalWith: equalWith
139
- // name: isString(namesStr) ? namesStr : originalName || name,
139
+ equalWith: equalWith,
140
+ originRecord: originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.originRecord,
141
+ record: originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.record,
142
+ index: index
140
143
  });
141
144
  }, [props[valuePropName], originalValue]);
142
145
  var isAdd = diffType === 'add';
@@ -149,7 +152,7 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
149
152
  var _children = children;
150
153
  if (viewRender) {
151
154
  if (! /*#__PURE__*/_react.default.isValidElement(viewRender)) {
152
- return viewRender(orgValue, (originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.originalValueRow) || {}, {
155
+ return viewRender(orgValue, (originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.originRecord) || {}, {
153
156
  form: form,
154
157
  name: name,
155
158
  index: index