From eb5a7b5fb97647c9cde20ee4cda8855e718c3aab Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Thu, 25 Mar 2021 23:32:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=89=A9=E5=B1=95rest-bean=E8=83=BD?= =?UTF-8?q?=E5=8A=9B=EF=BC=8C=E6=94=AF=E6=8C=81=E6=8F=90=E4=BE=9B=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=EF=BC=8C=E8=A1=A8=E6=A0=BC=E5=89=8D=E7=AB=AF=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E7=8A=B6=E6=80=81=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/domain/po/OnlineForm.java | 20 ---- flyfish-form/pom.xml | 32 +++++++ .../form/controller/OnlineFormController.java | 17 ++++ .../framework/form/domain/OnlineForm.java | 95 +++++++++++++++++++ .../form/repository/OnlineFormRepository.java | 10 ++ .../form/service/OnlineFormService.java | 13 +++ pom.xml | 1 + 7 files changed, 168 insertions(+), 20 deletions(-) delete mode 100644 flyfish-data/src/main/java/com/flyfish/framework/domain/po/OnlineForm.java create mode 100644 flyfish-form/pom.xml create mode 100644 flyfish-form/src/main/java/com/flyfish/framework/form/controller/OnlineFormController.java create mode 100644 flyfish-form/src/main/java/com/flyfish/framework/form/domain/OnlineForm.java create mode 100644 flyfish-form/src/main/java/com/flyfish/framework/form/repository/OnlineFormRepository.java create mode 100644 flyfish-form/src/main/java/com/flyfish/framework/form/service/OnlineFormService.java diff --git a/flyfish-data/src/main/java/com/flyfish/framework/domain/po/OnlineForm.java b/flyfish-data/src/main/java/com/flyfish/framework/domain/po/OnlineForm.java deleted file mode 100644 index f45ca32..0000000 --- a/flyfish-data/src/main/java/com/flyfish/framework/domain/po/OnlineForm.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.flyfish.framework.domain.po; - -import com.flyfish.framework.domain.base.Domain; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.data.mongodb.core.mapping.Document; - -/** - * 在线表单 - */ -@Document("online-forms") -@Data -@EqualsAndHashCode(callSuper = true) -public class OnlineForm extends Domain { - - // 配置信息 - private String form; - - -} diff --git a/flyfish-form/pom.xml b/flyfish-form/pom.xml new file mode 100644 index 0000000..f6fe2f6 --- /dev/null +++ b/flyfish-form/pom.xml @@ -0,0 +1,32 @@ + + + + flyfish-framework + com.flyfish.framework + 0.0.1-SNAPSHOT + + 4.0.0 + + flyfish-form + + + 8 + 8 + + + + + com.flyfish.framework + flyfish-data + ${project.version} + + + com.flyfish.framework + flyfish-web + ${project.version} + + + + diff --git a/flyfish-form/src/main/java/com/flyfish/framework/form/controller/OnlineFormController.java b/flyfish-form/src/main/java/com/flyfish/framework/form/controller/OnlineFormController.java new file mode 100644 index 0000000..ccd871c --- /dev/null +++ b/flyfish-form/src/main/java/com/flyfish/framework/form/controller/OnlineFormController.java @@ -0,0 +1,17 @@ +package com.flyfish.framework.form.controller; + +import com.flyfish.framework.controller.BaseController; +import com.flyfish.framework.domain.base.NameLikeQo; +import com.flyfish.framework.form.domain.OnlineForm; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 在线表单接口 + * + * @author wangyu + */ +@RestController +@RequestMapping("online-forms") +public class OnlineFormController extends BaseController> { +} diff --git a/flyfish-form/src/main/java/com/flyfish/framework/form/domain/OnlineForm.java b/flyfish-form/src/main/java/com/flyfish/framework/form/domain/OnlineForm.java new file mode 100644 index 0000000..889b615 --- /dev/null +++ b/flyfish-form/src/main/java/com/flyfish/framework/form/domain/OnlineForm.java @@ -0,0 +1,95 @@ +package com.flyfish.framework.form.domain; + +import com.alibaba.fastjson.JSONObject; +import com.flyfish.framework.domain.base.Domain; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.data.mongodb.core.index.CompoundIndex; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.ArrayList; +import java.util.List; + +/** + * 在线表单 + */ +@Document("online-forms") +@Data +@EqualsAndHashCode(callSuper = true) +@CompoundIndex(name = "uniq_code", def = "{code: 1}", unique = true) +public class OnlineForm extends Domain { + + // 表单描述 + private String description; + + // 表单配置 + private List form = new ArrayList<>(); + + // 分组们,包含标识和名称 + private List groups = new ArrayList<>(); + + // 表单样式,支持default, tabs, step + private String type = "default"; + + // 宽度 + private Integer width; + + // 默认布局 + private JSONObject layout = new JSONObject(); + + @Data + public static class FormItem { + + // 表单编码,存储数据的key + private String code; + // 显示名称,这个名称是输入框的label + private String title = ""; + // 组件,标识使用的组件 + private String component; + // 占据栅格,用于表单布局 + private Integer span = 12; + // 栅格偏移,布局需要 + private Integer offset = 0; + // 栅格布局 + private JSONObject grid = new JSONObject(); + // 儿子,手动指定儿子们 + private String children; + // 条件,用于匹配条件以显示与否 + private JSONObject condition; + // 校验规则,允许多个 + private List validation; + // 选项,用于表单的额外选项,支持antd vue的所有逻辑 + private JSONObject options = new JSONObject(); + // 组件属性,支持对象 + private JSONObject props; + // 表单联动,key为表单组件的属性,包含两种模式,condition是激活条件,value是激活的值 + private JSONObject links; + // 事件支持 + private JSONObject events; + // 映射支持 + private JSONObject mapping; + // 异步的props + private JSONObject delay; + // 分组 + private String group; + // 新增,增加反馈状态 + private Boolean feedback = false; + // 新增,增加额外描述 + private String extra; + // 新增,额外的复杂帮助,在tooltip弹出 + private String tips; + } + + /** + * 表单分组 + */ + @Data + public static class FormGroup { + + // 分组名称 + private String name; + + // 分组code + private String code; + } +} diff --git a/flyfish-form/src/main/java/com/flyfish/framework/form/repository/OnlineFormRepository.java b/flyfish-form/src/main/java/com/flyfish/framework/form/repository/OnlineFormRepository.java new file mode 100644 index 0000000..12d8c34 --- /dev/null +++ b/flyfish-form/src/main/java/com/flyfish/framework/form/repository/OnlineFormRepository.java @@ -0,0 +1,10 @@ +package com.flyfish.framework.form.repository; + +import com.flyfish.framework.form.domain.OnlineForm; +import com.flyfish.framework.repository.DefaultRepository; + +/** + * 在线表单 + */ +public interface OnlineFormRepository extends DefaultRepository { +} diff --git a/flyfish-form/src/main/java/com/flyfish/framework/form/service/OnlineFormService.java b/flyfish-form/src/main/java/com/flyfish/framework/form/service/OnlineFormService.java new file mode 100644 index 0000000..847d2eb --- /dev/null +++ b/flyfish-form/src/main/java/com/flyfish/framework/form/service/OnlineFormService.java @@ -0,0 +1,13 @@ +package com.flyfish.framework.form.service; + +import com.flyfish.framework.form.domain.OnlineForm; +import com.flyfish.framework.service.impl.BaseServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 在线表单服务 + * @author wangyu + */ +@Service +public class OnlineFormService extends BaseServiceImpl { +} diff --git a/pom.xml b/pom.xml index 08fd9a1..cef8f62 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,7 @@ flyfish-file flyfish-logging flyfish-dict + flyfish-form