-
实例效果:
-
实例运用到的组件: 这里的实例 运用 element 的
表格组件:el-table
下拉菜单:el-dropdown;
-
用法 < template slot-scope="scope" >{{ scope.$index }} {{ scope.row }}
-
实例代码,详细解释在注释中: 复制代码
<el-table-column label="索引值" width="400">
<template slot-scope="scope"> <!-- slot-scope="scope" 这里取到当前单元格 -->
<span>{{ scope.$index }}</span> <!-- scope.$index 直接取到该单元格值 -->
</template>
</el-table-column>
<el-table-column label="标题" width="350">
<template slot-scope="scope"> <!-- slot-scope="scope" 这里取到当前单元格 -->
<span>{{ scope.row.title }}</span>
<!-- scope.row 直接取到该单元格对象,即是tableData[scope.$index] -->
<!-- .title 是对象里面的title属性的值 -->
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope"> <!-- slot-scope="scope" 这里取到当前单元格 -->
<el-dropdown size="medium" split-button type="primary">
更多
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native.prevent="handleEdit(scope.$index, scope.row)">编辑</el-dropdown-item>
<el-dropdown-item @click.native.prevent="getUp(scope.$index, scope.row)">上升</el-dropdown-item>
<el-dropdown-item @click.native.prevent="getDown(scope.$index, scope.row)">下降</el-dropdown-item>
<el-dropdown-item @click.native.prevent="handleDelete(scope.$index, scope.row)">删除</el-dropdown-item>
<!-- 这里的点击事件已经不是在根元素上了,因为多套了几层结构。-->
<!-- 这里的点击事件如果没有加上 .native 则点击无效!-->
<!--这里的点击事件要加上 .native 表示监听组件根元素的原生事件。-->
<!-- 这里的点击事件不需要 .prevent 也可以实现相同效果 -->
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
复制代码
javaScript: 前端删除index要+1
复制代码 data() { return { tableData: [{title:123,age:11},{title:456,age:18}] //---为了效果先给值,一般情况下为空,其实际值是后台接口请求回来的 } }, methods:{ handleDelete(index, row) { this.tableData.splice(index+1, 1);//---前端删除index要+1 !!!!!!!
//---下面是后端数据删除
axios.post(config.newsDelete,//---后端数据删除
{
id: row.id//---传入被删除的对象的id值
},
{
headers: {
Authorization: "Bearer " + sessionStorage.getItem("token")//---请求头验证
}
}
)
.then(res => {
this.rendering()//---删除了重新渲染
});
}
}