@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.
- package/dist/index.esm.css +42 -1
- package/dist/less.esm.css +38 -0
- package/es/ProConfigProvider/FormsContext.d.ts +15 -0
- package/es/ProConfigProvider/FormsContext.js +32 -0
- package/es/ProConfigProvider/index.d.ts +0 -1
- package/es/ProConfigProvider/index.js +5 -7
- package/es/ProEditTable/components/RenderField/ListChangedWrapper.d.ts +1 -1
- package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +13 -10
- package/es/ProEditTable/components/RenderField/index.js +42 -32
- package/es/ProEditTable/propsType.d.ts +1 -0
- package/es/ProEditTable/style/index.less +41 -0
- package/es/ProEditTable/utils/diffOriginal.d.ts +21 -0
- package/es/ProEditTable/utils/diffOriginal.js +65 -0
- package/es/ProEnum/index.js +1 -1
- package/es/ProForm/components/combination/Group/component/ComRender.js +9 -1
- package/es/ProForm/components/combination/Group/index.js +1 -1
- package/es/ProForm/components/combination/Group/utils.js +1 -1
- package/es/ProForm/index.js +26 -36
- package/es/ProForm/style/index.less +8 -0
- package/es/ProForm/utils/diffOriginal.js +11 -8
- package/es/ProForm/utils/useForm.d.ts +4 -3
- package/es/ProForm/utils/useForm.js +11 -2
- package/es/ProTable/components/FormatColumn/index.js +1 -1
- package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +36 -32
- package/es/ProTable/index.js +22 -15
- package/es/ProTable/propsType.d.ts +3 -2
- package/es/style/theme/antd.less +4 -1
- package/lib/ProConfigProvider/FormsContext.d.ts +15 -0
- package/lib/ProConfigProvider/FormsContext.js +39 -0
- package/lib/ProConfigProvider/index.d.ts +0 -1
- package/lib/ProConfigProvider/index.js +5 -8
- package/lib/ProEditTable/components/RenderField/ListChangedWrapper.d.ts +1 -1
- package/lib/ProEditTable/components/RenderField/ListChangedWrapper.js +13 -10
- package/lib/ProEditTable/components/RenderField/index.js +42 -32
- package/lib/ProEditTable/propsType.d.ts +1 -0
- package/lib/ProEditTable/style/index.less +41 -0
- package/lib/ProEditTable/utils/diffOriginal.d.ts +21 -0
- package/lib/ProEditTable/utils/diffOriginal.js +71 -0
- package/lib/ProEnum/index.js +1 -1
- package/lib/ProForm/components/combination/Group/component/ComRender.js +8 -0
- package/lib/ProForm/components/combination/Group/index.js +1 -1
- package/lib/ProForm/components/combination/Group/utils.js +1 -1
- package/lib/ProForm/index.js +26 -36
- package/lib/ProForm/style/index.less +8 -0
- package/lib/ProForm/utils/diffOriginal.js +11 -8
- package/lib/ProForm/utils/useForm.d.ts +4 -3
- package/lib/ProForm/utils/useForm.js +11 -2
- package/lib/ProTable/components/FormatColumn/index.js +1 -1
- package/lib/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +36 -32
- package/lib/ProTable/index.js +22 -15
- package/lib/ProTable/propsType.d.ts +3 -2
- package/lib/style/theme/antd.less +4 -1
- package/package.json +1 -1
@@ -30,7 +30,7 @@ var _utils = require("../../../ProForm/utils");
|
|
30
30
|
var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
|
31
31
|
var _getDefaultProps = require("../../utils/getDefaultProps");
|
32
32
|
var _ListChangedWrapper = _interopRequireDefault(require("./ListChangedWrapper"));
|
33
|
-
var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "
|
33
|
+
var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "onDiff", "className", "trim", "confirm", "dependencies"];
|
34
34
|
/* eslint-disable prefer-destructuring */
|
35
35
|
/* eslint-disable prefer-const */
|
36
36
|
var RenderField = function RenderField(_ref) {
|
@@ -59,11 +59,11 @@ var RenderField = function RenderField(_ref) {
|
|
59
59
|
required = _column$required === void 0 ? false : _column$required,
|
60
60
|
_column$rules = column.rules,
|
61
61
|
rules = _column$rules === void 0 ? [] : _column$rules,
|
62
|
-
equalWith = column.equalWith,
|
63
62
|
onDiff = column.onDiff,
|
64
63
|
className = column.className,
|
65
64
|
trim = column.trim,
|
66
65
|
confirm = column.confirm,
|
66
|
+
dependencies = column.dependencies,
|
67
67
|
resetProps = (0, _objectWithoutProperties2.default)(column, _excluded);
|
68
68
|
// editRender弃用使用component同ProForm
|
69
69
|
var _editRender = component || editRender;
|
@@ -319,6 +319,8 @@ var RenderField = function RenderField(_ref) {
|
|
319
319
|
_key2,
|
320
320
|
_args,
|
321
321
|
rowPath,
|
322
|
+
_dependencies$map,
|
323
|
+
validateFieldKeys,
|
322
324
|
row,
|
323
325
|
orgRow,
|
324
326
|
_TargetComponent,
|
@@ -330,77 +332,85 @@ var RenderField = function RenderField(_ref) {
|
|
330
332
|
_Object$keys,
|
331
333
|
_Object$keys$map,
|
332
334
|
diff,
|
333
|
-
|
335
|
+
_validateFieldKeys,
|
334
336
|
_args2 = arguments;
|
335
337
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
336
338
|
while (1) switch (_context.prev = _context.next) {
|
337
339
|
case 0:
|
338
|
-
if (!(!onFieldChange && !onChange)) {
|
339
|
-
_context.next = 2;
|
340
|
-
break;
|
341
|
-
}
|
342
|
-
return _context.abrupt("return", null);
|
343
|
-
case 2:
|
344
340
|
for (_len2 = _args2.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
345
341
|
args[_key2] = _args2[_key2];
|
346
342
|
}
|
347
343
|
_args = [].concat(args);
|
348
344
|
rowPath = [].concat((0, _toConsumableArray2.default)(namePath), [index]);
|
349
|
-
|
345
|
+
if (!(!onFieldChange && !onChange)) {
|
346
|
+
_context.next = 6;
|
347
|
+
break;
|
348
|
+
}
|
349
|
+
if (dependencies === null || dependencies === void 0 ? void 0 : dependencies.length) {
|
350
|
+
validateFieldKeys = dependencies === null || dependencies === void 0 ? void 0 : (_dependencies$map = dependencies.map) === null || _dependencies$map === void 0 ? void 0 : _dependencies$map.call(dependencies, function (key) {
|
351
|
+
return [].concat((0, _toConsumableArray2.default)(rowPath), [key]);
|
352
|
+
});
|
353
|
+
setTimeout(function () {
|
354
|
+
form.validateFields(validateFieldKeys);
|
355
|
+
}, 100);
|
356
|
+
}
|
357
|
+
return _context.abrupt("return", null);
|
358
|
+
case 6:
|
359
|
+
row = form.getFieldValue(rowPath, true);
|
350
360
|
orgRow = (0, _lodash.cloneDeep)(row);
|
351
361
|
if (!onFieldChange) {
|
352
|
-
_context.next =
|
362
|
+
_context.next = 21;
|
353
363
|
break;
|
354
364
|
}
|
355
365
|
_args = formatArgs(args);
|
356
366
|
_args[1] = row;
|
357
367
|
_context.t0 = (_TargetComponent = TargetComponent) === null || _TargetComponent === void 0 ? void 0 : (_TargetComponent$prop = _TargetComponent.props) === null || _TargetComponent$prop === void 0 ? void 0 : _TargetComponent$prop.onFieldChange;
|
358
368
|
if (!_context.t0) {
|
359
|
-
_context.next =
|
369
|
+
_context.next = 15;
|
360
370
|
break;
|
361
371
|
}
|
362
|
-
_context.next =
|
372
|
+
_context.next = 15;
|
363
373
|
return (_TargetComponent$prop2 = TargetComponent.props).onFieldChange.apply(_TargetComponent$prop2, (0, _toConsumableArray2.default)(_args));
|
364
|
-
case
|
374
|
+
case 15:
|
365
375
|
_context.t1 = onFieldChange;
|
366
376
|
if (!_context.t1) {
|
367
|
-
_context.next =
|
377
|
+
_context.next = 19;
|
368
378
|
break;
|
369
379
|
}
|
370
|
-
_context.next =
|
380
|
+
_context.next = 19;
|
371
381
|
return onFieldChange.apply(void 0, (0, _toConsumableArray2.default)(_args));
|
372
|
-
case
|
373
|
-
_context.next =
|
382
|
+
case 19:
|
383
|
+
_context.next = 30;
|
374
384
|
break;
|
375
|
-
case
|
385
|
+
case 21:
|
376
386
|
_args = _args.concat([row, index, form]);
|
377
387
|
_context.t2 = (_TargetComponent2 = TargetComponent) === null || _TargetComponent2 === void 0 ? void 0 : (_TargetComponent2$pro = _TargetComponent2.props) === null || _TargetComponent2$pro === void 0 ? void 0 : _TargetComponent2$pro.onChange;
|
378
388
|
if (!_context.t2) {
|
379
|
-
_context.next =
|
389
|
+
_context.next = 26;
|
380
390
|
break;
|
381
391
|
}
|
382
|
-
_context.next =
|
392
|
+
_context.next = 26;
|
383
393
|
return (_TargetComponent$prop3 = TargetComponent.props).onChange.apply(_TargetComponent$prop3, (0, _toConsumableArray2.default)(_args));
|
384
|
-
case
|
394
|
+
case 26:
|
385
395
|
_context.t3 = onChange;
|
386
396
|
if (!_context.t3) {
|
387
|
-
_context.next =
|
397
|
+
_context.next = 30;
|
388
398
|
break;
|
389
399
|
}
|
390
|
-
_context.next =
|
400
|
+
_context.next = 30;
|
391
401
|
return onChange.apply(void 0, (0, _toConsumableArray2.default)(_args));
|
392
|
-
case
|
402
|
+
case 30:
|
393
403
|
// 判断属性是否变动
|
394
404
|
form.setFieldValue(rowPath, row);
|
395
405
|
if (validateTrigger && validateTrigger.includes('onChange')) {
|
396
406
|
if (!(0, _lodash.isEqual)(orgRow, row)) {
|
397
407
|
diff = (0, _tools.difference)(row, orgRow) || {};
|
398
|
-
|
408
|
+
_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) {
|
399
409
|
return [].concat((0, _toConsumableArray2.default)(rowPath), [key]);
|
400
|
-
});
|
401
|
-
if (
|
410
|
+
}).concat(dependencies || []);
|
411
|
+
if (_validateFieldKeys === null || _validateFieldKeys === void 0 ? void 0 : _validateFieldKeys.length) {
|
402
412
|
setTimeout(function () {
|
403
|
-
form.validateFields(
|
413
|
+
form.validateFields(_validateFieldKeys);
|
404
414
|
}, 100);
|
405
415
|
}
|
406
416
|
}
|
@@ -410,7 +420,7 @@ var RenderField = function RenderField(_ref) {
|
|
410
420
|
d: Date.now()
|
411
421
|
}
|
412
422
|
});
|
413
|
-
case
|
423
|
+
case 33:
|
414
424
|
case "end":
|
415
425
|
return _context.stop();
|
416
426
|
}
|
@@ -471,7 +481,7 @@ var RenderField = function RenderField(_ref) {
|
|
471
481
|
diff = (0, _tools.difference)(row, orgRow) || {};
|
472
482
|
validateFieldKeys = (_Object$keys2 = Object.keys(diff)) === null || _Object$keys2 === void 0 ? void 0 : (_Object$keys2$map = _Object$keys2.map) === null || _Object$keys2$map === void 0 ? void 0 : _Object$keys2$map.call(_Object$keys2, function (key) {
|
473
483
|
return [].concat((0, _toConsumableArray2.default)(rowPath), [key]);
|
474
|
-
});
|
484
|
+
}).concat(dependencies || []);
|
475
485
|
if (validateFieldKeys === null || validateFieldKeys === void 0 ? void 0 : validateFieldKeys.length) {
|
476
486
|
debounceValidate(validateFieldKeys);
|
477
487
|
}
|
@@ -564,7 +574,7 @@ var RenderField = function RenderField(_ref) {
|
|
564
574
|
originalNames: originalNames,
|
565
575
|
originalValues: originalValues,
|
566
576
|
form: form,
|
567
|
-
equalWith: onDiff
|
577
|
+
equalWith: onDiff,
|
568
578
|
type: type,
|
569
579
|
onChange: _onChange,
|
570
580
|
valuePropName: _formItemProps.valuePropName,
|
@@ -106,6 +106,7 @@ export interface ProColumnsProps<Values = any, T = any> extends Omit<FormItemPro
|
|
106
106
|
hiddenNames?: NamePath[] | NamePath[][];
|
107
107
|
rules?: ProRule[] | RulesFn<T>;
|
108
108
|
confirm?: boolean | ModalFuncProps | FunctionArgs<Values, boolean | ModalFuncProps | void>;
|
109
|
+
dependencies?: NamePath[];
|
109
110
|
onDiff?: DiffOriginalParams['equalWith'];
|
110
111
|
[key: string]: any;
|
111
112
|
}
|
@@ -305,6 +305,47 @@
|
|
305
305
|
background-color: var(--zaui-contract-bg-add, #d2fff4) !important;
|
306
306
|
}
|
307
307
|
}
|
308
|
+
|
309
|
+
* {
|
310
|
+
// ie浏览器
|
311
|
+
scrollbar-face-color: #d2d3d7;
|
312
|
+
scrollbar-highlight-color: #979797;
|
313
|
+
scrollbar-3dlight-color: #979797;
|
314
|
+
|
315
|
+
// 悬浮轨道
|
316
|
+
::-webkit-scrollbar-thumb {
|
317
|
+
background-color: #979797;
|
318
|
+
background-clip: padding-box;
|
319
|
+
border-color: transparent;
|
320
|
+
border-style: dashed;
|
321
|
+
border-width: 4px;
|
322
|
+
border-radius: 10px;
|
323
|
+
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0);
|
324
|
+
}
|
325
|
+
|
326
|
+
::-webkit-scrollbar-track {
|
327
|
+
background: transparent;
|
328
|
+
}
|
329
|
+
|
330
|
+
::-webkit-scrollbar-thumb {
|
331
|
+
background-color: #d2d3d7;
|
332
|
+
background-clip: padding-box;
|
333
|
+
border-color: transparent;
|
334
|
+
border-style: dashed;
|
335
|
+
border-width: 4px;
|
336
|
+
border-radius: 10px;
|
337
|
+
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0);
|
338
|
+
}
|
339
|
+
|
340
|
+
::-webkit-scrollbar-thumb {
|
341
|
+
background-color: #979797;
|
342
|
+
}
|
343
|
+
|
344
|
+
::-webkit-scrollbar-track {
|
345
|
+
background: transparent;
|
346
|
+
}
|
347
|
+
}
|
348
|
+
|
308
349
|
}
|
309
350
|
|
310
351
|
.pro-edit-table-footer{
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { FormInstance } from 'antd';
|
2
|
+
export type DiffType = 'same' | 'add' | 'changed';
|
3
|
+
export interface DiffOriginalParams {
|
4
|
+
originalValue: any;
|
5
|
+
value: any;
|
6
|
+
form: FormInstance;
|
7
|
+
equalWith?: ({ originValue, originRecord, value, record, index }: {
|
8
|
+
originValue: any;
|
9
|
+
originRecord: any;
|
10
|
+
value: any;
|
11
|
+
record: any;
|
12
|
+
index: number;
|
13
|
+
}) => DiffType | undefined;
|
14
|
+
/** 原始行数据 */
|
15
|
+
originRecord: any;
|
16
|
+
/** 当前行数据 */
|
17
|
+
record: any;
|
18
|
+
/** 当前行索引 */
|
19
|
+
index: number;
|
20
|
+
}
|
21
|
+
export declare const diffOriginal: (params: DiffOriginalParams) => DiffType;
|
@@ -0,0 +1,71 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.diffOriginal = void 0;
|
7
|
+
var _lodash = require("lodash");
|
8
|
+
var _utils = require("@zat-design/utils");
|
9
|
+
var isEmpty = _utils.validate.isEmpty;
|
10
|
+
// 过滤对象中undefined字段
|
11
|
+
// 防止{a: '1'} {a: '1', b: undefined | null}被认为不相等
|
12
|
+
var filterObject = function filterObject(data) {
|
13
|
+
if (!(0, _lodash.isObject)(data) || Array.isArray(data) || data === null) return data;
|
14
|
+
var resData = {};
|
15
|
+
Object.keys(data).forEach(function (key) {
|
16
|
+
if (!isEmpty(data[key])) {
|
17
|
+
resData[key] = data[key];
|
18
|
+
}
|
19
|
+
});
|
20
|
+
// 空对象视为null 比较时 null undefined {} [] '' 视为相等
|
21
|
+
if (!Object.keys(resData).length) return null;
|
22
|
+
return resData;
|
23
|
+
};
|
24
|
+
var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
|
25
|
+
var originalValue = params.originalValue,
|
26
|
+
value = params.value,
|
27
|
+
equalWith = params.equalWith,
|
28
|
+
originRecord = params.originRecord,
|
29
|
+
record = params.record,
|
30
|
+
index = params.index;
|
31
|
+
// 支持传入自定义比较事件
|
32
|
+
if ((0, _lodash.isFunction)(equalWith)) {
|
33
|
+
var diffRes = equalWith({
|
34
|
+
originValue: originalValue,
|
35
|
+
originRecord: originRecord,
|
36
|
+
value: value,
|
37
|
+
record: record,
|
38
|
+
index: index
|
39
|
+
});
|
40
|
+
// 如果返回undefined走内置比较逻辑
|
41
|
+
if (diffRes !== undefined) {
|
42
|
+
if (typeof diffRes === 'boolean') {
|
43
|
+
return diffRes ? 'same' : 'changed';
|
44
|
+
}
|
45
|
+
return diffRes;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
var _value = filterObject(value);
|
49
|
+
var _originalValue = filterObject(originalValue);
|
50
|
+
// 如果原始值为空 且当前有值的话 认为变更类型是新增
|
51
|
+
if (isEmpty(_originalValue) && !isEmpty(_value)) {
|
52
|
+
return 'add';
|
53
|
+
}
|
54
|
+
if (Array.isArray(_originalValue)) {
|
55
|
+
if ((_originalValue === null || _originalValue === void 0 ? void 0 : _originalValue.length) === (_value === null || _value === void 0 ? void 0 : _value.length)) {
|
56
|
+
var isSame = _originalValue.every(function (valueItem, index) {
|
57
|
+
// 如果两个值有一个不是空值, 则进行深比较
|
58
|
+
if (!isEmpty(value === null || value === void 0 ? void 0 : value[index]) || !isEmpty(valueItem)) {
|
59
|
+
return (0, _lodash.isEqual)(value === null || value === void 0 ? void 0 : value[index], valueItem);
|
60
|
+
}
|
61
|
+
return true;
|
62
|
+
});
|
63
|
+
return isSame ? 'same' : 'changed';
|
64
|
+
}
|
65
|
+
return 'changed';
|
66
|
+
}
|
67
|
+
if (!isEmpty(_originalValue) || !isEmpty(_value)) {
|
68
|
+
return (0, _lodash.isEqual)(_value, _originalValue) ? 'same' : 'changed';
|
69
|
+
}
|
70
|
+
return 'same';
|
71
|
+
};
|
package/lib/ProEnum/index.js
CHANGED
@@ -231,7 +231,7 @@ var ProEnum = function ProEnum(props) {
|
|
231
231
|
};
|
232
232
|
if (!code && !dataSource && !useRequest) {
|
233
233
|
var _locale$ProEnum4;
|
234
|
-
_antd.message.error(_locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProEnum4 = _locale.default.ProEnum) === null || _locale$ProEnum4 === void 0 ? void 0 : _locale$ProEnum4.errorNoEnumType);
|
234
|
+
_antd.message.error("".concat(otherProps === null || otherProps === void 0 ? void 0 : otherProps.label, "-").concat(otherProps === null || otherProps === void 0 ? void 0 : otherProps.name, "-").concat(_locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProEnum4 = _locale.default.ProEnum) === null || _locale$ProEnum4 === void 0 ? void 0 : _locale$ProEnum4.errorNoEnumType));
|
235
235
|
}
|
236
236
|
var transToLabel = function transToLabel(value) {
|
237
237
|
var list = dataList && dataList.length ? dataList : enumLists;
|
@@ -38,6 +38,7 @@ var getComRender = function getComRender(component, props, componentProps) {
|
|
38
38
|
};
|
39
39
|
/** 渲染组件 */
|
40
40
|
var ComRender = function ComRender(props) {
|
41
|
+
var _props$component, _props$component$prop;
|
41
42
|
var type = props.type,
|
42
43
|
confirm = props.confirm,
|
43
44
|
component = props.component,
|
@@ -58,6 +59,13 @@ var ComRender = function ComRender(props) {
|
|
58
59
|
};
|
59
60
|
var _props = mergedGetValueProps(fieldProps.value);
|
60
61
|
var componentProps = (0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, fieldProps), rest), _props);
|
62
|
+
var isSeparator = (props === null || props === void 0 ? void 0 : (_props$component = props.component) === null || _props$component === void 0 ? void 0 : (_props$component$prop = _props$component.props) === null || _props$component$prop === void 0 ? void 0 : _props$component$prop.className) === 'group-separator';
|
63
|
+
if (isSeparator && isView) {
|
64
|
+
var _props$component2, _props$component2$pro;
|
65
|
+
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
66
|
+
children: [" ", props === null || props === void 0 ? void 0 : (_props$component2 = props.component) === null || _props$component2 === void 0 ? void 0 : (_props$component2$pro = _props$component2.props) === null || _props$component2$pro === void 0 ? void 0 : _props$component2$pro.children, " "]
|
67
|
+
});
|
68
|
+
}
|
61
69
|
if (viewRender && isView) {
|
62
70
|
return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
|
63
71
|
value: (0, _objectSpread3.default)((0, _objectSpread3.default)({}, contextProps), {}, {
|
@@ -77,7 +77,7 @@ var Group = function Group(props) {
|
|
77
77
|
children: space.compact || (space === null || space === void 0 ? void 0 : space.separator) ? (0, _jsxRuntime.jsx)(_antd.Space.Compact, {
|
78
78
|
children: columns.map(function (column, index) {
|
79
79
|
column.otherProps = otherProps;
|
80
|
-
//
|
80
|
+
// 自定义间隔移除对应参数
|
81
81
|
if (column === null || column === void 0 ? void 0 : column.separator) {
|
82
82
|
delete column.separator;
|
83
83
|
delete column.otherProps;
|
@@ -337,7 +337,7 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
|
|
337
337
|
}, reactiveProps), {}, {
|
338
338
|
disabled: getLastDisabled(),
|
339
339
|
getValueProps: transform === null || transform === void 0 ? void 0 : transform.getValueProps,
|
340
|
-
fieldProps: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, column === null || column === void 0 ? void 0 : column.fieldProps), {}, {
|
340
|
+
fieldProps: (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, column === null || column === void 0 ? void 0 : column.fieldProps), reactiveProps === null || reactiveProps === void 0 ? void 0 : reactiveProps.fieldProps), {}, {
|
341
341
|
onChange: handleChange,
|
342
342
|
onBlur: handleBlur,
|
343
343
|
value: value === null || value === void 0 ? void 0 : value[index]
|
package/lib/ProForm/index.js
CHANGED
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
7
7
|
});
|
8
8
|
exports.default = exports.ProFormProvider = void 0;
|
9
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
9
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
10
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
11
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
12
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
13
13
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
@@ -25,9 +25,10 @@ var _useForm3 = require("./utils/useForm");
|
|
25
25
|
var _useFieldProps = require("./utils/useFieldProps");
|
26
26
|
var _locale = _interopRequireDefault(require("../locale"));
|
27
27
|
var _useWatch = _interopRequireDefault(require("./utils/useWatch"));
|
28
|
+
var _FormsContext = require("../ProConfigProvider/FormsContext");
|
28
29
|
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"];
|
29
30
|
var ProForm = function ProForm(props, ref) {
|
30
|
-
var
|
31
|
+
var _localStorage, _ref;
|
31
32
|
var _props$mode = props.mode,
|
32
33
|
mode = _props$mode === void 0 ? 'search' : _props$mode,
|
33
34
|
span = props.span,
|
@@ -70,17 +71,15 @@ var ProForm = function ProForm(props, ref) {
|
|
70
71
|
_props$optimize = props.optimize,
|
71
72
|
optimize = _props$optimize === void 0 ? false : _props$optimize,
|
72
73
|
otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
73
|
-
var
|
74
|
-
|
75
|
-
dispatch = _useProConfig.dispatch;
|
76
|
-
var config = state.ProForm,
|
77
|
-
forms = state.forms;
|
78
|
-
var _useForm = (0, _useForm3.useForm)((_forms$formKey = forms[formKey]) !== null && _forms$formKey !== void 0 ? _forms$formKey : originForm, {
|
74
|
+
var config = (0, _ProConfigProvider.useProConfig)('ProForm');
|
75
|
+
var _useForm = (0, _useForm3.useForm)(originForm, {
|
79
76
|
scrollToError: scrollToError,
|
80
|
-
optimize: optimize
|
77
|
+
optimize: optimize,
|
78
|
+
formKey: formKey
|
81
79
|
}),
|
82
80
|
_useForm2 = (0, _slicedToArray2.default)(_useForm, 1),
|
83
81
|
form = _useForm2[0];
|
82
|
+
// const form = useForms(formKey, originForm, { scrollToError, optimize, formKey });
|
84
83
|
var _useControlled = (0, _index.useControlled)({
|
85
84
|
value: expandOpen,
|
86
85
|
onChange: expandOpenChange
|
@@ -89,32 +88,22 @@ var ProForm = function ProForm(props, ref) {
|
|
89
88
|
openState = _useControlled2[0],
|
90
89
|
setOpenState = _useControlled2[1];
|
91
90
|
// 把表单实例存入表单组
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
delete forms[formKey];
|
109
|
-
dispatch({
|
110
|
-
type: 'set',
|
111
|
-
payload: {
|
112
|
-
forms: (0, _objectSpread2.default)({}, forms)
|
113
|
-
}
|
114
|
-
});
|
115
|
-
}
|
116
|
-
};
|
117
|
-
}, [formKey, form]);
|
91
|
+
// useMemo(() => {
|
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(() => {
|
96
|
+
// dispatch({ type: 'set', payload: { forms: { ...forms } } });
|
97
|
+
// }, 300);
|
98
|
+
// }
|
99
|
+
// // 销毁
|
100
|
+
// return () => {
|
101
|
+
// if (formKey && forms[formKey]) {
|
102
|
+
// delete forms[formKey];
|
103
|
+
// dispatch({ type: 'set', payload: { forms: { ...forms } } });
|
104
|
+
// }
|
105
|
+
// };
|
106
|
+
// }, [formKey, form]);
|
118
107
|
var _getLayout = (0, _index.getLayout)({
|
119
108
|
span: span,
|
120
109
|
form: form
|
@@ -311,7 +300,8 @@ var ProFormProvider = exports.ProFormProvider = function ProFormProvider(props)
|
|
311
300
|
};
|
312
301
|
ProFormForward.Provider = ProFormProvider; // 包装Provider
|
313
302
|
ProFormForward.useFieldProps = _useFieldProps.useFieldProps; // 获取每个字段的其他参数 -otherProps
|
314
|
-
ProFormForward.
|
303
|
+
ProFormForward.useForms = _FormsContext.useForms; // 获取上下文中的指定表单实例 如果不存在则会创建
|
304
|
+
ProFormForward.useContextForms = _FormsContext.useContextForms; // 获取 ProConfigProvider中的表单实例map
|
315
305
|
// 内置组合
|
316
306
|
ProFormForward.ProCascader = _components.ProCascader;
|
317
307
|
ProFormForward.ProCombination = _components.ProCombination;
|
@@ -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,
|
@@ -42,14 +42,17 @@ var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
|
|
42
42
|
return 'add';
|
43
43
|
}
|
44
44
|
if (Array.isArray(_originalValue)) {
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
45
|
+
if ((_originalValue === null || _originalValue === void 0 ? void 0 : _originalValue.length) === (_value === null || _value === void 0 ? void 0 : _value.length)) {
|
46
|
+
var isSame = _originalValue.every(function (valueItem, index) {
|
47
|
+
// 如果两个值有一个不是空值, 则进行深比较
|
48
|
+
if (!(0, _utils.isEmpty)(value === null || value === void 0 ? void 0 : value[index]) || !(0, _utils.isEmpty)(valueItem)) {
|
49
|
+
return (0, _lodash.isEqual)(value === null || value === void 0 ? void 0 : value[index], valueItem);
|
50
|
+
}
|
51
|
+
return true;
|
52
|
+
});
|
53
|
+
return isSame ? 'same' : 'changed';
|
54
|
+
}
|
55
|
+
return 'changed';
|
53
56
|
}
|
54
57
|
if (!(0, _utils.isEmpty)(_originalValue) || !(0, _utils.isEmpty)(_value)) {
|
55
58
|
return (0, _lodash.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 {};
|
@@ -11,8 +11,10 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
11
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
12
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
13
13
|
var _antd = require("antd");
|
14
|
+
var _react = require("react");
|
14
15
|
var _index = require("./index");
|
15
16
|
var _tools = require("../../ProEditTable/utils/tools");
|
17
|
+
var _FormsContext = require("../../ProConfigProvider/FormsContext");
|
16
18
|
var useForm = exports.useForm = function useForm(originForm, options) {
|
17
19
|
// 如果没有form实例可以直接把options放在第一个参数位置
|
18
20
|
// @ts-ignore
|
@@ -23,10 +25,17 @@ var useForm = exports.useForm = function useForm(originForm, options) {
|
|
23
25
|
var _ref = _options || {},
|
24
26
|
_ref$scrollToError = _ref.scrollToError,
|
25
27
|
scrollToError = _ref$scrollToError === void 0 ? true : _ref$scrollToError,
|
26
|
-
optimize = _ref.optimize
|
27
|
-
|
28
|
+
optimize = _ref.optimize,
|
29
|
+
formKey = _ref.formKey;
|
30
|
+
// formKey全局共享逻辑
|
31
|
+
var forms = (0, _react.useContext)(_FormsContext.FormsContext);
|
32
|
+
var _Form$useForm = _antd.Form.useForm(forms[formKey] || _originForm),
|
28
33
|
_Form$useForm2 = (0, _slicedToArray2.default)(_Form$useForm, 1),
|
29
34
|
form = _Form$useForm2[0];
|
35
|
+
if (formKey && forms[formKey] !== form) {
|
36
|
+
forms[formKey] = form;
|
37
|
+
form.formKey = formKey;
|
38
|
+
}
|
30
39
|
var getFieldsValue = form.getFieldsValue,
|
31
40
|
validateFields = form.validateFields,
|
32
41
|
isModified = form.isModified,
|
@@ -145,7 +145,7 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
|
|
145
145
|
index: index
|
146
146
|
});
|
147
147
|
// viewRender 返回值为 false 时,不显示对比
|
148
|
-
if ((0, _lodash.isBoolean)(diffResult)) {
|
148
|
+
if ((0, _lodash.isBoolean)(diffResult) && !diffResult) {
|
149
149
|
otherProps.isChanged = false;
|
150
150
|
}
|
151
151
|
originalValue = diffResult;
|