@coding-form/form-engine 0.0.3 → 0.0.4

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.
@@ -12,17 +12,22 @@ const FormViewContent = (props)=>{
12
12
  const meta = props.meta;
13
13
  const subFormList = meta.subForms || [];
14
14
  const review = props.review || false;
15
+ const handleOnSubmit = (values, formCode)=>{
16
+ props.onFinish?.(values, formCode);
17
+ };
15
18
  return /*#__PURE__*/ react.createElement(FormContext.Provider, {
16
19
  value: context
17
- }, /*#__PURE__*/ react.createElement(FormSubView, {
20
+ }, props.header, /*#__PURE__*/ react.createElement(FormSubView, {
18
21
  Form: Form,
19
22
  formCode: meta.code,
20
- review: review
23
+ review: review,
24
+ onFinish: handleOnSubmit
21
25
  }), subFormList && subFormList.map((item)=>/*#__PURE__*/ react.createElement(FormSubView, {
22
26
  Form: Form,
23
27
  formCode: item.code,
24
- review: review
25
- })));
28
+ review: review,
29
+ onFinish: handleOnSubmit
30
+ })), props.footer);
26
31
  };
27
32
  const FormView = (props)=>{
28
33
  const Form = FormRegistry.getInstance().getFormComponent();
@@ -3,6 +3,7 @@ interface FormSubViewProps {
3
3
  formCode: string;
4
4
  Form: React.ComponentType<any>;
5
5
  review: boolean;
6
+ onFinish: (values: any, formCode: string) => void;
6
7
  }
7
8
  export declare const FormSubView: React.FC<FormSubViewProps>;
8
9
  export {};
@@ -23,7 +23,10 @@ const FormSubView = (props)=>{
23
23
  if (events && events.length > 0) for (const event of events)event.event(formInstance);
24
24
  }, []);
25
25
  return /*#__PURE__*/ react.createElement(Form, {
26
- form: formTarget
26
+ form: formTarget,
27
+ onFinish: (values)=>{
28
+ props.onFinish(values, props.formCode);
29
+ }
27
30
  }, layoutContext.render(props.formCode, fields, review, context));
28
31
  };
29
32
  export { FormSubView };
@@ -1,14 +1,15 @@
1
+ import { NamePath } from "../types";
1
2
  export declare class FormControl {
2
3
  private readonly formCode;
3
4
  private readonly proxyTarget;
4
5
  constructor(formCode: string, target: any);
5
6
  getFormCode(): string;
6
7
  getProxyTarget(): any;
7
- getFieldValue(name: string): any;
8
+ getFieldValue(name: NamePath): any;
8
9
  getFieldsValue(): any;
9
- resetFields(nameList?: string[]): void;
10
+ resetFields(nameList?: NamePath[] | NamePath): void;
10
11
  setFieldsValue(values: any): void;
11
- setFieldValue(name: string, value: any): void;
12
+ setFieldValue(name: NamePath, value: any): void;
12
13
  submit(): void;
13
- validateFields(nameList?: string[]): Promise<any>;
14
+ validateFields(nameList?: NamePath[] | NamePath): Promise<any>;
14
15
  }
@@ -1,7 +1,7 @@
1
- import { FormMeta } from "../types";
1
+ import { FormInstanceInterface, FormMeta, NamePath } from "../types";
2
2
  import { FormControl } from "./control";
3
3
  import { FormPresenter } from "../presenters";
