vxe-table 行内编辑


<vxe-table
      ref="xTable"
      :edit-rules="validRules"
      keep-source
      height="100%"
      :data="tableData"
      :edit-config="{trigger: 'manual', mode: 'row',autoClear:false}"
    >
      <vxe-table-column field="InspectTypeId" title="检验类型" :edit-render="{name: '$select', options: typeDropdown,optionProps: {value: 'Id', label: 'Name'}}" />
      <!-- 测试插入自定义下拉框 -->
      <vxe-table-column field="IpProcessOrGroupId" title="工序" :edit-render="{autofocus: '.custom-input'}">
        <template v-slot:edit="{ row }">
          <el-select
            v-model="row.IpProcessOrGroupId"
            filterable
            clearable
          >
            <el-option v-for="item in processDropdown" :key="item.Id" :value="item.Id" :label="item.Name" />
          </el-select>
        </template>
      </vxe-table-column>
      <vxe-table-column field="PlanCount" title="数量" :edit-render="{name: '$input', props: {type: 'number',min:0}}" />
      <vxe-table-column field="Remark" title="备注" :edit-render="{name: 'input', immediate: true, attrs: {type: 'text'}}" />
      <vxe-table-column title="操作" width="180">
        <template v-slot="{ row }">
          <template v-if="$refs.xTable.isActiveByRow(row)">
            <el-button type="primary" size="mini" plain class="el-icon-check" @click="saveRowEvent(row)">保存</el-button>
            <el-button type="primary" size="mini" plain class="el-icon-close" @click="cancelRowEvent(row)">取消</el-button>
          </template>
          <template v-else>
            <el-button type="primary" size="mini" plain class="el-icon-edit" @click="editRowEvent(row)">编辑</el-button>
          </template>
        </template>
      </vxe-table-column>
    </vxe-table>
    // 插入新空行
    async insertEvent(row) {
      const record = {}
      const { row: newRow } = await this.$refs.xTable.insertAt(record, row)
      await this.$refs.xTable.setActiveRow(newRow)
    },
    // 点击‘修改’行
    editRowEvent(row) {
          this.$refs.xTable.setActiveRow(row)
    },
    // 点击行‘取消’
    cancelRowEvent(row) {
      const xTable = this.$refs.xTable
      const insertRecords = xTable.getInsertRecords()
      if (insertRecords.length > 0) {
        xTable.remove(insertRecords)
      }
      xTable.clearActived().then(() => {
        // 还原行数据
        xTable.revertData(row)
      })
    },

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM