双击实现编辑表格单元格

双击哪个单元格就编辑哪个单元格,先上效果图,


实现思路:

在单元格下添加一个模板,模板里面有正常状态的span和编辑状态的input框,双击显示input框,input框失去焦点显示span

实现代码:

<el-table-column prop="name" label="姓名" width="120">

          <template scope="scope">

              <div @dblclick="boxClick(scope.row)">

                  <el-input v-if="scope.row.nameFlag" v-model="scope.row.name"

                  placeholder="请输入内容"

                  v-on:blur="inputblur(scope.row)" v-focus></el-input>

                  <span v-else>{{scope.row.name}}</span>

              </div>

          </template>

      </el-table-column>

数据:

{

          date: "2016-05-03",

          name: "王小虎",

          nameFlag: false,  

          address: "上海市普陀区金沙江路 1518 弄",

        },

涉及到的方法:

// 双击模板里面的div容器,使input框显示

boxClick(row){

        row.nameFlag = true

    },

// input框失去焦点 span显示

inputblur(row) {

        row.nameFlag = false

    },

因为饿了么的input框 有非常好用的v-model双向数据绑定,所以绑定之后修改的就是对象数据,

还有一个注意点:

本来写完后以为大功告成,测了下,发现点击别处的时候,模板里面的input框不消失,就是根本不调用inputblur,想了想,发现是input框出现的时候,没有自动获取焦点的功能。对于这种需要循环的表格来说,如果使用dom操作不太方便,万幸vue有一个自定义指令,这样自动获取焦点会很方便,代码如下:

directives: {

    // 注册一个局部的自定义指令 v-focus

    focus: {

      // 指令的定义

      inserted: function(el) {

        // 聚焦元素

        el.querySelector("input").focus();

      }

    }

  },

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 10,474评论 0 29
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,216评论 0 13
  • 深入响应式 追踪变化: 把普通js对象传给Vue实例的data选项,Vue将使用Object.defineProp...
    冥冥2017阅读 10,309评论 6 16
  • 梅花好美,说这话似乎晚了,眼看已入垂暮之年。却也不晚,因为终于懂得梅花美好。一生见过很多梅,也只是打马而过...
    冰夫阅读 1,418评论 0 0
  • 《观港珠大桥》 港珠大橋江连天, 霓虹雲花漫江邊。 巴坡沙上飛海鸥, 賭館拼殺起狼煙...
    一叶孤飞阅读 3,567评论 24 14

友情链接更多精彩内容