@zat-design/sisyphus-react 3.9.8-beta.1 → 3.9.8-beta.11
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/ProEditTable/utils/tools.d.ts +1 -1
- package/es/ProEditTable/utils/tools.js +1 -1
- 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 +23 -11
- 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 +1 -0
- 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/ProEditTable/utils/tools.d.ts +1 -1
- package/lib/ProEditTable/utils/tools.js +1 -1
- 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 +23 -11
- 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 +1 -0
- 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() {
|
@@ -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;
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import _readOnlyError from "@babel/runtime/helpers/esm/readOnlyError";
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
1
3
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
2
4
|
import Big from 'big.js';
|
3
5
|
import { isEqual } from 'lodash';
|
@@ -188,13 +190,31 @@ var dateTransform = function dateTransform(_ref2) {
|
|
188
190
|
}
|
189
191
|
return result;
|
190
192
|
};
|
193
|
+
/** 脱敏处理函数 */
|
194
|
+
export var maskStringRangeWithRegex = function maskStringRangeWithRegex(input, range) {
|
195
|
+
var _ref3 = range || [],
|
196
|
+
_ref4 = _slicedToArray(_ref3, 2),
|
197
|
+
start = _ref4[0],
|
198
|
+
end = _ref4[1];
|
199
|
+
if (start < 0) {
|
200
|
+
throw new Error('脱敏数据: start index cannot be negative');
|
201
|
+
}
|
202
|
+
var adjustedEnd = Math.min(end, input.length - 1);
|
203
|
+
if (start >= input.length) {
|
204
|
+
return '';
|
205
|
+
}
|
206
|
+
var regexPattern = "^(.{".concat(start, "})(.{").concat(adjustedEnd - start + 1, "})(.*)$");
|
207
|
+
var regex = new RegExp(regexPattern);
|
208
|
+
var maskedValue = input.replace(regex, "$1".concat('*'.repeat(adjustedEnd - start + 1), "$3"));
|
209
|
+
return maskedValue;
|
210
|
+
};
|
191
211
|
export default {
|
192
212
|
/** 年月日 */
|
193
|
-
date: function date(
|
194
|
-
var type =
|
195
|
-
toISOString =
|
196
|
-
toCSTString =
|
197
|
-
mode =
|
213
|
+
date: function date(_ref5) {
|
214
|
+
var type = _ref5.type,
|
215
|
+
toISOString = _ref5.toISOString,
|
216
|
+
toCSTString = _ref5.toCSTString,
|
217
|
+
mode = _ref5.mode;
|
198
218
|
return dateTransform({
|
199
219
|
type: type,
|
200
220
|
_valueType: 'date',
|
@@ -204,11 +224,11 @@ export default {
|
|
204
224
|
});
|
205
225
|
},
|
206
226
|
/** 年月日 时分秒 */
|
207
|
-
dateTime: function dateTime(
|
208
|
-
var type =
|
209
|
-
toISOString =
|
210
|
-
toCSTString =
|
211
|
-
mode =
|
227
|
+
dateTime: function dateTime(_ref6) {
|
228
|
+
var type = _ref6.type,
|
229
|
+
toISOString = _ref6.toISOString,
|
230
|
+
toCSTString = _ref6.toCSTString,
|
231
|
+
mode = _ref6.mode;
|
212
232
|
return dateTransform({
|
213
233
|
type: type,
|
214
234
|
_valueType: 'dateTime',
|
@@ -218,11 +238,11 @@ export default {
|
|
218
238
|
});
|
219
239
|
},
|
220
240
|
/** 年月日 00:00:00 */
|
221
|
-
dateStartTime: function dateStartTime(
|
222
|
-
var type =
|
223
|
-
toISOString =
|
224
|
-
toCSTString =
|
225
|
-
mode =
|
241
|
+
dateStartTime: function dateStartTime(_ref7) {
|
242
|
+
var type = _ref7.type,
|
243
|
+
toISOString = _ref7.toISOString,
|
244
|
+
toCSTString = _ref7.toCSTString,
|
245
|
+
mode = _ref7.mode;
|
226
246
|
return dateTransform({
|
227
247
|
type: type,
|
228
248
|
_valueType: 'dateStartTime',
|
@@ -232,11 +252,11 @@ export default {
|
|
232
252
|
});
|
233
253
|
},
|
234
254
|
/** 年月日 23:59:59 */
|
235
|
-
dateEndTime: function dateEndTime(
|
236
|
-
var type =
|
237
|
-
toISOString =
|
238
|
-
toCSTString =
|
239
|
-
mode =
|
255
|
+
dateEndTime: function dateEndTime(_ref8) {
|
256
|
+
var type = _ref8.type,
|
257
|
+
toISOString = _ref8.toISOString,
|
258
|
+
toCSTString = _ref8.toCSTString,
|
259
|
+
mode = _ref8.mode;
|
240
260
|
return dateTransform({
|
241
261
|
type: type,
|
242
262
|
_valueType: 'dateEndTime',
|
@@ -246,11 +266,11 @@ export default {
|
|
246
266
|
});
|
247
267
|
},
|
248
268
|
/** 年月日 00:00:00 ~ 年月日 23:59:59 */
|
249
|
-
dateStartEndTime: function dateStartEndTime(
|
250
|
-
var type =
|
251
|
-
toISOString =
|
252
|
-
toCSTString =
|
253
|
-
mode =
|
269
|
+
dateStartEndTime: function dateStartEndTime(_ref9) {
|
270
|
+
var type = _ref9.type,
|
271
|
+
toISOString = _ref9.toISOString,
|
272
|
+
toCSTString = _ref9.toCSTString,
|
273
|
+
mode = _ref9.mode;
|
254
274
|
return dateTransform({
|
255
275
|
type: type,
|
256
276
|
_valueType: 'dateStartEndTime',
|
@@ -260,9 +280,9 @@ export default {
|
|
260
280
|
});
|
261
281
|
},
|
262
282
|
/** 百分比 */
|
263
|
-
percentage: function percentage(
|
264
|
-
var type =
|
265
|
-
valueType =
|
283
|
+
percentage: function percentage(_ref10) {
|
284
|
+
var type = _ref10.type,
|
285
|
+
valueType = _ref10.valueType;
|
266
286
|
return transformRatio({
|
267
287
|
type: type,
|
268
288
|
valueType: valueType,
|
@@ -270,9 +290,9 @@ export default {
|
|
270
290
|
});
|
271
291
|
},
|
272
292
|
/** 千分比 */
|
273
|
-
permillage: function permillage(
|
274
|
-
var type =
|
275
|
-
valueType =
|
293
|
+
permillage: function permillage(_ref11) {
|
294
|
+
var type = _ref11.type,
|
295
|
+
valueType = _ref11.valueType;
|
276
296
|
return transformRatio({
|
277
297
|
type: type,
|
278
298
|
valueType: valueType,
|
@@ -280,8 +300,54 @@ export default {
|
|
280
300
|
});
|
281
301
|
},
|
282
302
|
/** 开关 YN转换 */
|
283
|
-
switch: function _switch(
|
284
|
-
var switchValue =
|
303
|
+
switch: function _switch(_ref12) {
|
304
|
+
var switchValue = _ref12.switchValue;
|
285
305
|
return switchTransform(switchValue);
|
306
|
+
},
|
307
|
+
/** 脱敏 转换 */
|
308
|
+
desensitization: function desensitization(props) {
|
309
|
+
var desensitization = props.desensitization,
|
310
|
+
type = props.type,
|
311
|
+
mode = props.mode,
|
312
|
+
names = props.names;
|
313
|
+
// 判断是否是地址控件,并带地址详情场景
|
314
|
+
if (type === 'ProCascader' && mode === 'address' && (names === null || names === void 0 ? void 0 : names.length) === 4) {
|
315
|
+
return {
|
316
|
+
getValueProps: function getValueProps(value) {
|
317
|
+
try {
|
318
|
+
if (value === null || value === void 0 ? void 0 : value.length) {
|
319
|
+
var _value = _slicedToArray(value, 4),
|
320
|
+
province = _value[0],
|
321
|
+
city = _value[1],
|
322
|
+
county = _value[2],
|
323
|
+
address = _value[3];
|
324
|
+
return {
|
325
|
+
value: [province, city, county, maskStringRangeWithRegex(address, desensitization)]
|
326
|
+
};
|
327
|
+
}
|
328
|
+
return {
|
329
|
+
value: value
|
330
|
+
};
|
331
|
+
} catch (error) {
|
332
|
+
return {
|
333
|
+
value: value
|
334
|
+
}; // 如果发生错误,返回原始值
|
335
|
+
}
|
336
|
+
}
|
337
|
+
};
|
338
|
+
}
|
339
|
+
return {
|
340
|
+
getValueProps: function getValueProps(value) {
|
341
|
+
try {
|
342
|
+
return {
|
343
|
+
value: maskStringRangeWithRegex(value, desensitization)
|
344
|
+
};
|
345
|
+
} catch (error) {
|
346
|
+
return {
|
347
|
+
value: value
|
348
|
+
}; // 如果发生错误,返回原始值
|
349
|
+
}
|
350
|
+
}
|
351
|
+
};
|
286
352
|
}
|
287
353
|
};
|
@@ -78,6 +78,7 @@ export var formatColumn = function formatColumn(_ref2) {
|
|
78
78
|
minWidth = column.minWidth,
|
79
79
|
onDiff = column.onDiff,
|
80
80
|
otherProps = _objectWithoutProperties(column, _excluded);
|
81
|
+
otherProps.scroll = scroll;
|
81
82
|
// 仅在 {x: 'max-content', y: 300 } 且 column无指定 width minWidth 情况下 才开启 minWidth的自动计算
|
82
83
|
var isMaxContentOverFlow = isObject(scroll) ? (scroll === null || scroll === void 0 ? void 0 : scroll.x) === 'max-content' && Reflect.ownKeys(scroll).includes('y') : false;
|
83
84
|
calcMinWidth({
|