美文网首页
Vue+ElementUI 实现表格行内编辑

Vue+ElementUI 实现表格行内编辑

作者: 刘昊然的弟弟 | 来源:发表于2020-12-21 14:07 被阅读0次

    闲,水一波文章。
    最终效果:


    image.png

    页面代码如下:

    <el-table-column prop="propertyValue" label="属性值">
      <template slot-scope="scope">
        <span v-if="scope.row.isEditPropertyShow">
          <el-input v-model="scope.row.propertyValue" size="mini" placeholder="请输入内容" />
        </span>
        <span v-else>{{ scope.row.propertyValue }}</span>
       </template>
     </el-table-column>
     <el-table-column prop="address" label="操作">
       <template slot-scope="scope">
         <el-button v-if="!scope.row.isEditPropertyShow" type="primary" size="small" @click="editProperty(scope.row,scope.$index)">编辑</el-button>
          <div v-else>
             <el-button type="primary" plain size="small" @click="saveProperty(scope.row,scope.$index)">保存</el-button>
             <el-button size="small" @click="cancelProperty(scope.row,scope.$index)">取消</el-button>
           </div>
        </template>
     </el-table-column>
    

    js代码:

        // 修改商品属性
        editProperty(row, index) {
          // 我这边是表格数据都是前端处理,需要把旧值存起来,用户点击修改之后修改了原来的数据,但是又点了取消的情况,还需要获取到原来的值
          sessionStorage.setItem('oldPropertValue', row.propertyValue)
          // isEditPropertyShow为ture展示输入框
          this.$set(this.propertyData[index], 'isEditPropertyShow', true)
        },
        // 保存商品属性
        saveProperty(row, index) {
          this.$set(this.propertyData[index], 'isEditPropertyShow', false)
        },
        // 取消商品属性编辑
        cancelProperty(row, index) {
          if (sessionStorage.getItem('oldPropertValue') !== 'null') {
            this.$set(this.propertyData[index], 'propertyValue', sessionStorage.getItem('oldPropertValue'))
          } else {
            this.$set(this.propertyData[index], 'propertyValue', '')
          }
          this.$set(this.propertyData[index], 'isEditPropertyShow', false)
        },

    相关文章

      网友评论

          本文标题:Vue+ElementUI 实现表格行内编辑

          本文链接:https://www.haomeiwen.com/subject/piyrnktx.html