@zat-design/sisyphus-react 3.9.8 → 3.10.0-beta.1
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 +0 -5
- package/dist/less.esm.css +0 -5
- package/es/ProEditTable/components/ActionButton/index.js +57 -9
- package/es/ProEditTable/components/RenderField/index.js +23 -14
- package/es/ProEditTable/components/RenderToolbar/index.js +18 -16
- package/es/ProEditTable/index.js +1 -1
- package/es/ProEditTable/propsType.d.ts +6 -3
- package/es/ProEditTable/utils/diffOriginal.d.ts +1 -1
- package/es/ProEditTable/utils/diffOriginal.js +21 -22
- package/es/ProEditTable/utils/index.js +35 -30
- package/es/ProForm/components/combination/Group/index.js +7 -2
- package/es/ProForm/components/combination/Group/propsType.d.ts +1 -0
- package/es/ProForm/components/combination/Group/utils.d.ts +6 -1
- package/es/ProForm/components/combination/Group/utils.js +28 -6
- package/es/ProForm/components/render/Render.js +39 -22
- package/es/ProForm/components/render/RenderFields.d.ts +1 -0
- package/es/ProForm/components/render/RenderFields.js +8 -4
- package/es/ProForm/components/render/propsType.d.ts +3 -1
- package/es/ProForm/index.js +5 -2
- package/es/ProForm/propsType.d.ts +3 -0
- package/es/ProForm/utils/diffOriginal.js +9 -2
- package/es/ProForm/utils/useShouldUpdate.js +25 -5
- package/es/ProForm/utils/valueType.d.ts +8 -0
- package/es/ProForm/utils/valueType.js +99 -33
- package/es/ProLayout/components/ProHeader/style/index.less +0 -8
- package/es/ProTable/components/FormatColumn/index.js +2 -1
- package/es/ProTable/components/RenderColumn/index.d.ts +2 -0
- package/es/ProTable/components/RenderColumn/index.js +10 -2
- package/es/ProTable/hooks/useAntdTable.js +4 -3
- package/es/ProTable/propsType.d.ts +2 -0
- package/es/ProTable/utils/index.d.ts +4 -0
- package/es/ProTable/utils/index.js +15 -0
- package/lib/ProEditTable/components/ActionButton/index.js +57 -9
- package/lib/ProEditTable/components/RenderField/index.js +22 -13
- package/lib/ProEditTable/components/RenderToolbar/index.js +18 -16
- package/lib/ProEditTable/index.js +1 -1
- package/lib/ProEditTable/propsType.d.ts +6 -3
- package/lib/ProEditTable/utils/diffOriginal.d.ts +1 -1
- package/lib/ProEditTable/utils/diffOriginal.js +21 -22
- package/lib/ProEditTable/utils/index.js +35 -30
- package/lib/ProForm/components/combination/Group/index.js +7 -2
- package/lib/ProForm/components/combination/Group/propsType.d.ts +1 -0
- package/lib/ProForm/components/combination/Group/utils.d.ts +6 -1
- package/lib/ProForm/components/combination/Group/utils.js +28 -6
- package/lib/ProForm/components/render/Render.js +39 -22
- package/lib/ProForm/components/render/RenderFields.d.ts +1 -0
- package/lib/ProForm/components/render/RenderFields.js +8 -4
- package/lib/ProForm/components/render/propsType.d.ts +3 -1
- package/lib/ProForm/index.js +5 -2
- package/lib/ProForm/propsType.d.ts +3 -0
- package/lib/ProForm/utils/diffOriginal.js +9 -2
- package/lib/ProForm/utils/useShouldUpdate.js +25 -5
- package/lib/ProForm/utils/valueType.d.ts +8 -0
- package/lib/ProForm/utils/valueType.js +100 -34
- package/lib/ProLayout/components/ProHeader/style/index.less +0 -8
- package/lib/ProTable/components/FormatColumn/index.js +2 -1
- package/lib/ProTable/components/RenderColumn/index.d.ts +2 -0
- package/lib/ProTable/components/RenderColumn/index.js +10 -2
- package/lib/ProTable/hooks/useAntdTable.js +3 -2
- package/lib/ProTable/propsType.d.ts +2 -0
- package/lib/ProTable/utils/index.d.ts +4 -0
- package/lib/ProTable/utils/index.js +17 -1
- package/package.json +2 -1
@@ -120,7 +120,7 @@ export var getReactiveProps = function getReactiveProps(params) {
|
|
120
120
|
show = params.show,
|
121
121
|
component = params.component,
|
122
122
|
fieldProps = params.fieldProps,
|
123
|
-
|
123
|
+
desensitization = params.desensitization;
|
124
124
|
var values = namePath ? form.getFieldValue(namePath) : form.getFieldsValue();
|
125
125
|
var _disabled = isFunction(disabled) ? disabled(values, {
|
126
126
|
form: form,
|
@@ -142,17 +142,31 @@ export var getReactiveProps = function getReactiveProps(params) {
|
|
142
142
|
index: index,
|
143
143
|
namePath: namePath
|
144
144
|
}) : fieldProps;
|
145
|
+
var _desensitization = isFunction(desensitization) ? desensitization(values, {
|
146
|
+
form: form,
|
147
|
+
index: index,
|
148
|
+
namePath: namePath
|
149
|
+
}) : desensitization;
|
145
150
|
return {
|
146
151
|
disabled: _disabled,
|
147
152
|
show: _show,
|
148
153
|
component: _component,
|
149
|
-
fieldProps: _fieldProps
|
154
|
+
fieldProps: _fieldProps,
|
155
|
+
desensitization: _desensitization
|
150
156
|
};
|
151
157
|
};
|
152
158
|
/** 获取当前字段的转换函数 */
|
153
159
|
export var getValueTypeTrans = function getValueTypeTrans(params) {
|
154
160
|
var _valueTypeMap$valueTy;
|
161
|
+
var desensitizationKey = params.desensitizationKey;
|
155
162
|
var valueType = params.valueType;
|
163
|
+
var desensitization = params.desensitization,
|
164
|
+
disabled = params.disabled;
|
165
|
+
var isDesensit = sessionStorage.getItem(desensitizationKey);
|
166
|
+
// 仅查看模式下进行数据脱敏
|
167
|
+
if ((desensitization === null || desensitization === void 0 ? void 0 : desensitization.length) && disabled && isDesensit === 'ON') {
|
168
|
+
valueType = 'desensitization';
|
169
|
+
}
|
156
170
|
var transform = (_valueTypeMap$valueTy = valueTypeMap[valueType]) === null || _valueTypeMap$valueTy === void 0 ? void 0 : _valueTypeMap$valueTy.call(valueTypeMap, params);
|
157
171
|
return transform;
|
158
172
|
};
|
@@ -198,7 +212,9 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
198
212
|
namePath = params.namePath,
|
199
213
|
value = params.value,
|
200
214
|
internalChange = params.onChange,
|
201
|
-
groupProps = params.groupProps
|
215
|
+
groupProps = params.groupProps,
|
216
|
+
formDisabled = params.formDisabled,
|
217
|
+
desensitizationKey = params.desensitizationKey;
|
202
218
|
var timerRef = useRef([]);
|
203
219
|
return columns === null || columns === void 0 ? void 0 : columns.flatMap(function (column, index) {
|
204
220
|
var type = column.type,
|
@@ -211,7 +227,8 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
211
227
|
disabled = column.disabled,
|
212
228
|
show = column.show,
|
213
229
|
component = column.component,
|
214
|
-
clearNotShow = column.clearNotShow
|
230
|
+
clearNotShow = column.clearNotShow,
|
231
|
+
desensitization = column.desensitization;
|
215
232
|
var _ref = fieldProps || {},
|
216
233
|
mode = _ref.mode,
|
217
234
|
onChange = _ref.onChange,
|
@@ -252,19 +269,24 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
252
269
|
show: show,
|
253
270
|
component: component,
|
254
271
|
fieldProps: fieldProps,
|
255
|
-
name: columnName
|
272
|
+
name: columnName,
|
273
|
+
desensitization: desensitization
|
256
274
|
});
|
257
275
|
}, changedCallback, [value, show, fieldProps, _disabled, columnName, type]);
|
258
276
|
if (reactiveProps.show === false) {
|
259
277
|
return [];
|
260
278
|
}
|
279
|
+
var isDisabled = formDisabled || _disabled || reactiveProps.disabled;
|
261
280
|
var transform = getValueTypeTrans({
|
262
281
|
type: type,
|
263
282
|
valueType: valueType,
|
264
283
|
switchValue: switchValue,
|
265
284
|
toISOString: toISOString,
|
266
285
|
toCSTString: toCSTString,
|
267
|
-
mode: mode
|
286
|
+
mode: mode,
|
287
|
+
desensitizationKey: desensitizationKey,
|
288
|
+
disabled: isDisabled,
|
289
|
+
desensitization: reactiveProps.desensitization
|
268
290
|
});
|
269
291
|
var newValue;
|
270
292
|
var handleChange = function handleChange() {
|
@@ -31,7 +31,7 @@ import ConfirmWrapper from './ConfirmWrapper';
|
|
31
31
|
import ChangedWrapper from './ChangedWrapper';
|
32
32
|
// 这个组件只管渲染, 参数的整理在外部处理
|
33
33
|
var Render = function Render(props) {
|
34
|
-
var
|
34
|
+
var _ref3, _ref4, _ref5, _ref6, _otherProps$names2;
|
35
35
|
var component = props.component,
|
36
36
|
originComponent = props.originComponent,
|
37
37
|
_props$formItemProps = props.formItemProps,
|
@@ -51,7 +51,8 @@ var Render = function Render(props) {
|
|
51
51
|
confirm = props.confirm,
|
52
52
|
globalControl = props.globalControl,
|
53
53
|
diffConfig = props.diffConfig,
|
54
|
-
viewRender = props.viewRender
|
54
|
+
viewRender = props.viewRender,
|
55
|
+
desensitization = props.desensitization;
|
55
56
|
var colProps = props.colProps;
|
56
57
|
// 剔除一些不是FormItem的属性, 防止控制台报warning
|
57
58
|
var labelWidth = formItemProps.labelWidth,
|
@@ -75,7 +76,8 @@ var Render = function Render(props) {
|
|
75
76
|
fieldProps: fieldProps,
|
76
77
|
component: component,
|
77
78
|
originComponent: originComponent,
|
78
|
-
type: type
|
79
|
+
type: type,
|
80
|
+
desensitization: desensitization
|
79
81
|
}),
|
80
82
|
shouldUpdate = _useShouldUpdate.shouldUpdate,
|
81
83
|
_show = _useShouldUpdate.show,
|
@@ -83,7 +85,8 @@ var Render = function Render(props) {
|
|
83
85
|
_rules = _useShouldUpdate.rules,
|
84
86
|
_required = _useShouldUpdate.required,
|
85
87
|
_fieldProps = _useShouldUpdate.fieldProps,
|
86
|
-
AutoComponent = _useShouldUpdate.component
|
88
|
+
AutoComponent = _useShouldUpdate.component,
|
89
|
+
_desensitization = _useShouldUpdate.desensitization;
|
87
90
|
otherFormItemProps.shouldUpdate = shouldUpdate;
|
88
91
|
var namesStr = useMemo(function () {
|
89
92
|
var _otherProps$names;
|
@@ -113,7 +116,9 @@ var Render = function Render(props) {
|
|
113
116
|
*/
|
114
117
|
var valueTypeTransform = function valueTypeTransform() {
|
115
118
|
var _ref = otherProps || {},
|
116
|
-
|
119
|
+
desensitizationKey = _ref.desensitizationKey;
|
120
|
+
var _ref2 = otherProps || {},
|
121
|
+
valueType = _ref2.valueType;
|
117
122
|
// SwitchCheckbox默认YN, 兼容已有组件
|
118
123
|
if (type === 'SwitchCheckbox') {
|
119
124
|
valueType = 'switch';
|
@@ -121,11 +126,18 @@ var Render = function Render(props) {
|
|
121
126
|
if (type === 'Input') {
|
122
127
|
valueType = valueType || 'trim';
|
123
128
|
}
|
129
|
+
var isDesensit = sessionStorage.getItem(desensitizationKey);
|
130
|
+
// 仅查看模式下进行数据脱敏
|
131
|
+
if ((_desensitization === null || _desensitization === void 0 ? void 0 : _desensitization.length) && _disabled && isDesensit === 'ON') {
|
132
|
+
valueType = 'desensitization';
|
133
|
+
}
|
124
134
|
// 不存在valueType返回空
|
125
135
|
if (!valueType) {
|
126
136
|
return {};
|
127
137
|
}
|
128
|
-
var params = _objectSpread(_objectSpread({}, otherProps), otherFormItemProps)
|
138
|
+
var params = _objectSpread(_objectSpread(_objectSpread({}, otherProps), otherFormItemProps), {}, {
|
139
|
+
desensitization: _desensitization
|
140
|
+
});
|
129
141
|
return isFunction(valueTypeMap[valueType]) ? valueTypeMap[valueType](params) : {};
|
130
142
|
};
|
131
143
|
/**
|
@@ -141,7 +153,7 @@ var Render = function Render(props) {
|
|
141
153
|
* globalControl true时,优先级 全局【formDisabled】> formitem上【column.disabled】 > 组件上【fieldProps.disabled】
|
142
154
|
* globalControl false时,优先级 组件上【fieldProps.disabled】 > formitem上【column.disabled】 > 全局【formDisabled】
|
143
155
|
*/
|
144
|
-
var lastDisabled = globalControl ? (
|
156
|
+
var lastDisabled = globalControl ? (_ref3 = (_ref4 = formDisabled !== null && formDisabled !== void 0 ? formDisabled : _disabled) !== null && _ref4 !== void 0 ? _ref4 : _fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.disabled) !== null && _ref3 !== void 0 ? _ref3 : componentProps === null || componentProps === void 0 ? void 0 : componentProps.disabled : (_ref5 = (_ref6 = _disabled !== null && _disabled !== void 0 ? _disabled : _fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.disabled) !== null && _ref6 !== void 0 ? _ref6 : componentProps === null || componentProps === void 0 ? void 0 : componentProps.disabled) !== null && _ref5 !== void 0 ? _ref5 : formDisabled;
|
145
157
|
// ↑↑↑↑↑↑ formItem参数整理 ↑↑↑↑↑↑
|
146
158
|
Object.assign(otherFormItemProps, transforms, {
|
147
159
|
names: otherProps.names
|
@@ -194,8 +206,8 @@ var Render = function Render(props) {
|
|
194
206
|
var functionArgs = function functionArgs(args) {
|
195
207
|
var _otherFormItemProps$n;
|
196
208
|
var _args = _toConsumableArray(args);
|
197
|
-
var
|
198
|
-
valueType =
|
209
|
+
var _ref7 = otherProps || {},
|
210
|
+
valueType = _ref7.valueType;
|
199
211
|
_args[1] = form.getFieldsValue();
|
200
212
|
_args[2] = {
|
201
213
|
form: form
|
@@ -295,7 +307,7 @@ var Render = function Render(props) {
|
|
295
307
|
* onBlur参数重置 (value, record, { form, index, namePath, option }) => void
|
296
308
|
*/
|
297
309
|
var handleBlur = /*#__PURE__*/function () {
|
298
|
-
var
|
310
|
+
var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
299
311
|
var _len3,
|
300
312
|
args,
|
301
313
|
_key3,
|
@@ -322,7 +334,7 @@ var Render = function Render(props) {
|
|
322
334
|
}, _callee);
|
323
335
|
}));
|
324
336
|
return function handleBlur() {
|
325
|
-
return
|
337
|
+
return _ref8.apply(this, arguments);
|
326
338
|
};
|
327
339
|
}();
|
328
340
|
var renderItem = function renderItem() {
|
@@ -412,17 +424,22 @@ var Render = function Render(props) {
|
|
412
424
|
colProps = _objectSpread(_objectSpread({}, colProps), {}, {
|
413
425
|
span: lessMode ? colProps.span : 24 // 默认占一行
|
414
426
|
});
|
415
|
-
return _jsx(_Form.
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
427
|
+
return _jsx(_Form.Item, _objectSpread(_objectSpread({}, omit(_otherFormItemProps, [].concat(filterFormItemKey, ['name', 'names']))), {}, {
|
428
|
+
// @ts-ignore
|
429
|
+
_internalItemRender: internalItemRender,
|
430
|
+
className: _className,
|
431
|
+
children: _jsx(_Form.List, _objectSpread(_objectSpread({
|
432
|
+
name: _otherFormItemProps.name
|
433
|
+
}, omit(_otherFormItemProps, ['rules'])), {}, {
|
434
|
+
children: function children(fields, operation, meta) {
|
435
|
+
return _jsx(AutoComponent, _objectSpread(_objectSpread({}, omit(lastComponentProps, lastComponentPropsFilter)), {}, {
|
436
|
+
otherProps: otherProps,
|
437
|
+
fields: fields,
|
438
|
+
operation: operation,
|
439
|
+
meta: meta
|
440
|
+
}));
|
441
|
+
}
|
442
|
+
}))
|
426
443
|
}));
|
427
444
|
}
|
428
445
|
// 默认占据一行
|
@@ -18,6 +18,7 @@ interface Props<T = any> {
|
|
18
18
|
requiredOnView?: boolean;
|
19
19
|
required?: boolean | boolean[] | (() => boolean | boolean[]);
|
20
20
|
globalControl?: boolean;
|
21
|
+
desensitizationKey?: string;
|
21
22
|
}
|
22
23
|
declare const RenderFields: React.FC<Props>;
|
23
24
|
export default RenderFields;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
3
|
-
var _excluded = ["show", "type", "viewRender", "viewType", "valueType", "formItemProps", "colProps", "formItemChildProps", "fieldProps", "equalWith", "onDiff", "clearNotShow", "required", "confirm"];
|
3
|
+
var _excluded = ["show", "type", "viewRender", "viewType", "valueType", "formItemProps", "colProps", "formItemChildProps", "fieldProps", "equalWith", "onDiff", "clearNotShow", "required", "confirm", "desensitization"];
|
4
4
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
5
5
|
import React from 'react';
|
6
6
|
import { isBoolean, isFunction, union, isString } from 'lodash';
|
@@ -26,7 +26,8 @@ var RenderFields = function RenderFields(props) {
|
|
26
26
|
requiredOnView = props.requiredOnView,
|
27
27
|
required = props.required,
|
28
28
|
diffConfig = props.diffConfig,
|
29
|
-
globalControl = props.globalControl
|
29
|
+
globalControl = props.globalControl,
|
30
|
+
desensitizationKey = props.desensitizationKey;
|
30
31
|
// 是否包含隐藏字段
|
31
32
|
var hiddenData = columns.filter(function (item) {
|
32
33
|
return Array.isArray(item.hiddenNames);
|
@@ -74,6 +75,7 @@ var RenderFields = function RenderFields(props) {
|
|
74
75
|
clearNotShow = _column$clearNotShow === void 0 ? outerClearNotShow : _column$clearNotShow,
|
75
76
|
columnRequired = column.required,
|
76
77
|
confirm = column.confirm,
|
78
|
+
desensitization = column.desensitization,
|
77
79
|
otherFormItemProps = _objectWithoutProperties(column, _excluded);
|
78
80
|
var component = column.component;
|
79
81
|
var _isView = typeof column.isView === 'boolean' ? column.isView : isView;
|
@@ -188,7 +190,8 @@ var RenderFields = function RenderFields(props) {
|
|
188
190
|
listName: column.listName,
|
189
191
|
globalControl: globalControl,
|
190
192
|
formDisabled: formDisabled,
|
191
|
-
diffConfig: diffConfig
|
193
|
+
diffConfig: diffConfig,
|
194
|
+
desensitizationKey: desensitizationKey
|
192
195
|
};
|
193
196
|
return _jsx(FieldProvider, {
|
194
197
|
value: otherProps,
|
@@ -212,7 +215,8 @@ var RenderFields = function RenderFields(props) {
|
|
212
215
|
equalWith: onDiff || equalWith,
|
213
216
|
requiredOnView: requiredOnView,
|
214
217
|
globalControl: globalControl,
|
215
|
-
viewRender: viewRender
|
218
|
+
viewRender: viewRender,
|
219
|
+
desensitization: desensitization
|
216
220
|
})
|
217
221
|
}, "".concat(_formItemProps.name || _formItemProps.label).concat(index));
|
218
222
|
});
|
@@ -85,7 +85,7 @@ type FieldProps<T extends ControlProps, Values, TT> = TT extends 'ProForm' ? Tra
|
|
85
85
|
/**
|
86
86
|
* 值转换
|
87
87
|
*/
|
88
|
-
export type ProFormValueType = 'percentage' | 'permillage' | 'thousandth' | 'datePicker' | 'enumName' | 'enumCodeName' | 'address' | 'thousandthCNY' | 'date' | 'dateTime' | 'dateStartTime' | 'dateEndTime' | 'dateStartEndTime' | 'switch';
|
88
|
+
export type ProFormValueType = 'percentage' | 'permillage' | 'thousandth' | 'datePicker' | 'enumName' | 'enumCodeName' | 'address' | 'thousandthCNY' | 'date' | 'dateTime' | 'dateStartTime' | 'dateEndTime' | 'dateStartEndTime' | 'switch' | 'desensitization';
|
89
89
|
export type ColumnPropsMap<Values = any, T = 'ProForm'> = {
|
90
90
|
type?: 'Input';
|
91
91
|
fieldProps?: FieldProps<InputProps, Values, T>;
|
@@ -229,6 +229,8 @@ export interface ProFormColumnProps<Values = any> extends Omit<FormItemProps<Val
|
|
229
229
|
confirm?: boolean | ModalFuncProps | FunctionArgs<Values, boolean | ModalFuncProps | void | Promise<boolean | ModalFuncProps | void>>;
|
230
230
|
/** 防抖模式 */
|
231
231
|
debounceWait?: number;
|
232
|
+
/** 脱敏数据位置下标 */
|
233
|
+
desensitization?: [number, number] | ReactiveFunction<Values, [number, number]>;
|
232
234
|
}
|
233
235
|
export type ProColumnProps<T = any> = ProFormColumnProps<T> & ColumnPropsMap<T, 'ProForm'>;
|
234
236
|
/**
|
package/es/ProForm/index.js
CHANGED
@@ -11,7 +11,7 @@ import "antd/es/space/style";
|
|
11
11
|
import _Space from "antd/es/space";
|
12
12
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
13
13
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
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"];
|
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", "desensitizationKey"];
|
15
15
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
16
16
|
import { DoubleLeftOutlined } from '@ant-design/icons';
|
17
17
|
import classnames from 'classnames';
|
@@ -69,6 +69,8 @@ var ProForm = function ProForm(props, ref) {
|
|
69
69
|
scrollToError = _props$scrollToError === void 0 ? true : _props$scrollToError,
|
70
70
|
_props$optimize = props.optimize,
|
71
71
|
optimize = _props$optimize === void 0 ? false : _props$optimize,
|
72
|
+
_props$desensitizatio = props.desensitizationKey,
|
73
|
+
desensitizationKey = _props$desensitizatio === void 0 ? 'zat-design-pro-component-desensitization' : _props$desensitizatio,
|
72
74
|
otherProps = _objectWithoutProperties(props, _excluded);
|
73
75
|
var config = useProConfig('ProForm');
|
74
76
|
var _useForm = useForm(originForm, {
|
@@ -237,7 +239,8 @@ var ProForm = function ProForm(props, ref) {
|
|
237
239
|
clearNotShow: clearNotShow,
|
238
240
|
requiredOnView: requiredOnView,
|
239
241
|
required: required,
|
240
|
-
globalControl: globalControl
|
242
|
+
globalControl: globalControl,
|
243
|
+
desensitizationKey: desensitizationKey
|
241
244
|
}), footerRender()]
|
242
245
|
})), children]
|
243
246
|
}));
|
@@ -46,6 +46,7 @@ export interface ProFormOtherProps {
|
|
46
46
|
formDisabled?: boolean;
|
47
47
|
isDiffChange?: boolean;
|
48
48
|
diffConfig?: DiffConfigProps;
|
49
|
+
desensitizationKey?: string;
|
49
50
|
}
|
50
51
|
export interface DiffConfigProps<Values = any> {
|
51
52
|
/** 比对原始数据源 */
|
@@ -94,6 +95,8 @@ export interface ProFormProps<Values = any> extends FormProps<Values> {
|
|
94
95
|
* 1. 开启不过滤names的中间态值
|
95
96
|
*/
|
96
97
|
optimize?: boolean;
|
98
|
+
/** 全局脱敏开关的key、默认 zat-design-pro-component-desensitization */
|
99
|
+
desensitizationKey?: string;
|
97
100
|
}
|
98
101
|
export interface Transform<T = any> {
|
99
102
|
normalize?: (value: StoreValue, prevValue: StoreValue, allValues: Store) => StoreValue;
|
@@ -6,9 +6,16 @@ var filterObject = function filterObject(data) {
|
|
6
6
|
if (!isObject(data) || data === null) return data;
|
7
7
|
// ['1', undefined] ['1', ''] 视为相等
|
8
8
|
if (Array.isArray(data)) {
|
9
|
-
|
10
|
-
|
9
|
+
// 数组中全是empty值的话 视为null
|
10
|
+
var isFillNull = true;
|
11
|
+
var arr = data.map(function (item) {
|
12
|
+
if (isEmpty(item)) {
|
13
|
+
return null;
|
14
|
+
}
|
15
|
+
isFillNull = false;
|
16
|
+
return item;
|
11
17
|
});
|
18
|
+
return isFillNull ? null : arr;
|
12
19
|
}
|
13
20
|
var resData = {};
|
14
21
|
Object.keys(data).forEach(function (key) {
|
@@ -21,7 +21,8 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
21
21
|
fieldProps = props.fieldProps,
|
22
22
|
component = props.component,
|
23
23
|
originComponent = props.originComponent,
|
24
|
-
type = props.type
|
24
|
+
type = props.type,
|
25
|
+
desensitization = props.desensitization;
|
25
26
|
var _shouldUpdate = formItemProps.shouldUpdate,
|
26
27
|
name = formItemProps.name,
|
27
28
|
clearNotShow = formItemProps.clearNotShow,
|
@@ -38,13 +39,14 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
38
39
|
var fieldPropsRef = useRef();
|
39
40
|
var originComponentRef = useRef();
|
40
41
|
var dependNamesRef = useRef();
|
42
|
+
var desensitizationRef = useRef();
|
41
43
|
var newComponent = originComponent || component; // 解决component默认赋值污染问题,需要使用originComponent
|
42
44
|
var _useState = useState({}),
|
43
45
|
_useState2 = _slicedToArray(_useState, 2),
|
44
46
|
reRender = _useState2[1];
|
45
47
|
var values = {};
|
46
48
|
// 不是动态函数直接返回
|
47
|
-
if (!(dependNames === null || dependNames === void 0 ? void 0 : dependNames.length) && !isFunction(show) && !isFunction(disabled) && !isFunction(required) && !isFunction(rules) && !isFunction(fieldProps) && !isFunction(originComponent)) {
|
49
|
+
if (!(dependNames === null || dependNames === void 0 ? void 0 : dependNames.length) && !isFunction(show) && !isFunction(disabled) && !isFunction(required) && !isFunction(rules) && !isFunction(fieldProps) && !isFunction(originComponent) && !isFunction(desensitization)) {
|
48
50
|
return {
|
49
51
|
shouldUpdate: _shouldUpdate,
|
50
52
|
show: show,
|
@@ -52,7 +54,8 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
52
54
|
required: required,
|
53
55
|
rules: rules,
|
54
56
|
fieldProps: fieldProps,
|
55
|
-
component: newComponent
|
57
|
+
component: newComponent,
|
58
|
+
desensitization: desensitization
|
56
59
|
};
|
57
60
|
}
|
58
61
|
if (namePath) {
|
@@ -70,6 +73,15 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
70
73
|
} else {
|
71
74
|
showRef.current = show;
|
72
75
|
}
|
76
|
+
if (isFunction(desensitization)) {
|
77
|
+
desensitizationRef.current = desensitization(values, {
|
78
|
+
form: form,
|
79
|
+
index: index,
|
80
|
+
namePath: namePath
|
81
|
+
});
|
82
|
+
} else {
|
83
|
+
desensitizationRef.current = desensitization;
|
84
|
+
}
|
73
85
|
if (isFunction(disabled)) {
|
74
86
|
// RangePicker返回数组时,特殊处理
|
75
87
|
if (['Group', 'RangePicker', 'ProCascader'].includes(type) && Array.isArray(disabled(values, {
|
@@ -176,6 +188,11 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
176
188
|
index: index,
|
177
189
|
namePath: namePath
|
178
190
|
}) : fieldProps;
|
191
|
+
var _desensitization = isFunction(desensitization) ? desensitization(_currentValues, {
|
192
|
+
form: form,
|
193
|
+
index: index,
|
194
|
+
namePath: namePath
|
195
|
+
}) : desensitization;
|
179
196
|
// 清值防抖 多次刷新时以最后一次为准
|
180
197
|
if (clearNotShow !== false && (name || names) && !isDeleteLine(form, namePath)) {
|
181
198
|
// 当show为其他变为false的时候记录一次需要清值
|
@@ -201,13 +218,15 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
201
218
|
}
|
202
219
|
var equalRes = isEqualWith(rulesRef.current, _rules, customEqualForFun);
|
203
220
|
var proEqualRes = isEqualWith(fieldPropsRef.current, _fieldProps, customEqualForFun);
|
204
|
-
|
221
|
+
var desensitizationRes = isEqualWith(desensitizationRef.current, _desensitization);
|
222
|
+
if (_show !== showRef.current || _disabled !== disabledRef.current || _required !== requiredRef.current || !equalRes || !proEqualRes || !desensitizationRes || (_fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.transformResponse) // 防止fieldProps变更时,transformResponse根据fieldProps新值无法触发更新
|
205
223
|
) {
|
206
224
|
showRef.current = _show;
|
207
225
|
disabledRef.current = _disabled;
|
208
226
|
requiredRef.current = _required;
|
209
227
|
rulesRef.current = _rules;
|
210
228
|
fieldPropsRef.current = _fieldProps;
|
229
|
+
desensitizationRef.current = _desensitization;
|
211
230
|
reRender({});
|
212
231
|
return false;
|
213
232
|
}
|
@@ -224,7 +243,8 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
224
243
|
rules: rulesRef.current,
|
225
244
|
required: requiredRef.current,
|
226
245
|
component: originComponentRef.current,
|
227
|
-
fieldProps: fieldPropsRef.current
|
246
|
+
fieldProps: fieldPropsRef.current,
|
247
|
+
desensitization: desensitizationRef.current
|
228
248
|
};
|
229
249
|
};
|
230
250
|
export default useShouldUpdate;
|
@@ -1,3 +1,5 @@
|
|
1
|
+
/** 脱敏处理函数 */
|
2
|
+
export declare const maskStringRangeWithRegex: (input: string, range: [number, number]) => string;
|
1
3
|
declare const _default: {
|
2
4
|
/** 年月日 */
|
3
5
|
date: ({ type, toISOString, toCSTString, mode }: {
|
@@ -64,5 +66,11 @@ declare const _default: {
|
|
64
66
|
value: any;
|
65
67
|
};
|
66
68
|
};
|
69
|
+
/** 脱敏 转换 */
|
70
|
+
desensitization: (props: any) => {
|
71
|
+
getValueProps: (value: any) => {
|
72
|
+
value: any;
|
73
|
+
};
|
74
|
+
};
|
67
75
|
};
|
68
76
|
export default _default;
|