单元格内实现可编辑并保存,并实现精准定位到当前点击的单元格?
  VDvlWkTw2thq 2023年11月19日 23 0
<el-table
          :data="
            this.tableData.slice(
              (this.currentPage - 1) * this.pagesize,
              this.currentPage * this.pagesize
            )
          "
          border
          fit
          height="500px"
          highlight-current-row
          style="width: 100%"
          @cell-dblclick="cellDblclick"
          :row-class-name="tableRowClassName"
        >
          <el-table-column
            v-for="(item, i) in cols"
            :key="i"
            align="center"
            :prop="item.prop"
            :label="item.label"
          >
            <template slot-scope="{row }">
              <el-input
                v-if="cellDoubleClice"
                v-model="row[item.prop]"
                ref="input"    
              ></el-input>
              <span v-else>{{ row[item.prop] }}</span>
            </template>
          </el-table-column>
        </el-table>


// 遍历出所有表格行的回调函数
    tableRowClassName({ row, rowIndex }) {
      row.row_index = rowIndex;
    },
    // 双击事件触发的函数
    cellDblclick(row, column, cell, event) {
      console.log(event.bubbles);
      // if(row.row_index)
      this.cellDoubleClice = event.bubbles;
    },

为了实现单元格内的可编辑并保存,并且能够精准定位到当前点击的单元格,你可以按照以下步骤进行操作:

  1. 在双击事件cellDblclick中,添加逻辑以设置cellDoubleClicetrue,表示该单元格处于可编辑状态。
  2. 在表格列定义中,使用slot-scope来获取每个单元格的数据和属性。
  3. 根据cellDoubleClice的值决定是显示el-input还是span元素。
  4. cellDoubleClicetrue时,el-input会显示,使用v-model来实现表格数据的双向绑定,确保编辑的内容能够被保存。
  5. cellDoubleClicefalse时,span元素会显示,用于展示不可编辑的单元格数据。
  6. 为了实现精准定位到当前点击的单元格,你可以在tableRowClassName中给每行数据添加一个row_index属性,记录行索引。
  7. 在双击事件cellDblclick中,通过rowIndex参数获取当前点击的行索引,你可以在此处添加自己的定位逻辑,比如滚动到指定的行或高亮当前行。

请注意以上代码片段中可能存在一些拼写错误或不完整的代码,你需要根据实际情况进行调整和完善。另外,这只是一个示例,你可能需要根据自己的具体需求进行修改和扩展。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
VDvlWkTw2thq