iview实现table的可编辑

2023-10-30

遇到同事请教的这个问题,没接触过iview,以为和element一样,只需要在table-column中使用作用域插槽即可,简单又方便,结果发现它居然是用reder函数进行渲染的,so,仔细琢磨一下,写了下面的demo,希望对大家有用。

效果:

 

代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="http://unpkg.com/iview/dist/styles/iview.css">
    <script type="text/javascript" src="http://vuejs.org/js/vue.min.js"></script>
    <script type="text/javascript" src="http://unpkg.com/iview/dist/iview.min.js"></script>
</head>
<body>

<div id="app">
    <i-table  border :columns="columns2" :data="data3"></i-table>
</div>

<script>
    
  var app = new Vue({
      el: '#app',
      data () {
        return {
                columns2: [
                     {
                        title: 'Name',
                        key: 'name'
                    },
                    {
                        title: 'Age',
                        key: 'age',
                           render: (h, params) => {

                            if (params.row.$isEdit) {
                            
                              return h('input', {

                                domProps: {
                                  value: params.row.age
                                },
                                on: {
                                  input: function (event) {
                                    params.row.age = event.target.value
                                  }
                                }
                              });
                            } else  {
                              
                              return h('div', params.row.age);
                            }
                        }
                    },
                    {
                        title: 'Address',
                        key: 'address'
                    },
                    {
                        title: 'Action',
                        key: 'action',
                        render: (h, params) => {
                            return h('Button', {
                                    props: {
                                        type: 'text',
                                        size: 'small'
                                    },
                                    on: {
                                      click: () => {
                                        if (params.row.$isEdit) {
                                          this.handleSave(params.row)
                                        } else {
                                          this.handleEdit(params.row)
                                        }
                                      }
                                    }
                                }, params.row.$isEdit ? '保存' : '编辑')
                        }
                    }
                ],
                data3: [
                    {
                        name: '哈哈',
                        age: 18,
                        address: '上海',
                        $isEdit: false
                    },
                    {
                        name: '啦啦',
                        age: 24,
                        address: '北京',
                        $isEdit: false
                    }
                ]
              }
      },
        methods: {
            handleEdit (row) {
               this.$set(row, '$isEdit', true)
              
            }, 
            handleSave (row) {
              this.$set(row, '$isEdit', false)
            }
}
    })
</script>
</body>
</html>

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iview实现table的可编辑 的相关文章

  • 防止基于 DOM 的 XSS

    防止基于 DOM 的 XSS 规则1 原则 HTML 转义 然后 JavaScript 转义 然后再将不受信任的数据插入到执行上下文中的 HTML 子上下文中 有多种方法和属性可用于在 JavaScript 中直接呈现 HTML 内容 这些
  • pytorch学习之---squeeze()和unsqueeze()函数功能及使用

    首先这个squeeze单词啥意思 1 squeeze 1 和squeeze 1 作用 两者的效果一样 都是给张量tensor降维 但不是啥张量都可以用这两个函数来降维 它只能降维一种情况下张量的维度 就是我的张量tensor是一个n 1维度

