• 首页
  • 产品中心
    • 数式Oinone四大产品

      低代码开发平台无代码开发平台集成开发平台AI大模型开发
    • 数式Oinone体系能力

      用户与组织权限管理文件管理消息中心国际化业务审计
    • 数式Oinone核心产品特性

      低无一体面向软件公司场景无限制应用级扩容可分可合
  • 服务中心
    • 客户服务

      预约演示方案咨询私有部署找人定制
    • 开发者

      问答下载
    • Oinone学院

      社区学习

    《精讲面向软件公司的低代码平台——以Oinone为例》

  • 合作伙伴
    渠道申请伙伴名录专家库
  • 关于数式
0571-88757863

开发辅助:表单自动填充用户的相关信息


在实际项目的业务应用场景下,时常出现将与用户相关的信息,诸如用户姓名、所属部门等,自动嵌入至表单之中的业务需求,以此达成表单数据的自动填充效果。本文将详尽阐述达成此功能的具体实施步骤。

一、实现步骤

(一)定义基类模型

  1. 定义基类模型(如:AbstractDeptModel),包含需要自动填充的属性(字段);有需自动填充用户信息表单功能的模型都继承自该模型;
@Model.model(AbstractDeptModel.MODEL_MODEL)
@Model(displayName = "带登录人信息的抽象模型")
@Model.Advanced(type= ModelTypeEnum.ABSTRACT)
public abstract class AbstractDeptModel extends IdModel  {

    public static final String MODEL_MODEL = "hr.simple.AbstractDeptModel";

    @Field.many2one
    @UxForm.FieldWidget(@UxWidget(readonly = "true"))
    @Field(displayName = "登记人", summary = "登记人", required = true, priority = 11)
    private PamirsEmployee registrant;

    @Field.String
    @Field(displayName = "登记人编码", invisible = true, priority = 12)
    private String registrantCode;

    @Field.many2one
    @UxForm.FieldWidget(@UxWidget(readonly = "true"))
    @Field.Relation(relationFields = {"deptCode"}, referenceFields = {"code"})
    @Field(displayName = "所属机构", priority = 13)
    private PamirsDepartment department;

    @Field.String
    @Field(displayName = "所属机构编码", invisible = true, priority = 14)
    private String deptCode;
}
  1. 根据 Oinone 模型继承规则,子模型拥有父模型所有的函数;因此只需写基类AbstractDeptModel的数据填充逻辑即可;

说明:

下面示例代码中登记人和所属机构都是从 Session 中获取

@Slf4j
@Component
@Model.model(AbstractDeptModel.MODEL_MODEL)
public class AbstractDeptModelAction {

    @Function(openLevel = FunctionOpenEnum.API)
    @Function.Advanced(type = FunctionTypeEnum.QUERY)
    public AbstractDeptModel construct(AbstractDeptModel data) {
        data.setRegistrant(HrSimpleSession.getEmployee());
        data.setDepartment(HrSimpleSession.getDepartment());
        return data.construct();
    }

}

(二)定义业务模型

需自动填充用户信息表单功能的模型都继承自该模型;即继承 AbstractDeptModel

@Model.model(UnitProjectFiling.MODEL_MODEL)
@Model(displayName = "项目备案登记", labelFields = {"projectName"})
@Model.Advanced(unique = {"projectNo"})
public class UnitProjectFiling extends AbstractDeptModel {

    public static final String MODEL_MODEL = "hr.simple.UnitProjectFiling";

    @UxForm.FieldWidget(@UxWidget(span = 2))
    @Field(displayName = "项目名称")
    private String projectName;

    @Field(displayName = "项目编号")
    private String projectNo;

    @Field.Text
    @Field(displayName = "项目概述")
    private String projectDemo;

    // 其他属性

}

(三)运行效果

通过上面几步,继承与基类AbstractDeptModel模型,在创建页会自动填充用户的信息(如登记人和所属部门)

提示:

可以通过文的思路,实现表单自动填充数据的逻辑。前提:自动填充的字段,能够根据系统环境和登录人获取到。

编辑此页
最近更新:2026/1/15 04:02
上一页
发布流程:后端发布流程
下一页
开发实践:业务实现多租户方案
默认页脚
Copyright © 2026 Mr.Hope