# 页面数据源

这里列举了数据源查询的相关用法

# 数据源加载条件

可以在加载条件中设置数据源的加载条件,使用表达式例如: 来自url的参数里面带了id,则加载数据源,否则不加载。

在表达式窗口填入:

request.params.id

# 返回单条/多条数据

可以将是否多条数据设置为,这样数据源只会返回一条数据,适用于查询单条记录的场景(JSON对象)

{"id":1,"name":"张三"}

将开关打开,返回多条数据,适用于查询多条记录的场景(JSON数组)

[
  {"id":1,"name":"张三"},
  {"id":2,"name":"李四"}
]

# 是否自动刷新

可以在数据源的属性面板中,设置是否自动刷新,设置为,则数据源会自动刷新。

数据源中绑定了变量,例如上面的 加载条件中变量 ,或者查询参数中绑定了变量,基于Vue的双向数据绑定原理,当变量变化时,数据源会自动刷新。

如果设置为,则数据源不会自动刷新,需要手动调用数据源刷新的交互动作来刷新数据源。

# 扩展子查询(expand)

我们在查询请假数据的时候,可以通过 expand 参数来查询用户的信息,减少多次发送请求。

基于实体元数据生成的【查询接口】都有一个 expand 参数,expand指向实体的关系。

例如:有个实体 请假实体 其中的 createdBy 字段建立了与 用户实体 的 id 字段 关联关系(多对1)。

  1. 创建实体关系,得到关系名 secUser ,例如:

  1. 添加expand参数,值配置成 secUser(id,name) ,表示查询请假数据的同时,查询关联的用户实体的 id、name 字段,如不指定字段,将会查出所有字段。

查出来的数据格式如下:

  {
    "id": "******",
    "title": "1",
    "reason": "2",
    "endDate": "2025-09-19T00:00:00",
    "startDate": "2025-09-24T00:00:00",
    "createdBy": "22aaeb6e-a35e-4982-8f24-d4b786f18c50",
    "secUser": {
      "id": "22aaeb6e-a35e-4982-8f24-d4b786f18c50",
      "name": "张无忌"
    }
  }

# 后置处理函数

后置处理函数,可以处理数据源返回的数据。可以在这里预先处理好数据再返回给页面。

例如接口返回的数据是:

[
  {"firstName":"张","lastName":"三"},
  {"firstName":"李","lastName":"四"}
]

通过后置处理函数,我们可以追加数据,例如 status: true

页面函数中增加处理函数:

/**
 * 数据处理方法
 * @param {object} event 数据源对象
*/
export function changeData(event) {
  // 调用renderContext获取到当前运行上下文
  console.log(event)
  // 遍历数据添加 status 字段
  let data = event.data;
  data.forEach(item => {
    item.status = true
  })

  return event
}

此时数据源返回的数据为:

[
  {"firstName":"张","lastName":"三","status":true},
  {"firstName":"李","lastName":"四","status":true}
]

# 扩展数据源

参考:扩展数据源

顶部