element多选表格批量删除本地数据,不连接后台

<!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="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="tableData" 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: {
					formInline: {
						date: '',
						name: '',
						address: ''
					},
					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;
					}
				},
				methods: {
					// 获取选中的数据
					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;
						}
					},
					// 增加新数据
					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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值