@zat-design/sisyphus-react 3.9.8 → 3.10.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.css +0 -5
- package/dist/less.esm.css +0 -5
- package/es/ProEditTable/components/ActionButton/index.js +57 -9
- package/es/ProEditTable/components/RenderField/index.js +23 -14
- package/es/ProEditTable/components/RenderToolbar/index.js +18 -16
- package/es/ProEditTable/index.js +1 -1
- package/es/ProEditTable/propsType.d.ts +6 -3
- package/es/ProEditTable/utils/diffOriginal.d.ts +1 -1
- package/es/ProEditTable/utils/diffOriginal.js +21 -22
- package/es/ProEditTable/utils/index.js +35 -30
- package/es/ProForm/components/combination/Group/index.js +7 -2
- package/es/ProForm/components/combination/Group/propsType.d.ts +1 -0
- package/es/ProForm/components/combination/Group/utils.d.ts +6 -1
- package/es/ProForm/components/combination/Group/utils.js +28 -6
- package/es/ProForm/components/render/Render.js +39 -22
- package/es/ProForm/components/render/RenderFields.d.ts +1 -0
- package/es/ProForm/components/render/RenderFields.js +8 -4
- package/es/ProForm/components/render/propsType.d.ts +3 -1
- package/es/ProForm/index.js +5 -2
- package/es/ProForm/propsType.d.ts +3 -0
- package/es/ProForm/utils/diffOriginal.js +9 -2
- package/es/ProForm/utils/useShouldUpdate.js +25 -5
- package/es/ProForm/utils/valueType.d.ts +8 -0
- package/es/ProForm/utils/valueType.js +99 -33
- package/es/ProLayout/components/ProHeader/style/index.less +0 -8
- package/es/ProTable/components/FormatColumn/index.js +2 -1
- package/es/ProTable/components/RenderColumn/index.d.ts +2 -0
- package/es/ProTable/components/RenderColumn/index.js +10 -2
- package/es/ProTable/hooks/useAntdTable.js +4 -3
- package/es/ProTable/propsType.d.ts +2 -0
- package/es/ProTable/utils/index.d.ts +4 -0
- package/es/ProTable/utils/index.js +15 -0
- package/lib/ProEditTable/components/ActionButton/index.js +57 -9
- package/lib/ProEditTable/components/RenderField/index.js +22 -13
- package/lib/ProEditTable/components/RenderToolbar/index.js +18 -16
- package/lib/ProEditTable/index.js +1 -1
- package/lib/ProEditTable/propsType.d.ts +6 -3
- package/lib/ProEditTable/utils/diffOriginal.d.ts +1 -1
- package/lib/ProEditTable/utils/diffOriginal.js +21 -22
- package/lib/ProEditTable/utils/index.js +35 -30
- package/lib/ProForm/components/combination/Group/index.js +7 -2
- package/lib/ProForm/components/combination/Group/propsType.d.ts +1 -0
- package/lib/ProForm/components/combination/Group/utils.d.ts +6 -1
- package/lib/ProForm/components/combination/Group/utils.js +28 -6
- package/lib/ProForm/components/render/Render.js +39 -22
- package/lib/ProForm/components/render/RenderFields.d.ts +1 -0
- package/lib/ProForm/components/render/RenderFields.js +8 -4
- package/lib/ProForm/components/render/propsType.d.ts +3 -1
- package/lib/ProForm/index.js +5 -2
- package/lib/ProForm/propsType.d.ts +3 -0
- package/lib/ProForm/utils/diffOriginal.js +9 -2
- package/lib/ProForm/utils/useShouldUpdate.js +25 -5
- package/lib/ProForm/utils/valueType.d.ts +8 -0
- package/lib/ProForm/utils/valueType.js +100 -34
- package/lib/ProLayout/components/ProHeader/style/index.less +0 -8
- package/lib/ProTable/components/FormatColumn/index.js +2 -1
- package/lib/ProTable/components/RenderColumn/index.d.ts +2 -0
- package/lib/ProTable/components/RenderColumn/index.js +10 -2
- package/lib/ProTable/hooks/useAntdTable.js +3 -2
- package/lib/ProTable/propsType.d.ts +2 -0
- package/lib/ProTable/utils/index.d.ts +4 -0
- package/lib/ProTable/utils/index.js +17 -1
- package/package.json +2 -1
@@ -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) ||
|
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
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
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
|
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 =
|
100
|
+
_context.next = 13;
|
100
101
|
break;
|
101
102
|
}
|
102
|
-
_context.prev =
|
103
|
-
_context.next =
|
103
|
+
_context.prev = 4;
|
104
|
+
_context.next = 7;
|
104
105
|
return (0, _tools.customValidate)(validateKeys, form, rowName);
|
105
|
-
case
|
106
|
-
_context.next =
|
106
|
+
case 7:
|
107
|
+
_context.next = 13;
|
107
108
|
break;
|
108
|
-
case
|
109
|
-
_context.prev =
|
110
|
-
_context.t0 = _context["catch"](
|
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
|
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 =
|
119
|
+
_context.next = 19;
|
119
120
|
break;
|
120
121
|
}
|
121
122
|
result = true;
|
122
|
-
_context.next =
|
123
|
+
_context.next = 22;
|
123
124
|
break;
|
124
|
-
case
|
125
|
-
_context.next =
|
126
|
-
return onEvent === null || onEvent === void 0 ? void 0 : onEvent(_record,
|
125
|
+
case 19:
|
126
|
+
_context.next = 21;
|
127
|
+
return onEvent === null || onEvent === void 0 ? void 0 : onEvent(_record, {
|
127
128
|
form: form,
|
128
|
-
|
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
|
147
|
+
case 23:
|
143
148
|
case "end":
|
144
149
|
return _context.stop();
|
145
150
|
}
|
146
|
-
}, _callee, null, [[
|
151
|
+
}, _callee, null, [[4, 9]]);
|
147
152
|
}));
|
148
153
|
return function (_x, _x2) {
|
149
|
-
return
|
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
|
233
|
-
tooltipTitle =
|
234
|
-
icon =
|
235
|
-
resetProps = (0, _objectWithoutProperties2.default)(
|
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
|
396
|
-
var _item, key, value,
|
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
|
-
|
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
|
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
|
-
|
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
|
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
|
-
|
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 ? (
|
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
|
198
|
-
valueType =
|
209
|
+
var _ref7 = otherProps || {},
|
210
|
+
valueType = _ref7.valueType;
|
199
211
|
_args[1] = form.getFieldsValue();
|
200
212
|
_args[2] = {
|
201
213
|
form: form
|
@@ -295,7 +307,7 @@ var Render = function Render(props) {
|
|
295
307
|
* onBlur参数重置 (value, record, { form, index, namePath, option }) => void
|
296
308
|
*/
|
297
309
|
var handleBlur = /*#__PURE__*/function () {
|
298
|
-
var
|
310
|
+
var _ref8 = (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
|
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.
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
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
|
/**
|
package/lib/ProForm/index.js
CHANGED
@@ -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
|
-
|
16
|
-
|
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) {
|