左树右表俩种情况 假设存在 A模型 B模型
1: 左树为A模型,右表为B模型
举例 A模型为类目 B模型为类目属性
模型代码实例:
@Model.model(AriesPlatformCategory.MODEL_MODEL)
@Model(displayName = "平台后台类目", labelFields = "name")
@Model.Advanced(type = ModelTypeEnum.PROXY)
public class AriesPlatformCategory extends AriesCategory {
public static final String MODEL_MODEL = "aries.item.AriesPlatformCategory";
@Field.many2one
@Field.Relation(relationFields = {"parentCateCode"}, referenceFields = {"code"},store = true)
@Field(displayName = "平台父类目")
private AriesPlatformCategory platformCategory;
@Field.one2many
@Field(displayName = "类目属性")
@Field.Relation(relationFields = "code", referenceFields = "categoryCode", store = true)
private List<AriesPlatformCategoryAttr> platformCategoryAttrs;
}
@Model.model(AriesPlatformCategoryAttr.MODEL_MODEL)
@Model(displayName = "Aries_平台类目属性", labelFields = "name")
@Model.Advanced(type = ModelTypeEnum.PROXY)
public class AriesPlatformCategoryAttr extends CategoryAttr {
public static final String MODEL_MODEL = "aries.item.AriesPlatformCategoryAttr";
@Field.many2one
@Field(displayName = "平台后台类目")
@Field.Relation(relationFields = "categoryCode", referenceFields = "code", store = true)
private AriesPlatformCategory platformCategory;
}
在设计器设计左树右表之前,需要在模型 中配置好关联关系 。如下部分代码 配置好类目与父类目的关联关系。
@Field.many2one
@Field.Relation(relationFields = {"parentCateCode"}, referenceFields = {"code"},store = true)
@Field(displayName = "平台父类目")
private AriesPlatformCategory platformCategory;
配置好 类目与类目属性的关联关系。一个类目可以有多个类目属性,一对多one2many
@Field.one2many
@Field(displayName = "类目属性")
@Field.Relation(relationFields = "code", referenceFields = "categoryCode", store = true)
private List<AriesPlatformCategoryAttr> platformCategoryAttrs;
在类目属性模型中,配置好属性与类目的关联关系,一个类目属性只属于一个类目,一个类目可以有多个类目属性。类目属性对类目多对一many2one
@Field.many2one
@Field(displayName = "平台后台类目")
@Field.Relation(relationFields = "categoryCode", referenceFields = "code", store = true)
private AriesPlatformCategory platformCategory;
设计器实例:
1.需要选择 平台类目属性 做为主模型创建树表页面
2.构建关联关系 选择平台后台类目 第一级的筛选条件 上级编码为空 表格关联关系字段 选择 平台类目属性。
3.表格拖拽好需要的属性字段
2: 左树为A模型,右表也为A模型
举例 左A模型 组织结构管理 右A模型 组织结构管理
模型代码实例:
@Model.model(BasicOrg.MODEL_MODEL)
@Model(displayName = "组织结构管理", summary = "组织结构管理", labelFields = {"orgName"})
@Model.Code(sequence = "ORDERLY_SEQ", prefix = "Org", size = 5, initial = 0)
public class BasicOrg {
public static final String MODEL_MODEL = "basic.BasicOrg";
@Field.String
@Field(displayName = "名称")
private String orgName;
@Field.Enum
@Field(displayName = "组织类型", summary = "组织类型")
private OrgTypeEnum deptType;
@Field.Enum
@Field(displayName = "工厂类型", summary = "当组织类型为工厂时可见")
private FactoryTypeEnum factoryType;
@Field.Enum
@Field(displayName = "仓库类型", summary = "当组织类型为仓库时可见")
private WarehouseTypeEnum warehouseType;
@Field.String
@Field(displayName = "负责人", summary = "负责人")
private String principal;
@Field.String
@Field(displayName = "联系号码", summary = "联系号码")
private String phone;
@Field(displayName = "上级组织")
@Field.many2one
@Field.Relation(relationFields = {"parentCode"}, referenceFields = {"code"})
private BasicOrg parent;
@Field.Text
@Field(displayName = "备注")
private String remark;
@Field.Enum
@Field(displayName = "数据状态", required = true, defaultValue = "ENABLED")
private DataStatusEnum dataStatus;
@Field.String
@Field(displayName = "上级组织编码")
private String parentCode;
@Field.String(size = 256)
@Field(displayName = "树编码", required = true)
private String treeCode;
@Field.one2many
@Field.Relation(relationFields = "id", referenceFields = "orgId")
@Field(displayName = "基础-所属组织员工")
private List<BasicEmployee> basicEmployees;
}
配置好自我关联
@Field(displayName = "上级组织")
@Field.many2one
@Field.Relation(relationFields = {"parentCode"}, referenceFields = {"code"})
private BasicOrg parent;
设计器操作:
- 选择好模型 组织结构管理 创建页面 试图类型选择 表格 布局选择树表
2.设置联动关系 模型选择 组织结构管理 模型 ; 第一级的筛选条件 上级编码为空 表格关联关系字段 选择 组织结构管理-上级组织 字段名parent
- 表格拖拽好需要的属性字段
Oinone社区 作者:shao原创文章,如若转载,请注明出处:https://doc.oinone.top/dai-ma-shi-jian/5576.html
访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验