docs/docs/cn/data-sources/field-sort/index.md
排序字段用于对数据表中的记录进行排序,支持先分组再排序(sort1)。
:::warning 因为排序字段是同表字段,所以分组排序时,不支持同一条记录分在多个组里。 :::
内置插件,无需单独安装。
创建排序字段时,会对排序值进行初始化:
:::warning{title="事务一致性的说明"}
sort1 字段无分组
各记录排序字段会依据主键字段和创建日期字段进行初始化:
此时会对数据表中的全部记录先分组(按 Class ID 分组),再进行排序字段(sort2)的初始化,各记录的初始化值:
排序字段主要用于各种区块记录的拖拽排序,目前支持拖拽排序的区块有表格和看板。
:::warning
表格区块
关系表格区块
<video controls width="100%" src="https://static-docs.nocobase.com/20240409111903_rec_.mp4" title="Title"></video>
:::warning 一对多关系区块里
最终效果是一致的,但是参与排序的记录数不一样,更多说明详见 排序规则说明 :::
假设有一组数据
[1,2,3,4,5,6,7,8,9]
当某个元素,假如是 5 向前移动到 3 的位置,此时,只有 3,4,5 的序号有变动,5 占用了 3 的位置,3,4 各向后移动一个位置。
[1,2,5,3,4,6,7,8,9]
此时继续 6 向后移动到 8 的位置,6 占用了 8 的位置,7,8 各向前移动一个位置。
[1,2,5,3,4,7,8,6,9]
分组排序时,当某一条记录移动到其他组里时,自身所在组也会发生改变。例如以下示例:
A: [1,2,3,4]
B: [5,6,7,8]
当 1 移动到 6 时(默认在后面),1 所在组也会从 A 变为 B
A: [2,3,4]
B: [5,6,1,7,8]
例如有一组数据
[1,2,3,4,5,6,7,8,9]
界面只显示了
[1,5,9]
当 1 移动到 9 的位置时,中间的 2,3,4,5,6,7,8 数据的位置都会变更
[2,3,4,5,6,7,8,9,1]
界面显示
[5,9,1]