Skip to content

@Vis 多视图

@Vis 允许在同一个 Erupt 实体上挂载多个视图,以 Tab 形式并排展示。通过 visRawTable 控制是否保留默认表格,vis 数组添加额外视图。

1.13.2 及以上版本支持

基础用法

java
@Erupt(
    name = "任务管理",
    visRawTable = true,
    vis = {
        @Vis(title = "卡片", type = Vis.Type.CARD, cardView = @CardView),
        @Vis(title = "甘特图", type = Vis.Type.GANTT,
             ganttView = @GanttView(startDateField = "startDate", endDateField = "endDate"))
    }
)
@Entity
public class Task extends BaseModel { ... }

@Vis 属性说明

属性名描述
code视图唯一标识,可选
titleTab 标签名称(必填)
desc视图描述
type视图类型,默认 TABLE,见下方枚举
fieldVisibility字段可见性模式:INCLUDE(仅显示)/ EXCLUDE(排除),默认 EXCLUDE
fields配合 fieldVisibility 使用的字段名列表
filter该视图独立的数据过滤条件(@Filter
orderBy该视图独立的排序规则(@Sort
show动态控制 Tab 是否显示(ExprBool
cardView卡片视图配置,type = CARD 时生效,详见 卡片视图
ganttView甘特图配置,type = GANTT 时生效,详见 甘特图
tplView自定义模板配置,type = TPL 时生效

Type 枚举

描述
TABLE表格视图(可配合字段过滤)
CARD卡片/网格视图
GANTT甘特图
TPL自定义模板视图

visRawTable

visRawTable = false 时隐藏默认表格,仅显示 vis 中定义的视图:

java
@Erupt(
    name = "任务看板",
    visRawTable = false,
    vis = {
        @Vis(title = "卡片", type = Vis.Type.CARD, cardView = @CardView)
    }
)

TABLE 视图:字段过滤

type = TABLE(默认)时,通过 fieldVisibility + fields 对列进行筛选,无需额外定义实体类:

java
@Erupt(
    name = "员工管理",
    vis = {
        @Vis(
            code = "summary", title = "摘要视图",
            fieldVisibility = Vis.FieldVisibility.INCLUDE,
            fields = {"name", "status"}          // 只展示这两列
        ),
        @Vis(
            code = "internal", title = "内部视图",
            fieldVisibility = Vis.FieldVisibility.EXCLUDE,
            fields = {"salary"}                  // 隐藏薪资列
        )
    }
)

Released under the Apache-2.0 License.