视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2020-11-27 21:55:54 责编:小采
文档

之前已经实现了表格的新增、编辑和删除,在我的上篇文章中写的也比较详细。但是总感觉有点不完美,首先新增了一行以后,必须要双击某一个单元格参能进行内容的输入。从代码上来说,代码量也较大;而且使用的是原生的html标签,有点尴尬。

于是,进一步研以后,进行了一定的优化,直接使用vue的代码实现,不仅大大减少了代码量,还实现了操作的友好性。下面直接上代码:

1 html部分

这次的优化其实主要在于html部分,直接将vue的el-input标签或者el-select标签放入表格的每个单元格中。这样就不用去考虑表格内容的编辑问题了。

<el-form :model="inServForm" ref="inServForm" label-width="130px" size="small">
 <el-form-item label="输入参数列表" prop="servin" >
 <el-button type="primary" @click="addRow(infiledList)">新增</el-button>
 <template>
 <el-table border :data="infiledList" style="width: 100%" >
 <el-table-column prop="fildna" label="名称" style="width:6vw;" >
 <template scope="scope">
 <el-input size="mini" v-model="scope.row.fildna" ></el-input>
 </template>
 </el-table-column>
 <el-table-column prop="fildtp" label="类型">
 <template scope="scope">
 <el-select v-model="scope.row.fildtp" clearable >
 <el-option
 v-for="item in fildtps"
 :key="item.value"
 :label="item.text"
 :value="item.value">
 </el-option>
 </el-select>
 </template>
 </el-table-column>
 <el-table-column prop="remark" label="备注">
 <template scope="scope">
 <el-input size="mini" v-model="scope.row.remark" ></el-input>
 </template>
 </el-table-column>
 <el-table-column fixed="right" label="操作">
 <template slot-scope="scope">
 <el-button @click.native.prevent="deleteRow(scope.$index, infiledList)" size="small"> 移除 </el-button>
 </template>
 </el-table-column>
 </el-table>
 </template>
 </el-form-item>
</el-form>

2 数据定义部分

data () {
 return {
infiledList:[],
 fildtps:[{text:'字符',value:'1'},{text:'数字',value:'2'}],

}

3 方法部分

methods: {
 deleteRow(index, rows) {//删除改行
 rows.splice(index, 1);
 },
 addRow(tableData,event){
 tableData.push({ fildna: '',fildtp:'',remark:''
 })
 },
}

4 效果图展示


下载本文
显示全文
专题