Element UI表格内容双击可编辑,失去焦点提交内容

这篇具有很好参考价值的文章主要介绍了Element UI表格内容双击可编辑,失去焦点提交内容。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

element-plus table 中双击实现 编辑,javascript,前端,vue.js
需求就是双击列表中的某一cell,获取焦点时单元格变成input编辑框,失去焦点时如果内容有更改就触发修改的接口,如果内容无更改的话,就不触发。

1.首先给列表绑定双击事件

@row-dblclick="dbclick"

2.给单元格绑定 className 的回调方法,目的是获取选中单元格的行和列的index

:cell-class-name="tableCellClassName"

相关代码如下:
视图部分:

<el-table
  border
  v-loading="loading"
  :data="fingerList"
  @row-dblclick="dbclick"
  :cell-class-name="tableCellClassName"
>
  <el-table-column label="备注" align="center" prop="notes">
    <template slot-scope="scope">
      <!--v-if去判断双击的是不是当前单元格-->
      <el-input
        @blur="updateNotesValue(scope.row)"
        :ref="scope.row.index + ',' + scope.column.index"
        v-model="scope.row.newNotesValue"
        v-if="scope.row.index + ',' + scope.column.index == currentCell">
      </el-input>
      <span v-else>{{ scope.row.notes }}</span>
    </template>
  </el-table-column>
</el-table>

script部分:

export default {
	data() {
	    return {
	      // 用一个字符串来保存当前双击的是哪一个单元格
	      currentCell: null
	   }
	},
	methods: {
		// 给单元格绑定横向和竖向的index,这样就能确定是哪一个单元格
	    tableCellClassName({ row, column, rowIndex, columnIndex }) {
	      row.index = rowIndex;
	      column.index = columnIndex;
	    },
	    // 获得当前双击的单元格的横竖index,然后拼接成一个唯一字符串用于判断,并赋给currentCell
	    // 拼接后类似这样:"1,0","1,1",
	    dbclick(row, column) {
	      this.currentCell = row.index + ',' + column.index;
	      // 这里必须要setTimeout,因为在点击的时候,input才刚被v-if显示出来,不然拿不到dom
	      setTimeout(() => {
	        // 双击后自动获得焦点
	        this.$refs[row.index + ',' + column.index].focus();
	        // row增加一个新的参数,将原先的值赋给新的参数,用来比较是否进行更改
	        this.$set(row, 'newNotesValue', row.notes)
	      })
	    },
	    // 当input失去焦点的时候,隐藏input, 将修改的内容传给后台
	    updateNotesValue(row) {
	      this.currentCell = null
	      // 比较这个单元格的值是否进行了更改,没有更改不进行任何操作,更改了才触发接口
	      if (row.notes !== row.newNotesValue) {
	        const params = { id: row.id, notes: row.newNotesValue }
	        updateNotes(params).then(res => {
	          this.msgSuccess('修改成功')
	          this.getList()
	        })
	      }
	    }
	}
}

借鉴此博客:链接:https://blog.csdn.net/weixin_44057991/article/details/124713407?spm=1001.2014.3001.5506文章来源地址https://www.toymoban.com/news/detail-762072.html

到了这里,关于Element UI表格内容双击可编辑,失去焦点提交内容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于element UI 显示编辑表格

    基于element ui 实现编辑表格,支持文本、下拉、日期、链接等形式,实现了回车到下一个输入框,每一个回车都可以触发业务回车事件,例如计算小计;最后一格回车可以触发自动增行等效果。 实现效果如下 组件入口 index.vue column.vue 支持column-render.js ,支持render自定义列内容

    2024年02月05日
    浏览(27)
  • Vue+element UI 可编辑表格

    前端开发过程中,我们都会尽量避免多层弹窗的嵌套,最多两层弹窗嵌套。这么做的原因是为了方便管理代码和防止多层嵌套弹窗造成bug。但是有时候,内层的弹窗可能展示了一个表格,并且需要操作表格中的数据,这个时候我们只能自己DIY一个表格,取代弹窗处理的方法。

    2024年02月04日
    浏览(41)
  • Vue+Element UI弹窗实现表格编辑

    点击编辑按钮弹出Dialog js如下 时间格式化 3.1 方法一

    2024年02月12日
    浏览(31)
  • element-ui实现表格每行可以编辑数据

    每行可以编辑数据可以不使用弹窗实现修改数据的功能,这里使用到element-ui框架 效果图如下: 代码如下: 可获取到编辑的数据 这里展示axios.post请求来实现编辑功能

    2024年02月12日
    浏览(42)
  • vue+element-ui+springboot 在线表格编辑

    方法: 编辑excel 格式为需要的样子,另存为html 打开files文件,复制html部分代码和样式到vue文件 将需要编辑的部分使用控件填入 代码: 特别地: 服装列数可变,需要动态变换,同时有的可编辑,有的不可编辑 增加表格行数,可通过增加memberList 数据进行动态添加和删除,无

    2024年01月24日
    浏览(38)
  • 解决vue+element ui 在使用element表格时,出现表格表头与内容对不齐的问题

    我们在使用element ui的表格功能时,出现如下图所示表格头与内容对不齐的问题时解决方法如下  方法一: 在App.vue中加入 方法二: 在自建的css文件中加入  body .el-table th.gutter{ display: table-cell!important; } 然后使用下列语句将css文件导入App.vue中 效果如下图所示      

    2024年02月15日
    浏览(46)
  • element-ui中table表格标签编辑功能的实现

    表格实现编辑功能。在实际开发过程中,我们表格的表头往往很多,有的还会发生变化,所以本文参考一位博主的代码结合自己的项目进行了改编。 参考原文链接:vue element-ui实现table表格可编辑修改

    2024年02月13日
    浏览(37)
  • Element UI Table实现可编辑表格+校验 的方式进行提交

    在一些场景下面,我们需要对table来进行编辑,就像表单一样使用,可能还会带验证。本文vue+elementui实现动态添加行/可编辑的table,文中示例代码介绍的非常详细,大家也可以参照一下:   我们先搞一个table:  这个就是我们要编辑的tablel ,我们其中的3个列里面,可以编辑,并

    2024年02月11日
    浏览(29)
  • Element UI Table实现可编辑表格+校验(行和行,列和列)

    Table: TablePersonPicker: 输入校验: 效果图:    

    2024年02月15日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包