跳转到内容

Detail页面下的Table容器获取数据

如下图所示:一个页面存在详情和列表,两个数据容器之间需要进行关联。

image-20210106144325921

实现方式

  1. 使用related关联,使用DataStore数据来源类型获取数据。
  2. 使用related关联,使用dataSourceAction数据来源类型获取数据。
  3. 使用lookupFrom关联。

主要是用在列表模型的字段包含详情模型的字段,如:每个部门人员都属于某个部门

@Data
@TModel(name = "部门人员")
public class Person extends BaseModel<Long> {
@TModelField(name = "部门")
@RelationMeta(name = "department")
private Department department;
}
<Detail key="department" model="trantor_doc_Department">
<Fields>
<Field name="name" />
</Fields>
</Detail>
<!-- 通过 DataStore 获取数据-->
<Table title="部门人员" model="trantor_doc_Person" related="department:department">
<Fields>
<Field name="name" />
<Field name="age" />
</Fields>
</Table>
<!-- 通过 dataSourceAction 获取数据-->
<Table title="部门人员" model="trantor_doc_Person" related="department:department" dataSourceAction="base_xxxxx">
<Fields>
<Field name="name" />
<Field name="age" />
</Fields>
</Table>

lookupFrom

主要是用在详情模型包含列表模型的字段List,如:一个部门下有很多员工

注意:

  1. lookUpFrom不支持分页。
  2. lookUpFrom 属性可以将某个表单的值用作另外一个表单的字段提交,在多个 Form 一起提交的场景非常有用。
@Data
@TModel(name = "部门")
public class Department extends BaseModel<Long> {
@TModelField(name = "员工列表")
@RelationMeta(
name = "DepartmentStaff",
modelClass = Staff.class,
opposite = RelationType.ToMany
)
private List<Staff> staff;
}
<View title="lookupFrom">
<Form title="部门信息" key="department" model="trantor_doc_Department">
<Fields>
<Field name="name" />
</Fields>
</Form>
<!-- lookUpFrom 属性可以将某个表单的值用作另外一个表单的字段提交,在多个 Form 一起提交的场景非常有用。 -->
<TableForm title="部门人员" model="trantor_doc_Person" lookupFrom="department.staff">
<Fields>
<Field name="name" />
<Field name="age" />
</Fields>
</TableForm>
<!-- 也可做单纯的关联 -->
<Table title="部门人员" model="trantor_doc_Person" lookupFrom="department.staff">
<Fields>
<Field name="name" />
<Field name="age" />
</Fields>
</Table>
</View>

实现示例

related 描述了多个数据容器之间的加载关系

lookupFrom

lookUpFrom 属性可以将某个表单的值用作另外一个表单的字段提交,在多个 Form 一起提交的场景非常有用。