@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.
Files changed (63) hide show
  1. package/dist/index.esm.css +0 -5
  2. package/dist/less.esm.css +0 -5
  3. package/es/ProEditTable/components/ActionButton/index.js +57 -9
  4. package/es/ProEditTable/components/RenderField/index.js +23 -14
  5. package/es/ProEditTable/components/RenderToolbar/index.js +18 -16
  6. package/es/ProEditTable/index.js +1 -1
  7. package/es/ProEditTable/propsType.d.ts +6 -3
  8. package/es/ProEditTable/utils/diffOriginal.d.ts +1 -1
  9. package/es/ProEditTable/utils/diffOriginal.js +21 -22
  10. package/es/ProEditTable/utils/index.js +35 -30
  11. package/es/ProForm/components/combination/Group/index.js +7 -2
  12. package/es/ProForm/components/combination/Group/propsType.d.ts +1 -0
  13. package/es/ProForm/components/combination/Group/utils.d.ts +6 -1
  14. package/es/ProForm/components/combination/Group/utils.js +28 -6
  15. package/es/ProForm/components/render/Render.js +39 -22
  16. package/es/ProForm/components/render/RenderFields.d.ts +1 -0
  17. package/es/ProForm/components/render/RenderFields.js +8 -4
  18. package/es/ProForm/components/render/propsType.d.ts +3 -1
  19. package/es/ProForm/index.js +5 -2
  20. package/es/ProForm/propsType.d.ts +3 -0
  21. package/es/ProForm/utils/diffOriginal.js +9 -2
  22. package/es/ProForm/utils/useShouldUpdate.js +25 -5
  23. package/es/ProForm/utils/valueType.d.ts +8 -0
  24. package/es/ProForm/utils/valueType.js +99 -33
  25. package/es/ProLayout/components/ProHeader/style/index.less +0 -8
  26. package/es/ProTable/components/FormatColumn/index.js +2 -1
  27. package/es/ProTable/components/RenderColumn/index.d.ts +2 -0
  28. package/es/ProTable/components/RenderColumn/index.js +10 -2
  29. package/es/ProTable/hooks/useAntdTable.js +4 -3
  30. package/es/ProTable/propsType.d.ts +2 -0
  31. package/es/ProTable/utils/index.d.ts +4 -0
  32. package/es/ProTable/utils/index.js +15 -0
  33. package/lib/ProEditTable/components/ActionButton/index.js +57 -9
  34. package/lib/ProEditTable/components/RenderField/index.js +22 -13
  35. package/lib/ProEditTable/components/RenderToolbar/index.js +18 -16
  36. package/lib/ProEditTable/index.js +1 -1
  37. package/lib/ProEditTable/propsType.d.ts +6 -3
  38. package/lib/ProEditTable/utils/diffOriginal.d.ts +1 -1
  39. package/lib/ProEditTable/utils/diffOriginal.js +21 -22
  40. package/lib/ProEditTable/utils/index.js +35 -30
  41. package/lib/ProForm/components/combination/Group/index.js +7 -2
  42. package/lib/ProForm/components/combination/Group/propsType.d.ts +1 -0
  43. package/lib/ProForm/components/combination/Group/utils.d.ts +6 -1
  44. package/lib/ProForm/components/combination/Group/utils.js +28 -6
  45. package/lib/ProForm/components/render/Render.js +39 -22
  46. package/lib/ProForm/components/render/RenderFields.d.ts +1 -0
  47. package/lib/ProForm/components/render/RenderFields.js +8 -4
  48. package/lib/ProForm/components/render/propsType.d.ts +3 -1
  49. package/lib/ProForm/index.js +5 -2
  50. package/lib/ProForm/propsType.d.ts +3 -0
  51. package/lib/ProForm/utils/diffOriginal.js +9 -2
  52. package/lib/ProForm/utils/useShouldUpdate.js +25 -5
  53. package/lib/ProForm/utils/valueType.d.ts +8 -0
  54. package/lib/ProForm/utils/valueType.js +100 -34
  55. package/lib/ProLayout/components/ProHeader/style/index.less +0 -8
  56. package/lib/ProTable/components/FormatColumn/index.js +2 -1
  57. package/lib/ProTable/components/RenderColumn/index.d.ts +2 -0
  58. package/lib/ProTable/components/RenderColumn/index.js +10 -2
  59. package/lib/ProTable/hooks/useAntdTable.js +3 -2
  60. package/lib/ProTable/propsType.d.ts +2 -0
  61. package/lib/ProTable/utils/index.d.ts +4 -0
  62. package/lib/ProTable/utils/index.js +17 -1
  63. 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
- name = params.name;
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 _ref2, _ref3, _ref4, _ref5, _otherProps$names2;
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
- valueType = _ref.valueType;
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 ? (_ref2 = (_ref3 = formDisabled !== null && formDisabled !== void 0 ? formDisabled : _disabled) !== null && _ref3 !== void 0 ? _ref3 : _fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.disabled) !== null && _ref2 !== void 0 ? _ref2 : componentProps === null || componentProps === void 0 ? void 0 : componentProps.disabled : (_ref4 = (_ref5 = _disabled !== null && _disabled !== void 0 ? _disabled : _fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.disabled) !== null && _ref5 !== void 0 ? _ref5 : componentProps === null || componentProps === void 0 ? void 0 : componentProps.disabled) !== null && _ref4 !== void 0 ? _ref4 : formDisabled;
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 _ref6 = otherProps || {},
198
- valueType = _ref6.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 _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
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 _ref7.apply(this, arguments);
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.List, _objectSpread(_objectSpread({
416
- name: _otherFormItemProps.name
417
- }, omit(_otherFormItemProps, ['rules'])), {}, {
418
- children: function children(fields, operation, meta) {
419
- return _jsx(AutoComponent, _objectSpread(_objectSpread({}, omit(lastComponentProps, lastComponentPropsFilter)), {}, {
420
- otherProps: otherProps,
421
- fields: fields,
422
- operation: operation,
423
- meta: meta
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
  /**
@@ -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
- return data.map(function (item) {
10
- return isEmpty(item) ? null : item;
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
- if (_show !== showRef.current || _disabled !== disabledRef.current || _required !== requiredRef.current || !equalRes || !proEqualRes || (_fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.transformResponse) // 防止fieldProps变更时,transformResponse根据fieldProps新值无法触发更新
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;