@zat-design/sisyphus-react 3.13.2-beta.6 → 3.13.2-beta.7
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/es/FormsProvider/index.d.ts +2 -2
- package/es/ProForm/components/FormFooter/index.js +14 -1
- package/es/ProForm/components/FormFooter/propsType.d.ts +2 -1
- package/es/ProForm/components/render/Render.js +4 -2
- package/es/ProForm/index.js +13 -3
- package/es/ProForm/propsType.d.ts +2 -0
- package/es/ProForm/utils/index.d.ts +7 -2
- package/es/ProForm/utils/index.js +19 -1
- package/es/ProForm/utils/useForm.d.ts +7 -2
- package/es/ProForm/utils/useForm.js +87 -20
- package/lib/FormsProvider/index.d.ts +2 -2
- package/lib/ProForm/components/FormFooter/index.js +14 -1
- package/lib/ProForm/components/FormFooter/propsType.d.ts +2 -1
- package/lib/ProForm/components/render/Render.js +4 -2
- package/lib/ProForm/index.js +11 -1
- package/lib/ProForm/propsType.d.ts +2 -0
- package/lib/ProForm/utils/index.d.ts +7 -2
- package/lib/ProForm/utils/index.js +20 -2
- package/lib/ProForm/utils/useForm.d.ts +7 -2
- package/lib/ProForm/utils/useForm.js +86 -19
- package/package.json +1 -1
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import {
|
3
|
-
type Forms = Record<string,
|
2
|
+
import { ModifiedFormInstanceType } from '../ProForm/utils/useForm';
|
3
|
+
type Forms = Record<string, ModifiedFormInstanceType<any>>;
|
4
4
|
export declare const FormsContext: React.Context<Forms>;
|
5
5
|
/**
|
6
6
|
* @param formKey 表单实例key
|
@@ -38,12 +38,25 @@ var FormFooter = function FormFooter(props) {
|
|
38
38
|
}
|
39
39
|
}, [formId]);
|
40
40
|
var _onOk = function _onOk() {
|
41
|
+
var _modifiedForm$__INTER;
|
41
42
|
if (formId) {
|
42
43
|
var values = form.getFieldsValue();
|
43
44
|
searchCache[formId] = values;
|
44
45
|
window.sessionStorage.setItem(PRO_FORM_CACHE, JSON.stringify(searchCache));
|
45
46
|
}
|
46
|
-
|
47
|
+
// 支持 stopOnFirstError
|
48
|
+
// @ts-ignore 使用类型断言处理自定义属性
|
49
|
+
var modifiedForm = form;
|
50
|
+
if ((_modifiedForm$__INTER = modifiedForm.__INTERNAL_CONFIG__) === null || _modifiedForm$__INTER === void 0 ? void 0 : _modifiedForm$__INTER.stopOnFirstError) {
|
51
|
+
// 使用自定义验证逻辑
|
52
|
+
form.validateFields().then(function () {
|
53
|
+
onOk();
|
54
|
+
}).catch(function () {
|
55
|
+
// 验证失败,不执行 onOk
|
56
|
+
});
|
57
|
+
} else {
|
58
|
+
onOk();
|
59
|
+
}
|
47
60
|
};
|
48
61
|
var _onCancel = function _onCancel() {
|
49
62
|
if (formId && searchCache[formId]) {
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { ButtonProps, ColProps, FormInstance } from 'antd';
|
2
|
+
import { ModifiedFormInstanceType } from '../../utils/useForm';
|
2
3
|
export interface ButtonItem extends ButtonProps {
|
3
4
|
children?: any;
|
4
5
|
}
|
@@ -15,7 +16,7 @@ export interface FooterRenderType {
|
|
15
16
|
footer?: FooterButtonType;
|
16
17
|
confirmLoading?: boolean;
|
17
18
|
formId?: string;
|
18
|
-
form: FormInstance
|
19
|
+
form: FormInstance | ModifiedFormInstanceType<any>;
|
19
20
|
}
|
20
21
|
/**
|
21
22
|
* 兼容旧命名导出
|
@@ -12,7 +12,7 @@ import _Form from "antd/es/form";
|
|
12
12
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
13
13
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
14
14
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
15
|
-
var _excluded = ["labelWidth", "hiddenNames", "trim", "upperCase", "className", "rules", "required", "labelRequired", "tooltip"];
|
15
|
+
var _excluded = ["labelWidth", "hiddenNames", "trim", "upperCase", "className", "rules", "required", "labelRequired", "tooltip", "validateFirst"];
|
16
16
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
17
17
|
/* eslint-disable prefer-destructuring */
|
18
18
|
|
@@ -64,6 +64,8 @@ var Render = function Render(props) {
|
|
64
64
|
required = formItemProps.required,
|
65
65
|
labelRequired = formItemProps.labelRequired,
|
66
66
|
tooltip = formItemProps.tooltip,
|
67
|
+
_formItemProps$valida = formItemProps.validateFirst,
|
68
|
+
validateFirst = _formItemProps$valida === void 0 ? true : _formItemProps$valida,
|
67
69
|
otherFormItemProps = _objectWithoutProperties(formItemProps, _excluded);
|
68
70
|
// 更新show & disabled & rules
|
69
71
|
var _useShouldUpdate = useShouldUpdate({
|
@@ -156,7 +158,7 @@ var Render = function Render(props) {
|
|
156
158
|
required: false
|
157
159
|
} : null, _objectSpread({}, isTrim(type, trim, useProConfig())), // 优先取传进来的,其次取ProConfigProvider配置的
|
158
160
|
_objectSpread({}, isUpperCase(type, upperCase)), {
|
159
|
-
validateFirst:
|
161
|
+
validateFirst: validateFirst
|
160
162
|
},
|
161
163
|
// 当某一规则校验不通过时,是否停止剩下的规则的校验
|
162
164
|
{
|
package/es/ProForm/index.js
CHANGED
@@ -11,17 +11,17 @@ import "antd/es/space/style";
|
|
11
11
|
import _Space from "antd/es/space";
|
12
12
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
13
13
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
14
|
-
var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "diffConfig", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "formKey", "globalControl", "scrollToError", "optimize", "desensitizationKey"];
|
14
|
+
var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "diffConfig", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "formKey", "globalControl", "scrollToError", "optimize", "desensitizationKey", "stopOnFirstError"];
|
15
15
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
16
16
|
import { DoubleLeftOutlined } from '@ant-design/icons';
|
17
17
|
import classnames from 'classnames';
|
18
|
-
import React, { forwardRef, useImperativeHandle, useMemo } from 'react';
|
18
|
+
import React, { forwardRef, useImperativeHandle, useMemo, useEffect } from 'react';
|
19
19
|
import { isObject, merge, omit } from 'lodash';
|
20
20
|
import { FormFooter, InputRange, ProAddress, ProCascader, ProCertNo, ProCertValidity, ProCombination, ProModalSelect, ProNumberRange, ProRangeBox, ProTimeLimit, transferAddressInfoToRegion, ProUpload, ProTreeModal, ProTree, EnumSelect } from './components';
|
21
21
|
import RenderFields from './components/render/RenderFields';
|
22
22
|
import { useProConfig } from '../ProConfigProvider';
|
23
23
|
import { useProDrawerFormContext } from '../ProDrawerForm';
|
24
|
-
import { getLayout, splitNameStr, useControlled, initialValuesToNames, filterInternalFields } from './utils/index';
|
24
|
+
import { getLayout, splitNameStr, useControlled, initialValuesToNames, filterInternalFields, getFormFieldPaths } from './utils/index';
|
25
25
|
import { useForm } from './utils/useForm';
|
26
26
|
import { useFieldProps } from './utils/useFieldProps';
|
27
27
|
import locale from '../locale';
|
@@ -73,6 +73,8 @@ var ProForm = function ProForm(props, ref) {
|
|
73
73
|
optimize = _props$optimize === void 0 ? false : _props$optimize,
|
74
74
|
_props$desensitizatio = props.desensitizationKey,
|
75
75
|
desensitizationKey = _props$desensitizatio === void 0 ? 'zat-design-pro-component-desensitization' : _props$desensitizatio,
|
76
|
+
_props$stopOnFirstErr = props.stopOnFirstError,
|
77
|
+
stopOnFirstError = _props$stopOnFirstErr === void 0 ? false : _props$stopOnFirstErr,
|
76
78
|
otherProps = _objectWithoutProperties(props, _excluded);
|
77
79
|
var config = useProConfig('ProForm');
|
78
80
|
// source: 用于区分是哪个组件调用,用于错误提示
|
@@ -91,6 +93,14 @@ var ProForm = function ProForm(props, ref) {
|
|
91
93
|
}),
|
92
94
|
_useForm2 = _slicedToArray(_useForm, 1),
|
93
95
|
form = _useForm2[0];
|
96
|
+
// 保存内部配置
|
97
|
+
useEffect(function () {
|
98
|
+
if (!form.__INTERNAL_CONFIG__) {
|
99
|
+
form.__INTERNAL_CONFIG__ = {};
|
100
|
+
}
|
101
|
+
form.__INTERNAL_CONFIG__.fields = getFormFieldPaths(form);
|
102
|
+
form.__INTERNAL_CONFIG__.stopOnFirstError = stopOnFirstError;
|
103
|
+
}, [stopOnFirstError, form]);
|
94
104
|
var _useControlled = useControlled({
|
95
105
|
value: expandOpen,
|
96
106
|
onChange: expandOpenChange
|
@@ -101,6 +101,8 @@ export interface ProFormType<Values = any> extends FormProps<Values> {
|
|
101
101
|
optimize?: boolean;
|
102
102
|
/** 全局脱敏开关的key、默认 zat-design-pro-component-desensitization */
|
103
103
|
desensitizationKey?: string;
|
104
|
+
/** 是否在遇到第一个错误时停止验证 */
|
105
|
+
stopOnFirstError?: boolean;
|
104
106
|
}
|
105
107
|
export interface TransformType<T = any> {
|
106
108
|
normalize?: (value: StoreValue, prevValue: StoreValue, allValues: Store) => StoreValue;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ColProps, FormProps } from 'antd';
|
1
|
+
import { ColProps, FormProps, FormInstance } from 'antd';
|
2
2
|
import { InternalNamePath, NamePath } from 'antd/es/form/interface';
|
3
3
|
interface transProps {
|
4
4
|
formProps: FormProps;
|
@@ -95,6 +95,11 @@ export declare const findOptionByValue: (treeData: any[], value: string | number
|
|
95
95
|
export declare const equalDependencies: (dependencies: any, prevValues: any, currentValues: any) => any;
|
96
96
|
/** 解析namePath */
|
97
97
|
export declare const parseNamePath: (input: string) => any;
|
98
|
-
/**
|
98
|
+
/**
|
99
|
+
* 获取表单所有字段路径的简化函数
|
100
|
+
* @param form 表单实例
|
101
|
+
* @returns 所有字段路径数组
|
102
|
+
*/
|
103
|
+
export declare const getFormFieldPaths: (form: FormInstance) => any[];
|
99
104
|
export declare function findNamesKeyInArray(arr: string[], key: string): string | null;
|
100
105
|
export {};
|
@@ -413,7 +413,25 @@ export var parseNamePath = function parseNamePath(input) {
|
|
413
413
|
});
|
414
414
|
return [result];
|
415
415
|
};
|
416
|
-
/**
|
416
|
+
/**
|
417
|
+
* 获取表单所有字段路径的简化函数
|
418
|
+
* @param form 表单实例
|
419
|
+
* @returns 所有字段路径数组
|
420
|
+
*/
|
421
|
+
export var getFormFieldPaths = function getFormFieldPaths(form) {
|
422
|
+
try {
|
423
|
+
// @ts-ignore
|
424
|
+
var _form$getInternalHook = form.getInternalHooks('RC_FORM_INTERNAL_HOOKS'),
|
425
|
+
getFields = _form$getInternalHook.getFields;
|
426
|
+
var allFields = getFields();
|
427
|
+
return allFields.map(function (field) {
|
428
|
+
return field.name;
|
429
|
+
});
|
430
|
+
} catch (error) {
|
431
|
+
console.error('获取表单字段失败:', error);
|
432
|
+
return [];
|
433
|
+
}
|
434
|
+
};
|
417
435
|
export function findNamesKeyInArray(arr, key) {
|
418
436
|
var _iterator = _createForOfIteratorHelper(arr),
|
419
437
|
_step;
|
@@ -1,12 +1,17 @@
|
|
1
1
|
import { FormInstance } from 'antd';
|
2
2
|
import { NamePath } from 'antd/es/form/interface';
|
3
3
|
import { ValuedNotifyInfo } from 'rc-field-form/es/interface';
|
4
|
-
export type
|
4
|
+
export type ModifiedFormInstanceType<T> = FormInstance<T> & {
|
5
5
|
isModified?: boolean;
|
6
6
|
/** 默认清空设置值的报错状态 */
|
7
7
|
setFieldValue: (name: NamePath, value: any, info?: ValuedNotifyInfo) => void;
|
8
8
|
formKey?: string;
|
9
9
|
_init?: boolean;
|
10
|
+
__INTERNAL_CONFIG__?: {
|
11
|
+
fields?: any[];
|
12
|
+
stopOnFirstError?: boolean;
|
13
|
+
[key: string]: any;
|
14
|
+
};
|
10
15
|
};
|
11
16
|
export interface FormInstanceOption {
|
12
17
|
scrollToError?: boolean;
|
@@ -14,4 +19,4 @@ export interface FormInstanceOption {
|
|
14
19
|
formKey?: string;
|
15
20
|
source?: string;
|
16
21
|
}
|
17
|
-
export declare const useForm: <T>(originForm?:
|
22
|
+
export declare const useForm: <T>(originForm?: ModifiedFormInstanceType<T> | FormInstanceOption, options?: FormInstanceOption) => [ModifiedFormInstanceType<T>];
|
@@ -1,12 +1,13 @@
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
2
1
|
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
3
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
3
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
4
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
4
5
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
5
6
|
import "antd/es/form/style";
|
6
7
|
import _Form from "antd/es/form";
|
7
8
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
8
9
|
import { useContext } from 'react';
|
9
|
-
import { filterInternalFields } from './index';
|
10
|
+
import { filterInternalFields, getFormFieldPaths } from './index';
|
10
11
|
import { handleScrollToError as handleScrollToErrorProEditTable } from '../../ProEditTable/utils/tools';
|
11
12
|
import { FormsContext } from '../../FormsProvider';
|
12
13
|
export var useForm = function useForm(originForm, options) {
|
@@ -50,10 +51,19 @@ export var useForm = function useForm(originForm, options) {
|
|
50
51
|
var _validateFields = /*#__PURE__*/function () {
|
51
52
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(nameList) {
|
52
53
|
var _rest$,
|
54
|
+
_form$__INTERNAL_CONF,
|
53
55
|
_len,
|
54
56
|
rest,
|
55
57
|
_key,
|
56
58
|
isRecursive,
|
59
|
+
stopOnFirstError,
|
60
|
+
allFields,
|
61
|
+
_iterator,
|
62
|
+
_step,
|
63
|
+
field,
|
64
|
+
_options2,
|
65
|
+
_error$errorFields,
|
66
|
+
_error$errorFields$,
|
57
67
|
validateNames,
|
58
68
|
_form$getInternalHook,
|
59
69
|
getFields,
|
@@ -61,8 +71,8 @@ export var useForm = function useForm(originForm, options) {
|
|
61
71
|
_document,
|
62
72
|
tablePagination,
|
63
73
|
_tablePagination$clic,
|
64
|
-
_error$
|
65
|
-
_error$errorFields
|
74
|
+
_error$errorFields2,
|
75
|
+
_error$errorFields$2,
|
66
76
|
_args = arguments;
|
67
77
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
68
78
|
while (1) switch (_context.prev = _context.next) {
|
@@ -71,11 +81,68 @@ export var useForm = function useForm(originForm, options) {
|
|
71
81
|
for (_len = _args.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
72
82
|
rest[_key - 1] = _args[_key];
|
73
83
|
}
|
74
|
-
// @ts-ignore
|
75
84
|
isRecursive = rest === null || rest === void 0 ? void 0 : (_rest$ = rest[0]) === null || _rest$ === void 0 ? void 0 : _rest$.recursive;
|
85
|
+
stopOnFirstError = form === null || form === void 0 ? void 0 : (_form$__INTERNAL_CONF = form.__INTERNAL_CONFIG__) === null || _form$__INTERNAL_CONF === void 0 ? void 0 : _form$__INTERNAL_CONF.stopOnFirstError; // 如果启用了 stopOnFirstError 且没有指定字段列表
|
86
|
+
if (!(stopOnFirstError && !nameList)) {
|
87
|
+
_context.next = 33;
|
88
|
+
break;
|
89
|
+
}
|
90
|
+
// 获取所有表单字段
|
91
|
+
allFields = getFormFieldPaths(form); // 单独验证每个字段
|
92
|
+
// eslint-disable-next-line no-restricted-syntax
|
93
|
+
_iterator = _createForOfIteratorHelper(allFields);
|
94
|
+
_context.prev = 7;
|
95
|
+
_iterator.s();
|
96
|
+
case 9:
|
97
|
+
if ((_step = _iterator.n()).done) {
|
98
|
+
_context.next = 24;
|
99
|
+
break;
|
100
|
+
}
|
101
|
+
field = _step.value;
|
102
|
+
_context.prev = 11;
|
103
|
+
// 创建不包含 stopOnFirstError 的选项
|
104
|
+
// @ts-ignore
|
105
|
+
_options2 = (rest === null || rest === void 0 ? void 0 : rest[0]) ? _objectSpread({}, rest[0]) : {};
|
106
|
+
delete _options2.stopOnFirstError;
|
107
|
+
// 验证单个字段
|
108
|
+
// eslint-disable-next-line no-await-in-loop
|
109
|
+
_context.next = 16;
|
110
|
+
return validateFields([field], _options2);
|
111
|
+
case 16:
|
112
|
+
_context.next = 22;
|
113
|
+
break;
|
114
|
+
case 18:
|
115
|
+
_context.prev = 18;
|
116
|
+
_context.t0 = _context["catch"](11);
|
117
|
+
// 遇到错误,滚动到错误位置
|
118
|
+
if (scrollToError && (_context.t0 === null || _context.t0 === void 0 ? void 0 : (_error$errorFields = _context.t0.errorFields) === null || _error$errorFields === void 0 ? void 0 : _error$errorFields.length)) {
|
119
|
+
form.scrollToField((_error$errorFields$ = _context.t0.errorFields[0]) === null || _error$errorFields$ === void 0 ? void 0 : _error$errorFields$.name, {
|
120
|
+
block: 'center',
|
121
|
+
behavior: 'smooth'
|
122
|
+
});
|
123
|
+
}
|
124
|
+
// 中止验证,抛出错误
|
125
|
+
throw _context.t0;
|
126
|
+
case 22:
|
127
|
+
_context.next = 9;
|
128
|
+
break;
|
129
|
+
case 24:
|
130
|
+
_context.next = 29;
|
131
|
+
break;
|
132
|
+
case 26:
|
133
|
+
_context.prev = 26;
|
134
|
+
_context.t1 = _context["catch"](7);
|
135
|
+
_iterator.e(_context.t1);
|
136
|
+
case 29:
|
137
|
+
_context.prev = 29;
|
138
|
+
_iterator.f();
|
139
|
+
return _context.finish(29);
|
140
|
+
case 32:
|
141
|
+
return _context.abrupt("return", form.getFieldsValue());
|
142
|
+
case 33:
|
76
143
|
validateNames = []; // 前缀校验模式
|
77
144
|
if (!isRecursive) {
|
78
|
-
_context.next =
|
145
|
+
_context.next = 42;
|
79
146
|
break;
|
80
147
|
}
|
81
148
|
// @ts-ignore
|
@@ -92,13 +159,13 @@ export var useForm = function useForm(originForm, options) {
|
|
92
159
|
}
|
93
160
|
// @ts-ignore
|
94
161
|
// delete rest[0].recursive;
|
95
|
-
_context.next =
|
162
|
+
_context.next = 41;
|
96
163
|
return validateFields.apply(void 0, [validateNames].concat(rest)).then(function (values) {
|
97
164
|
return filterInternalFields(values, optimize);
|
98
165
|
});
|
99
|
-
case
|
166
|
+
case 41:
|
100
167
|
return _context.abrupt("return", _context.sent);
|
101
|
-
case
|
168
|
+
case 42:
|
102
169
|
// 解决,单个pro-edit-table的表单校验
|
103
170
|
if ((nameList === null || nameList === void 0 ? void 0 : nameList.length) && !nameList.join('-').includes(',')) {
|
104
171
|
tablePagination = document && ((_document = document) === null || _document === void 0 ? void 0 : _document.querySelector("#pro-edit-table-pagination-".concat(nameList.join('-'))));
|
@@ -106,28 +173,28 @@ export var useForm = function useForm(originForm, options) {
|
|
106
173
|
tablePagination === null || tablePagination === void 0 ? void 0 : (_tablePagination$clic = tablePagination.click) === null || _tablePagination$clic === void 0 ? void 0 : _tablePagination$clic.call(tablePagination);
|
107
174
|
}
|
108
175
|
}
|
109
|
-
_context.next =
|
176
|
+
_context.next = 45;
|
110
177
|
return validateFields.apply(void 0, [nameList].concat(rest)).then(function (values) {
|
111
178
|
return nameList ? values : _getFieldsValue();
|
112
179
|
});
|
113
|
-
case
|
180
|
+
case 45:
|
114
181
|
return _context.abrupt("return", _context.sent);
|
115
|
-
case
|
116
|
-
_context.prev =
|
117
|
-
_context.
|
118
|
-
if (scrollToError && (_context.
|
119
|
-
form.scrollToField((_error$errorFields$ = _context.
|
182
|
+
case 48:
|
183
|
+
_context.prev = 48;
|
184
|
+
_context.t2 = _context["catch"](0);
|
185
|
+
if (scrollToError && (_context.t2 === null || _context.t2 === void 0 ? void 0 : (_error$errorFields2 = _context.t2.errorFields) === null || _error$errorFields2 === void 0 ? void 0 : _error$errorFields2.length) && source === 'ProForm') {
|
186
|
+
form.scrollToField((_error$errorFields$2 = _context.t2.errorFields[0]) === null || _error$errorFields$2 === void 0 ? void 0 : _error$errorFields$2.name, {
|
120
187
|
block: 'center',
|
121
188
|
behavior: 'smooth'
|
122
189
|
});
|
123
190
|
}
|
124
191
|
handleScrollToErrorProEditTable();
|
125
|
-
throw _context.
|
126
|
-
case
|
192
|
+
throw _context.t2;
|
193
|
+
case 53:
|
127
194
|
case "end":
|
128
195
|
return _context.stop();
|
129
196
|
}
|
130
|
-
}, _callee, null, [[0, 18]]);
|
197
|
+
}, _callee, null, [[0, 48], [7, 26, 29, 32], [11, 18]]);
|
131
198
|
}));
|
132
199
|
return function _validateFields(_x) {
|
133
200
|
return _ref2.apply(this, arguments);
|
@@ -175,8 +242,8 @@ export var useForm = function useForm(originForm, options) {
|
|
175
242
|
form.getFieldsValue = _getFieldsValue;
|
176
243
|
form.setFieldValue = _setFieldValue;
|
177
244
|
form.setFieldsValue = _setFieldsValue;
|
178
|
-
form.getFieldsValue = _getFieldsValue;
|
179
245
|
form.validateFields = _validateFields;
|
180
246
|
form.isModified = true;
|
247
|
+
form.__INTERNAL_CONFIG__ = {};
|
181
248
|
return [form];
|
182
249
|
};
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import {
|
3
|
-
type Forms = Record<string,
|
2
|
+
import { ModifiedFormInstanceType } from '../ProForm/utils/useForm';
|
3
|
+
type Forms = Record<string, ModifiedFormInstanceType<any>>;
|
4
4
|
export declare const FormsContext: React.Context<Forms>;
|
5
5
|
/**
|
6
6
|
* @param formKey 表单实例key
|
@@ -42,12 +42,25 @@ var FormFooter = function FormFooter(props) {
|
|
42
42
|
}
|
43
43
|
}, [formId]);
|
44
44
|
var _onOk = function _onOk() {
|
45
|
+
var _modifiedForm$__INTER;
|
45
46
|
if (formId) {
|
46
47
|
var values = form.getFieldsValue();
|
47
48
|
searchCache[formId] = values;
|
48
49
|
window.sessionStorage.setItem(PRO_FORM_CACHE, JSON.stringify(searchCache));
|
49
50
|
}
|
50
|
-
|
51
|
+
// 支持 stopOnFirstError
|
52
|
+
// @ts-ignore 使用类型断言处理自定义属性
|
53
|
+
var modifiedForm = form;
|
54
|
+
if ((_modifiedForm$__INTER = modifiedForm.__INTERNAL_CONFIG__) === null || _modifiedForm$__INTER === void 0 ? void 0 : _modifiedForm$__INTER.stopOnFirstError) {
|
55
|
+
// 使用自定义验证逻辑
|
56
|
+
form.validateFields().then(function () {
|
57
|
+
onOk();
|
58
|
+
}).catch(function () {
|
59
|
+
// 验证失败,不执行 onOk
|
60
|
+
});
|
61
|
+
} else {
|
62
|
+
onOk();
|
63
|
+
}
|
51
64
|
};
|
52
65
|
var _onCancel = function _onCancel() {
|
53
66
|
if (formId && searchCache[formId]) {
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { ButtonProps, ColProps, FormInstance } from 'antd';
|
2
|
+
import { ModifiedFormInstanceType } from '../../utils/useForm';
|
2
3
|
export interface ButtonItem extends ButtonProps {
|
3
4
|
children?: any;
|
4
5
|
}
|
@@ -15,7 +16,7 @@ export interface FooterRenderType {
|
|
15
16
|
footer?: FooterButtonType;
|
16
17
|
confirmLoading?: boolean;
|
17
18
|
formId?: string;
|
18
|
-
form: FormInstance
|
19
|
+
form: FormInstance | ModifiedFormInstanceType<any>;
|
19
20
|
}
|
20
21
|
/**
|
21
22
|
* 兼容旧命名导出
|
@@ -27,7 +27,7 @@ var _tip = _interopRequireDefault(require("../../../assets/tip.svg"));
|
|
27
27
|
var _useRules = _interopRequireDefault(require("../../utils/useRules"));
|
28
28
|
var _ConfirmWrapper = _interopRequireDefault(require("./ConfirmWrapper"));
|
29
29
|
var _ChangedWrapper = _interopRequireDefault(require("./ChangedWrapper"));
|
30
|
-
var _excluded = ["labelWidth", "hiddenNames", "trim", "upperCase", "className", "rules", "required", "labelRequired", "tooltip"];
|
30
|
+
var _excluded = ["labelWidth", "hiddenNames", "trim", "upperCase", "className", "rules", "required", "labelRequired", "tooltip", "validateFirst"];
|
31
31
|
/* eslint-disable prefer-destructuring */
|
32
32
|
// 这个组件只管渲染, 参数的整理在外部处理
|
33
33
|
var Render = function Render(props) {
|
@@ -64,6 +64,8 @@ var Render = function Render(props) {
|
|
64
64
|
required = formItemProps.required,
|
65
65
|
labelRequired = formItemProps.labelRequired,
|
66
66
|
tooltip = formItemProps.tooltip,
|
67
|
+
_formItemProps$valida = formItemProps.validateFirst,
|
68
|
+
validateFirst = _formItemProps$valida === void 0 ? true : _formItemProps$valida,
|
67
69
|
otherFormItemProps = (0, _objectWithoutProperties2.default)(formItemProps, _excluded);
|
68
70
|
// 更新show & disabled & rules
|
69
71
|
var _useShouldUpdate = (0, _useShouldUpdate2.default)({
|
@@ -156,7 +158,7 @@ var Render = function Render(props) {
|
|
156
158
|
required: false
|
157
159
|
} : null, (0, _objectSpread2.default)({}, (0, _index.isTrim)(type, trim, (0, _ProConfigProvider.useProConfig)())), // 优先取传进来的,其次取ProConfigProvider配置的
|
158
160
|
(0, _objectSpread2.default)({}, (0, _index.isUpperCase)(type, upperCase)), {
|
159
|
-
validateFirst:
|
161
|
+
validateFirst: validateFirst
|
160
162
|
},
|
161
163
|
// 当某一规则校验不通过时,是否停止剩下的规则的校验
|
162
164
|
{
|
package/lib/ProForm/index.js
CHANGED
@@ -28,7 +28,7 @@ var _locale = _interopRequireDefault(require("../locale"));
|
|
28
28
|
var _useWatch = _interopRequireDefault(require("./utils/useWatch"));
|
29
29
|
var _FormsProvider = _interopRequireWildcard(require("../FormsProvider"));
|
30
30
|
var _ProStep = require("../ProStep");
|
31
|
-
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"];
|
31
|
+
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", "stopOnFirstError"];
|
32
32
|
var ProForm = function ProForm(props, ref) {
|
33
33
|
var _localStorage, _ref3;
|
34
34
|
var _props$mode = props.mode,
|
@@ -74,6 +74,8 @@ var ProForm = function ProForm(props, ref) {
|
|
74
74
|
optimize = _props$optimize === void 0 ? false : _props$optimize,
|
75
75
|
_props$desensitizatio = props.desensitizationKey,
|
76
76
|
desensitizationKey = _props$desensitizatio === void 0 ? 'zat-design-pro-component-desensitization' : _props$desensitizatio,
|
77
|
+
_props$stopOnFirstErr = props.stopOnFirstError,
|
78
|
+
stopOnFirstError = _props$stopOnFirstErr === void 0 ? false : _props$stopOnFirstErr,
|
77
79
|
otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
78
80
|
var config = (0, _ProConfigProvider.useProConfig)('ProForm');
|
79
81
|
// source: 用于区分是哪个组件调用,用于错误提示
|
@@ -92,6 +94,14 @@ var ProForm = function ProForm(props, ref) {
|
|
92
94
|
}),
|
93
95
|
_useForm2 = (0, _slicedToArray2.default)(_useForm, 1),
|
94
96
|
form = _useForm2[0];
|
97
|
+
// 保存内部配置
|
98
|
+
(0, _react.useEffect)(function () {
|
99
|
+
if (!form.__INTERNAL_CONFIG__) {
|
100
|
+
form.__INTERNAL_CONFIG__ = {};
|
101
|
+
}
|
102
|
+
form.__INTERNAL_CONFIG__.fields = (0, _index.getFormFieldPaths)(form);
|
103
|
+
form.__INTERNAL_CONFIG__.stopOnFirstError = stopOnFirstError;
|
104
|
+
}, [stopOnFirstError, form]);
|
95
105
|
var _useControlled = (0, _index.useControlled)({
|
96
106
|
value: expandOpen,
|
97
107
|
onChange: expandOpenChange
|
@@ -101,6 +101,8 @@ export interface ProFormType<Values = any> extends FormProps<Values> {
|
|
101
101
|
optimize?: boolean;
|
102
102
|
/** 全局脱敏开关的key、默认 zat-design-pro-component-desensitization */
|
103
103
|
desensitizationKey?: string;
|
104
|
+
/** 是否在遇到第一个错误时停止验证 */
|
105
|
+
stopOnFirstError?: boolean;
|
104
106
|
}
|
105
107
|
export interface TransformType<T = any> {
|
106
108
|
normalize?: (value: StoreValue, prevValue: StoreValue, allValues: Store) => StoreValue;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ColProps, FormProps } from 'antd';
|
1
|
+
import { ColProps, FormProps, FormInstance } from 'antd';
|
2
2
|
import { InternalNamePath, NamePath } from 'antd/es/form/interface';
|
3
3
|
interface transProps {
|
4
4
|
formProps: FormProps;
|
@@ -95,6 +95,11 @@ export declare const findOptionByValue: (treeData: any[], value: string | number
|
|
95
95
|
export declare const equalDependencies: (dependencies: any, prevValues: any, currentValues: any) => any;
|
96
96
|
/** 解析namePath */
|
97
97
|
export declare const parseNamePath: (input: string) => any;
|
98
|
-
/**
|
98
|
+
/**
|
99
|
+
* 获取表单所有字段路径的简化函数
|
100
|
+
* @param form 表单实例
|
101
|
+
* @returns 所有字段路径数组
|
102
|
+
*/
|
103
|
+
export declare const getFormFieldPaths: (form: FormInstance) => any[];
|
99
104
|
export declare function findNamesKeyInArray(arr: string[], key: string): string | null;
|
100
105
|
export {};
|
@@ -9,7 +9,7 @@ exports.filterInternalFields = exports.equalDependencies = exports.diffField = e
|
|
9
9
|
exports.findNamesKeyInArray = findNamesKeyInArray;
|
10
10
|
exports.getAllNamePath = exports.findOptionByValue = void 0;
|
11
11
|
exports.getArrayBeforeNumber = getArrayBeforeNumber;
|
12
|
-
exports.hasRowKey = exports.getLayout = exports.getDecimalDigits = void 0;
|
12
|
+
exports.hasRowKey = exports.getLayout = exports.getFormFieldPaths = exports.getDecimalDigits = void 0;
|
13
13
|
exports.initialValuesToNames = initialValuesToNames;
|
14
14
|
exports.splitNameStr = exports.parseNamePath = exports.isUpperCase = exports.isTrim = exports.isSelect = exports.isNullValue = exports.isNullArray = exports.isNotFullArray = exports.isEmptyArray = void 0;
|
15
15
|
exports.toArray = toArray;
|
@@ -425,7 +425,25 @@ var parseNamePath = exports.parseNamePath = function parseNamePath(input) {
|
|
425
425
|
});
|
426
426
|
return [result];
|
427
427
|
};
|
428
|
-
/**
|
428
|
+
/**
|
429
|
+
* 获取表单所有字段路径的简化函数
|
430
|
+
* @param form 表单实例
|
431
|
+
* @returns 所有字段路径数组
|
432
|
+
*/
|
433
|
+
var getFormFieldPaths = exports.getFormFieldPaths = function getFormFieldPaths(form) {
|
434
|
+
try {
|
435
|
+
// @ts-ignore
|
436
|
+
var _form$getInternalHook = form.getInternalHooks('RC_FORM_INTERNAL_HOOKS'),
|
437
|
+
getFields = _form$getInternalHook.getFields;
|
438
|
+
var allFields = getFields();
|
439
|
+
return allFields.map(function (field) {
|
440
|
+
return field.name;
|
441
|
+
});
|
442
|
+
} catch (error) {
|
443
|
+
console.error('获取表单字段失败:', error);
|
444
|
+
return [];
|
445
|
+
}
|
446
|
+
};
|
429
447
|
function findNamesKeyInArray(arr, key) {
|
430
448
|
var _iterator = (0, _createForOfIteratorHelper2.default)(arr),
|
431
449
|
_step;
|
@@ -1,12 +1,17 @@
|
|
1
1
|
import { FormInstance } from 'antd';
|
2
2
|
import { NamePath } from 'antd/es/form/interface';
|
3
3
|
import { ValuedNotifyInfo } from 'rc-field-form/es/interface';
|
4
|
-
export type
|
4
|
+
export type ModifiedFormInstanceType<T> = FormInstance<T> & {
|
5
5
|
isModified?: boolean;
|
6
6
|
/** 默认清空设置值的报错状态 */
|
7
7
|
setFieldValue: (name: NamePath, value: any, info?: ValuedNotifyInfo) => void;
|
8
8
|
formKey?: string;
|
9
9
|
_init?: boolean;
|
10
|
+
__INTERNAL_CONFIG__?: {
|
11
|
+
fields?: any[];
|
12
|
+
stopOnFirstError?: boolean;
|
13
|
+
[key: string]: any;
|
14
|
+
};
|
10
15
|
};
|
11
16
|
export interface FormInstanceOption {
|
12
17
|
scrollToError?: boolean;
|
@@ -14,4 +19,4 @@ export interface FormInstanceOption {
|
|
14
19
|
formKey?: string;
|
15
20
|
source?: string;
|
16
21
|
}
|
17
|
-
export declare const useForm: <T>(originForm?:
|
22
|
+
export declare const useForm: <T>(originForm?: ModifiedFormInstanceType<T> | FormInstanceOption, options?: FormInstanceOption) => [ModifiedFormInstanceType<T>];
|
@@ -5,9 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
6
6
|
});
|
7
7
|
exports.useForm = void 0;
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
9
8
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
10
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
11
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
11
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
12
13
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
13
14
|
var _antd = require("antd");
|
@@ -56,10 +57,19 @@ var useForm = exports.useForm = function useForm(originForm, options) {
|
|
56
57
|
var _validateFields = /*#__PURE__*/function () {
|
57
58
|
var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(nameList) {
|
58
59
|
var _rest$,
|
60
|
+
_form$__INTERNAL_CONF,
|
59
61
|
_len,
|
60
62
|
rest,
|
61
63
|
_key,
|
62
64
|
isRecursive,
|
65
|
+
stopOnFirstError,
|
66
|
+
allFields,
|
67
|
+
_iterator,
|
68
|
+
_step,
|
69
|
+
field,
|
70
|
+
_options2,
|
71
|
+
_error$errorFields,
|
72
|
+
_error$errorFields$,
|
63
73
|
validateNames,
|
64
74
|
_form$getInternalHook,
|
65
75
|
getFields,
|
@@ -67,8 +77,8 @@ var useForm = exports.useForm = function useForm(originForm, options) {
|
|
67
77
|
_document,
|
68
78
|
tablePagination,
|
69
79
|
_tablePagination$clic,
|
70
|
-
_error$
|
71
|
-
_error$errorFields
|
80
|
+
_error$errorFields2,
|
81
|
+
_error$errorFields$2,
|
72
82
|
_args = arguments;
|
73
83
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
74
84
|
while (1) switch (_context.prev = _context.next) {
|
@@ -77,11 +87,68 @@ var useForm = exports.useForm = function useForm(originForm, options) {
|
|
77
87
|
for (_len = _args.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
78
88
|
rest[_key - 1] = _args[_key];
|
79
89
|
}
|
80
|
-
// @ts-ignore
|
81
90
|
isRecursive = rest === null || rest === void 0 ? void 0 : (_rest$ = rest[0]) === null || _rest$ === void 0 ? void 0 : _rest$.recursive;
|
91
|
+
stopOnFirstError = form === null || form === void 0 ? void 0 : (_form$__INTERNAL_CONF = form.__INTERNAL_CONFIG__) === null || _form$__INTERNAL_CONF === void 0 ? void 0 : _form$__INTERNAL_CONF.stopOnFirstError; // 如果启用了 stopOnFirstError 且没有指定字段列表
|
92
|
+
if (!(stopOnFirstError && !nameList)) {
|
93
|
+
_context.next = 33;
|
94
|
+
break;
|
95
|
+
}
|
96
|
+
// 获取所有表单字段
|
97
|
+
allFields = (0, _index.getFormFieldPaths)(form); // 单独验证每个字段
|
98
|
+
// eslint-disable-next-line no-restricted-syntax
|
99
|
+
_iterator = (0, _createForOfIteratorHelper2.default)(allFields);
|
100
|
+
_context.prev = 7;
|
101
|
+
_iterator.s();
|
102
|
+
case 9:
|
103
|
+
if ((_step = _iterator.n()).done) {
|
104
|
+
_context.next = 24;
|
105
|
+
break;
|
106
|
+
}
|
107
|
+
field = _step.value;
|
108
|
+
_context.prev = 11;
|
109
|
+
// 创建不包含 stopOnFirstError 的选项
|
110
|
+
// @ts-ignore
|
111
|
+
_options2 = (rest === null || rest === void 0 ? void 0 : rest[0]) ? (0, _objectSpread2.default)({}, rest[0]) : {};
|
112
|
+
delete _options2.stopOnFirstError;
|
113
|
+
// 验证单个字段
|
114
|
+
// eslint-disable-next-line no-await-in-loop
|
115
|
+
_context.next = 16;
|
116
|
+
return validateFields([field], _options2);
|
117
|
+
case 16:
|
118
|
+
_context.next = 22;
|
119
|
+
break;
|
120
|
+
case 18:
|
121
|
+
_context.prev = 18;
|
122
|
+
_context.t0 = _context["catch"](11);
|
123
|
+
// 遇到错误,滚动到错误位置
|
124
|
+
if (scrollToError && (_context.t0 === null || _context.t0 === void 0 ? void 0 : (_error$errorFields = _context.t0.errorFields) === null || _error$errorFields === void 0 ? void 0 : _error$errorFields.length)) {
|
125
|
+
form.scrollToField((_error$errorFields$ = _context.t0.errorFields[0]) === null || _error$errorFields$ === void 0 ? void 0 : _error$errorFields$.name, {
|
126
|
+
block: 'center',
|
127
|
+
behavior: 'smooth'
|
128
|
+
});
|
129
|
+
}
|
130
|
+
// 中止验证,抛出错误
|
131
|
+
throw _context.t0;
|
132
|
+
case 22:
|
133
|
+
_context.next = 9;
|
134
|
+
break;
|
135
|
+
case 24:
|
136
|
+
_context.next = 29;
|
137
|
+
break;
|
138
|
+
case 26:
|
139
|
+
_context.prev = 26;
|
140
|
+
_context.t1 = _context["catch"](7);
|
141
|
+
_iterator.e(_context.t1);
|
142
|
+
case 29:
|
143
|
+
_context.prev = 29;
|
144
|
+
_iterator.f();
|
145
|
+
return _context.finish(29);
|
146
|
+
case 32:
|
147
|
+
return _context.abrupt("return", form.getFieldsValue());
|
148
|
+
case 33:
|
82
149
|
validateNames = []; // 前缀校验模式
|
83
150
|
if (!isRecursive) {
|
84
|
-
_context.next =
|
151
|
+
_context.next = 42;
|
85
152
|
break;
|
86
153
|
}
|
87
154
|
// @ts-ignore
|
@@ -98,13 +165,13 @@ var useForm = exports.useForm = function useForm(originForm, options) {
|
|
98
165
|
}
|
99
166
|
// @ts-ignore
|
100
167
|
// delete rest[0].recursive;
|
101
|
-
_context.next =
|
168
|
+
_context.next = 41;
|
102
169
|
return validateFields.apply(void 0, [validateNames].concat(rest)).then(function (values) {
|
103
170
|
return (0, _index.filterInternalFields)(values, optimize);
|
104
171
|
});
|
105
|
-
case
|
172
|
+
case 41:
|
106
173
|
return _context.abrupt("return", _context.sent);
|
107
|
-
case
|
174
|
+
case 42:
|
108
175
|
// 解决,单个pro-edit-table的表单校验
|
109
176
|
if ((nameList === null || nameList === void 0 ? void 0 : nameList.length) && !nameList.join('-').includes(',')) {
|
110
177
|
tablePagination = document && ((_document = document) === null || _document === void 0 ? void 0 : _document.querySelector("#pro-edit-table-pagination-".concat(nameList.join('-'))));
|
@@ -112,28 +179,28 @@ var useForm = exports.useForm = function useForm(originForm, options) {
|
|
112
179
|
tablePagination === null || tablePagination === void 0 ? void 0 : (_tablePagination$clic = tablePagination.click) === null || _tablePagination$clic === void 0 ? void 0 : _tablePagination$clic.call(tablePagination);
|
113
180
|
}
|
114
181
|
}
|
115
|
-
_context.next =
|
182
|
+
_context.next = 45;
|
116
183
|
return validateFields.apply(void 0, [nameList].concat(rest)).then(function (values) {
|
117
184
|
return nameList ? values : _getFieldsValue();
|
118
185
|
});
|
119
|
-
case
|
186
|
+
case 45:
|
120
187
|
return _context.abrupt("return", _context.sent);
|
121
|
-
case
|
122
|
-
_context.prev =
|
123
|
-
_context.
|
124
|
-
if (scrollToError && (_context.
|
125
|
-
form.scrollToField((_error$errorFields$ = _context.
|
188
|
+
case 48:
|
189
|
+
_context.prev = 48;
|
190
|
+
_context.t2 = _context["catch"](0);
|
191
|
+
if (scrollToError && (_context.t2 === null || _context.t2 === void 0 ? void 0 : (_error$errorFields2 = _context.t2.errorFields) === null || _error$errorFields2 === void 0 ? void 0 : _error$errorFields2.length) && source === 'ProForm') {
|
192
|
+
form.scrollToField((_error$errorFields$2 = _context.t2.errorFields[0]) === null || _error$errorFields$2 === void 0 ? void 0 : _error$errorFields$2.name, {
|
126
193
|
block: 'center',
|
127
194
|
behavior: 'smooth'
|
128
195
|
});
|
129
196
|
}
|
130
197
|
(0, _tools.handleScrollToError)();
|
131
|
-
throw _context.
|
132
|
-
case
|
198
|
+
throw _context.t2;
|
199
|
+
case 53:
|
133
200
|
case "end":
|
134
201
|
return _context.stop();
|
135
202
|
}
|
136
|
-
}, _callee, null, [[0, 18]]);
|
203
|
+
}, _callee, null, [[0, 48], [7, 26, 29, 32], [11, 18]]);
|
137
204
|
}));
|
138
205
|
return function _validateFields(_x) {
|
139
206
|
return _ref2.apply(this, arguments);
|
@@ -181,8 +248,8 @@ var useForm = exports.useForm = function useForm(originForm, options) {
|
|
181
248
|
form.getFieldsValue = _getFieldsValue;
|
182
249
|
form.setFieldValue = _setFieldValue;
|
183
250
|
form.setFieldsValue = _setFieldsValue;
|
184
|
-
form.getFieldsValue = _getFieldsValue;
|
185
251
|
form.validateFields = _validateFields;
|
186
252
|
form.isModified = true;
|
253
|
+
form.__INTERNAL_CONFIG__ = {};
|
187
254
|
return [form];
|
188
255
|
};
|