@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.
Files changed (67) 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/ProEditTable/utils/tools.d.ts +1 -1
  12. package/es/ProEditTable/utils/tools.js +1 -1
  13. package/es/ProForm/components/combination/Group/index.js +7 -2
  14. package/es/ProForm/components/combination/Group/propsType.d.ts +1 -0
  15. package/es/ProForm/components/combination/Group/utils.d.ts +6 -1
  16. package/es/ProForm/components/combination/Group/utils.js +28 -6
  17. package/es/ProForm/components/render/Render.js +23 -11
  18. package/es/ProForm/components/render/RenderFields.d.ts +1 -0
  19. package/es/ProForm/components/render/RenderFields.js +8 -4
  20. package/es/ProForm/components/render/propsType.d.ts +3 -1
  21. package/es/ProForm/index.js +5 -2
  22. package/es/ProForm/propsType.d.ts +3 -0
  23. package/es/ProForm/utils/diffOriginal.js +9 -2
  24. package/es/ProForm/utils/useShouldUpdate.js +25 -5
  25. package/es/ProForm/utils/valueType.d.ts +8 -0
  26. package/es/ProForm/utils/valueType.js +99 -33
  27. package/es/ProLayout/components/ProHeader/style/index.less +0 -8
  28. package/es/ProTable/components/FormatColumn/index.js +1 -0
  29. package/es/ProTable/components/RenderColumn/index.d.ts +2 -0
  30. package/es/ProTable/components/RenderColumn/index.js +10 -2
  31. package/es/ProTable/hooks/useAntdTable.js +4 -3
  32. package/es/ProTable/propsType.d.ts +2 -0
  33. package/es/ProTable/utils/index.d.ts +4 -0
  34. package/es/ProTable/utils/index.js +15 -0
  35. package/lib/ProEditTable/components/ActionButton/index.js +57 -9
  36. package/lib/ProEditTable/components/RenderField/index.js +22 -13
  37. package/lib/ProEditTable/components/RenderToolbar/index.js +18 -16
  38. package/lib/ProEditTable/index.js +1 -1
  39. package/lib/ProEditTable/propsType.d.ts +6 -3
  40. package/lib/ProEditTable/utils/diffOriginal.d.ts +1 -1
  41. package/lib/ProEditTable/utils/diffOriginal.js +21 -22
  42. package/lib/ProEditTable/utils/index.js +35 -30
  43. package/lib/ProEditTable/utils/tools.d.ts +1 -1
  44. package/lib/ProEditTable/utils/tools.js +1 -1
  45. package/lib/ProForm/components/combination/Group/index.js +7 -2
  46. package/lib/ProForm/components/combination/Group/propsType.d.ts +1 -0
  47. package/lib/ProForm/components/combination/Group/utils.d.ts +6 -1
  48. package/lib/ProForm/components/combination/Group/utils.js +28 -6
  49. package/lib/ProForm/components/render/Render.js +23 -11
  50. package/lib/ProForm/components/render/RenderFields.d.ts +1 -0
  51. package/lib/ProForm/components/render/RenderFields.js +8 -4
  52. package/lib/ProForm/components/render/propsType.d.ts +3 -1
  53. package/lib/ProForm/index.js +5 -2
  54. package/lib/ProForm/propsType.d.ts +3 -0
  55. package/lib/ProForm/utils/diffOriginal.js +9 -2
  56. package/lib/ProForm/utils/useShouldUpdate.js +25 -5
  57. package/lib/ProForm/utils/valueType.d.ts +8 -0
  58. package/lib/ProForm/utils/valueType.js +100 -34
  59. package/lib/ProLayout/components/ProHeader/style/index.less +0 -8
  60. package/lib/ProTable/components/FormatColumn/index.js +1 -0
  61. package/lib/ProTable/components/RenderColumn/index.d.ts +2 -0
  62. package/lib/ProTable/components/RenderColumn/index.js +10 -2
  63. package/lib/ProTable/hooks/useAntdTable.js +3 -2
  64. package/lib/ProTable/propsType.d.ts +2 -0
  65. package/lib/ProTable/utils/index.d.ts +4 -0
  66. package/lib/ProTable/utils/index.js +17 -1
  67. package/package.json +2 -1
