vue elementui table组件点击每行可输入修改对应内容做提交 (完整版)

vue elementui table组件点击每行可输入对应内容做提交 (完整版)

	在日常需求中,表格很常见,那么如果表格中内容要求可输入修改该怎么办呢?下面我将提供完整代码以及说明;

html

<el-table
        :data="configTableList"
        highlight-current-row
        :header-cell-style="{
          background: 'transparent',
          fontWeight: 'bold',
        }"
        @select="handleClickCheck"
        @select-all="handleClickAll"
        ref="multipleTable"
        :row-key="rowKey"
        class="road-container"
      >
        <el-table-column
          type="selection"
          width="55"
          align="center"
          :reserve-selection="true"
        />

        <el-table-column label="英文名" prop="attrOriName" align="left">
        </el-table-column>

		# 下面的table-column是重点,我要改名称叫"中文名"的序列,分两步
        <el-table-column prop="attrChName" label="中文名" align="center">
          <template slot-scope="{ row, $index }">
            *<div  
            第一步:点击列内容的事件
              @click.stop="
                {
                  {
                    handleClickInputEdit($index, 'editRemarkInput'); 
                  }
                }
              "
            >
             第二步:Input事件 => (1) input既可以回车确定内容也可以点击其他行确定内容
              <el-input
                v-if="editChTableRow[$index]"
                v-model="row.attrChName"
                @change="handleChangeInput(row, 'editTableRowContent')"
                size="mini"
                class="editRemarkInput"
                @keyup.enter.native="handleEditRow($index, row.attrChName)"
              ></el-input>*
              <span v-else>{{ row.attrChName || "暂无" }}</span>
            </div>
          </template>
        </el-table-column>
      </el-table>

js

   // 点击列内容
    handleClickInputEdit(index, className) {
      this.editChTableRow = new Array(this.configTableList.length);
      this.editChTableRow[index] = true;
      this.$nextTick(function () {
        // 鼠标自动聚焦输入框
        var editInputList = document.getElementsByClassName(className);
        editInputList[0].children[0].focus();
      });
    },

    // 修改中文名时输入框回车事件
    handleEditRow(index, attrChName) {
      this.editChTableRow = new Array(this.configTableList.length);
      this.editChTableRow[index] = false;
    },

    // 修改当前行时点击其他行也可修改完成
    handleChangeInput(row) {
      this.handleEditRowStateApi(row, row.needShowOnTag); // 我们的修改接口,换成你们的接口
    },
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以在表格中的列定义中添加一个多选框列,示例代码如下: ```html <template> <el-table :data="tableData" style="width: 100%"> <el-table-column type="selection"></el-table-column> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> </el-table> </template> ``` 在这个例子中,我们在列定义中添加了一个 `type="selection"` 的列,这个列会在表格的左侧显示一个多选框,用户可以通过选中多选框来选择表格中的行。注意,这个列的 `prop` 属性没有定义,因为它不会显示任何数据,只是用来实现多选框的功能。 另外,需要注意的是,在使用多选框列的时候,需要在表格组件上添加 `@selection-change` 事件监听器来处理用户的选择操作: ```html <template> <el-table :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> <!-- 列定义 --> </el-table> </template> <script> export default { data() { return { tableData: [ // 表格数据 ], selectedRows: [] // 保存用户选择的行 }; }, methods: { handleSelectionChange(selection) { // 更新用户选择的行 this.selectedRows = selection; } } }; </script> ``` 在这个例子中,我们定义了一个 `selectedRows` 数组来保存用户选择的行,然后在 `@selection-change` 事件监听器中更新这个数组。你可以在监听器中执行任意的操作,比如更新表格中的数据、发送请求等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值