随机推荐

  • Linux(Centos 7)命令集(查看进程,杀死进程,查看日志,安装wget命令,安装netstat)

    查看进程 以zookeeper为例 ps ef grep zookeeper 查看进程 同时去掉当前的grep进程 ps ef grep java grep v grep 显示出所有的java进程 去处掉当前的grep进程 杀死进程 使用k
  • 2024 机器学习/深度学习/Python数据分析可视化/必过毕业设计选题

    深度学习 机器学习篇 1 基于机器学习的反电信诈骗系统 数据集 互联网公开渠道获取 技术 决策树 SVM算法 Django MySQL 功能 短信展示 诈骗短信判断 短信分析可视化 数据集管理 2 基于机器学习的垃圾短信过滤识别系统 数据集
  • 从端口号找到对应的Docker

    1 通常一台主机上会运行多个docker 如果有些docker端口号占用了 导致其它对应服务无法运行 这是可使用以下方法 通过端口号找到对应docker 1 根据提示占用的端口号portM找到占用端口号的进程 例如 查找占用443端口号的进
  • 操作系统原理——第六章:页面置换算法

    文章目录 1 功能与目标 2 实验设置与评价方法 3 局部页面置换算法 3 1 最优页面置换算法 OPT optimal 3 2 先进先出算法 FIFO 3 3 最近最久未使用算法 LRU Least Recently Used 3 4 时
  • gpg昨天成功后,今天又不行了

    echo test gpg2 clearsign BEGIN PGP SIGNED MESSAGE Hash SHA256 test gpg 签名时失败 No pinentry gpg stdin clear sign failed No
  • 3.3.Perl数据类型-数组

    3 3 Perl数据类型 数组 B站视频教程 菜鸟学生信 1 定义 一组有序的标量数据 数组中可以存储无限多的元素 数组变量 列表直接量 1 1 数组定义 array zhangsan 3 14 李四 36 undef undef wang
  • 西门子S7-200 SMART功能分享

    SIMATIC S7 200 SMART 是西门子公司经过大量市场调研 为中国客户量身定制的一款高性价比小型 PLC 产品 结合西门子 SINAMICS 驱动产品及 SIMATIC 人机界面产品 以 S7 200 SMART 为核心的小型自
  • labview串口打开之后visaclose不起作用关闭不了老是占用的问题

    labview串口打开之后visaclose不起作用关闭不了老是占用的问题 最近在做一个数据接收的上位机 用串口发送接收数据 之前有用过labview 整体操作相当简单 于是就打算用labview做一个 但是之前做labview的时候就有一
  • Java Socket实现基于NIO的TCP通信

    一 NIO的引入 对于BIO通信时 服务端ServerSocket会在accept方法 和read方法发生堵塞 导致别的请求无法进入 当然可以使用多线程处理 如果请求很多 就会有很多线程 消耗太大 NIO服务端ServerSocketCha
  • 【C++】C++中的继承

    1 继承的概念及定义 1 1继承的概念 继承 inheritance 机制是面向对象程序设计使代码可以复用的最重要的手段 它允许程序员在保持原有类特性的基础上进行扩展 增加功能 这样产生新的类 称派生类 继承呈现了面向对象程序设计的层次结构
  • 前端校招笔试题(一)

    下面这些是一些经常碰到的笔试题 但是跟前端是没什么关系的 就是属于那种做技术岗都要会的那种 一般都是选择题或者填空题 二叉树遍历 前序遍历 前序遍历首先访问根结点然后遍历左子树 最后遍历右子树 在遍历左 右子树时 仍然先访问根结点 然后遍历
  • 家里摄像头密码忘记找回

    密码忘记找回 在生活中 摄像头随处可见 他们应用在很多方面 已经成了我们必备的工具 那他们可能有存在漏洞 今天我对我的忘记密码家庭摄像头将进行找回 开始 第一步 确定目标 我家的摄像头 88 248 xx xx 80 第二步 进行登录 我忘
  • MyBatisPlus 使用LambdaQueryWrapper 构建查询条件提示:Didn‘t start with ‘is‘, ‘get‘ or ‘set‘

    今天在研发功能时 进行单表查询条件编写时 产品经理在需求文档中写一句 提供等于备案时间的查询功能 本项目的基础架构时 SpringBoot SpringBoot Alibaba Cloud MyBatis 3 MyBatis Plus 在D
  • preprocessing.LabelBinarizer()返回的结果不是one-hot怎么解决?

    先来看一个符合预期的代码 输出one hot编码 from sklearn import preprocessing lb preprocessing LabelBinarizer lb fit transform range 0 3 输出
  • sudo 出现unable to resolve JD 解决方法

    Ubuntu环境 假设这台机器名字叫abc 机器的hostname 每次执行sudo 就出现这个警告讯息 sudo unable to resolve host abc 虽然sudo 还是可以正常执行 所以就直接从 etc hosts 设定
  • 【大数据】图解 Hadoop 生态系统及其组件

    图解 Hadoop 生态系统及其组件 1 HDFS 2 MapReduce 3 YARN 4 Hive 5 Pig 6 Mahout 7 HBase 8 Zookeeper 9 Sqoop 10 Flume 11 Oozie 12 Amba
  • text文本框, textarea文本域 框内提示文字

    首先要用到两个事件 一个是onfocus 光标落在文本框发生的事件 一个是onBlur 光标失去焦点的时候发生的事件
  • SpringBoot 生成 PDF文件

    文章目录 前言 一 使用步骤 1 添加iText依赖 2 创建一个Controller 总结 前言 在Spring Boot应用程序中生成PDF需要使用第三方库 本例中我们将使用iText库 它是一个用于生成PDF文件的Java库 下面是一
  • Vue 一个网站如何实现两个菜单路由

    极少有这种奇怪的需求 去年遇到的 一直没有整理 现在有时间整理了 尴尬的是项目的登录密码忘了 没办法调试了 但是大体的思路是这样的 需求 网站原本有一个菜单列表 现在用户希望点击某行数据的时候 弹出一个新的页面 同时左侧加载一个新的菜单 之
  • iview实现table的可编辑

    遇到同事请教的这个问题 没接触过iview 以为和element一样 只需要在table column中使用作用域插槽即可 简单又方便 结果发现它居然是用reder函数进行渲染的 so 仔细琢磨一下 写了下面的demo 希望对大家有用 效果