4
- export declare class FormInstance {
4
+ export declare class FormInstance implements FormInstanceInterface {
5
5
  private readonly instanceList;
6
6
  private readonly meta;
7
7
  private presenter;
@@ -11,14 +11,14 @@ export declare class FormInstance {
11
11
  private initInstanceList;
12
12
  getFormControl(formCode?: string): FormControl | undefined;
13
13
  getProxyTarget(formCode?: string): any;
14
- getFieldValue(name: string, formCode?: string): void;
14
+ getFieldValue(name: NamePath, formCode?: string): void;
15
15
  getFieldsValue(formCode?: string): any;
16
- resetFields(nameList?: string[], formCode?: string): void;
16
+ resetFields(nameList?: NamePath[] | NamePath, formCode?: string): void;
17
17
  setFieldsValue(values: any, formCode?: string): void;
18
- setFieldValue(name: string, value: any, formCode?: string): void;
18
+ setFieldValue(name: NamePath, value: any, formCode?: string): void;
19
19
  submit(formCode?: string): void;
20
- validateFields(nameList?: string[], formCode?: string): Promise<any>;
21
- hiddenFields(hidden: boolean, nameList: string[] | string, formCode?: string): void;
22
- requiredFields(required: boolean, nameList: string[] | string, formCode?: string): void;
23
- refreshFields(nameList: string[] | string, formCode?: string): void;
20
+ validateFields(nameList?: NamePath[] | NamePath, formCode?: string): Promise<any>;
21
+ hiddenFields(hidden: boolean, nameList: NamePath[] | NamePath, formCode?: string): void;
22
+ requiredFields(required: boolean, nameList: NamePath[] | NamePath, formCode?: string): void;
23
+ refreshFields(nameList: NamePath[] | NamePath, formCode?: string): void;
24
24
  }
@@ -1,13 +1,13 @@
1
- import { Dispatch, FormMeta, FormState } from "../types";
1
+ import { Dispatch, FormMeta, FormState, NamePath } from "../types";
2
2
  export declare class FormPresenter {
3
3
  private state;
4
4
  private readonly dispatch;
5
5
  constructor(state: FormState, dispatch: Dispatch<FormState>);
6
6
  syncState(state: FormState): void;
7
7
  initialState(meta: FormMeta): void;
8
- hiddenFields(hidden: boolean, nameList: string[] | string, formCode?: string): void;
9
- refreshFields(nameList: string[] | string, formCode?: string): void;
10
- requiredFields(required: boolean, nameList: string[] | string, formCode?: string): void;
8
+ hiddenFields(hidden: boolean, nameList: NamePath[] | NamePath, formCode?: string): void;
9
+ refreshFields(nameList: NamePath[] | NamePath, formCode?: string): void;
10
+ requiredFields(required: boolean, nameList: NamePath[] | NamePath, formCode?: string): void;
11
11
  private hiddenMapFields;
12
12
  private refreshMapFields;
13
13
  private requiredMapFields;
@@ -6,3 +6,4 @@ export * from "./validate";
6
6
  export * from "./event";
7
7
  export * from "./dispatch";
8
8
  export * from "./layout";
9
+ export * from "./instance";
@@ -6,3 +6,4 @@ export * from "./validate.js";
6
6
  export * from "./event.js";
7
7
  export * from "./dispatch.js";
8
8
  export * from "./layout.js";
9
+ export * from "./instance.js";
@@ -0,0 +1,26 @@
1
+ export type NamePath = string | string[];
2
+ /**
3
+ * 表单实例对象能力
4
+ */
5
+ export interface FormInstanceInterface {
6
+ /** 获取表某个单值 **/
7
+ getFieldValue: (name: NamePath, formCode?: string) => any;
8
+ /** 获取表所有值 **/
9
+ getFieldsValue: (formCode?: string) => any;
10
+ /** 重置表单值 **/
11
+ resetFields: (fields?: NamePath[] | NamePath, formCode?: string) => void;
12
+ /** 设置表单所有值 **/
13
+ setFieldsValue: (values: any, formCode?: string) => void;
14
+ /** 设置表单值 **/
15
+ setFieldValue: (name: NamePath, value: any, formCode?: string) => void;
16
+ /** 表单提交 **/
17
+ submit: (formCode?: string) => void;
18
+ /** 校验字段 **/
19
+ validateFields: (nameList?: NamePath[] | NamePath, formCode?: string) => Promise<any>;
20
+ /** 隐藏字段控制 **/
21
+ hiddenFields: (hidden: boolean, nameList: NamePath[] | NamePath, formCode?: string) => void;
22
+ /** 必填字段控制 **/
23
+ requiredFields: (required: boolean, nameList: NamePath[] | NamePath, formCode?: string) => void;
24
+ /** 刷新字段控制 **/
25
+ refreshFields: (nameList: NamePath[] | NamePath, formCode?: string) => void;
26
+ }
File without changes
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { DataType } from "./types";
2
3
  import { FormInstance } from "../instance";
3
4
  import { FormEvent, FormFieldValidator } from "./";
@@ -69,6 +70,12 @@ export interface FormViewProps {
69
70
  form?: FormInstance;
70
71
  /** 表单数据更新事件 */
71
72
  onValuesChange?: (values: any) => void;
73
+ /** 表单提交数据 **/
74
+ onFinish?: (values: any, formCode?: string) => void;
75
+ /** 表单头内容 **/
76
+ header?: React.ReactNode;
77
+ /** 表单底部内容 **/
78
+ footer?: React.ReactNode;
72
79
  /** 是否预览模式 */
73
80
  review?: boolean;
74
81
  /** 字段校验逻辑 */
@@ -0,0 +1 @@
1
+ import "react";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coding-form/form-engine",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "form-engine components",
5
5
  "keywords": [
6
6
  "coding-flow",