# ry-edit-table
**Repository Path**: RYANLLL/ry-edit-table
## Basic Information
- **Project Name**: ry-edit-table
- **Description**: 基于Vue3和element plus二次封装的一个可编辑表格 An editable-table work with Vue 3 and element Plus.
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 10
- **Forks**: 3
- **Created**: 2023-05-09
- **Last Updated**: 2025-08-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
**⭐️一款基于 Vue3.0 和 Element Plus 二次封装的支持多行编辑的可编辑表格 ry-edit-table,轻量简单实用。**
##### 😇支持:
- 支持激活表格的多行编辑。
- 通过表格配置属性 `listConfig`即可让组件渲染出对应的表头。
- 通过表格配置属性 `listConfig`即可设置对应列的输入框类型和校验规则。
- 通过表格配置属性`listConfig`,即可快捷处理单元格输入框的`change`、`blur`、`focus`事件或输入框状态。
- 通过行内按钮配置属性 `listConfig`,即可让组件渲染出相关的按钮,并在配置属性那里即可处理相关点击事件和按钮状态。
- 提供相关的方法以支持单行校验,多行校验,动态调整校验规则,清空校验,获取最终表格数据等功能。
😂**不支持**:
- 表头合并、行合并等一切复杂结构。
#### 🔧快速开始:
##### 🙂安装
```shell
npm i ry-edit-table
```
###### 😉引入
```javascript
import { createApp } from "vue";
import App from "./App.vue";
import "./style.css";
import "element-plus/dist/index.css";
import ElementUI from "element-plus";
import ryEditTable from 'ry-edit-table'; // 引入表格插件
import 'ry-edit-table/dist/style.css';// 引入ry-edit-table样式
createApp(App)
.use(ElementUI)
.use(ryEditTable)
.mount("#app");
```
##### 😁使用
```js
RY-EDIT-TABLE
```
#### RY-EDIT-TABLE 属性
| **属性名** | 参数 | 说明 |
| --- | --- | --- |
| listData:Array | | 表格数据 |
| listConfig:Obejct |
| 表头配置 |
| | mode:String text | select | time | date | 该列输入框类型:text 对应 el-input ,select 对应 el-select-time,对应 el-time-picker ,date 对应 el-date-picker |
| | label: String | 表头名字 |
| | prop: String | 表头字段 |
| | placeholder:String | 输入框占位内容 |
| | disbaled:Boolean | Function | 返回输入框是否禁用条件 | 动态条件可通过回调函数返回布尔值 e.g (row)=>row.age ? true : false |
| | options:Array | Function | 选择器枚举资源 | 固定资源可直接赋值 options:[{label:xxx,value,xxx} ]| 异步请求的资源请用函数返回该资源对象 e.g: options:(row)=> this.xxxoptions |
| | renderProp:String | 非编辑状态下,输入框将渲染该字段值 |
| | spliter:String | 多项选择器文本渲染连接符 |
| | inputConfig:Object | 输入框绑定的属性值(属性继承 element plus ,可参考 element UI 文档) |
| | inputWrapperConfig:Object | 输入框外层 el-form-item 标签绑定的属性值(属性继承 element plus ,可参考 element UI 文档) |
| | change(value,row,index) | 输入框 change 事件 | value:Any 输入框的值,row:Object 行数据,index:Number 行索引 |
| | blur(value,row,index) | 输入框 blur 事件 | value:Any 输入框的值,row:Object 行数据,index:Number 行索引 |
| | focus(value,row,index) | 输入框 focus 事件 | value:Any 输入框的值,row:Object 行数据,index:Number 行索引 |
| | rules:Array | 输入框校验规则 |
| rowButtons:Array | 行内按钮配置 | |
| | name:String | 按钮名字 |
| | type:String | 按钮类型 primary | danger 等参考 element UI |
| | vIf:Boolean | Function | 控制按钮的渲染条件,可返回布尔类型,或以回调函数形式返回控制条件 e.g (row) => row.xxx ? true:false; |
| | click(ref,row,index) | 点击事件 | 回调参数 ref 对象包含四个控制该行状态的方法,分别为 ref.edit() 激活该行编辑状态,ref.cancel() 取消该行编辑状态,ref.delete() 删除该行,ref.validate(callback) 校验该行,callback(valid:Boolean) valid :是否校验通过布尔值 ;row:行内容 ,index:行索引 |
| operationsConfig:Object | 调整操作列参数 | 参数参考 element UI 的 el-table-column |
| trigger:String | onChange | onBlur | onSave | default:onChange |
| showFlag:Boolean | 是否开启单元格数据变动标识旗帜 | default:true |
| exposeRowKey:Boolean | 获取最终的表格数据,每行数据是否暴露 $uuidKey(每行唯一标识字段)属性 | default:false |
#### RY-EDIT-TABLE 方法
| **属性名** | 说明 | **参数 | 返回值** |
| --- | --- | --- |
| insert(newRow) | 插入新增行 | newRow:Object |
| recover() | 还原表格 | |
| activateAllRows() | 激活所有行的编辑状态 | |
| hasActivatedRows() | 表格中是否有未完成编辑的行 | Boolean |
| getActivatedRows() | 获取已经处于激活状态的行集合 | Array |
| deactivateAll() | 取消所有单元格的激活状态 | |
| validateAll(callback) | 校验表格全部字段 | callback:Function | 回调函数接收两个参数 | valid:Boolean 是否校验通过 | fields :Object 错误字段集合 |
| clearValidate() | 清空全部校验信息 | |
| changeRules(key,callback) | 调整校验规则 | key:String | 字段名,callback(rule:Array,check:Function) | rule: 该字段的校验规则集合 ,check:调用该函数可立即执行一次校验 |
| removeCellError(row,field) | 取消该行某个字段的错误信息 | row:Object 该行对象且存在 $uuidKey 属性 | field:String 字段名 |
| removeRowError(row) | 取消该行所有校验信息 | row:Object 该行对象且存在 $uuidKey 属性 |
| getRowByKey($uuidKey) | 根据每行的唯一标识获取该行数据 | $uuidKey:String | 初始渲染表格时绑定在每行 Row 对象中。 |
| getData() | 返回当前表格数据 | Array |
##### 源码/DEMO https://gitee.com/RYANLLL/ry-edit-table
#### 💡组件目前处于初版阶段,仅支持一般性非复杂功能的功能,但也非常实用,欢迎体验。