@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
@@ -4,7 +4,7 @@ export interface DiffOriginalParams {
4
4
  originalValue: any;
5
5
  value: any;
6
6
  form: FormInstance;
7
- equalWith?: ({ originValue, originRecord, value, record, index }: {
7
+ equalWith?: ({ originValue, originRecord, value, record, index, }: {
8
8
  originValue: any;
9
9
  originRecord: any;
10
10
  value: any;
@@ -10,7 +10,20 @@ var isEmpty = _utils.validate.isEmpty;
10
10
  // 过滤对象中undefined字段
11
11
  // 防止{a: '1'} {a: '1', b: undefined | null}被认为不相等
12
12
  var filterObject = function filterObject(data) {
13
- if (!(0, _lodash.isObject)(data) || Array.isArray(data) || data === null) return data;
13
+ if (!(0, _lodash.isObject)(data) || data === null) return data;
14
+ // ['1', undefined] ['1', ''] 视为相等
15
+ if (Array.isArray(data)) {
16
+ // 数组中全是empty值的话 视为null
17
+ var isFillNull = true;
18
+ var arr = data.map(function (item) {
19
+ if (isEmpty(item)) {
20
+ return null;
21
+ }
22
+ isFillNull = false;
23
+ return item;
24
+ });
25
+ return isFillNull ? null : arr;
26
+ }
14
27
  var resData = {};
15
28
  Object.keys(data).forEach(function (key) {
16
29
  if (!isEmpty(data[key])) {
@@ -47,25 +60,11 @@ var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
47
60
  }
48
61
  var _value = filterObject(value);
49
62
  var _originalValue = filterObject(originalValue);
50
- // 如果原始值为空 且当前有值的话 认为变更类型是新增
51
- if (isEmpty(_originalValue) && !isEmpty(_value)) {
52
- return 'add';
53
- }
54
- if (Array.isArray(_originalValue)) {
55
- if ((_originalValue === null || _originalValue === void 0 ? void 0 : _originalValue.length) === (_value === null || _value === void 0 ? void 0 : _value.length)) {
56
- var isSame = _originalValue.every(function (valueItem, index) {
57
- // 如果两个值有一个不是空值, 则进行深比较
58
- if (!isEmpty(value === null || value === void 0 ? void 0 : value[index]) || !isEmpty(valueItem)) {
59
- return (0, _lodash.isEqual)(value === null || value === void 0 ? void 0 : value[index], valueItem);
60
- }
61
- return true;
62
- });
63
- return isSame ? 'same' : 'changed';
64
- }
65
- return 'changed';
66
- }
67
- if (!isEmpty(_originalValue) || !isEmpty(_value)) {
68
- return (0, _lodash.isEqual)(_value, _originalValue) ? 'same' : 'changed';
69
- }
70
- return 'same';
63
+ var isEmptyVal = isEmpty(_value);
64
+ var isEmptyOrg = isEmpty(_originalValue);
65
+ // 都为空视为相等
66
+ if (isEmptyOrg && isEmptyVal) return 'same';
67
+ // 如果原始值为空 且当前有值的话 视为新增
68
+ if (isEmptyOrg && !isEmptyVal) return 'add';
69
+ return (0, _lodash.isEqual)(_value, _originalValue) ? 'same' : 'changed';
71
70
  };
@@ -87,49 +87,54 @@ var getActionColumn = function getActionColumn(config) {
87
87
  action.show = show !== null && show !== void 0 ? show : true;
88
88
  action.needConfirm = needConfirm !== null && needConfirm !== void 0 ? needConfirm : true;
89
89
  action.onEvent = /*#__PURE__*/function () {
90
- var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(record, index) {
90
+ var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(record, _ref) {
91
91
  var _form$getFieldValue;
92
- var rowName, _record, onEvent, result;
92
+ var index, form, name, namePath, tableLength, selectedRows, rowName, _record, onEvent, result;
93
93
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
94
94
  while (1) switch (_context.prev = _context.next) {
95
95
  case 0:
96
+ index = _ref.index, form = _ref.form, name = _ref.name, namePath = _ref.namePath, tableLength = _ref.tableLength, selectedRows = _ref.selectedRows;
96
97
  index = _utils.tools.calc(firstIndex, '+', index);
97
98
  rowName = [].concat((0, _toConsumableArray2.default)(virtualRowName), [index]);
98
99
  if (!(type === 'save')) {
99
- _context.next = 12;
100
+ _context.next = 13;
100
101
  break;
101
102
  }
102
- _context.prev = 3;
103
- _context.next = 6;
103
+ _context.prev = 4;
104
+ _context.next = 7;
104
105
  return (0, _tools.customValidate)(validateKeys, form, rowName);
105
- case 6:
106
- _context.next = 12;
106
+ case 7:
107
+ _context.next = 13;
107
108
  break;
108
- case 8:
109
- _context.prev = 8;
110
- _context.t0 = _context["catch"](3);
109
+ case 9:
110
+ _context.prev = 9;
111
+ _context.t0 = _context["catch"](4);
111
112
  (0, _tools.handleScrollToError)();
112
113
  return _context.abrupt("return", Promise.reject(_context.t0));
113
- case 12:
114
+ case 13:
114
115
  // 编辑状态使用自定义form值,非编辑状态直接使用行数据
115
116
  _record = (_form$getFieldValue = form.getFieldValue(rowName)) !== null && _form$getFieldValue !== void 0 ? _form$getFieldValue : record; // 新增事件可以设置初始默认值,当做函数的出参导出
116
117
  onEvent = onClick || onHandle;
117
118
  if (onEvent) {
118
- _context.next = 18;
119
+ _context.next = 19;
119
120
  break;
120
121
  }
121
122
  result = true;
122
- _context.next = 21;
123
+ _context.next = 22;
123
124
  break;
124
- case 18:
125
- _context.next = 20;
126
- return onEvent === null || onEvent === void 0 ? void 0 : onEvent(_record, index, {
125
+ case 19:
126
+ _context.next = 21;
127
+ return onEvent === null || onEvent === void 0 ? void 0 : onEvent(_record, {
127
128
  form: form,
128
- namePath: virtualRowName
129
+ index: index,
130
+ tableLength: tableLength,
131
+ name: name,
132
+ namePath: namePath,
133
+ selectedRows: selectedRows
129
134
  });
130
- case 20:
131
- result = _context.sent;
132
135
  case 21:
136
+ result = _context.sent;
137
+ case 22:
133
138
  if (result !== false && type !== 'custom') {
134
139
  _config.actions[type]((0, _objectSpread2.default)((0, _objectSpread2.default)({}, config), {}, {
135
140
  rowName: [].concat((0, _toConsumableArray2.default)(name), [index]),
@@ -139,14 +144,14 @@ var getActionColumn = function getActionColumn(config) {
139
144
  validateKeys: validateKeys
140
145
  }));
141
146
  }
142
- case 22:
147
+ case 23:
143
148
  case "end":
144
149
  return _context.stop();
145
150
  }
146
- }, _callee, null, [[3, 8]]);
151
+ }, _callee, null, [[4, 9]]);
147
152
  }));
148
153
  return function (_x, _x2) {
149
- return _ref.apply(this, arguments);
154
+ return _ref2.apply(this, arguments);
150
155
  };
151
156
  }();
152
157
  action.buttonProps = buttonProps;
@@ -229,10 +234,10 @@ var transformColumns = exports.transformColumns = function transformColumns() {
229
234
  if (typeof columnTitle === 'string') {
230
235
  item.originTitle = columnTitle;
231
236
  if (tooltip) {
232
- var _ref2 = tooltip || {},
233
- tooltipTitle = _ref2.title,
234
- icon = _ref2.icon,
235
- resetProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
237
+ var _ref3 = tooltip || {},
238
+ tooltipTitle = _ref3.title,
239
+ icon = _ref3.icon,
240
+ resetProps = (0, _objectWithoutProperties2.default)(_ref3, _excluded2);
236
241
  item.title = (0, _jsxRuntime.jsxs)("span", {
237
242
  className: "pro-edit-table-title pro-edit-table-tooltip",
238
243
  children: [before, columnTitle, (0, _jsxRuntime.jsx)(_antd.Tooltip, (0, _objectSpread2.default)((0, _objectSpread2.default)({
@@ -392,13 +397,13 @@ var transformColumns = exports.transformColumns = function transformColumns() {
392
397
  // cacheMap 用来存储缓存值,若有值后不再请求
393
398
  if (JSON.stringify(cacheMap.current) === '{}') {
394
399
  Promise.all(Object.entries(_cacheMap).map(/*#__PURE__*/function () {
395
- var _ref3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2(item) {
396
- var _item, key, value, _ref4, service, option;
400
+ var _ref4 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2(item) {
401
+ var _item, key, value, _ref5, service, option;
397
402
  return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
398
403
  while (1) switch (_context2.prev = _context2.next) {
399
404
  case 0:
400
405
  _item = (0, _slicedToArray2.default)(item, 2), key = _item[0], value = _item[1];
401
- _ref4 = (value === null || value === void 0 ? void 0 : value.useRequest) || {}, service = _ref4.service, option = _ref4.option;
406
+ _ref5 = (value === null || value === void 0 ? void 0 : value.useRequest) || {}, service = _ref5.service, option = _ref5.option;
402
407
  if (!service) {
403
408
  _context2.next = 8;
404
409
  break;
@@ -418,7 +423,7 @@ var transformColumns = exports.transformColumns = function transformColumns() {
418
423
  }, _callee2);
419
424
  }));
420
425
  return function (_x3) {
421
- return _ref3.apply(this, arguments);
426
+ return _ref4.apply(this, arguments);
422
427
  };
423
428
  }())).then(function (res) {
424
429
  res.forEach(function (item) {
@@ -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() {
@@ -412,17 +424,22 @@ var Render = function Render(props) {
412
424
  colProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, colProps), {}, {
413
425
  span: lessMode ? colProps.span : 24 // 默认占一行
414
426
  });
415
- return (0, _jsxRuntime.jsx)(_antd.Form.List, (0, _objectSpread2.default)((0, _objectSpread2.default)({
416
- name: _otherFormItemProps.name
417
- }, (0, _lodash.omit)(_otherFormItemProps, ['rules'])), {}, {
418
- children: function children(fields, operation, meta) {
419
- return (0, _jsxRuntime.jsx)(AutoComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _lodash.omit)(lastComponentProps, lastComponentPropsFilter)), {}, {
420
- otherProps: otherProps,
421
- fields: fields,
422
- operation: operation,
423
- meta: meta
424
- }));
425
- }
427
+ return (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _lodash.omit)(_otherFormItemProps, [].concat(filterFormItemKey, ['name', 'names']))), {}, {
428
+ // @ts-ignore
429
+ _internalItemRender: internalItemRender,
430
+ className: _className,
431
+ children: (0, _jsxRuntime.jsx)(_antd.Form.List, (0, _objectSpread2.default)((0, _objectSpread2.default)({
432
+ name: _otherFormItemProps.name
433
+ }, (0, _lodash.omit)(_otherFormItemProps, ['rules'])), {}, {
434
+ children: function children(fields, operation, meta) {
435
+ return (0, _jsxRuntime.jsx)(AutoComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _lodash.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;
@@ -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) {