@zat-design/sisyphus-react 4.4.2 → 4.4.3-beta.2
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 +1 -1
- package/dist/less.esm.css +1 -1
- package/es/FormsProvider/index.d.ts +1 -1
- package/es/ProEditTable/components/RenderField/index.js +8 -8
- package/es/ProEditTable/utils/config.js +5 -2
- package/es/ProEditTable/utils/index.js +11 -6
- package/es/ProEditTable/utils/tools.js +3 -2
- package/es/ProEnum/index.js +1 -1
- package/es/ProForm/components/FormFooter/propsType.d.ts +1 -1
- package/es/ProForm/components/base/DatePicker/index.js +3 -2
- package/es/ProForm/components/combination/Group/component/ComRender.js +1 -1
- package/es/ProForm/components/combination/Group/component/FlexibleGroup.js +4 -11
- package/es/ProForm/components/combination/Group/hooks/index.js +1 -2
- package/es/ProForm/components/combination/Group/utils/index.d.ts +20 -20
- package/es/ProForm/components/render/Render.js +149 -180
- package/es/ProForm/components/render/RenderFields.js +13 -38
- package/es/ProForm/components/render/propsType.d.ts +1 -18
- package/es/ProForm/components/render/propsType.js +0 -26
- package/es/ProForm/hooks/useControlled.d.ts +1 -0
- package/es/ProForm/hooks/useControlled.js +14 -0
- package/es/ProForm/hooks/useForm.d.ts +8 -0
- package/es/ProForm/{utils → hooks}/useForm.js +1 -1
- package/es/ProForm/{utils → hooks}/useRules.js +2 -2
- package/es/ProForm/{utils → hooks}/useShouldUpdate.d.ts +5 -1
- package/es/ProForm/{utils → hooks}/useShouldUpdate.js +30 -77
- package/es/ProForm/{utils → hooks}/useWatch.js +1 -1
- package/es/ProForm/index.js +5 -4
- package/es/ProForm/propsType.d.ts +13 -1
- package/es/ProForm/utils/buildFormItemProps.d.ts +25 -0
- package/es/ProForm/utils/buildFormItemProps.js +90 -0
- package/es/ProForm/utils/index.d.ts +2 -6
- package/es/ProForm/utils/index.js +3 -30
- package/es/ProForm/utils/reactiveValues.d.ts +34 -0
- package/es/ProForm/utils/reactiveValues.js +45 -0
- package/es/ProSelect/index.js +8 -7
- package/es/ProTreeModal/components/Trigger.js +13 -12
- package/es/ProTreeModal/style/index.less +12 -1
- package/package.json +1 -1
- package/es/ProForm/utils/useForm.d.ts +0 -22
- /package/es/ProForm/{utils → hooks}/useDeepCompareMemo.d.ts +0 -0
- /package/es/ProForm/{utils → hooks}/useDeepCompareMemo.js +0 -0
- /package/es/ProForm/{utils → hooks}/useFieldProps.d.ts +0 -0
- /package/es/ProForm/{utils → hooks}/useFieldProps.js +0 -0
- /package/es/ProForm/{utils → hooks}/useRules.d.ts +0 -0
- /package/es/ProForm/{utils → hooks}/useWatch.d.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ModifiedFormInstanceType } from '../ProForm/
|
|
2
|
+
import type { ModifiedFormInstanceType } from '../ProForm/propsType';
|
|
3
3
|
type Forms = Record<string, ModifiedFormInstanceType<any>>;
|
|
4
4
|
export declare const FormsContext: React.Context<Forms>;
|
|
5
5
|
/**
|
|
@@ -18,8 +18,8 @@ import * as componentMap from "../../../ProForm/components";
|
|
|
18
18
|
import { useProConfig } from "../../../ProConfigProvider";
|
|
19
19
|
import Container from "../../../ProForm/components/Container";
|
|
20
20
|
import transformNames from "../../../ProForm/utils/transformNames";
|
|
21
|
-
import { FieldProvider } from "../../../ProForm/
|
|
22
|
-
import useRules from "../../../ProForm/
|
|
21
|
+
import { FieldProvider } from "../../../ProForm/hooks/useFieldProps";
|
|
22
|
+
import useRules from "../../../ProForm/hooks/useRules";
|
|
23
23
|
import { isSelect, isTrim } from "../../../ProForm/utils";
|
|
24
24
|
import locale from "../../../locale";
|
|
25
25
|
import ConfirmWrapper from "../../../ProForm/components/render/ConfirmWrapper";
|
|
@@ -51,7 +51,6 @@ const RenderField = ({
|
|
|
51
51
|
originTitle,
|
|
52
52
|
label,
|
|
53
53
|
dataIndex,
|
|
54
|
-
formItemProps,
|
|
55
54
|
isEditable = true,
|
|
56
55
|
required = false,
|
|
57
56
|
rules = [],
|
|
@@ -81,7 +80,7 @@ const RenderField = ({
|
|
|
81
80
|
getIsNew,
|
|
82
81
|
shouldUpdateDebounce
|
|
83
82
|
} = config;
|
|
84
|
-
let _fieldProps = fieldProps ||
|
|
83
|
+
let _fieldProps = fieldProps || {};
|
|
85
84
|
let _rules = rules || [];
|
|
86
85
|
let _required = required;
|
|
87
86
|
let _valueType = valueType;
|
|
@@ -620,7 +619,7 @@ const RenderField = ({
|
|
|
620
619
|
const latestRowParams = [latestRowData, latestReactiveParams];
|
|
621
620
|
|
|
622
621
|
// ⭐ 关键修改:shouldUpdate 模式下,跳过缓存,直接重新计算所有响应式属性
|
|
623
|
-
let latestFieldProps = fieldProps ||
|
|
622
|
+
let latestFieldProps = fieldProps || {};
|
|
624
623
|
if (_isFunction(fieldProps)) {
|
|
625
624
|
latestFieldProps = fieldProps(latestRowData, latestReactiveParams);
|
|
626
625
|
}
|
|
@@ -893,9 +892,10 @@ export default /*#__PURE__*/memo(RenderField, (prevProps, nextProps) => {
|
|
|
893
892
|
config: nextConfig
|
|
894
893
|
} = nextProps;
|
|
895
894
|
|
|
896
|
-
//
|
|
897
|
-
|
|
898
|
-
|
|
895
|
+
// 函数型动态属性(component/editRender/fieldProps/rules/required/disabled/isEditable/valueType)
|
|
896
|
+
// 可能依赖行内兄弟字段;行对象为同引用(原地修改)时,浅比较无法区分,需强制重渲染
|
|
897
|
+
const hasFunctionDependency = _isFunction(prevColumn?.component) || _isFunction(prevColumn?.editRender) || _isFunction(prevColumn?.fieldProps) || _isFunction(prevColumn?.rules) || _isFunction(prevColumn?.required) || _isFunction(prevColumn?.disabled) || _isFunction(prevColumn?.isEditable) || _isFunction(prevColumn?.valueType) || _isFunction(nextColumn?.component) || _isFunction(nextColumn?.editRender) || _isFunction(nextColumn?.fieldProps) || _isFunction(nextColumn?.rules) || _isFunction(nextColumn?.required) || _isFunction(nextColumn?.disabled) || _isFunction(nextColumn?.isEditable) || _isFunction(nextColumn?.valueType);
|
|
898
|
+
if (hasFunctionDependency && prevRecord === nextRecord) {
|
|
899
899
|
return false;
|
|
900
900
|
}
|
|
901
901
|
|
|
@@ -89,7 +89,9 @@ export const actions = {
|
|
|
89
89
|
delete record._isEditing;
|
|
90
90
|
}
|
|
91
91
|
// 防止value引用不变, 值不更新 - (自定义组件)
|
|
92
|
-
|
|
92
|
+
// 必须取全量 store(true):names 组合列只注册合并字段,拆分子字段(如 address/postcode)
|
|
93
|
+
// 未注册;getFieldsValue() 会丢掉它们,叠加 setFieldsValue 对数组「整体覆盖」会抹掉其他行的子字段
|
|
94
|
+
const values = form.getFieldsValue(true);
|
|
93
95
|
_set(values, rowName, record);
|
|
94
96
|
// 同步清理虚拟路径上的 _addFlag,避免再次编辑→取消时把已保存行误删
|
|
95
97
|
_set(values, virtualRowName, record);
|
|
@@ -128,8 +130,9 @@ export const actions = {
|
|
|
128
130
|
});
|
|
129
131
|
} else {
|
|
130
132
|
// 取消时使用主 form 原始行数据重置虚拟 form,避免编辑值残留
|
|
133
|
+
// 同 save:取全量 store(true),避免抹掉其他行未注册的 names 拆分子字段
|
|
131
134
|
const originalRecord = form.getFieldValue(rowName);
|
|
132
|
-
const values = form.getFieldsValue();
|
|
135
|
+
const values = form.getFieldsValue(true);
|
|
133
136
|
_set(values, virtualRowName, originalRecord ?? record);
|
|
134
137
|
form.setFieldsValue(values);
|
|
135
138
|
}
|
|
@@ -344,6 +344,9 @@ export const transformColumns = (columns = [], config, caches) => {
|
|
|
344
344
|
// 精准控制单元格更新,减少不必要的渲染
|
|
345
345
|
if (!item.shouldCellUpdate) {
|
|
346
346
|
const hasComponent = _isFunction(item.component);
|
|
347
|
+
// 函数型动态属性会依赖整行数据(可能是当前列之外的兄弟字段),
|
|
348
|
+
// 这类列在行内任意字段变化时都需重渲染,不能只比对本列 dataIndex
|
|
349
|
+
const hasFunctionDependency = hasComponent || _isFunction(item.editRender) || _isFunction(item.fieldProps) || _isFunction(item.rules) || _isFunction(item.required) || _isFunction(item.disabled) || _isFunction(item.isEditable) || _isFunction(item.valueType);
|
|
347
350
|
const columnCacheKey = `${Array.isArray(name) ? name.join('.') : String(name)}::${String(columnName)}`;
|
|
348
351
|
|
|
349
352
|
// Fix 问题1:用原始列引用(克隆前)比对 dataSource
|
|
@@ -387,22 +390,24 @@ export const transformColumns = (columns = [], config, caches) => {
|
|
|
387
390
|
if (virtualKey && record?._isEditing !== prevRecord?._isEditing) {
|
|
388
391
|
return true;
|
|
389
392
|
}
|
|
390
|
-
// 动态 component
|
|
393
|
+
// 动态 component 函数引用变化说明外部依赖(如异步 list)已更新,必须重渲染
|
|
394
|
+
// 即使行数据未变,旧闭包仍持有过时的外部状态
|
|
391
395
|
if (hasComponent) {
|
|
392
|
-
// component 函数引用变化说明外部依赖(如异步 list)已更新,必须重渲染
|
|
393
|
-
// 即使行数据未变,旧闭包仍持有过时的外部状态
|
|
394
396
|
const prevComponentRef = cellCaches.componentRef.get(columnCacheKey);
|
|
395
397
|
const currentComponentRef = item.component;
|
|
396
398
|
if (prevComponentRef !== currentComponentRef) {
|
|
397
399
|
cellCaches.componentRef.set(columnCacheKey, currentComponentRef);
|
|
398
400
|
return true;
|
|
399
401
|
}
|
|
400
|
-
|
|
402
|
+
}
|
|
403
|
+
// 函数型动态属性(component/fieldProps/rules/required/disabled/isEditable/valueType)
|
|
404
|
+
// 可能依赖行内其他字段(兄弟字段),需比较整行;
|
|
405
|
+
// 同引用原地修改时 isEqual 恒为 true,无法感知,必须强制重渲染
|
|
406
|
+
if (hasFunctionDependency) {
|
|
401
407
|
if (record === prevRecord) {
|
|
402
408
|
return true;
|
|
403
409
|
}
|
|
404
|
-
|
|
405
|
-
return rowChanged;
|
|
410
|
+
return !_isEqual(record, prevRecord);
|
|
406
411
|
}
|
|
407
412
|
const key = item.dataIndex || item.key;
|
|
408
413
|
if (!key) return true;
|
|
@@ -114,15 +114,16 @@ export const onDelete = ({
|
|
|
114
114
|
selectedRowKeys
|
|
115
115
|
}) => {
|
|
116
116
|
// 正常的form数据流处理
|
|
117
|
+
// 行可能为 undefined/null(单行编辑下虚拟数组多轮增删改后残留的空位),过滤时需先做空值守卫
|
|
117
118
|
let dataSource = form.getFieldValue(name);
|
|
118
|
-
dataSource = dataSource.filter(row => !selectedRowKeys.includes(row.rowKey));
|
|
119
|
+
dataSource = dataSource.filter(row => row && !selectedRowKeys.includes(row.rowKey));
|
|
119
120
|
form.setFieldValue(name, dataSource);
|
|
120
121
|
// 单行模式数据流处理 重置中间正在编辑状态单行数据
|
|
121
122
|
if (virtualKey) {
|
|
122
123
|
const namePath = getNamePath(name, virtualKey);
|
|
123
124
|
let virtualList = form.getFieldValue(namePath);
|
|
124
125
|
if (virtualList?.length) {
|
|
125
|
-
virtualList = virtualList.filter(row => !selectedRowKeys.includes(row.rowKey));
|
|
126
|
+
virtualList = virtualList.filter(row => row && !selectedRowKeys.includes(row.rowKey));
|
|
126
127
|
form.setFieldValue(namePath, virtualList);
|
|
127
128
|
}
|
|
128
129
|
}
|
package/es/ProEnum/index.js
CHANGED
|
@@ -16,7 +16,7 @@ import getEnumLabel from "./utils/getEnumLabel";
|
|
|
16
16
|
import useEnum from "./hooks/useEnum";
|
|
17
17
|
import getEnum from "./utils/getEnum";
|
|
18
18
|
import locale from "../locale";
|
|
19
|
-
import { useFieldProps } from "../ProForm/
|
|
19
|
+
import { useFieldProps } from "../ProForm/hooks/useFieldProps";
|
|
20
20
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
21
21
|
const ProEnum = props => {
|
|
22
22
|
const {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { ButtonProps, ColProps, FormInstance } from 'antd';
|
|
3
|
-
import { ModifiedFormInstanceType } from '../../
|
|
3
|
+
import type { ModifiedFormInstanceType } from '../../propsType';
|
|
4
4
|
export interface ButtonItem extends ButtonProps {
|
|
5
5
|
children?: any;
|
|
6
6
|
}
|
|
@@ -62,10 +62,11 @@ const DatePicker = props => {
|
|
|
62
62
|
let viewChildren = null;
|
|
63
63
|
if (!value) {
|
|
64
64
|
viewChildren = null;
|
|
65
|
-
} else if (typeof format === 'string' && _isObject(value)) {
|
|
66
|
-
viewChildren = value.format?.(format) || value;
|
|
67
65
|
} else if (_isFunction(format)) {
|
|
68
66
|
viewChildren = format(value);
|
|
67
|
+
} else if (_isObject(value) && _isFunction(value.format)) {
|
|
68
|
+
// dayjs / dayjs-like 对象:format 字符串优先,否则用 viewFormat(valueType > picker default)
|
|
69
|
+
viewChildren = value.format(typeof format === 'string' ? format : viewFormat);
|
|
69
70
|
} else if (_isString(value)) {
|
|
70
71
|
viewChildren = dayjs(value).format(viewFormat);
|
|
71
72
|
}
|
|
@@ -2,7 +2,7 @@ import _omit from "lodash/omit";
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { Form } from 'antd';
|
|
4
4
|
import ConfirmWrapper from "../../../../components/render/ConfirmWrapper";
|
|
5
|
-
import { FieldProvider } from "../../../../
|
|
5
|
+
import { FieldProvider } from "../../../../hooks/useFieldProps";
|
|
6
6
|
import * as componentMap from "../../../../../index";
|
|
7
7
|
import AddonWrapper from "./AddonWrapper";
|
|
8
8
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -3,7 +3,7 @@ import _isEmpty from "lodash/isEmpty";
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { Space, Form } from 'antd';
|
|
5
5
|
import classnames from 'classnames';
|
|
6
|
-
import { FieldProvider } from "../../../../
|
|
6
|
+
import { FieldProvider } from "../../../../hooks/useFieldProps";
|
|
7
7
|
import ProForm from "../../../../../ProForm";
|
|
8
8
|
import Render from "../../../render/Render";
|
|
9
9
|
import * as componentMap from "../../../../../index";
|
|
@@ -189,6 +189,8 @@ const FlexibleGroupRender = props => {
|
|
|
189
189
|
namePath: childNamePath || contextProps.namePath,
|
|
190
190
|
formDisabled: otherProps?.formDisabled,
|
|
191
191
|
globalControl: otherProps?.globalControl,
|
|
192
|
+
diffConfig: otherProps?.diffConfig,
|
|
193
|
+
shouldUpdateDebounce: otherProps?.shouldUpdateDebounce,
|
|
192
194
|
// 灵活模式样式属性
|
|
193
195
|
flexibleGroupProps: {
|
|
194
196
|
className: formItemClassName,
|
|
@@ -204,27 +206,18 @@ const FlexibleGroupRender = props => {
|
|
|
204
206
|
value: renderOtherProps,
|
|
205
207
|
children: /*#__PURE__*/_jsx(Render, {
|
|
206
208
|
show: child.show,
|
|
207
|
-
form: form,
|
|
208
209
|
disabled: child.disabled,
|
|
209
|
-
formDisabled: otherProps?.formDisabled,
|
|
210
|
-
type: type,
|
|
211
210
|
originComponent: child.component,
|
|
212
211
|
component: TargetComponent,
|
|
213
212
|
formItemProps: formItemProps,
|
|
214
213
|
confirm: child.confirm,
|
|
215
|
-
colProps: {
|
|
216
|
-
span: 24
|
|
217
|
-
},
|
|
218
214
|
componentProps: adjustedFieldProps || {},
|
|
219
215
|
otherProps: renderOtherProps,
|
|
220
216
|
fieldProps: child.fieldProps,
|
|
221
217
|
isSelect: false // 由 Render 内部计算
|
|
222
218
|
,
|
|
223
|
-
diffConfig: otherProps?.diffConfig,
|
|
224
219
|
requiredOnView: otherProps?.requiredOnView,
|
|
225
|
-
|
|
226
|
-
viewRender: child.viewRender,
|
|
227
|
-
shouldUpdateDebounce: otherProps?.shouldUpdateDebounce
|
|
220
|
+
viewRender: child.viewRender
|
|
228
221
|
})
|
|
229
222
|
}, child.name || `item-${index}`);
|
|
230
223
|
};
|
|
@@ -3,7 +3,7 @@ import _isEqual from "lodash/isEqual";
|
|
|
3
3
|
import _cloneDeep from "lodash/cloneDeep";
|
|
4
4
|
/* eslint-disable no-lonely-if */
|
|
5
5
|
import { useRef, useEffect } from 'react';
|
|
6
|
-
import { useDeepCompareMemo } from "../../../../
|
|
6
|
+
import { useDeepCompareMemo } from "../../../../hooks/useDeepCompareMemo";
|
|
7
7
|
import { difference } from "../../../../../ProEditTable/utils/tools";
|
|
8
8
|
import { getReactiveProps, getValueTypeTrans, valueFromEventWrapper } from "../utils";
|
|
9
9
|
/** 转换columns */
|
|
@@ -65,7 +65,6 @@ export const useTransformColumns = params => {
|
|
|
65
65
|
};
|
|
66
66
|
|
|
67
67
|
// 响应式字段
|
|
68
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
69
68
|
const reactiveProps = useDeepCompareMemo(() => {
|
|
70
69
|
return getReactiveProps({
|
|
71
70
|
form,
|
|
@@ -75,58 +75,58 @@ export declare const useFormItemProps: (column: FlexibleGroupColumnType, context
|
|
|
75
75
|
confirm?: boolean | import("antd").ModalFuncProps | import("../../../render/propsType").FunctionArgs<any, boolean | import("antd").ModalFuncProps>;
|
|
76
76
|
show?: boolean | ReactiveFunction<any, boolean>;
|
|
77
77
|
component?: React.ReactNode | ReactiveFunction<any, React.ReactNode>;
|
|
78
|
-
prefixCls?: string;
|
|
79
|
-
htmlFor?: string;
|
|
80
|
-
className?: string;
|
|
81
|
-
hidden?: boolean;
|
|
82
|
-
id?: string;
|
|
83
|
-
style?: React.CSSProperties;
|
|
84
|
-
children?: React.ReactNode | ((form: FormInstance<any>) => React.ReactNode);
|
|
85
|
-
onReset?: () => void;
|
|
86
|
-
trim?: boolean;
|
|
87
|
-
normalize?: (value: any, prevValue: any, allValues: import("@rc-component/form/lib/interface").Store) => any;
|
|
88
|
-
vertical?: boolean;
|
|
89
|
-
isView?: boolean;
|
|
90
|
-
trigger?: string;
|
|
91
78
|
toISOString?: boolean;
|
|
92
79
|
toCSTString?: boolean;
|
|
93
80
|
switchValue?: [any, any];
|
|
94
81
|
clearNotShow?: boolean;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
valueType?: import("../../../render/propsType").ProFormValueType;
|
|
82
|
+
trim?: boolean;
|
|
83
|
+
upperCase?: boolean;
|
|
84
|
+
normalize?: (value: any, prevValue: any, allValues: import("@rc-component/form/lib/interface").Store) => any;
|
|
99
85
|
getValueProps?: ((value: any) => Record<string, unknown>) & ((value: any) => Record<string, unknown>);
|
|
100
86
|
shouldUpdate?: import("@rc-component/form/lib/Field").ShouldUpdate<any>;
|
|
101
87
|
colon?: boolean;
|
|
88
|
+
htmlFor?: string;
|
|
102
89
|
labelAlign?: import("antd/es/form/interface").FormLabelAlign;
|
|
103
90
|
labelCol?: import("antd").ColProps;
|
|
91
|
+
vertical?: boolean;
|
|
92
|
+
children?: React.ReactNode | ((form: FormInstance<any>) => React.ReactNode);
|
|
104
93
|
getValueFromEvent?: (...args: import("@rc-component/form/lib/interface").EventArgs) => any;
|
|
94
|
+
trigger?: string;
|
|
95
|
+
validateTrigger?: string | false | string[];
|
|
105
96
|
validateDebounce?: number;
|
|
106
97
|
valuePropName?: string;
|
|
107
98
|
messageVariables?: Record<string, string>;
|
|
108
99
|
initialValue?: any;
|
|
100
|
+
onReset?: () => void;
|
|
109
101
|
onMetaChange?: (meta: import("@rc-component/form/lib/Field").MetaEvent) => void;
|
|
110
102
|
preserve?: boolean;
|
|
111
103
|
isListField?: boolean;
|
|
112
104
|
isList?: boolean;
|
|
105
|
+
prefixCls?: string;
|
|
113
106
|
noStyle?: boolean;
|
|
107
|
+
style?: React.CSSProperties;
|
|
108
|
+
className?: string;
|
|
109
|
+
rootClassName?: string;
|
|
110
|
+
id?: string;
|
|
114
111
|
hasFeedback?: boolean | {
|
|
115
112
|
icons: import("antd/es/form/FormItem").FeedbackIcons;
|
|
116
113
|
};
|
|
117
|
-
validateStatus?: "" | "
|
|
114
|
+
validateStatus?: "" | "success" | "warning" | "error" | "validating";
|
|
115
|
+
hidden?: boolean;
|
|
118
116
|
layout?: import("antd/es/form/Form").FormItemLayout;
|
|
119
117
|
wrapperCol?: import("antd").ColProps;
|
|
118
|
+
status?: "" | "success" | "warning" | "error" | "validating";
|
|
120
119
|
help?: React.ReactNode;
|
|
121
120
|
fieldId?: string;
|
|
122
|
-
|
|
121
|
+
valueType?: import("../../../render/propsType").ProFormValueType;
|
|
122
|
+
isView?: boolean;
|
|
123
123
|
viewRender?: (value: any, record: any, { form, index, namePath, }: {
|
|
124
124
|
[key: string]: any;
|
|
125
125
|
form: FormInstance<any>;
|
|
126
126
|
index?: number;
|
|
127
127
|
}) => string | React.ReactElement<any, any>;
|
|
128
128
|
viewType?: import("../../../render/propsType").ViewType;
|
|
129
|
-
|
|
129
|
+
desensitization?: [number, number] | ReactiveFunction<any, [number, number]>;
|
|
130
130
|
name: any;
|
|
131
131
|
dependencies: any[];
|
|
132
132
|
tooltip: string | {
|