chore:crud支持canAccessSuperData&文档说明

This commit is contained in:
lvxiaojiao 2023-05-12 16:21:15 +08:00
parent 4c92f354d6
commit b2022d83d6
2 changed files with 15 additions and 6 deletions

View File

@ -107,7 +107,11 @@ CRUD即增删改查组件主要用来展现数据列表并支持各类
}
```
## 数据源接口数据结构要求
## 数据源接口
### 数据结构
CRUD 组件对数据源接口的数据结构要求如下:
- `items`或`rows`:用于返回数据源数据,格式是数组
- `total`: 用于返回数据库中一共有多少条数据,用于生成分页
@ -174,9 +178,11 @@ CRUD即增删改查组件主要用来展现数据列表并支持各类
如果不需要分页,或者配置了 `loadDataOnce` 则可以忽略掉 `total``hasNext` 参数。
> 如果 api 地址中有变量,比如 `/api/mock2/sample/${id}`amis 就不会自动加上分页参数,需要自己加上,改成 `/api/mock2/sample/${id}?page=${page}&perPage=${perPage}`
### Query 参数
## 分页参数
数据源接口地址可以通过变量实现动态拼接,例如: `/api/mock2/sample/${id}`但需要注意的是接口地址拼接变量后amis 就不会自动追加默认参数了,例如:分页参数、查询参数等,如需追加,可以自行拼接,例如: `/api/mock2/sample/${id}?page=${page}&perPage=${perPage}`
### 分页参数
默认的分页参数是 `page``perPage`page 代表页数比如第一页perPage 代表每页显示几行。
@ -558,7 +564,7 @@ Cards 模式支持 [Cards](./cards) 中的所有功能。
大部分表格展示有对数据进行检索的需求CRUD 自身支持通过配置`filter`,实现查询条件过滤表单。`filter` 配置实际上同 [Form](./form/index) 组件,因此支持绝大部分`form`的功能。
在条件搜索区的 `Engine` 输入框中输入任意值查询会发现结果中 `ID` 为 1 - 3 的 `Rendering engine` 列因为返回值中没有对应字段值,被错误填入了与 `filter` 中相同 `name` 的字段值,这是因为表格 Cell 通过[数据链](../../docs/concepts/datascope-and-datachain)获取到了上层数据域 `filter` 中相同字段的数据值。这种情况可以在 CRUD `columns` 对应列配置`"canAccessSuperData": false`禁止访问父级数据域(比如: `Platform`列)。
在条件搜索区的 `Engine` 输入框中输入任意值查询会发现结果中 `ID` 为 1 - 3 的 `Rendering engine` 列因为返回值中没有对应字段值,被错误填入了与 `filter` 中相同 `name` 的字段值,这是因为表格 Cell 通过[数据链](../../docs/concepts/datascope-and-datachain)获取到了上层数据域 `filter` 中相同字段的数据值。这种情况可以在 CRUD `columns` 对应列配置`"canAccessSuperData": false`禁止访问父级数据域(比如: `Platform`列),或者 CRUD`"canAccessSuperData": false`追加配置禁止所有列访问父级数据域
```schema: scope="body"
{
@ -2899,6 +2905,7 @@ itemAction 里的 onClick 还能通过 `data` 参数拿到当前行的数据,
| autoGenerateFilter | `Object \| boolean` | | 是否开启查询区域,开启后会根据列元素的 `searchable` 属性值,自动生成查询条件表单 |
| resetPageAfterAjaxItemAction | `boolean` | `false` | 单条数据 ajax 操作后是否重置页码为第一页 |
| autoFillHeight | `boolean``{height: number}` | | 内容区域自适应高度 |
| canAccessSuperData | `boolean` | `true` | 指定是否可以自动获取上层的数据并映射到表格行数据上 |
注意除了上面这些属性CRUD 在不同模式下的属性需要参考各自的文档,比如

View File

@ -72,7 +72,9 @@ export class TableCell extends React.Component<TableCellProps> {
className: innerClassName,
type: (column && column.type) || 'plain'
};
const canAccessSuperData = schema?.canAccessSuperData !== false;
// 表的比列的优先级高
const canAccessSuperData =
this.props.canAccessSuperData ?? schema?.canAccessSuperData !== false;
// 如果本来就是 type 为 button不要删除其他情况下都应该删除。
if (schema.type !== 'button' && schema.type !== 'dropdown-button') {