@@ -33,7 +33,10 @@ var Group = function Group(props) {
33
33
  onChange = props.onChange,
34
34
  otherProps = props.otherProps,
35
35
  id = props.id,
36
- isParentView = props.isView;
36
+ isParentView = props.isView,
37
+ formDisabled = props.disabled;
38
+ var _ref = otherProps || {},
39
+ desensitizationKey = _ref.desensitizationKey;
37
40
  var contextProps = _ProForm.default.useFieldProps() || {};
38
41
  var names = contextProps.names,
39
42
  name = contextProps.name,
@@ -58,7 +61,9 @@ var Group = function Group(props) {
58
61
  form: form,
59
62
  index: index,
60
63
  value: value,
61
- groupProps: props
64
+ groupProps: props,
65
+ formDisabled: formDisabled,
66
+ desensitizationKey: desensitizationKey
62
67
  });
63
68
  var columns = (0, _utils.insertSeparator)(columnsProps, space);
64
69
  var _className = (0, _classnames2.default)((0, _defineProperty2.default)({
@@ -50,4 +50,5 @@ export type GroupColumnProps<Values = any> = {
50
50
  confirm?: boolean | ModalFuncProps | FunctionArgs<Values, boolean | ModalFuncProps>;
51
51
  valuePropName?: string;
52
52
  getValueProps?: (value: any) => Record<string, unknown>;
53
+ desensitization?: [number, number] | ReactiveFunction<Values, [number, number]>;
53
54
  } & ColumnPropsMap & FormItemProps;
@@ -31,6 +31,7 @@ interface Params {
31
31
  component?: React.ReactNode | ReactiveFunction<any, React.ReactNode>;
32
32
  fieldProps?: boolean | ReactiveFunction<any, boolean>;
33
33
  name?: NamePath;
34
+ desensitization?: [number, number] | ReactiveFunction<any, [number, number]>;
34
35
  }
35
36
  /** 计算响应式参数的值 */
36
37
  export declare const getReactiveProps: (params: Params) => {
@@ -38,10 +39,12 @@ export declare const getReactiveProps: (params: Params) => {
38
39
  show: boolean;
39
40
  component: any;
40
41
  fieldProps: boolean;
42
+ desensitization: [number, number];
41
43
  };
42
- type ValueTypeGetterParams = Pick<ProFormColumnProps, 'valueType' | 'switchValue' | 'toISOString' | 'toCSTString'> & {
44
+ type ValueTypeGetterParams = Pick<ProFormColumnProps, 'valueType' | 'switchValue' | 'toISOString' | 'toCSTString' | 'disabled' | 'desensitization'> & {
43
45
  type?: any;
44
46
  mode?: string;
47
+ desensitizationKey?: string;
45
48
  };
46
49
  /** 获取当前字段的转换函数 */
47
50
  export declare const getValueTypeTrans: (params: ValueTypeGetterParams) => any;
@@ -56,6 +59,8 @@ interface ColumnsTransformerParams {
56
59
  namePath?: InternalNamePath;
57
60
  form: FormInstance;
58
61
  index?: number;
62
+ formDisabled?: boolean;
63
+ desensitizationKey?: string;
59
64
  groupProps: GroupProps;
60
65
  }
61
66
  /** 转换columns */
@@ -128,7 +128,7 @@ var getReactiveProps = exports.getReactiveProps = function getReactiveProps(para
128
128
  show = params.show,
129
129
  component = params.component,
130
130
  fieldProps = params.fieldProps,
131
- name = params.name;
131
+ desensitization = params.desensitization;
132
132
  var values = namePath ? form.getFieldValue(namePath) : form.getFieldsValue();
133
133
  var _disabled = (0, _lodash.isFunction)(disabled) ? disabled(values, {
134
134
  form: form,
@@ -150,17 +150,31 @@ var getReactiveProps = exports.getReactiveProps = function getReactiveProps(para
150
150
  index: index,
151
151
  namePath: namePath
152
152
  }) : fieldProps;
153
+ var _desensitization = (0, _lodash.isFunction)(desensitization) ? desensitization(values, {
154
+ form: form,
155
+ index: index,
156
+ namePath: namePath
157
+ }) : desensitization;
153
158
  return {
154
159
  disabled: _disabled,
155
160
  show: _show,
156
161
  component: _component,
157
- fieldProps: _fieldProps
162
+ fieldProps: _fieldProps,
163
+ desensitization: _desensitization
158
164
  };
159
165
  };
160
166
  /** 获取当前字段的转换函数 */
161
167
  var getValueTypeTrans = exports.getValueTypeTrans = function getValueTypeTrans(params) {
162
168
  var _valueTypeMap$valueTy;
169
+ var desensitizationKey = params.desensitizationKey;
163
170
  var valueType = params.valueType;
171
+ var desensitization = params.desensitization,
172
+ disabled = params.disabled;
173
+ var isDesensit = sessionStorage.getItem(desensitizationKey);
174
+ // 仅查看模式下进行数据脱敏
175
+ if ((desensitization === null || desensitization === void 0 ? void 0 : desensitization.length) && disabled && isDesensit === 'ON') {
176
+ valueType = 'desensitization';
177
+ }
164
178
  var transform = (_valueTypeMap$valueTy = _valueType.default[valueType]) === null || _valueTypeMap$valueTy === void 0 ? void 0 : _valueTypeMap$valueTy.call(_valueType.default, params);
165
179
  return transform;
166
180
  };
@@ -206,7 +220,9 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
206
220
  namePath = params.namePath,
207
221
  value = params.value,
208
222
  internalChange = params.onChange,
209
- groupProps = params.groupProps;
223
+ groupProps = params.groupProps,
224
+ formDisabled = params.formDisabled,
225
+ desensitizationKey = params.desensitizationKey;
210
226
  var timerRef = (0, _react.useRef)([]);
211
227
  return columns === null || columns === void 0 ? void 0 : columns.flatMap(function (column, index) {
212
228
  var type = column.type,
@@ -219,7 +235,8 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
219
235
  disabled = column.disabled,
220
236
  show = column.show,
221
237
  component = column.component,
222
- clearNotShow = column.clearNotShow;
238
+ clearNotShow = column.clearNotShow,
239
+ desensitization = column.desensitization;
223
240
  var _ref = fieldProps || {},
224
241
  mode = _ref.mode,
225
242
  onChange = _ref.onChange,
@@ -260,19 +277,24 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
260
277
  show: show,
261
278
  component: component,
262
279
  fieldProps: fieldProps,
263
- name: columnName
280
+ name: columnName,
281
+ desensitization: desensitization
264
282
  });
265
283
  }, changedCallback, [value, show, fieldProps, _disabled, columnName, type]);
266
284
  if (reactiveProps.show === false) {
267
285
  return [];
268
286
  }
287
+ var isDisabled = formDisabled || _disabled || reactiveProps.disabled;
269
288
  var transform = getValueTypeTrans({
270
289
  type: type,
271
290
  valueType: valueType,
272
291
  switchValue: switchValue,
273
292
  toISOString: toISOString,
274
293
  toCSTString: toCSTString,
275
- mode: mode
294
+ mode: mode,
295
+ desensitizationKey: desensitizationKey,
296
+ disabled: isDisabled,
297
+ desensitization: reactiveProps.desensitization
276
298
  });
277
299
  var newValue;
278
300
  var handleChange = function handleChange() {
@@ -31,7 +31,7 @@ var _excluded = ["labelWidth", "hiddenNames", "trim", "upperCase", "className",
31
31
  /* eslint-disable prefer-destructuring */
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 = (0, _react.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 = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), otherFormItemProps);
138
+ var params = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), otherFormItemProps), {}, {
139
+ desensitization: _desensitization
140
+ });
129
141
  return (0, _lodash.isFunction)(_valueType.default[valueType]) ? _valueType.default[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 = (0, _toConsumableArray2.default)(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 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
310
+ var _ref8 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().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() {
@@ -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;
@@ -17,7 +17,7 @@ var componentMap = _interopRequireWildcard(require("../index"));
17
17
  var _utils = require("../../utils");
18
18
  var _useFieldProps = require("../../utils/useFieldProps");
19
19
  var _locale = _interopRequireDefault(require("../../../locale"));
20
- var _excluded = ["show", "type", "viewRender", "viewType", "valueType", "formItemProps", "colProps", "formItemChildProps", "fieldProps", "equalWith", "onDiff", "clearNotShow", "required", "confirm"];
20
+ var _excluded = ["show", "type", "viewRender", "viewType", "valueType", "formItemProps", "colProps", "formItemChildProps", "fieldProps", "equalWith", "onDiff", "clearNotShow", "required", "confirm", "desensitization"];
21
21
  var RenderFields = function RenderFields(props) {
22
22
  var isView = props.isView,
23
23
  _props$columns = props.columns,
@@ -34,7 +34,8 @@ var RenderFields = function RenderFields(props) {
34
34
  requiredOnView = props.requiredOnView,
35
35
  required = props.required,
36
36
  diffConfig = props.diffConfig,
37
- globalControl = props.globalControl;
37
+ globalControl = props.globalControl,
38
+ desensitizationKey = props.desensitizationKey;
38
39
  // 是否包含隐藏字段
39
40
  var hiddenData = columns.filter(function (item) {
40
41
  return Array.isArray(item.hiddenNames);
@@ -82,6 +83,7 @@ var RenderFields = function RenderFields(props) {
82
83
  clearNotShow = _column$clearNotShow === void 0 ? outerClearNotShow : _column$clearNotShow,
83
84
  columnRequired = column.required,
84
85
  confirm = column.confirm,
86
+ desensitization = column.desensitization,
85
87
  otherFormItemProps = (0, _objectWithoutProperties2.default)(column, _excluded);
86
88
  var component = column.component;
87
89
  var _isView = typeof column.isView === 'boolean' ? column.isView : isView;
@@ -196,7 +198,8 @@ var RenderFields = function RenderFields(props) {
196
198
  listName: column.listName,
197
199
  globalControl: globalControl,
198
200
  formDisabled: formDisabled,
199
- diffConfig: diffConfig
201
+ diffConfig: diffConfig,
202
+ desensitizationKey: desensitizationKey
200
203
  };
201
204
  return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
202
205
  value: otherProps,
@@ -220,7 +223,8 @@ var RenderFields = function RenderFields(props) {
220
223
  equalWith: onDiff || equalWith,
221
224
  requiredOnView: requiredOnView,
222
225
  globalControl: globalControl,
223
- viewRender: viewRender
226
+ viewRender: viewRender,
227
+ desensitization: desensitization
224
228
  })
225
229
  }, "".concat(_formItemProps.name || _formItemProps.label).concat(index));
226
230
  });
@@ -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
  /**
@@ -26,7 +26,7 @@ var _useFieldProps = require("./utils/useFieldProps");
26
26
  var _locale = _interopRequireDefault(require("../locale"));
27
27
  var _useWatch = _interopRequireDefault(require("./utils/useWatch"));
28
28
  var _FormsProvider = _interopRequireWildcard(require("../FormsProvider"));
29
- var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "diffConfig", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "formKey", "globalControl", "scrollToError", "optimize"];
29
+ 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"];
30
30
  var ProForm = function ProForm(props, ref) {
31
31
  var _localStorage, _ref;
32
32
  var _props$mode = props.mode,
@@ -70,6 +70,8 @@ var ProForm = function ProForm(props, ref) {
70
70
  scrollToError = _props$scrollToError === void 0 ? true : _props$scrollToError,
71
71
  _props$optimize = props.optimize,
72
72
  optimize = _props$optimize === void 0 ? false : _props$optimize,
73
+ _props$desensitizatio = props.desensitizationKey,
74
+ desensitizationKey = _props$desensitizatio === void 0 ? 'zat-design-pro-component-desensitization' : _props$desensitizatio,
73
75
  otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
74
76
  var config = (0, _ProConfigProvider.useProConfig)('ProForm');
75
77
  var _useForm = (0, _useForm3.useForm)(originForm, {
@@ -238,7 +240,8 @@ var ProForm = function ProForm(props, ref) {
238
240
  clearNotShow: clearNotShow,
239
241
  requiredOnView: requiredOnView,
240
242
  required: required,
241
- globalControl: globalControl
243
+ globalControl: globalControl,
244
+ desensitizationKey: desensitizationKey
242
245
  }), footerRender()]
243
246
  })), children]
244
247
  }));
@@ -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;
@@ -12,9 +12,16 @@ var filterObject = function filterObject(data) {
12
12
  if (!(0, _lodash.isObject)(data) || data === null) return data;
13
13
  // ['1', undefined] ['1', ''] 视为相等
14
14
  if (Array.isArray(data)) {
15
- return data.map(function (item) {
16
- return (0, _utils.isEmpty)(item) ? null : item;
15
+ // 数组中全是empty值的话 视为null
16
+ var isFillNull = true;
17
+ var arr = data.map(function (item) {
18
+ if ((0, _utils.isEmpty)(item)) {
19
+ return null;
20
+ }
21
+ isFillNull = false;
22
+ return item;
17
23
  });
24
+ return isFillNull ? null : arr;
18
25
  }
19
26
  var resData = {};
20
27
  Object.keys(data).forEach(function (key) {
@@ -28,7 +28,8 @@ var useShouldUpdate = function useShouldUpdate(props) {
28
28
  fieldProps = props.fieldProps,
29
29
  component = props.component,
30
30
  originComponent = props.originComponent,
31
- type = props.type;
31
+ type = props.type,
32
+ desensitization = props.desensitization;
32
33
  var _shouldUpdate = formItemProps.shouldUpdate,
33
34
  name = formItemProps.name,
34
35
  clearNotShow = formItemProps.clearNotShow,
@@ -45,13 +46,14 @@ var useShouldUpdate = function useShouldUpdate(props) {
45
46
  var fieldPropsRef = (0, _react.useRef)();
46
47
  var originComponentRef = (0, _react.useRef)();
47
48
  var dependNamesRef = (0, _react.useRef)();
49
+ var desensitizationRef = (0, _react.useRef)();
48
50
  var newComponent = originComponent || component; // 解决component默认赋值污染问题,需要使用originComponent
49
51
  var _useState = (0, _react.useState)({}),
50
52
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
51
53
  reRender = _useState2[1];
52
54
  var values = {};
53
55
  // 不是动态函数直接返回
54
- if (!(dependNames === null || dependNames === void 0 ? void 0 : dependNames.length) && !(0, _lodash.isFunction)(show) && !(0, _lodash.isFunction)(disabled) && !(0, _lodash.isFunction)(required) && !(0, _lodash.isFunction)(rules) && !(0, _lodash.isFunction)(fieldProps) && !(0, _lodash.isFunction)(originComponent)) {
56
+ if (!(dependNames === null || dependNames === void 0 ? void 0 : dependNames.length) && !(0, _lodash.isFunction)(show) && !(0, _lodash.isFunction)(disabled) && !(0, _lodash.isFunction)(required) && !(0, _lodash.isFunction)(rules) && !(0, _lodash.isFunction)(fieldProps) && !(0, _lodash.isFunction)(originComponent) && !(0, _lodash.isFunction)(desensitization)) {
55
57
  return {
56
58
  shouldUpdate: _shouldUpdate,
57
59
  show: show,
@@ -59,7 +61,8 @@ var useShouldUpdate = function useShouldUpdate(props) {
59
61
  required: required,
60
62
  rules: rules,
61
63
  fieldProps: fieldProps,
62
- component: newComponent
64
+ component: newComponent,
65
+ desensitization: desensitization
63
66
  };
64
67
  }
65
68
  if (namePath) {
@@ -77,6 +80,15 @@ var useShouldUpdate = function useShouldUpdate(props) {
77
80
  } else {
78
81
  showRef.current = show;
79
82
  }
83
+ if ((0, _lodash.isFunction)(desensitization)) {
84
+ desensitizationRef.current = desensitization(values, {
85
+ form: form,
86
+ index: index,
87
+ namePath: namePath
88
+ });
89
+ } else {
90
+ desensitizationRef.current = desensitization;
91
+ }
80
92
  if ((0, _lodash.isFunction)(disabled)) {
81
93
  // RangePicker返回数组时,特殊处理
82
94
  if (['Group', 'RangePicker', 'ProCascader'].includes(type) && Array.isArray(disabled(values, {
@@ -183,6 +195,11 @@ var useShouldUpdate = function useShouldUpdate(props) {
183
195
  index: index,
184
196
  namePath: namePath
185
197
  }) : fieldProps;
198
+ var _desensitization = (0, _lodash.isFunction)(desensitization) ? desensitization(_currentValues, {
199
+ form: form,
200
+ index: index,
201
+ namePath: namePath
202
+ }) : desensitization;
186
203
  // 清值防抖 多次刷新时以最后一次为准
187
204
  if (clearNotShow !== false && (name || names) && !isDeleteLine(form, namePath)) {
188
205
  // 当show为其他变为false的时候记录一次需要清值
@@ -208,13 +225,15 @@ var useShouldUpdate = function useShouldUpdate(props) {
208
225
  }
209
226
  var equalRes = (0, _lodash.isEqualWith)(rulesRef.current, _rules, _index.customEqualForFun);
210
227
  var proEqualRes = (0, _lodash.isEqualWith)(fieldPropsRef.current, _fieldProps, _index.customEqualForFun);
211
- if (_show !== showRef.current || _disabled !== disabledRef.current || _required !== requiredRef.current || !equalRes || !proEqualRes || (_fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.transformResponse) // 防止fieldProps变更时,transformResponse根据fieldProps新值无法触发更新
228
+ var desensitizationRes = (0, _lodash.isEqualWith)(desensitizationRef.current, _desensitization);
229
+ 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新值无法触发更新
212
230
  ) {
213
231
  showRef.current = _show;
214
232
  disabledRef.current = _disabled;
215
233
  requiredRef.current = _required;
216
234
  rulesRef.current = _rules;
217
235
  fieldPropsRef.current = _fieldProps;
236
+ desensitizationRef.current = _desensitization;
218
237
  reRender({});
219
238
  return false;
220
239
  }
@@ -231,7 +250,8 @@ var useShouldUpdate = function useShouldUpdate(props) {
231
250
  rules: rulesRef.current,
232
251
  required: requiredRef.current,
233
252
  component: originComponentRef.current,
234
- fieldProps: fieldPropsRef.current
253
+ fieldProps: fieldPropsRef.current,
254
+ desensitization: desensitizationRef.current
235
255
  };
236
256
  };
237
257
  var _default = exports.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;