@zat-design/sisyphus-react 3.4.2-beta.3 → 3.4.2-beta.5
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/es/ProEditTable/components/RenderField/index.js +3 -3
- package/es/ProEditTable/index.js +3 -3
- package/es/ProEditTable/propsType.d.ts +1 -1
- package/es/ProEnum/style/index.less +1 -0
- package/es/ProForm/components/render/Render.js +2 -2
- package/es/ProForm/components/render/RenderFields.d.ts +1 -1
- package/es/ProForm/components/render/RenderFields.js +2 -2
- package/es/ProForm/index.js +4 -4
- package/es/ProForm/propsType.d.ts +1 -1
- package/es/ProForm/utils/{contrastOriginal.d.ts → diffOriginal.d.ts} +2 -1
- package/es/ProForm/utils/diffOriginal.js +61 -0
- package/es/ProForm/utils/index.d.ts +1 -1
- package/es/ProForm/utils/index.js +1 -1
- package/es/ProForm/utils/transformValue.js +2 -2
- package/es/ProForm/utils/useChanged.js +4 -3
- package/es/ProForm/utils/useListChanged.d.ts +1 -1
- package/es/ProForm/utils/useListChanged.js +4 -3
- package/es/ProTable/components/RenderColumn/index.d.ts +1 -1
- package/es/ProTable/components/RenderColumn/index.js +3 -3
- package/es/ProTable/propsType.d.ts +1 -1
- package/es/ProTable/utils.js +9 -9
- package/lib/ProEditTable/components/RenderField/index.js +3 -3
- package/lib/ProEditTable/index.js +3 -3
- package/lib/ProEditTable/propsType.d.ts +1 -1
- package/lib/ProEnum/style/index.less +1 -0
- package/lib/ProForm/components/render/Render.js +2 -2
- package/lib/ProForm/components/render/RenderFields.d.ts +1 -1
- package/lib/ProForm/components/render/RenderFields.js +2 -2
- package/lib/ProForm/index.js +4 -4
- package/lib/ProForm/propsType.d.ts +1 -1
- package/lib/ProForm/utils/{contrastOriginal.d.ts → diffOriginal.d.ts} +2 -1
- package/lib/ProForm/utils/diffOriginal.js +68 -0
- package/lib/ProForm/utils/index.d.ts +1 -1
- package/lib/ProForm/utils/index.js +2 -2
- package/lib/ProForm/utils/transformValue.js +1 -1
- package/lib/ProForm/utils/useChanged.js +4 -3
- package/lib/ProForm/utils/useListChanged.d.ts +1 -1
- package/lib/ProForm/utils/useListChanged.js +4 -3
- package/lib/ProTable/components/RenderColumn/index.d.ts +1 -1
- package/lib/ProTable/components/RenderColumn/index.js +3 -3
- package/lib/ProTable/propsType.d.ts +1 -1
- package/lib/ProTable/utils.js +9 -9
- package/package.json +1 -1
- package/es/ProForm/utils/contrastOriginal.js +0 -24
- package/lib/ProForm/utils/contrastOriginal.js +0 -30
|
@@ -72,7 +72,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
72
72
|
virtualKey = config.virtualKey,
|
|
73
73
|
viewEmpty = config.viewEmpty,
|
|
74
74
|
originalValues = config.originalValues,
|
|
75
|
-
|
|
75
|
+
originalDiffTip = config.originalDiffTip;
|
|
76
76
|
var _fieldProps = fieldProps || formItemProps || {};
|
|
77
77
|
var _rules = rules || [];
|
|
78
78
|
var _required = required;
|
|
@@ -505,7 +505,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
505
505
|
delete _formItemProps.rules;
|
|
506
506
|
}
|
|
507
507
|
var _className = classNames(_defineProperty(_defineProperty({}, className, className), 'pro-form-item-changed', changed));
|
|
508
|
-
var originalTitle =
|
|
508
|
+
var originalTitle = originalDiffTip ? _jsxs(_Space, {
|
|
509
509
|
children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/React.isValidElement(TargetComponent) ? ( /*#__PURE__*/React.cloneElement(TargetComponent, _objectSpread(_objectSpread({}, omit(componentProps, ['onFieldChange'])), {}, {
|
|
510
510
|
isView: true,
|
|
511
511
|
value: originalValue,
|
|
@@ -527,7 +527,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
527
527
|
});
|
|
528
528
|
return _jsx(FieldProvider, {
|
|
529
529
|
value: componentProps === null || componentProps === void 0 ? void 0 : componentProps.otherProps,
|
|
530
|
-
children: !
|
|
530
|
+
children: !originalDiffTip || ['FormList', 'ProEditTable'].includes(type) ? FormItem : _jsx(_Tooltip, {
|
|
531
531
|
title: originalTitle,
|
|
532
532
|
open: changed ? undefined : false,
|
|
533
533
|
children: FormItem
|
package/es/ProEditTable/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import _ConfigProvider from "antd/es/config-provider";
|
|
|
10
10
|
import "antd/es/form/style";
|
|
11
11
|
import _Form from "antd/es/form";
|
|
12
12
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
13
|
-
var _excluded = ["value", "onChange", "className", "columns", "type", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "otherProps", "requiredAlign", "summary", "max", "headerRender", "pagination", "originalValues", "
|
|
13
|
+
var _excluded = ["value", "onChange", "className", "columns", "type", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "otherProps", "requiredAlign", "summary", "max", "headerRender", "pagination", "originalValues", "originalDiffTip", "rowKey"];
|
|
14
14
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
15
|
import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';
|
|
16
16
|
import { get, isArray } from 'lodash';
|
|
@@ -49,7 +49,7 @@ var ProEditTable = function ProEditTable(_ref, ref) {
|
|
|
49
49
|
headerRender = _ref.headerRender,
|
|
50
50
|
pagination = _ref.pagination,
|
|
51
51
|
originalValues = _ref.originalValues,
|
|
52
|
-
|
|
52
|
+
originalDiffTip = _ref.originalDiffTip,
|
|
53
53
|
rowKey = _ref.rowKey,
|
|
54
54
|
resetProps = _objectWithoutProperties(_ref, _excluded);
|
|
55
55
|
// 上下文form
|
|
@@ -151,7 +151,7 @@ var ProEditTable = function ProEditTable(_ref, ref) {
|
|
|
151
151
|
tableLength: value === null || value === void 0 ? void 0 : value.length,
|
|
152
152
|
page: page,
|
|
153
153
|
originalValues: originalValues,
|
|
154
|
-
|
|
154
|
+
originalDiffTip: originalDiffTip,
|
|
155
155
|
prefixCls: prefixCls
|
|
156
156
|
};
|
|
157
157
|
// 编辑行设置下样式
|
|
@@ -130,7 +130,7 @@ export interface ProEditTableProps<T = any> extends Omit<TableProps<T>, 'onChang
|
|
|
130
130
|
* @description 原始数据源,是否tooltip显示
|
|
131
131
|
* @default -
|
|
132
132
|
*/
|
|
133
|
-
|
|
133
|
+
originalDiffTip?: boolean;
|
|
134
134
|
/**
|
|
135
135
|
* @description 可编辑表格的类型,单行、多行、单元格编辑
|
|
136
136
|
* @default false
|
|
@@ -52,7 +52,7 @@ var Render = function Render(props) {
|
|
|
52
52
|
originalValues = props.originalValues,
|
|
53
53
|
equalWith = props.equalWith,
|
|
54
54
|
requiredOnView = props.requiredOnView,
|
|
55
|
-
|
|
55
|
+
originalDiffTip = props.originalDiffTip,
|
|
56
56
|
confirm = props.confirm,
|
|
57
57
|
globalControl = props.globalControl;
|
|
58
58
|
var colProps = props.colProps;
|
|
@@ -434,7 +434,7 @@ var Render = function Render(props) {
|
|
|
434
434
|
});
|
|
435
435
|
}
|
|
436
436
|
// 不渲染tooltip
|
|
437
|
-
if (!
|
|
437
|
+
if (!originalDiffTip || ['FormList', 'ProEditTable'].includes(type)) {
|
|
438
438
|
return formItem;
|
|
439
439
|
}
|
|
440
440
|
var title = _jsxs(_Space, {
|
|
@@ -17,7 +17,7 @@ interface Props<T = any> {
|
|
|
17
17
|
clearNotShow?: boolean;
|
|
18
18
|
requiredOnView?: boolean;
|
|
19
19
|
required?: boolean | (() => boolean);
|
|
20
|
-
|
|
20
|
+
originalDiffTip?: boolean;
|
|
21
21
|
globalControl?: boolean;
|
|
22
22
|
}
|
|
23
23
|
declare const RenderFields: React.FC<Props>;
|
|
@@ -25,7 +25,7 @@ var RenderFields = function RenderFields(props) {
|
|
|
25
25
|
outerClearNotShow = props.clearNotShow,
|
|
26
26
|
requiredOnView = props.requiredOnView,
|
|
27
27
|
required = props.required,
|
|
28
|
-
|
|
28
|
+
originalDiffTip = props.originalDiffTip,
|
|
29
29
|
globalControl = props.globalControl;
|
|
30
30
|
// 是否包含隐藏字段
|
|
31
31
|
var hiddenData = columns.filter(function (item) {
|
|
@@ -205,7 +205,7 @@ var RenderFields = function RenderFields(props) {
|
|
|
205
205
|
originalValues: originalValues,
|
|
206
206
|
equalWith: equalWith,
|
|
207
207
|
requiredOnView: requiredOnView,
|
|
208
|
-
|
|
208
|
+
originalDiffTip: originalDiffTip,
|
|
209
209
|
globalControl: globalControl
|
|
210
210
|
})
|
|
211
211
|
}, "".concat(_formItemProps.name || _formItemProps.label).concat(index));
|
package/es/ProForm/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import _Space from "antd/es/space";
|
|
|
12
12
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
13
13
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
14
14
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
15
|
-
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", "originalValues", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "
|
|
15
|
+
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", "originalValues", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "originalDiffTip", "formKey", "globalControl"];
|
|
16
16
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
17
|
import { DoubleLeftOutlined } from '@ant-design/icons';
|
|
18
18
|
import classnames from 'classnames';
|
|
@@ -63,8 +63,8 @@ var ProForm = function ProForm(props, ref) {
|
|
|
63
63
|
requiredOnView = _props$requiredOnView === void 0 ? true : _props$requiredOnView,
|
|
64
64
|
formId = props.formId,
|
|
65
65
|
required = props.required,
|
|
66
|
-
_props$
|
|
67
|
-
|
|
66
|
+
_props$originalDiffTi = props.originalDiffTip,
|
|
67
|
+
originalDiffTip = _props$originalDiffTi === void 0 ? true : _props$originalDiffTi,
|
|
68
68
|
formKey = props.formKey,
|
|
69
69
|
globalControl = props.globalControl,
|
|
70
70
|
otherProps = _objectWithoutProperties(props, _excluded);
|
|
@@ -254,7 +254,7 @@ var ProForm = function ProForm(props, ref) {
|
|
|
254
254
|
clearNotShow: clearNotShow,
|
|
255
255
|
requiredOnView: requiredOnView,
|
|
256
256
|
required: required,
|
|
257
|
-
|
|
257
|
+
originalDiffTip: originalDiffTip,
|
|
258
258
|
globalControl: globalControl
|
|
259
259
|
}), children, footerRender()]
|
|
260
260
|
}))
|
|
@@ -69,7 +69,7 @@ export interface ProFormProps<Values = any> extends FormProps<Values> {
|
|
|
69
69
|
requiredOnView?: boolean;
|
|
70
70
|
formId?: string;
|
|
71
71
|
required?: boolean;
|
|
72
|
-
|
|
72
|
+
originalDiffTip?: boolean;
|
|
73
73
|
}
|
|
74
74
|
export interface Transform<T = any> {
|
|
75
75
|
normalize?: (value: StoreValue, prevValue: StoreValue, allValues: Store) => StoreValue;
|
|
@@ -3,7 +3,8 @@ interface Params {
|
|
|
3
3
|
originalValue: any;
|
|
4
4
|
value: any;
|
|
5
5
|
form: FormInstance;
|
|
6
|
+
name?: string | any[];
|
|
6
7
|
equalWith?: (originalValue: any, currentValue: any) => boolean;
|
|
7
8
|
}
|
|
8
|
-
export declare const
|
|
9
|
+
export declare const diffOriginal: (params: Params) => boolean;
|
|
9
10
|
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
2
|
+
import { isEqual, isFunction } from 'lodash';
|
|
3
|
+
var nullValue = [null, undefined, '']; // 输入框空值时可能存在的三种值 视为相等
|
|
4
|
+
var extractValue = function extractValue(obj, path) {
|
|
5
|
+
var value = obj || {};
|
|
6
|
+
if (!Object.keys(obj)) {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
var _iterator = _createForOfIteratorHelper(path),
|
|
10
|
+
_step;
|
|
11
|
+
try {
|
|
12
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
13
|
+
var key = _step.value;
|
|
14
|
+
if (value && value.hasOwnProperty(key)) {
|
|
15
|
+
value = value[key];
|
|
16
|
+
} else {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
} catch (err) {
|
|
21
|
+
_iterator.e(err);
|
|
22
|
+
} finally {
|
|
23
|
+
_iterator.f();
|
|
24
|
+
}
|
|
25
|
+
return Object.values(value);
|
|
26
|
+
};
|
|
27
|
+
/** 将解构后的name值,反向转回names,例如 formData {a:1, b:2} names ['a', 'b'] 返回 [1,2] */
|
|
28
|
+
var extractValues = function extractValues(data, pathString) {
|
|
29
|
+
if (pathString.includes('_')) {
|
|
30
|
+
var namePrefixes = pathString.split('-')[0].split('_').slice(0, -1);
|
|
31
|
+
return extractValue(data, namePrefixes);
|
|
32
|
+
}
|
|
33
|
+
return pathString.split('-').map(function (item) {
|
|
34
|
+
return data[item];
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
export var diffOriginal = function diffOriginal(params) {
|
|
38
|
+
var originalValue = params.originalValue,
|
|
39
|
+
_value = params.value,
|
|
40
|
+
equalWith = params.equalWith,
|
|
41
|
+
form = params.form,
|
|
42
|
+
name = params.name;
|
|
43
|
+
var value = !(name === null || name === void 0 ? void 0 : name.includes('-')) ? _value : extractValues(form.getFieldsValue(), name);
|
|
44
|
+
// 支持传入自定义比较事件
|
|
45
|
+
if (isFunction(equalWith)) {
|
|
46
|
+
return !equalWith(originalValue, value);
|
|
47
|
+
}
|
|
48
|
+
if (Array.isArray(originalValue)) {
|
|
49
|
+
return originalValue.some(function (valueItem, index) {
|
|
50
|
+
// 如果两个值有一个不是空值, 则进行深比较
|
|
51
|
+
if (!nullValue.includes(value === null || value === void 0 ? void 0 : value[index]) || !nullValue.includes(valueItem)) {
|
|
52
|
+
return !isEqual(value === null || value === void 0 ? void 0 : value[index], valueItem);
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (!nullValue.includes(value) || !nullValue.includes(originalValue)) {
|
|
58
|
+
return !isEqual(value, originalValue);
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
};
|
|
@@ -26,7 +26,7 @@ export declare const isTrim: (type: string, trim: boolean, configData: any) => a
|
|
|
26
26
|
*/
|
|
27
27
|
export declare const isUpperCase: (type: string, upperCase: boolean) => any;
|
|
28
28
|
export declare const weedOutProps: (data: Record<string, any>, keys: string[]) => {}[];
|
|
29
|
-
export declare const
|
|
29
|
+
export declare const diffField: (prevValues: any, curValues: any, names: NamePath[]) => boolean;
|
|
30
30
|
export declare const splitNameStr: (name: string) => NamePath[];
|
|
31
31
|
export declare const filterInternalFields: (values: any) => any;
|
|
32
32
|
export declare const getAllNamePath: (object: Record<string, any>, currentPath?: InternalNamePath) => InternalNamePath[];
|
|
@@ -108,7 +108,7 @@ export var weedOutProps = function weedOutProps(data, keys) {
|
|
|
108
108
|
return [obj, weedOut];
|
|
109
109
|
};
|
|
110
110
|
// 对比字段变化
|
|
111
|
-
export var
|
|
111
|
+
export var diffField = function diffField(prevValues, curValues, names) {
|
|
112
112
|
return names.some(function (name) {
|
|
113
113
|
return _.get(prevValues, name) !== _.get(curValues, name);
|
|
114
114
|
});
|
|
@@ -2,7 +2,7 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
3
|
var _excluded = ["value"];
|
|
4
4
|
import { set } from 'lodash';
|
|
5
|
-
import {
|
|
5
|
+
import { diffField } from '../utils';
|
|
6
6
|
export var transformValue = function transformValue(names, form, fieldName, _normalize, _getValueProps) {
|
|
7
7
|
return {
|
|
8
8
|
normalize: function normalize(value) {
|
|
@@ -41,7 +41,7 @@ export var transformValue = function transformValue(names, form, fieldName, _nor
|
|
|
41
41
|
}, cusRest);
|
|
42
42
|
},
|
|
43
43
|
shouldUpdate: function shouldUpdate(prevValues, curValues) {
|
|
44
|
-
return
|
|
44
|
+
return diffField(prevValues, curValues, names);
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
47
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "antd/es/form/style";
|
|
2
2
|
import _Form from "antd/es/form";
|
|
3
3
|
import { get } from 'lodash';
|
|
4
|
-
import {
|
|
4
|
+
import { diffOriginal } from './diffOriginal';
|
|
5
5
|
export var useChanged = function useChanged(_ref) {
|
|
6
6
|
var name = _ref.name,
|
|
7
7
|
names = _ref.names,
|
|
@@ -16,11 +16,12 @@ export var useChanged = function useChanged(_ref) {
|
|
|
16
16
|
if (notWatch) form = [];
|
|
17
17
|
var value = _Form.useWatch(namesStr || name, form);
|
|
18
18
|
if (notWatch) return [false];
|
|
19
|
-
var changed =
|
|
19
|
+
var changed = diffOriginal({
|
|
20
20
|
originalValue: originalValue,
|
|
21
21
|
value: value,
|
|
22
22
|
form: form,
|
|
23
|
-
equalWith: equalWith
|
|
23
|
+
equalWith: equalWith,
|
|
24
|
+
name: namesStr || name
|
|
24
25
|
});
|
|
25
26
|
return [changed, originalValue];
|
|
26
27
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "antd/es/form/style";
|
|
2
2
|
import _Form from "antd/es/form";
|
|
3
3
|
import { get } from 'lodash';
|
|
4
|
-
import {
|
|
4
|
+
import { diffOriginal } from './diffOriginal';
|
|
5
5
|
var toNamePath = function toNamePath(name) {
|
|
6
6
|
if (Array.isArray(name)) {
|
|
7
7
|
return name;
|
|
@@ -83,11 +83,12 @@ export var useListChanged = function useListChanged(params) {
|
|
|
83
83
|
if (notWatch) _form = [];
|
|
84
84
|
var value = _Form.useWatch(namePath, _form);
|
|
85
85
|
if (notWatch || noChange) return [false];
|
|
86
|
-
var changed =
|
|
86
|
+
var changed = diffOriginal({
|
|
87
87
|
value: value,
|
|
88
88
|
originalValue: originalValue,
|
|
89
89
|
form: form,
|
|
90
|
-
equalWith: equalWith
|
|
90
|
+
equalWith: equalWith,
|
|
91
|
+
name: namesStr || name
|
|
91
92
|
});
|
|
92
93
|
return [changed, originalValue];
|
|
93
94
|
};
|
|
@@ -18,10 +18,10 @@ var RenderColumn = function RenderColumn(props) {
|
|
|
18
18
|
ellipsis = props.ellipsis,
|
|
19
19
|
width = props.width,
|
|
20
20
|
originalValue = props.originalValue,
|
|
21
|
-
|
|
21
|
+
originalDiffTip = props.originalDiffTip;
|
|
22
22
|
if (originalValue !== undefined) {
|
|
23
23
|
var renderNode = value ? node : '-';
|
|
24
|
-
if (ellipsis ||
|
|
24
|
+
if (ellipsis || originalDiffTip) {
|
|
25
25
|
if (ellipsis) {
|
|
26
26
|
renderNode = _jsx(Text, {
|
|
27
27
|
style: {
|
|
@@ -38,7 +38,7 @@ var RenderColumn = function RenderColumn(props) {
|
|
|
38
38
|
style: {
|
|
39
39
|
width: width
|
|
40
40
|
},
|
|
41
|
-
title:
|
|
41
|
+
title: originalDiffTip ? _jsxs(_Fragment, {
|
|
42
42
|
children: ["\u521D\u59CB\u503C\uFF1A", originalValue, _jsx("br", {}), ellipsis ? "\u5F53\u524D\u503C\uFF1A".concat(currentValue) : undefined]
|
|
43
43
|
}) : node,
|
|
44
44
|
children: renderNode
|
|
@@ -26,7 +26,7 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
|
|
|
26
26
|
precision?: number;
|
|
27
27
|
code?: string | string[] | ((text: any, record: any) => string);
|
|
28
28
|
copyable?: boolean;
|
|
29
|
-
|
|
29
|
+
originalDiffTip?: boolean;
|
|
30
30
|
prefix?: string | ReactNode | ((value: any, record?: any, index?: number) => any);
|
|
31
31
|
suffix?: string | ReactNode | ((value: any, record?: any, index?: number) => any);
|
|
32
32
|
tooltip?: ReactNode | {
|
package/es/ProTable/utils.js
CHANGED
|
@@ -57,8 +57,8 @@ export var formatColumn = function formatColumn(column, originalObj, dataSourceO
|
|
|
57
57
|
prefix = column.prefix,
|
|
58
58
|
suffix = column.suffix,
|
|
59
59
|
dataIndex = column.dataIndex,
|
|
60
|
-
_column$
|
|
61
|
-
|
|
60
|
+
_column$originalDiffT = column.originalDiffTip,
|
|
61
|
+
originalDiffTip = _column$originalDiffT === void 0 ? true : _column$originalDiffT;
|
|
62
62
|
// 前缀处理
|
|
63
63
|
var prefixNode = function prefixNode(value, record, index) {
|
|
64
64
|
if (!prefix) {
|
|
@@ -122,7 +122,7 @@ export var formatColumn = function formatColumn(column, originalObj, dataSourceO
|
|
|
122
122
|
node: renderValue,
|
|
123
123
|
value: value,
|
|
124
124
|
currentValue: renderValue,
|
|
125
|
-
|
|
125
|
+
originalDiffTip: originalDiffTip
|
|
126
126
|
});
|
|
127
127
|
};
|
|
128
128
|
// 千分位, 千分位带CNY前缀
|
|
@@ -151,7 +151,7 @@ export var formatColumn = function formatColumn(column, originalObj, dataSourceO
|
|
|
151
151
|
node: node,
|
|
152
152
|
value: value,
|
|
153
153
|
currentValue: renderValue,
|
|
154
|
-
|
|
154
|
+
originalDiffTip: originalDiffTip
|
|
155
155
|
});
|
|
156
156
|
};
|
|
157
157
|
} else if (['datePicker', 'date', 'dateTime', 'dateStartTime', 'dateEndTime', 'dateStartEndTime'].includes(valueType)) {
|
|
@@ -203,7 +203,7 @@ export var formatColumn = function formatColumn(column, originalObj, dataSourceO
|
|
|
203
203
|
node: node,
|
|
204
204
|
value: value,
|
|
205
205
|
currentValue: renderValue,
|
|
206
|
-
|
|
206
|
+
originalDiffTip: originalDiffTip
|
|
207
207
|
});
|
|
208
208
|
};
|
|
209
209
|
} else if (['enumName', 'enumCodeName'].includes(valueType)) {
|
|
@@ -224,7 +224,7 @@ export var formatColumn = function formatColumn(column, originalObj, dataSourceO
|
|
|
224
224
|
node: node,
|
|
225
225
|
value: value,
|
|
226
226
|
currentValue: renderValue,
|
|
227
|
-
|
|
227
|
+
originalDiffTip: originalDiffTip
|
|
228
228
|
});
|
|
229
229
|
};
|
|
230
230
|
} else if (precision || prefix || suffix) {
|
|
@@ -250,7 +250,7 @@ export var formatColumn = function formatColumn(column, originalObj, dataSourceO
|
|
|
250
250
|
node: node,
|
|
251
251
|
value: value,
|
|
252
252
|
currentValue: renderValue,
|
|
253
|
-
|
|
253
|
+
originalDiffTip: originalDiffTip
|
|
254
254
|
});
|
|
255
255
|
};
|
|
256
256
|
} else if (valueType === 'address') {
|
|
@@ -322,7 +322,7 @@ export var formatColumn = function formatColumn(column, originalObj, dataSourceO
|
|
|
322
322
|
node: value,
|
|
323
323
|
value: value,
|
|
324
324
|
currentValue: value || '-',
|
|
325
|
-
|
|
325
|
+
originalDiffTip: originalDiffTip
|
|
326
326
|
}), suffixNode(value, record, index)]
|
|
327
327
|
});
|
|
328
328
|
};
|
|
@@ -344,7 +344,7 @@ export var formatColumn = function formatColumn(column, originalObj, dataSourceO
|
|
|
344
344
|
node: node,
|
|
345
345
|
value: value,
|
|
346
346
|
currentValue: value || '-',
|
|
347
|
-
|
|
347
|
+
originalDiffTip: originalDiffTip
|
|
348
348
|
});
|
|
349
349
|
};
|
|
350
350
|
}
|
|
@@ -75,7 +75,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
75
75
|
virtualKey = config.virtualKey,
|
|
76
76
|
viewEmpty = config.viewEmpty,
|
|
77
77
|
originalValues = config.originalValues,
|
|
78
|
-
|
|
78
|
+
originalDiffTip = config.originalDiffTip;
|
|
79
79
|
var _fieldProps = fieldProps || formItemProps || {};
|
|
80
80
|
var _rules = rules || [];
|
|
81
81
|
var _required = required;
|
|
@@ -508,7 +508,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
508
508
|
delete _formItemProps.rules;
|
|
509
509
|
}
|
|
510
510
|
var _className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, className, className), 'pro-form-item-changed', changed));
|
|
511
|
-
var originalTitle =
|
|
511
|
+
var originalTitle = originalDiffTip ? (0, _jsxRuntime.jsxs)(_antd.Space, {
|
|
512
512
|
children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _lodash.omit)(componentProps, ['onFieldChange'])), {}, {
|
|
513
513
|
isView: true,
|
|
514
514
|
value: originalValue,
|
|
@@ -530,7 +530,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
530
530
|
});
|
|
531
531
|
return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
|
|
532
532
|
value: componentProps === null || componentProps === void 0 ? void 0 : componentProps.otherProps,
|
|
533
|
-
children: !
|
|
533
|
+
children: !originalDiffTip || ['FormList', 'ProEditTable'].includes(type) ? FormItem : (0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
534
534
|
title: originalTitle,
|
|
535
535
|
open: changed ? undefined : false,
|
|
536
536
|
children: FormItem
|
|
@@ -23,7 +23,7 @@ var _tools = require("./utils/tools");
|
|
|
23
23
|
var _components = require("./components");
|
|
24
24
|
var _empty = _interopRequireDefault(require("../assets/empty.png"));
|
|
25
25
|
var _locale = _interopRequireWildcard(require("../locale"));
|
|
26
|
-
var _excluded = ["value", "onChange", "className", "columns", "type", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "otherProps", "requiredAlign", "summary", "max", "headerRender", "pagination", "originalValues", "
|
|
26
|
+
var _excluded = ["value", "onChange", "className", "columns", "type", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "otherProps", "requiredAlign", "summary", "max", "headerRender", "pagination", "originalValues", "originalDiffTip", "rowKey"];
|
|
27
27
|
var ProEditTable = function ProEditTable(_ref, ref) {
|
|
28
28
|
var _resetProps$id, _resetProps$id$split, _themeConfig$data2, _value$2;
|
|
29
29
|
var value = _ref.value,
|
|
@@ -52,7 +52,7 @@ var ProEditTable = function ProEditTable(_ref, ref) {
|
|
|
52
52
|
headerRender = _ref.headerRender,
|
|
53
53
|
pagination = _ref.pagination,
|
|
54
54
|
originalValues = _ref.originalValues,
|
|
55
|
-
|
|
55
|
+
originalDiffTip = _ref.originalDiffTip,
|
|
56
56
|
rowKey = _ref.rowKey,
|
|
57
57
|
resetProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
58
58
|
// 上下文form
|
|
@@ -154,7 +154,7 @@ var ProEditTable = function ProEditTable(_ref, ref) {
|
|
|
154
154
|
tableLength: value === null || value === void 0 ? void 0 : value.length,
|
|
155
155
|
page: page,
|
|
156
156
|
originalValues: originalValues,
|
|
157
|
-
|
|
157
|
+
originalDiffTip: originalDiffTip,
|
|
158
158
|
prefixCls: prefixCls
|
|
159
159
|
};
|
|
160
160
|
// 编辑行设置下样式
|
|
@@ -130,7 +130,7 @@ export interface ProEditTableProps<T = any> extends Omit<TableProps<T>, 'onChang
|
|
|
130
130
|
* @description 原始数据源,是否tooltip显示
|
|
131
131
|
* @default -
|
|
132
132
|
*/
|
|
133
|
-
|
|
133
|
+
originalDiffTip?: boolean;
|
|
134
134
|
/**
|
|
135
135
|
* @description 可编辑表格的类型,单行、多行、单元格编辑
|
|
136
136
|
* @default false
|
|
@@ -50,7 +50,7 @@ var Render = function Render(props) {
|
|
|
50
50
|
originalValues = props.originalValues,
|
|
51
51
|
equalWith = props.equalWith,
|
|
52
52
|
requiredOnView = props.requiredOnView,
|
|
53
|
-
|
|
53
|
+
originalDiffTip = props.originalDiffTip,
|
|
54
54
|
confirm = props.confirm,
|
|
55
55
|
globalControl = props.globalControl;
|
|
56
56
|
var colProps = props.colProps;
|
|
@@ -432,7 +432,7 @@ var Render = function Render(props) {
|
|
|
432
432
|
});
|
|
433
433
|
}
|
|
434
434
|
// 不渲染tooltip
|
|
435
|
-
if (!
|
|
435
|
+
if (!originalDiffTip || ['FormList', 'ProEditTable'].includes(type)) {
|
|
436
436
|
return formItem;
|
|
437
437
|
}
|
|
438
438
|
var title = (0, _jsxRuntime.jsxs)(_antd.Space, {
|
|
@@ -17,7 +17,7 @@ interface Props<T = any> {
|
|
|
17
17
|
clearNotShow?: boolean;
|
|
18
18
|
requiredOnView?: boolean;
|
|
19
19
|
required?: boolean | (() => boolean);
|
|
20
|
-
|
|
20
|
+
originalDiffTip?: boolean;
|
|
21
21
|
globalControl?: boolean;
|
|
22
22
|
}
|
|
23
23
|
declare const RenderFields: React.FC<Props>;
|
|
@@ -33,7 +33,7 @@ var RenderFields = function RenderFields(props) {
|
|
|
33
33
|
outerClearNotShow = props.clearNotShow,
|
|
34
34
|
requiredOnView = props.requiredOnView,
|
|
35
35
|
required = props.required,
|
|
36
|
-
|
|
36
|
+
originalDiffTip = props.originalDiffTip,
|
|
37
37
|
globalControl = props.globalControl;
|
|
38
38
|
// 是否包含隐藏字段
|
|
39
39
|
var hiddenData = columns.filter(function (item) {
|
|
@@ -213,7 +213,7 @@ var RenderFields = function RenderFields(props) {
|
|
|
213
213
|
originalValues: originalValues,
|
|
214
214
|
equalWith: equalWith,
|
|
215
215
|
requiredOnView: requiredOnView,
|
|
216
|
-
|
|
216
|
+
originalDiffTip: originalDiffTip,
|
|
217
217
|
globalControl: globalControl
|
|
218
218
|
})
|
|
219
219
|
}, "".concat(_formItemProps.name || _formItemProps.label).concat(index));
|
package/lib/ProForm/index.js
CHANGED
|
@@ -25,7 +25,7 @@ var _index = require("./utils/index");
|
|
|
25
25
|
var _useForm3 = require("./utils/useForm");
|
|
26
26
|
var _useFieldProps = require("./utils/useFieldProps");
|
|
27
27
|
var _locale = _interopRequireDefault(require("../locale"));
|
|
28
|
-
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", "originalValues", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "
|
|
28
|
+
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", "originalValues", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "originalDiffTip", "formKey", "globalControl"];
|
|
29
29
|
var ProForm = function ProForm(props, ref) {
|
|
30
30
|
var _forms$formKey, _localStorage;
|
|
31
31
|
var _props$mode = props.mode,
|
|
@@ -64,8 +64,8 @@ var ProForm = function ProForm(props, ref) {
|
|
|
64
64
|
requiredOnView = _props$requiredOnView === void 0 ? true : _props$requiredOnView,
|
|
65
65
|
formId = props.formId,
|
|
66
66
|
required = props.required,
|
|
67
|
-
_props$
|
|
68
|
-
|
|
67
|
+
_props$originalDiffTi = props.originalDiffTip,
|
|
68
|
+
originalDiffTip = _props$originalDiffTi === void 0 ? true : _props$originalDiffTi,
|
|
69
69
|
formKey = props.formKey,
|
|
70
70
|
globalControl = props.globalControl,
|
|
71
71
|
otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
@@ -255,7 +255,7 @@ var ProForm = function ProForm(props, ref) {
|
|
|
255
255
|
clearNotShow: clearNotShow,
|
|
256
256
|
requiredOnView: requiredOnView,
|
|
257
257
|
required: required,
|
|
258
|
-
|
|
258
|
+
originalDiffTip: originalDiffTip,
|
|
259
259
|
globalControl: globalControl
|
|
260
260
|
}), children, footerRender()]
|
|
261
261
|
}))
|
|
@@ -69,7 +69,7 @@ export interface ProFormProps<Values = any> extends FormProps<Values> {
|
|
|
69
69
|
requiredOnView?: boolean;
|
|
70
70
|
formId?: string;
|
|
71
71
|
required?: boolean;
|
|
72
|
-
|
|
72
|
+
originalDiffTip?: boolean;
|
|
73
73
|
}
|
|
74
74
|
export interface Transform<T = any> {
|
|
75
75
|
normalize?: (value: StoreValue, prevValue: StoreValue, allValues: Store) => StoreValue;
|
|
@@ -3,7 +3,8 @@ interface Params {
|
|
|
3
3
|
originalValue: any;
|
|
4
4
|
value: any;
|
|
5
5
|
form: FormInstance;
|
|
6
|
+
name?: string | any[];
|
|
6
7
|
equalWith?: (originalValue: any, currentValue: any) => boolean;
|
|
7
8
|
}
|
|
8
|
-
export declare const
|
|
9
|
+
export declare const diffOriginal: (params: Params) => boolean;
|
|
9
10
|
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.diffOriginal = void 0;
|
|
8
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
9
|
+
var _lodash = require("lodash");
|
|
10
|
+
var nullValue = [null, undefined, '']; // 输入框空值时可能存在的三种值 视为相等
|
|
11
|
+
var extractValue = function extractValue(obj, path) {
|
|
12
|
+
var value = obj || {};
|
|
13
|
+
if (!Object.keys(obj)) {
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
var _iterator = (0, _createForOfIteratorHelper2.default)(path),
|
|
17
|
+
_step;
|
|
18
|
+
try {
|
|
19
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
20
|
+
var key = _step.value;
|
|
21
|
+
if (value && value.hasOwnProperty(key)) {
|
|
22
|
+
value = value[key];
|
|
23
|
+
} else {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
} catch (err) {
|
|
28
|
+
_iterator.e(err);
|
|
29
|
+
} finally {
|
|
30
|
+
_iterator.f();
|
|
31
|
+
}
|
|
32
|
+
return Object.values(value);
|
|
33
|
+
};
|
|
34
|
+
/** 将解构后的name值,反向转回names,例如 formData {a:1, b:2} names ['a', 'b'] 返回 [1,2] */
|
|
35
|
+
var extractValues = function extractValues(data, pathString) {
|
|
36
|
+
if (pathString.includes('_')) {
|
|
37
|
+
var namePrefixes = pathString.split('-')[0].split('_').slice(0, -1);
|
|
38
|
+
return extractValue(data, namePrefixes);
|
|
39
|
+
}
|
|
40
|
+
return pathString.split('-').map(function (item) {
|
|
41
|
+
return data[item];
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
|
|
45
|
+
var originalValue = params.originalValue,
|
|
46
|
+
_value = params.value,
|
|
47
|
+
equalWith = params.equalWith,
|
|
48
|
+
form = params.form,
|
|
49
|
+
name = params.name;
|
|
50
|
+
var value = !(name === null || name === void 0 ? void 0 : name.includes('-')) ? _value : extractValues(form.getFieldsValue(), name);
|
|
51
|
+
// 支持传入自定义比较事件
|
|
52
|
+
if ((0, _lodash.isFunction)(equalWith)) {
|
|
53
|
+
return !equalWith(originalValue, value);
|
|
54
|
+
}
|
|
55
|
+
if (Array.isArray(originalValue)) {
|
|
56
|
+
return originalValue.some(function (valueItem, index) {
|
|
57
|
+
// 如果两个值有一个不是空值, 则进行深比较
|
|
58
|
+
if (!nullValue.includes(value === null || value === void 0 ? void 0 : value[index]) || !nullValue.includes(valueItem)) {
|
|
59
|
+
return !(0, _lodash.isEqual)(value === null || value === void 0 ? void 0 : value[index], valueItem);
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (!nullValue.includes(value) || !nullValue.includes(originalValue)) {
|
|
65
|
+
return !(0, _lodash.isEqual)(value, originalValue);
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
};
|
|
@@ -26,7 +26,7 @@ export declare const isTrim: (type: string, trim: boolean, configData: any) => a
|
|
|
26
26
|
*/
|
|
27
27
|
export declare const isUpperCase: (type: string, upperCase: boolean) => any;
|
|
28
28
|
export declare const weedOutProps: (data: Record<string, any>, keys: string[]) => {}[];
|
|
29
|
-
export declare const
|
|
29
|
+
export declare const diffField: (prevValues: any, curValues: any, names: NamePath[]) => boolean;
|
|
30
30
|
export declare const splitNameStr: (name: string) => NamePath[];
|
|
31
31
|
export declare const filterInternalFields: (values: any) => any;
|
|
32
32
|
export declare const getAllNamePath: (object: Record<string, any>, currentPath?: InternalNamePath) => InternalNamePath[];
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.getAllNamePath = exports.findOptionByValue = exports.filterInternalFields = exports.equalDependencies = exports.
|
|
8
|
+
exports.getAllNamePath = exports.findOptionByValue = exports.filterInternalFields = exports.equalDependencies = exports.diffField = exports.deleteForPath = exports.customEqualForFun = void 0;
|
|
9
9
|
exports.getArrayBeforeNumber = getArrayBeforeNumber;
|
|
10
10
|
exports.hasRowKey = exports.getLayout = exports.getDecimalDigits = void 0;
|
|
11
11
|
exports.initialValuesToNames = initialValuesToNames;
|
|
@@ -124,7 +124,7 @@ var weedOutProps = exports.weedOutProps = function weedOutProps(data, keys) {
|
|
|
124
124
|
return [obj, weedOut];
|
|
125
125
|
};
|
|
126
126
|
// 对比字段变化
|
|
127
|
-
var
|
|
127
|
+
var diffField = exports.diffField = function diffField(prevValues, curValues, names) {
|
|
128
128
|
return names.some(function (name) {
|
|
129
129
|
return _lodash.default.get(prevValues, name) !== _lodash.default.get(curValues, name);
|
|
130
130
|
});
|
|
@@ -48,7 +48,7 @@ var transformValue = exports.transformValue = function transformValue(names, for
|
|
|
48
48
|
}, cusRest);
|
|
49
49
|
},
|
|
50
50
|
shouldUpdate: function shouldUpdate(prevValues, curValues) {
|
|
51
|
-
return (0, _utils.
|
|
51
|
+
return (0, _utils.diffField)(prevValues, curValues, names);
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
54
|
};
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useChanged = void 0;
|
|
7
7
|
var _antd = require("antd");
|
|
8
8
|
var _lodash = require("lodash");
|
|
9
|
-
var
|
|
9
|
+
var _diffOriginal = require("./diffOriginal");
|
|
10
10
|
var useChanged = exports.useChanged = function useChanged(_ref) {
|
|
11
11
|
var name = _ref.name,
|
|
12
12
|
names = _ref.names,
|
|
@@ -21,11 +21,12 @@ var useChanged = exports.useChanged = function useChanged(_ref) {
|
|
|
21
21
|
if (notWatch) form = [];
|
|
22
22
|
var value = _antd.Form.useWatch(namesStr || name, form);
|
|
23
23
|
if (notWatch) return [false];
|
|
24
|
-
var changed = (0,
|
|
24
|
+
var changed = (0, _diffOriginal.diffOriginal)({
|
|
25
25
|
originalValue: originalValue,
|
|
26
26
|
value: value,
|
|
27
27
|
form: form,
|
|
28
|
-
equalWith: equalWith
|
|
28
|
+
equalWith: equalWith,
|
|
29
|
+
name: namesStr || name
|
|
29
30
|
});
|
|
30
31
|
return [changed, originalValue];
|
|
31
32
|
};
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useListChanged = void 0;
|
|
7
7
|
var _antd = require("antd");
|
|
8
8
|
var _lodash = require("lodash");
|
|
9
|
-
var
|
|
9
|
+
var _diffOriginal = require("./diffOriginal");
|
|
10
10
|
var toNamePath = function toNamePath(name) {
|
|
11
11
|
if (Array.isArray(name)) {
|
|
12
12
|
return name;
|
|
@@ -88,11 +88,12 @@ var useListChanged = exports.useListChanged = function useListChanged(params) {
|
|
|
88
88
|
if (notWatch) _form = [];
|
|
89
89
|
var value = _antd.Form.useWatch(namePath, _form);
|
|
90
90
|
if (notWatch || noChange) return [false];
|
|
91
|
-
var changed = (0,
|
|
91
|
+
var changed = (0, _diffOriginal.diffOriginal)({
|
|
92
92
|
value: value,
|
|
93
93
|
originalValue: originalValue,
|
|
94
94
|
form: form,
|
|
95
|
-
equalWith: equalWith
|
|
95
|
+
equalWith: equalWith,
|
|
96
|
+
name: namesStr || name
|
|
96
97
|
});
|
|
97
98
|
return [changed, originalValue];
|
|
98
99
|
};
|
|
@@ -22,10 +22,10 @@ var RenderColumn = function RenderColumn(props) {
|
|
|
22
22
|
ellipsis = props.ellipsis,
|
|
23
23
|
width = props.width,
|
|
24
24
|
originalValue = props.originalValue,
|
|
25
|
-
|
|
25
|
+
originalDiffTip = props.originalDiffTip;
|
|
26
26
|
if (originalValue !== undefined) {
|
|
27
27
|
var renderNode = value ? node : '-';
|
|
28
|
-
if (ellipsis ||
|
|
28
|
+
if (ellipsis || originalDiffTip) {
|
|
29
29
|
if (ellipsis) {
|
|
30
30
|
renderNode = (0, _jsxRuntime.jsx)(Text, {
|
|
31
31
|
style: {
|
|
@@ -42,7 +42,7 @@ var RenderColumn = function RenderColumn(props) {
|
|
|
42
42
|
style: {
|
|
43
43
|
width: width
|
|
44
44
|
},
|
|
45
|
-
title:
|
|
45
|
+
title: originalDiffTip ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
46
46
|
children: ["\u521D\u59CB\u503C\uFF1A", originalValue, (0, _jsxRuntime.jsx)("br", {}), ellipsis ? "\u5F53\u524D\u503C\uFF1A".concat(currentValue) : undefined]
|
|
47
47
|
}) : node,
|
|
48
48
|
children: renderNode
|
|
@@ -26,7 +26,7 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
|
|
|
26
26
|
precision?: number;
|
|
27
27
|
code?: string | string[] | ((text: any, record: any) => string);
|
|
28
28
|
copyable?: boolean;
|
|
29
|
-
|
|
29
|
+
originalDiffTip?: boolean;
|
|
30
30
|
prefix?: string | ReactNode | ((value: any, record?: any, index?: number) => any);
|
|
31
31
|
suffix?: string | ReactNode | ((value: any, record?: any, index?: number) => any);
|
|
32
32
|
tooltip?: ReactNode | {
|
package/lib/ProTable/utils.js
CHANGED
|
@@ -64,8 +64,8 @@ var formatColumn = exports.formatColumn = function formatColumn(column, original
|
|
|
64
64
|
prefix = column.prefix,
|
|
65
65
|
suffix = column.suffix,
|
|
66
66
|
dataIndex = column.dataIndex,
|
|
67
|
-
_column$
|
|
68
|
-
|
|
67
|
+
_column$originalDiffT = column.originalDiffTip,
|
|
68
|
+
originalDiffTip = _column$originalDiffT === void 0 ? true : _column$originalDiffT;
|
|
69
69
|
// 前缀处理
|
|
70
70
|
var prefixNode = function prefixNode(value, record, index) {
|
|
71
71
|
if (!prefix) {
|
|
@@ -129,7 +129,7 @@ var formatColumn = exports.formatColumn = function formatColumn(column, original
|
|
|
129
129
|
node: renderValue,
|
|
130
130
|
value: value,
|
|
131
131
|
currentValue: renderValue,
|
|
132
|
-
|
|
132
|
+
originalDiffTip: originalDiffTip
|
|
133
133
|
});
|
|
134
134
|
};
|
|
135
135
|
// 千分位, 千分位带CNY前缀
|
|
@@ -158,7 +158,7 @@ var formatColumn = exports.formatColumn = function formatColumn(column, original
|
|
|
158
158
|
node: node,
|
|
159
159
|
value: value,
|
|
160
160
|
currentValue: renderValue,
|
|
161
|
-
|
|
161
|
+
originalDiffTip: originalDiffTip
|
|
162
162
|
});
|
|
163
163
|
};
|
|
164
164
|
} else if (['datePicker', 'date', 'dateTime', 'dateStartTime', 'dateEndTime', 'dateStartEndTime'].includes(valueType)) {
|
|
@@ -210,7 +210,7 @@ var formatColumn = exports.formatColumn = function formatColumn(column, original
|
|
|
210
210
|
node: node,
|
|
211
211
|
value: value,
|
|
212
212
|
currentValue: renderValue,
|
|
213
|
-
|
|
213
|
+
originalDiffTip: originalDiffTip
|
|
214
214
|
});
|
|
215
215
|
};
|
|
216
216
|
} else if (['enumName', 'enumCodeName'].includes(valueType)) {
|
|
@@ -231,7 +231,7 @@ var formatColumn = exports.formatColumn = function formatColumn(column, original
|
|
|
231
231
|
node: node,
|
|
232
232
|
value: value,
|
|
233
233
|
currentValue: renderValue,
|
|
234
|
-
|
|
234
|
+
originalDiffTip: originalDiffTip
|
|
235
235
|
});
|
|
236
236
|
};
|
|
237
237
|
} else if (precision || prefix || suffix) {
|
|
@@ -257,7 +257,7 @@ var formatColumn = exports.formatColumn = function formatColumn(column, original
|
|
|
257
257
|
node: node,
|
|
258
258
|
value: value,
|
|
259
259
|
currentValue: renderValue,
|
|
260
|
-
|
|
260
|
+
originalDiffTip: originalDiffTip
|
|
261
261
|
});
|
|
262
262
|
};
|
|
263
263
|
} else if (valueType === 'address') {
|
|
@@ -329,7 +329,7 @@ var formatColumn = exports.formatColumn = function formatColumn(column, original
|
|
|
329
329
|
node: value,
|
|
330
330
|
value: value,
|
|
331
331
|
currentValue: value || '-',
|
|
332
|
-
|
|
332
|
+
originalDiffTip: originalDiffTip
|
|
333
333
|
}), suffixNode(value, record, index)]
|
|
334
334
|
});
|
|
335
335
|
};
|
|
@@ -351,7 +351,7 @@ var formatColumn = exports.formatColumn = function formatColumn(column, original
|
|
|
351
351
|
node: node,
|
|
352
352
|
value: value,
|
|
353
353
|
currentValue: value || '-',
|
|
354
|
-
|
|
354
|
+
originalDiffTip: originalDiffTip
|
|
355
355
|
});
|
|
356
356
|
};
|
|
357
357
|
}
|
package/package.json
CHANGED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { isEqual, isFunction } from 'lodash';
|
|
2
|
-
var nullValue = [null, undefined, '']; // 输入框空值时可能存在的三种值 视为相等
|
|
3
|
-
export var contrastOriginal = function contrastOriginal(params) {
|
|
4
|
-
var originalValue = params.originalValue,
|
|
5
|
-
value = params.value,
|
|
6
|
-
equalWith = params.equalWith;
|
|
7
|
-
// 支持传入自定义比较事件
|
|
8
|
-
if (isFunction(equalWith)) {
|
|
9
|
-
return !equalWith(originalValue, value);
|
|
10
|
-
}
|
|
11
|
-
if (Array.isArray(originalValue)) {
|
|
12
|
-
return originalValue.some(function (valueItem, index) {
|
|
13
|
-
// 如果两个值有一个不是空值, 则进行深比较
|
|
14
|
-
if (!nullValue.includes(value === null || value === void 0 ? void 0 : value[index]) || !nullValue.includes(valueItem)) {
|
|
15
|
-
return !isEqual(value === null || value === void 0 ? void 0 : value[index], valueItem);
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
if (!nullValue.includes(value) || !nullValue.includes(originalValue)) {
|
|
21
|
-
return !isEqual(value, originalValue);
|
|
22
|
-
}
|
|
23
|
-
return false;
|
|
24
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.contrastOriginal = void 0;
|
|
7
|
-
var _lodash = require("lodash");
|
|
8
|
-
var nullValue = [null, undefined, '']; // 输入框空值时可能存在的三种值 视为相等
|
|
9
|
-
var contrastOriginal = exports.contrastOriginal = function contrastOriginal(params) {
|
|
10
|
-
var originalValue = params.originalValue,
|
|
11
|
-
value = params.value,
|
|
12
|
-
equalWith = params.equalWith;
|
|
13
|
-
// 支持传入自定义比较事件
|
|
14
|
-
if ((0, _lodash.isFunction)(equalWith)) {
|
|
15
|
-
return !equalWith(originalValue, value);
|
|
16
|
-
}
|
|
17
|
-
if (Array.isArray(originalValue)) {
|
|
18
|
-
return originalValue.some(function (valueItem, index) {
|
|
19
|
-
// 如果两个值有一个不是空值, 则进行深比较
|
|
20
|
-
if (!nullValue.includes(value === null || value === void 0 ? void 0 : value[index]) || !nullValue.includes(valueItem)) {
|
|
21
|
-
return !(0, _lodash.isEqual)(value === null || value === void 0 ? void 0 : value[index], valueItem);
|
|
22
|
-
}
|
|
23
|
-
return false;
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
if (!nullValue.includes(value) || !nullValue.includes(originalValue)) {
|
|
27
|
-
return !(0, _lodash.isEqual)(value, originalValue);
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
};
|