@fairys/taro-tools-simple-form-ui 0.0.5 → 0.0.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/esm/form/form.d.ts +2 -0
- package/esm/form/form.js +3 -2
- package/esm/form/instance/index.d.ts +2 -1
- package/esm/form/instance/index.js +5 -6
- package/package.json +1 -1
- package/src/form/form.tsx +4 -2
- package/src/form/instance/index.ts +14 -15
package/esm/form/form.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ export interface FairysTaroValtioFormProps<T extends MObject<T> = object> extend
|
|
|
15
15
|
formData?: FairysTaroValtioFormInstance<T>['state'];
|
|
16
16
|
/**表单隐藏状态*/
|
|
17
17
|
hideState?: FairysTaroValtioFormInstance<T>['hideState'];
|
|
18
|
+
/**formData 是否进行深度拷贝,如果不是则直接把 formData 赋值到 state ,否则使用 copy 方法深度拷贝后赋值 */
|
|
19
|
+
isDeepCopy?: boolean;
|
|
18
20
|
}
|
|
19
21
|
export declare function FairysTaroValtioForm<T extends MObject<T> = object>(props: FairysTaroValtioFormProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
20
22
|
export declare namespace FairysTaroValtioForm {
|
package/esm/form/form.js
CHANGED
|
@@ -6,12 +6,13 @@ import { FairysTaroValtioFormHideItem, FairysTaroValtioFormItem } from "./form.i
|
|
|
6
6
|
import { FairysTaroValtioFormConfigItem, FairysTaroValtioFormConfigListItem } from "./item.config.js";
|
|
7
7
|
export * from "./item.config.js";
|
|
8
8
|
function FairysTaroValtioForm(props) {
|
|
9
|
-
const { form, children, rules, formData, hideState, ...rest } = props;
|
|
9
|
+
const { form, children, rules, formData, hideState, isDeepCopy = true, ...rest } = props;
|
|
10
10
|
const formInstance = useFairysTaroValtioFormInstance(form);
|
|
11
11
|
formInstance.rules = rules;
|
|
12
12
|
useMemo(()=>formInstance.ctor({
|
|
13
13
|
formData,
|
|
14
|
-
hideState
|
|
14
|
+
hideState,
|
|
15
|
+
isDeepCopy
|
|
15
16
|
}), []);
|
|
16
17
|
return /*#__PURE__*/ jsx(FairysTaroValtioFormInstanceContext.Provider, {
|
|
17
18
|
value: formInstance,
|
|
@@ -13,7 +13,8 @@ export declare class FairysTaroValtioFormInstance<T extends MObject<T> = Record<
|
|
|
13
13
|
/**初始化表单值*/
|
|
14
14
|
ctor: (options?: {
|
|
15
15
|
formData?: Partial<T>;
|
|
16
|
-
hideState?:
|
|
16
|
+
hideState?: Record<PropertyKey, boolean>;
|
|
17
|
+
isDeepCopy?: boolean;
|
|
17
18
|
}) => void;
|
|
18
19
|
/**
|
|
19
20
|
* 更新数据
|
|
@@ -7,14 +7,13 @@ class FairysTaroValtioFormInstance {
|
|
|
7
7
|
errorState = proxy({});
|
|
8
8
|
hideState = proxy({});
|
|
9
9
|
ctor = (options)=>{
|
|
10
|
-
const { formData, hideState } = options || {};
|
|
11
|
-
this.state = proxy({});
|
|
10
|
+
const { formData, hideState, isDeepCopy = true } = options || {};
|
|
12
11
|
this.errorState = proxy({});
|
|
13
|
-
this.hideState = proxy({});
|
|
14
|
-
if (
|
|
15
|
-
if (
|
|
12
|
+
this.hideState = proxy(hideState ? copy(hideState) : {});
|
|
13
|
+
if (isDeepCopy) this.state = proxy(formData ? copy(formData) : {});
|
|
14
|
+
else if (formData) this.state = proxy(formData);
|
|
16
15
|
};
|
|
17
|
-
updated = (state, isValidate)=>{
|
|
16
|
+
updated = (state, isValidate = true)=>{
|
|
18
17
|
const keys = Object.keys(state);
|
|
19
18
|
for(let index = 0; index < keys.length; index++){
|
|
20
19
|
const key = keys[index];
|
package/package.json
CHANGED
package/src/form/form.tsx
CHANGED
|
@@ -23,15 +23,17 @@ export interface FairysTaroValtioFormProps<T extends MObject<T> = object> extend
|
|
|
23
23
|
formData?: FairysTaroValtioFormInstance<T>['state'];
|
|
24
24
|
/**表单隐藏状态*/
|
|
25
25
|
hideState?: FairysTaroValtioFormInstance<T>['hideState'];
|
|
26
|
+
/**formData 是否进行深度拷贝,如果不是则直接把 formData 赋值到 state ,否则使用 copy 方法深度拷贝后赋值 */
|
|
27
|
+
isDeepCopy?: boolean;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
export function FairysTaroValtioForm<T extends MObject<T> = object>(props: FairysTaroValtioFormProps<T>) {
|
|
29
|
-
const { form, children, rules, formData, hideState, ...rest } = props;
|
|
31
|
+
const { form, children, rules, formData, hideState, isDeepCopy = true, ...rest } = props;
|
|
30
32
|
const formInstance = useFairysTaroValtioFormInstance(form);
|
|
31
33
|
/**表单规则*/
|
|
32
34
|
formInstance.rules = rules;
|
|
33
35
|
/**初始化表单值*/
|
|
34
|
-
useMemo(() => formInstance.ctor({ formData, hideState }), []);
|
|
36
|
+
useMemo(() => formInstance.ctor({ formData, hideState, isDeepCopy }), []);
|
|
35
37
|
return (
|
|
36
38
|
<FairysTaroValtioFormInstanceContext.Provider value={formInstance}>
|
|
37
39
|
<FairysTaroValtioFormLayout {...rest}>{children}</FairysTaroValtioFormLayout>
|
|
@@ -11,20 +11,19 @@ export class FairysTaroValtioFormInstance<T extends MObject<T> = Record<string,
|
|
|
11
11
|
/**
|
|
12
12
|
* 错误信息
|
|
13
13
|
*/
|
|
14
|
-
errorState = proxy<Record<PropertyKey, string[]>>({}
|
|
14
|
+
errorState = proxy<Record<PropertyKey, string[]>>({});
|
|
15
15
|
/**隐藏状态*/
|
|
16
|
-
hideState = proxy<Record<PropertyKey, boolean>>({}
|
|
16
|
+
hideState = proxy<Record<PropertyKey, boolean>>({});
|
|
17
17
|
/**初始化表单值*/
|
|
18
|
-
ctor = (options?: { formData?: Partial<T>; hideState?:
|
|
19
|
-
const { formData, hideState } = options || {};
|
|
20
|
-
|
|
21
|
-
this.errorState = proxy<Record<PropertyKey, string[]>>({}
|
|
22
|
-
this.hideState = proxy<Record<PropertyKey, boolean>>(
|
|
23
|
-
if (
|
|
24
|
-
this.
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
this.updatedHideInfo(copy(hideState));
|
|
18
|
+
ctor = (options?: { formData?: Partial<T>; hideState?: Record<PropertyKey, boolean>; isDeepCopy?: boolean }) => {
|
|
19
|
+
const { formData, hideState, isDeepCopy = true } = options || {};
|
|
20
|
+
// 如果是 isProxy,则直接赋值
|
|
21
|
+
this.errorState = proxy<Record<PropertyKey, string[]>>({});
|
|
22
|
+
this.hideState = proxy<Record<PropertyKey, boolean>>(hideState ? copy(hideState) : {});
|
|
23
|
+
if (isDeepCopy) {
|
|
24
|
+
this.state = proxy((formData ? copy(formData) : {}) as T);
|
|
25
|
+
} else if (formData) {
|
|
26
|
+
this.state = proxy(formData as T);
|
|
28
27
|
}
|
|
29
28
|
};
|
|
30
29
|
/**
|
|
@@ -32,7 +31,7 @@ export class FairysTaroValtioFormInstance<T extends MObject<T> = Record<string,
|
|
|
32
31
|
* @param state 更新数据对象
|
|
33
32
|
* @param isValidate 是否验证(可选)
|
|
34
33
|
*/
|
|
35
|
-
updated = <M = T>(state: Partial<M>, isValidate
|
|
34
|
+
updated = <M = T>(state: Partial<M>, isValidate: boolean = true) => {
|
|
36
35
|
const keys = Object.keys(state);
|
|
37
36
|
for (let index = 0; index < keys.length; index++) {
|
|
38
37
|
const key = keys[index];
|
|
@@ -106,8 +105,8 @@ export class FairysTaroValtioFormInstance<T extends MObject<T> = Record<string,
|
|
|
106
105
|
*/
|
|
107
106
|
clear = () => {
|
|
108
107
|
this.state = proxy<T>({} as T);
|
|
109
|
-
this.errorState = proxy<Record<PropertyKey, string[]>>({}
|
|
110
|
-
this.hideState = proxy<Record<PropertyKey, boolean>>({}
|
|
108
|
+
this.errorState = proxy<Record<PropertyKey, string[]>>({});
|
|
109
|
+
this.hideState = proxy<Record<PropertyKey, boolean>>({});
|
|
111
110
|
};
|
|
112
111
|
|
|
113
112
|
// ===================================================规则处理================================================================
|