 YbRowsForm  多行表单
YbRowsForm  多行表单
  可增加、移除、上移、下移操作的多行展示的表单,通常作为yb-form或者el-form的一种表单控件
formItems[].rules[].validator 支持第六个参数:
rowsFormItems = [
    {
        label: '活动区域',
        prop: 'region',
        tooltip: '活动区域必填',
        rules: [
            {
                validator: (
                    rule,
                    value,
                    callback,
                    source,
                    options,
                    { prop, rowKey, parentProp, row }
                ) => {
                    callback();
                },
            },
        ],
        defaultValue: '99',
    },
];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 基本使用
在yb-form中使用
  复制 
# 控件非联动显示/隐藏
与行内控件联动显示-隐藏不同的是,该功能用于控制所有行的字段
- renderedController:根据每个字段设置是否渲染,默认渲染
字段设置为 false:相当于渲染节点时 return null,若设置 rules ,不进行校验 
- showedController: 根据每个字段设置是否显示,默认显示
字段设置为 false:相当于节点添加样式 display: none,若设置 rules ,进行校验 
  复制 
# 行内控件联动显示/隐藏
  复制 
# Props
| 参数 | 说明 | 类型 | 可选值 | 默认值 | 
|---|---|---|---|---|
| renderedController | 控制不渲染字段,字段值不可被绑定,优先级比 rowFormItemRendered 高 。示例:{ desc: true },则 desc 字段不渲染 | object | - | {} | 
| showedController | 控制隐藏字段,字段值可以被绑定,相当于 display:none,优先级比 formItems[].show 高 。示例:{ desc: true },则 desc 字段不显示 | object | - | {} | 
| formItems | 生成多个el-form-Item (opens new window)的数据,每一项的属性对应el-form-Item (opens new window)的属性,每个控件通过对应的 item.prop 的作用域插槽来添加。 | object[] | - | [] | 
| formItems[].excludeSpans | 是否不包含在 spans | boolean | - | false | 
| 是否不渲染(不建议再使用,可以用 renderedController 代替) | boolean | - | false | |
| formItems[].tooltip | 配置提示信息 | string | function({formItem,formModel,rowKey,rowIndex},h) => string | - | -- | 
| formItems[].contentTip | 在控件下面配置提示信息 | string | function({formItem,formModel,rowKey,rowIndex},h) => string | - | -- | 
| spans | 用栅栏布局对 formItems 排版,如果是 object 类型,将与默认的{ xl: 4,lg: 6,md: 8,sm: 12, xs: 24}进行合并,总占格数为 24 | boolean | object | - | false | 
| rowFormItemRendered | 控制行内的 formItem 是否渲染的函数,优先级比 formItems[].unrendered 高 | function({rowKey,row,formItem}){return Boolean} | - | -- | 
| label-width | 表单域标签的宽度。支持 auto ,默认继承 yb-form 的 label-width | - | - | - | 
| label-position | 表单域标签的位,默认继承 yb-form 的 label-position | - | right/left/top | - | 
| showAddButton | 是否显示新增按钮 | - | boolean |function({rows}){return boolean} | true | 
| showInsertButton | 是否显示下插入一行按钮, 默认 null 会取showAddButton, 优先级比showAddButton高 | - | boolean|function({ row, rowKey,idScope,rowIndex}){ return true }|null | null | 
| showRemoveButton | 是否显示移除按钮 | - | boolean|function({ row, rowKey,idScope,rowIndex}){ return true } | true | 
| showMoveButton | 是否显示上移、下移按钮 | - | boolean|function({ row, rowKey,idScope,rowIndex}){ return true } | true | 
| showRowKey | 是否显示操作按钮前的行标识,当 showRowKey、showRemoveButton、showMoveButton 都不显示时,操作区域也就不会显示 | - | boolean | true | 
| idScope | 内部渲染将 rowKey 当作行的 dom 元素 id,如果一个页面存在多个 YbRowsForm,行 DOM 的 id 就不唯一,为了保证唯一 id,所以给 YbRowsForm 设置不同的 idScope,行 DOM 的 id 格式:idScope-rowKey | - | string | -- | 
| removeRowFieldWhenDestroy | 是否在行内控件销毁时清空对应的字段值 | - | boolean | true | 
| shardedRendering | 是否分片渲染,表单项太多,一次性渲染会很明显的卡顿,开启后会进行异步一个表单项接着一个表单项的渲染 | boolean | - | false | 
| moveViewLabelKey | 上移下移弹窗的下拉列表的选项显示名称来源,对应 formItems[].prop | string | - | - | 
# Events
| 参数 | 说明 | 回调参数 | 
|---|---|---|
| change | 绑定值改变时触发,比如添加行、移除行、上移行 | value | 
| rowFieldChange | 行内字段值改变触发 | {row,rowKey,fieldProp,idScope} | 
| rowFieldBlur | 行内字段失去焦点触发 | {row,rowKey,fieldProp,idScope} | 
| shardedRenderEnd | 开启 shardedRendering 分片渲染后,最后渲染完成会触发的事件 | - | 
上次更新: 2024/11/26, 19:21:17
