el-table单元格新增、编辑、删除功能
<template>
<div class="box">
<el-button
class="addBtn"
type="primary "
@click="addRow"
size="small"
style="margin-bottom:10px;"
>增加</el-button
>
<el-table
:data="
tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)
"
border
class="el-table"
style="width: 100%;"
>
<el-table-column align="center" type="index" label="序号" width="80">
</el-table-column>
<el-table-column prop="sort" label="配置分类">
<template slot-scope="scope">
<el-input
@click="detail"
v-model="scope.row.sort"
:disabled="!scope.row.disabled"
></el-input>
</template>
</el-table-column>
<el-table-column prop="name" label="指标名称">
<template slot-scope="scope">
<el-input
@click="detail"
v-model="scope.row.name"
:disabled="!scope.row.disabled"
></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="depart" label="所属部门">
<template slot-scope="scope">
<el-input
v-model="scope.row.depart"
:disabled="!scope.row.disabled"
></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="creator" label="创建者">
<template slot-scope="scope">
<el-input
v-model="scope.row.creator"
:disabled="!scope.row.disabled"
></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="createDate" label="创建时间">
<template slot-scope="scope">
<el-input
v-model="scope.row.createDate"
:disabled="!scope.row.disabled"
></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="updater" label="更新者">
<template slot-scope="scope">
<el-input
v-model="scope.row.updater"
:disabled="!scope.row.disabled"
></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="updaterDate" label="更新时间">
<template slot-scope="scope">
<el-input
v-model="scope.row.updaterDate"
:disabled="!scope.row.disabled"
></el-input>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="200">
<template slot-scope="scope">
<el-button
v-if="scope.row.edit"
type="success"
size="mini"
@click="confirmEdit(scope.row)"
style="margin-left:0px;"
>保存
</el-button>
<el-button
v-if="scope.row.edit"
class="cancel-btn"
size="mini"
type="warning"
@click="cancelEdit(scope.$index, scope.row)"
style="margin-left:0px;"
>取消
</el-button>
<el-button
v-else
type="primary"
size="mini"
@click="startEdit(scope.row)"
style="margin-left:0px;"
>编辑
</el-button>
<el-button
@click="handleDelete(scope.$index, tableData)"
type="danger"
size="mini"
style="margin-left:0px;"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pagination"
align="center"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[1, 5, 10, 20]"
:page-size="pageSize"
layout="total, prev, pager, next"
:total="tableData.length"
>
</el-pagination>
</div>
</template>
<script>
import data from "./data/index.js";
export default {
mixins: [data],
methods: {
// 增加行
addRow() {
let newLine = {
sort: this.sort,
name: this.name,
depart: this.depart,
creator: this.creator,
createDate: this.createDate,
updater: this.updater,
updaterDate: this.updaterDate,
edit: true, // 新增时处于可编辑状态,所以按钮是保存和取消
disabled: true // 打开编辑状态
};
this.tableData.unshift(newLine); // 移到第一行
},
// 编辑
startEdit(row) {
row.edit = !row.edit;
row.disabled = true;
},
// 保存
confirmEdit(row) {
//row.originalValue = row.address;
if (row.sort == null || row.name == null) {
this.$message({
message: "请输入分类名称与指标名称!",
type: "warning"
});
return false;
}
row.edit = false;
row.disabled = false;
//调取Api接口地址
//成功后
this.$message({
message: "修改成功!",
type: "success"
});
//失败后
// this.$message({
// message: "修改失败",
// type: "warning"
// });
// let name = this.params.name;
// const p = { ...row, name };
//
// // 调用更新方法
// updateXXXXx(p);
// this.$message({
// message: "已修改!",
// type: "success"
// });
// row.disabled = false;
// if (row.id === undefined) {
// // 重新加载该页面
// }
},
// 取消
cancelEdit(index, row) {
if (row.sort == null || row.name == null) {
return false;
}
//row.address = row.originalValue;
row.edit = false;
row.disabled = false;
if (row.id === undefined) {
debugger;
// 重新加载该页面
location.reload();
}
this.$message({
message: "已取消修改!",
type: "warning"
});
},
//删除
handleDelete(index, row) {
row.splice(index, 1);
this.$message({
message: "已删除!",
type: "success"
});
},
//表格分页
//列表分页
handleSizeChange(val) {
this.currentPage = 1;
this.pageSize = val;
},
handleCurrentChange(val) {
this.currentPage = val;
},
//指标点击事件
detail() {
this.$router.push({ path: "/targetWarn/detail" });
}
}
};
</script>
<style scoped>
.box {
padding: 20px;
}
.box .addBtn {
float: right;
}
</style>
el-table单元格新增、编辑、删除功能的更多相关文章
- C# DataGridView中指定的单元格不能编辑
注意:DataGridView控件是从.NET Framework 2.0版本开始追加的. ReadOnly属性的使用 DataGridView内所有的单元格不能编辑 当DataGridView.Re ...
- [Swift通天遁地]二、表格表单-(7)电子邮件Mail:实现单元格左右滑动调出功能按钮
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Devexpress WinForm GridControl实现单元格可编辑状态更改
之前做项目的时候,需要实现这样的功能.在gridcontrol中,根据是否修改(checkbox)列的选中和未选中状态来联动另外一列的编辑状态.实现如下: private void gridView1 ...
- 【ABAP系列】SAP ABAP OOALV 动态设置单元格可否编辑
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP OOALV 动 ...
- excel设置单元格不可编辑
把允许编辑的单元格选定,右键-设置单元格格式-保护,把锁定前的对钩去掉.再点工具-保护工作表.这样就可以只让你刚才设定的单元格允许编辑,其他不允许.
- Vue. 之 Element table 单元格内容隐藏
Vue. 之 Element table 单元格内容隐藏 在table显示数据时,若某个单元格的内容过多,需要进行隐层,在这一列的单元格属性添加::show-overflow-tooltip=&quo ...
- Java poi导出设置 Excel某些单元格不可编辑
小白的总结,大神勿喷:需要转载请说明出处,如果有什么问题,欢迎留言 一.需求: 1.某一列 .某一行或某些单元格不可编辑,其他列可以编辑 二.期间遇到的问题 1.无法设置成不可编辑 2.设置为不可编辑 ...
- vue+element-ui 实现table单元格点击编辑,并且按上下左右键单元格之间切换
通过我的测试我发现两个两种方法来编辑单元格的内容 第一种点击编辑: 我是给td里添加一个input,将值赋值给input,当失去焦点的时候将input的值付给td原来的内容,然后将input删除, 代 ...
- ABAP ALV单个单元格状态编辑
*&---------------------------------------------------------------------* *& Report ZPPR0024 ...
- ABAP ALV单个单元格状态编辑-简单版本
*&---------------------------------------------------------------------* *& Report ZPPR0024 ...
随机推荐
- windows 修改远程登录端口号
运行regedit.exe打开注册表编辑器,即在cmd的dos窗口输入regedit命令 找到如下注册表子项: HKEY_LOCAL_MACHINE\System\CurrentControlSet\ ...
- 网址URL知识
URL由三部分组成:资源类型.存放资源的主机域名.资源文件名. URL的一般语法格式为: (带方括号[]的为可选项): protocol :// hostname[:port] / path / [; ...
- nacos配置服务入门
1.nacos服务端部署 参见官方文档:https://nacos.io/zh-cn/docs/quick-start.html 2.nacos配置中心功能使用 在pol文件中添加依赖: 在启动类中使 ...
- MySQL主从复制&读写分离&分库分表
MySQL主从复制 MySQL的主从复制只能保证主机对外提供服务,从机是不提供服务的,只是在后台为主机进行备份数据 首先我们说说主从复制的原理,这个是必须要理解的玩意儿: 理解: MySQL之间的数据 ...
- Springboot文件上传限制
#100,000,000 100M spring.servlet.multipart.max-file-size = 100000000 spring.servlet.multipart.max-re ...
- javascript中的select、checkbox
遍历checkbox <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...
- bzoj1001题解
[解题思路] 显然,这题的答案是这个网格图的最小割.根据最大流-最小割定理,我们可以用网络流算法来求其最小割,时间复杂度最小为O(V2√E). 特殊的,这个网格图是一个平面图,于是可以根据平面图最小割 ...
- NX二次开发-如何判断孔特征和边倒圆是否在凸台特征后面?
在建模的时候,部件导航器里的特征按建模顺序是有特征时间戳记的. 我们可以根据特征时间戳记的名字来判断哪个特征在前,哪个在后. #include <uf.h> #include <uf ...
- [Android开发常见问题-4] RunTime.exec()如何以root权限执行多条指令?
转:http://blog.csdn.net/alexander_xfl/article/details/9150971 RunTime.exec()这个接口可以说是给我们开发者提供了一个很好的直观操 ...
- 'ddkbuild.cmd' 不是内部或外部命令,也不是可运行的程序
转自VC错误:http://www.vcerror.com/?p=49 问题描述: 错误:'ddkbuild.cmd' 不是内部或外部命令,也不是可运行的程序 解决方法: 详细的解决方法可参考VC错误 ...