YbRowsPopoverForm 浮层多行表单
yb-rows-form 多行填写表单占用位置多,量多了性能不好,yb-rows-popover-form 可以填写同样的数据表单而性能较好也省空间,不仅如此,多个列表之间可以互相拖动行数据,拖动调整顺序
与 yb-rows-form 不同的是,yb-rows-popover-form 表单部分使用 yb-formily 配置表单实现
# 基本用法
- formItems[].formatter:结合 formItems[].showInTitle、formItems[].showInPopover 自定义行内显示的文本
- formItems[].options:若存在 options 配置,组件会自行找对应的 label 显示,优先级低于 formatter
- name姓名 左对齐
- age年龄 左对齐
- address家庭住址 左对齐
复制
# 作为 yb-form 的表单控件使用
后续也会集成到 yb-formily
复制
# 插槽使用
- titleInfo:信息展示,不触发 popover,参数:{ rowData, rowIndex }
- popoverInfo:信息展示,触发修改信息 popover 的元素,参数:{ rowData, rowIndex }
- 其他插槽,与 yb-formily 插槽一致,比如扩展表单类型的插槽"type-"开头的
- 姓名name 0px
- 年龄age 0px
- 性别gender 0px
复制
# 拖拽分组
- 当设置 dragGroup 为 object 类型
- dragGroup.name:组名
- dragGroup.pull:是否允许拖出当前组,可选值:true | false | 'clone' | array | function
- true:允许所有列表拖出当前组
- false:不允许任何列表拖出当前组
- 'clone':被拖出当前组时,克隆到其他组,当前组不会将该项数据移除
- array:指定可拖出当前组的列表名
- function:可动态判断是否可以拖出当前组,需返回布尔值
- dragGroup.put:是否允许拖入当前组,可选值:true | false | array | function
- true:允许所有列表拖入当前组
- false:不允许任何列表拖入当前组
- array:指定可拖入当前组的列表名
- function:可动态判断是否可以拖入当前组,需返回布尔值
- 当设置 dragGroup 为 string 类型
- 相当于{ name: 设置值, pull: false, put: false }
列表1:允许所有列表拖入当前组,允许所有列表拖出当前组
- 姓名name
- 年龄age
列表2:允许列表1拖入当前组,当数据大于1行时可以拖出当前组
- 性别gender
- 电话phone
列表3:允许所有列表拖入当前组,拖出当前组复制数据
- 身份证cardNo
- 地址address
复制
# YbRowsPopoverForm Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
value/v-model | 列表数据 | array | -- | [] |
draggable | 是否可拖动改变数据顺序 | boolean | -- | true |
editable | 是否可编辑当前行数据 | boolean | -- | true |
removable | 是否可删除当前行数据 | boolean | -- | true |
addable | 是否可添加行数据 | boolean | -- | true |
showAddButton | 是否在列表为空并且 addable:true 时显示添加按钮 | boolean | -- | true |
formItems | 编辑表单项,详见yb-formily 的渲染数据结构-formaldata | array | -- | [] |
formItems[].showInTitle | 是否在不触发 popover 信息处展示,优先级低于插槽 titleInfo | boolean | -- | -- |
formItems[].showInPopover | 是否在触发 popover 信息处展示,优先级低于插槽 popoverInfo | boolean | -- | -- |
formItems[].formatter | 格式化展示信息内容,当 showInTitle 或者 showInPopover 开启生效,参数:value, rowData, rowIndex | function | -- | -- |
formItems[].fieldInfoWidth | 字段值宽度设置,不设置时默认内容自动撑开,优先级高 | string | -- | -- |
formItems[].showOverflowTooltip | 当内容过长被隐藏时显示 tooltip | boolean | -- | -- |
rendered | 当前行是否渲染,取决于函数返回的布尔值 | function | -- | -- |
size | 尺寸大小,'large' | 'medium' | 'small' | 'mini' | string | -- | -- |
rowKey | 定义每行数据的唯一标识字段 | string | -- | "rowKey" |
dragGroup | 拖拽分组配置,详见拖拽分组 | object|string | -- | { name: 'yb-draggable-rows', pull: true, put: ['yb-draggable-rows'] } |
popoverWidth | popover 宽度 | string | -- | '250px' |
popoverMaxHeight | popover 最大高度,超出滚动 | string | -- | '70vh' |
fieldInfoWidth | 字段值宽度设置,不设置时默认内容自动撑开 | string | -- | -- |
idScope | 内部渲染将 rowKey 当作行的 dom 元素 id,行 DOM 的 id 格式:idScope-rowKey | - | string | -- |
# Events
参数 | 说明 | 回调参数 |
---|---|---|
change | 绑定值改变时触发,比如添加行、移除行、调整行的顺序 | value |
上次更新: 2024/06/21, 17:59:37