VUE+Element UI实现简单的表格行内编辑效果

原理是通过Css控制绑定的输入控件与显示值,在选中行样式下对控件进行隐藏或显示

 1 <!DOCTYPE html>
 2 <html>
 3
 4 <head>
 5     <meta charset="UTF-8">
 6     <!-- 引入样式 -->
 7     <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-default/index.css">
 8     <style>
 9         * {
10     margin: 0;
11     padding: 0
12 }
13 body {
14     font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif;
15     overflow: auto;
16     font-weight: 400;
17     -webkit-font-smoothing: antialiased;
18 }
19 .tb-edit .el-input {
20     display: none
21 }
22 .tb-edit .current-row .el-input {
23     display: block
24 }
25 .tb-edit .current-row .el-input+span {
26     display: none
27 }
28     </style>
29 </head>
30
31 <body>
32     <div id="app">
33         <el-table :data="tableData" class="tb-edit" style="width: 100%" highlight-current-row @row-click="handleCurrentChange">
34             <el-table-column label="日期" width="180">
35                 <template scope="scope">
36                     <el-input size="small" v-model="scope.row.date" placeholder="请输入内容" @change="handleEdit(scope.$index, scope.row)"></el-input> <span>{{scope.row.date}}</span>
37                 </template>
38             </el-table-column>
39             <el-table-column label="姓名" width="180">
40                 <template scope="scope">
41                     <el-input size="small" v-model="scope.row.name" placeholder="请输入内容" @change="handleEdit(scope.$index, scope.row)"></el-input> <span>{{scope.row.name}}</span>
42                 </template>
43             </el-table-column>
44             <el-table-column prop="address" label="地址">
45                 <template scope="scope">
46                     <el-input size="small" v-model="scope.row.address" placeholder="请输入内容" @change="handleEdit(scope.$index, scope.row)"></el-input> <span>{{scope.row.address}}</span>
47                 </template>
48             </el-table-column>
49             <el-table-column label="操作">
50                 <template scope="scope">
51                     <!--<el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>-->
52                     <el-button size="small" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
53                 </template>
54             </el-table-column>
55         </el-table>
56         <br>数据:{{tableData}}</div>
57 </body>
58 <script src="https://unpkg.com/vue/dist/vue.js"></script>
59 <script src="https://unpkg.com/element-ui/lib/index.js"></script>
60 <script>
61     var app = new Vue({
62         el: ‘#app‘,
63         data: {
64             tableData: [{
65                 date: ‘2016-05-02‘,
66                 name: ‘王小虎‘,
67                 address: ‘上海市普陀区金沙江路 1518 弄‘
68             }, {
69                 date: ‘2016-05-04‘,
70                 name: ‘王小虎‘,
71                 address: ‘上海市普陀区金沙江路 1517 弄‘
72             }, {
73                 date: ‘2016-05-01‘,
74                 name: ‘王小虎‘,
75                 address: ‘上海市普陀区金沙江路 1519 弄‘
76             }, {
77                 date: ‘2016-05-03‘,
78                 name: ‘王小虎‘,
79                 address: ‘上海市普陀区金沙江路 1516 弄‘
80             }]
81         },
82         methods: {
83             handleCurrentChange(row, event, column) {
84                 console.log(row, event, column, event.currentTarget)
85             },
86             handleEdit(index, row) {
87                 console.log(index, row);
88             },
89             handleDelete(index, row) {
90                 console.log(index, row);
91             }
92         }
93     })
94 </script>
95 </html>

原文地址:https://www.cnblogs.com/weijiutao/p/11313060.html

时间: 2024-11-05 23:26:43

VUE+Element UI实现简单的表格行内编辑效果的相关文章

vxe-table 可编辑表格 行内编辑以及验证 element-UI集成

<vxe-table border show-overflow ref="xTable"  --------------------------------------------------------------------------------------------可根据此变量控制表格内容 class="vxe-table-element" height="600" :data="tableData"-----

vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、一级mockjs用法、路由懒加载三种方式

不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p>Element UI简单Cascader级联选择器使用</p> <el-cascader :options='options' v-model="selectedOptions" @change="handleChange"> </el-

vue + element ui 阻止表单输入框回车刷新页面

问题 在 vue+element ui 中只有一个输入框(el-input)的情况下,回车会提交表单. 解决方案 在 el-form 上加上 @submit.native.prevent 这个则会阻止表单回车提交. 测试 下面的代码出现表单回车提交 <body> <div id="app"> <el-form ref="form" :model="form" label-width="80px"&

AppBoxPro - 细粒度通用权限管理框架(可控制表格行内按钮)源码提供下载

特别声明: 提供的源代码已经包含了 AppBoxPro 的全部源代码,用 VS2012 打开项目后,直接 Ctrl+F5 可以运行起来(默认使用VS自带的LocalDB数据库). FineUIPro是商业程序,仅包含v1.7.0公测版的DLL:当然你也可以自行把 FineUIPro 换成 FineUI(开源版),开源版下载地址. AppBoxPro 是基于 FineUIPro 和 Entity Framework 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块

ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 #是否,已经可以看到效果了. 对于分类ID列,通常显示的是分类名称,而不是ID值. 可是分类名称不在文章表里,在文章分类表,怎么关联格式化呢? 我们有文章分类表: 所以我们写个下拉配置: 然后在配置表头里把它配置上: 效果: PS:通过自定义语句来翻译下拉项的注意事项: 1:翻译项的数量在100以下,

Easy UI实现行内编辑

最近跟着勇霞师姐做我们高校云平台的UI系统,各个系统界面的管理.UI的系统虽然很小,但是技术内容很新鲜,这篇博文就像大家介绍一下我新接触的EasyUI的知识:开启行内编辑. 效果图如下: 一.View页面 首先,引入easyui的js文件. [html] view plaincopy <link rel="stylesheet" type="text/css" href="../../Content/jquery-easyui-1.3.2/theme

JS组件系列——BootstrapTable 行内编辑解决方案:x-editable

前言:之前介绍bootstrapTable组件的时候有提到它的行内编辑功能,只不过为了展示功能,将此一笔带过了,罪过罪过!最近项目里面还是打算将行内编辑用起来,于是再次研究了下x-editable组件,遇到过一些坑,再此做个采坑记录吧!想要了解bootstrapTable的园友可以移步 JS组件系列——表格组件神器:bootstrap table. 本文原创地址:http://www.cnblogs.com/landeanfen/p/5821192.html 一.x-editable组件介绍 x

EasyUI-Datagrid行内编辑

接上一篇,这次介绍easyUI的datagrid的行内编辑单元格的功能. 关于行内编辑,我之前写过一个demo <jQuery:页面可编辑表格>,但是easyui 中早已经封装了行内单元格编辑的功能,我们在调用时只需要使用人家封装好的方法就行.这里就使用封装好的方法. 实现思路: 1.定义table 时写上监听单击事件的方法:onClickCell:onClickCell: 2.将需要编辑的<th>和<td>设置编辑的触发响应:editor:'text'.其中text只

[转]Laravel与bootstrap-editable实现table的行内编辑

[转]Laravel与bootstrap-editable实现table的行内编辑 准备需要的库 bootstrap3.0下载 bootstrap-table下载 x-editable-develop下载 前端处理 引入库 要使用插件,首先要在blade模板(或者说html)里引入对应的js文件和css文件 bootstrap引入 <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"/>