vue-ele-form-table-editor | vue-ele-form 的表格内容编辑器
介绍
vue-ele-form-table-editor 做为 vue-ele-form 的第三方扩展, 通过对 ele-table-editor 的封装, 做到了表格编辑的双向绑定功能
安装
yarn add vue-ele-form-table-editor
或者
npm install vue-ele-form-table-editor --save
注册和使用
全局注册
;; // 注册 table-editor 组件Vue; // 注册 ele-formVue;
局部注册
局部注册和使用请参考: https://www.yuque.com/chaojie-vjiel/vbwzgu/inlpxy#I5kdQ
使用
formDesc: xxx: label: 'xxx' // 只需要在这里指定为 table-editor 即可 type: 'table-editor' // 属性参考: https://github.com/dream2023/ele-table-editor 或者 下面的属性说明 attrs: isShowDelete: false // 校检规则写这里 rules: name: required: true message: '姓名必填' // ... // 表格列 columns: // attrs 为 el-table-column 的属性 attrs: prop: 'age' // el-table-column 的 prop 属性 label: '年龄' // el-table-column 的 label 属性 // ... // content 为table-column的内容, 可以省略, 省略的话就是显示文本 // content 类型可以为对象(单个内容比如单个input框), 和 数组 (多个input框) // 具体可参考示例 content: {} // []
示例
attrs
参数概述
attrs: // 表格的属性 tableAttrs: type: Object border: true // 表格事件 tableOn: type: Object // 表单数据 value: type: Array // 是否显示删除 isShowDelete: type: Boolean default: true // 删除按钮属性 deleteBtnAttr: type: Object { return type: 'text' } // 右侧其它按钮 extraBtns: type: Array default: null // table 列 columns: type: Array // 校检规则 rules: Object // 禁用 (对所有input框禁用)) disabled: type: Boolean default: false // 新增列的值 newColumnValue: type: Object {} // 是否显示新增按钮 isShowAdd: type: Boolean default: true // 新增按钮文本 addBtnText: type: String default: '新增'
columns 参数详解
columns 参数详解
columns: // attrs 为 el-table-column 的属性 + content // el-table-column 的属性具体参考: https://element.eleme.cn/#/zh-CN/component/table#table-column-attributes prop: 'name' // el-table-column 的 prop 属性 label: '姓名' // el-table-column 的 label 属性 width: 200 // el-table-column 的 width 属性 vif: true // el-table-column 是否显示,可以为函数 // ... // column 的内容, 可省略, 省略时为显示字符串 // column 的类型可以为对象或者对象数组, 例如 content: // 渲染的组件, 可以为全局注册的组件名称或者直接组件的引用 type: 'el-select' valueKey: 'xxx' // 绑定的tableData 的key // select, checkbox, radio 三个组件特有的属性 // 用于指定选项 options: text: '北京' value: 'beijing' text: '上海' value: 'shanghai' // 同上, 用于当 options的key不是 text 和 value 时指定key和value prop: text: 'name' value: 'id' // 组件属性 attrs: size: 'medium' // ... // 可以为函数,根据数据判断 { return disabled: scope$index === 1 ? true : false } // change 事件 { console } // 组件样式 style: width: '200px' // ... // 组件 class class: 'my-custom-select' // 组件事件 on: { console } // ... // 组件插槽 slots: { return } // 作用域插槽 scopedSlots: { // data 为传递过来的参数 return } // 此属性, 仅当当未指定 content 时, 用于格式化文本 // status: 1 , options为枚举 options: 1: '正常' 2: '禁用'