这篇文章主要演示了对element ui表格的增删查,编辑就不用介绍了,比较简单,这里的搜索是自己写的,虽不算复杂但代码比较多,后来发现了官网的筛选器,请看此篇文章,element ui使用筛选功能实现前端本地表格搜索,大家可以把搜索换成筛选器的。
代码:(运行报的的话是引入CDN链接访问不了,可以等会,也可以自己换掉)
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <!-- 引入样式 --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> <!-- 引入组件库 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://unpkg.com/element-ui/lib/index.js"></script> </head> <body> <div id="app"> <el-form :inline="true" :model="sousuodata" class="demo-form-inline"> <el-form-item label="日期"> <el-input v-model="sousuodata.date" placeholder="日期"></el-input> </el-form-item> <el-form-item label="姓名"> <el-input v-model="sousuodata.name" placeholder="姓名"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="sousuo">搜索</el-button> </el-form-item> </el-form> <el-form :inline="true" :model="formInline" class="demo-form-inline"> <el-form-item label="日期"> <el-input v-model="formInline.date" placeholder="日期"></el-input> </el-form-item> <el-form-item label="姓名"> <el-input v-model="formInline.name" placeholder="姓名"></el-input> </el-form-item> <el-form-item label="地址"> <el-input v-model="formInline.address" placeholder="地址"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="onSubmit">新增</el-button> </el-form-item> </el-form> <el-table ref="multipleTable" :data="linshidata" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column label="日期" width="120"> <template slot-scope="scope">{{ scope.row.date }}</template> </el-table-column> <el-table-column prop="name" label="姓名" width="120"> </el-table-column> <el-table-column prop="address" label="地址" show-overflow-tooltip> </el-table-column> </el-table> <div style="margin-top: 20px"> <el-button @click="arrsDel()">批量删除</el-button> </div> </div> <script type="text/javascript"> var app = new Vue({ el: '#app', data: { sousuodata: { date: '', name: '', address: '' }, formInline: { date: '', name: '', address: '' }, linshidata:[], tableData: [{ date: '2016-05-03', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-04', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-01', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-08', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-06', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-07', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }], multipleSelection: [] }, created() { // 页面默认有没有数据不重要,重要的是拿到数据或数据改变就要去处理数据,添加或改变自增id,也就是模拟索引值 for (let i = 0; i < this.tableData.length; i++) { this.tableData[i].zizengId = i; this.linshidata=this.tableData; } }, methods: { sousuo(){ // if(this.sousuodata.name==null){ //输入框不需要,此行是为时间选择器准备,时间选择器清空后值是null,需要改成空字符串 // this.sousuodata.name='' // } if(this.sousuodata.date!==''||this.sousuodata.name!==''){ this.linshidata=[]; }else{ this.linshidata=this.tableData; return } for(let a=0; a<this.tableData.length;a++){ let i = true; if(this.sousuodata.date!=='' && i==true){ if(this.tableData[a].date.indexOf(this.sousuodata.date)>=0){ i=true; }else{ i=false; } } if(this.sousuodata.name!=='' && i==true){ if(this.tableData[a].name.indexOf(this.sousuodata.name)>=0){ i=true; }else{ i=false; } } if(i==true){ this.linshidata.push(this.tableData[a]) } } }, // 获取选中的数据 handleSelectionChange(val) { console.log('下面打印的是选中的数据') console.log(val) this.multipleSelection = val; }, // 批量删除 arrsDel() { // 删除时arr接收选中数据的自增Id let arr = []; for (let i = 0; i < this.multipleSelection.length; i++) { arr.push(this.multipleSelection[i].zizengId) //此处接收了所有选中的自增id } arr.sort(); //此处作用是将数组内的值从小到大排序,下面循环从小到大删除,就不会出现问题 for (let a = 0; a < arr.length; a++) { this.tableData.splice(arr[a] - a, 1); //这一步就已经删除成功了,arr[a]-a的原因是每次删除后原数组都会发生变化,我们的删除起点要改变一下 } // 删除完成后要从新排一下我们的自增id for (let i = 0; i < this.tableData.length; i++) { this.tableData[i].zizengId = i; } this.sousuo(); }, // 增加新数据 onSubmit() { this.tableData.unshift({ date: this.formInline.date, name: this.formInline.name, address: this.formInline.address, }) // 添加完数据还要从新排一下我们的自增id哦 for (let i = 0; i < this.tableData.length; i++) { this.tableData[i].zizengId = i; } } } }) </script> </body> </html>
效果:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!